gina 0.1.6-alpha.12 → 0.1.6-alpha.121

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.121}/LICENSE +1 -1
  7. package/framework/v0.1.6-alpha.121/VERSION +1 -0
  8. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/README.md +1 -0
  9. package/framework/v0.1.6-alpha.121/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.121}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
  11. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/dist/vendor/gina/js/gina.js +619 -233
  12. package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
  13. package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  14. package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  15. package/framework/v0.1.6-alpha.121/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.121}/core/config.js +157 -74
  17. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/index.js +108 -26
  18. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v4.js +124 -22
  19. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/controller.js +683 -163
  20. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/index.js +2 -2
  21. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  22. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  23. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/README.md +191 -0
  24. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  25. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  26. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  27. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  28. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  29. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  30. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/index.js +57 -0
  31. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  32. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  33. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  34. package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/package.json +22 -0
  35. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/.travis.yml +4 -0
  36. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/LICENSE +21 -0
  37. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/bool.js +10 -0
  38. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
  39. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
  40. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
  41. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
  42. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/divide.js +8 -0
  43. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count.js +20 -0
  44. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
  45. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
  46. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
  47. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/reflect.js +2 -0
  48. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/short.js +3 -0
  49. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/string.js +11 -0
  50. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
  51. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/xup.js +10 -0
  52. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/index.js +343 -0
  53. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/package.json +31 -0
  54. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/package.json.dist +39 -0
  55. package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/readme.markdown +513 -0
  56. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/HISTORY.md +498 -0
  57. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/LICENSE +7 -0
  58. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/README.md +88 -0
  59. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/bin/swig.js +161 -0
  60. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
  61. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
  62. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
  63. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/index.js +1 -0
  64. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
  65. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/filters.js +630 -0
  66. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/lexer.js +306 -0
  67. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
  68. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
  69. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
  70. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/parser.js +744 -0
  71. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/swig.js +740 -0
  72. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
  73. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
  74. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
  75. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
  76. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
  77. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
  78. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
  79. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
  80. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
  81. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
  82. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
  83. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
  84. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
  85. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
  86. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
  87. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
  88. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/utils.js +184 -0
  89. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/package.json +57 -0
  90. package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/package.json.dist +61 -0
  91. package/framework/v0.1.6-alpha.121/core/deps/swig-client/swig.js +5031 -0
  92. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/index.js +1 -1
  93. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/factory.js +1 -1
  94. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/gna.js +104 -22
  95. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/index.js +3 -3
  96. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/make.js +1 -1
  97. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/mime.types +1 -0
  98. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/entity.js +5 -5
  99. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/index.js +30 -26
  100. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/template/entityFactory.js +1 -1
  101. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/template/index.js +1 -1
  102. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/index.js +3 -3
  103. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/package.json +2 -2
  104. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/package.json +2 -2
  105. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/package.json +2 -2
  106. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/package.json +2 -2
  107. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/src/form-validator.js +39 -27
  108. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/src/main.js +390 -101
  109. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/router.js +92 -47
  110. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.isaac.js +91 -10
  111. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.js +317 -130
  112. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/status.codes +1 -11
  113. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  114. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/command/gina.tpl +1 -1
  115. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/env.json +19 -0
  116. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/templates.json +4 -2
  117. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/console.js +1 -1
  118. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/context.js +29 -12
  119. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/package.json +2 -2
  120. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/src/main.js +1 -1
  121. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/dateFormat.js +1 -1
  122. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/index.js +1 -1
  123. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/package.json +2 -2
  124. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/src/main.js +6 -4
  125. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/path.js +31 -15
  126. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/package.json +2 -2
  127. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/src/api-error.js +2 -2
  128. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/src/main.js +1 -1
  129. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/task.js +2 -2
  130. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/text.js +1 -1
  131. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/package.json +2 -2
  132. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/src/main.js +11 -11
  133. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/add.js +2 -1
  134. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/start.js +21 -8
  135. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/get.js +1 -1
  136. package/framework/v0.1.6-alpha.121/lib/cmd/env/help.js +30 -0
  137. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/build.js +1 -1
  138. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/dot.js +21 -0
  139. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/init.js +18 -0
  140. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/link-node-modules.js +2 -3
  141. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/link.js +1 -0
  142. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/tail.js +28 -11
  143. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/version.js +15 -1
  144. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/helper.js +6 -2
  145. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/index.js +1 -1
  146. package/framework/v0.1.6-alpha.121/lib/cmd/minion/help.txt +18 -0
  147. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/add.js +3 -2
  148. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/build.js +4 -4
  149. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/list.js +1 -1
  150. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/list.js +71 -50
  151. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/package.json +2 -2
  152. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/src/main.js +20 -14
  153. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/config.js +1 -1
  154. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/package.json +2 -2
  155. package/framework/v0.1.6-alpha.121/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
  156. package/framework/v0.1.6-alpha.121/lib/domain/dist/public_suffix_list.dat +15754 -0
  157. package/framework/v0.1.6-alpha.121/lib/domain/exemples/backend.js +12 -0
  158. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/package.json +2 -2
  159. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/src/main.js +20 -6
  160. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/generator/index.js +1 -1
  161. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/index.js +1 -1
  162. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121/lib/inherits}/LICENSE +1 -1
  163. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/package.json +2 -2
  164. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/src/main.js +1 -1
  165. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/package.json +2 -2
  166. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/listener.js +10 -2
  167. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/helper.js +1 -1
  168. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/main.js +1 -1
  169. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/math/index.js +1 -1
  170. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/package.json +2 -2
  171. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/model.js +3 -3
  172. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/proc.js +10 -2
  173. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/package.json +2 -2
  174. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/src/main.js +72 -25
  175. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/session-store.js +3 -3
  176. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/package.json +2 -2
  177. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/src/main.js +70 -15
  178. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/validator.js +2 -2
  179. package/framework/v0.1.6-alpha.121/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.121}/AUTHORS +0 -0
  204. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/html/nolayout.html +0 -0
  205. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/html/static.html +0 -0
  206. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/android-chrome-192x192.png +0 -0
  207. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/android-chrome-512x512.png +0 -0
  208. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/apple-touch-icon.png +0 -0
  209. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon-16x16.png +0 -0
  210. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon-32x32.png +0 -0
  211. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon.ico +0 -0
  212. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  213. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/uuid.json +0 -0
  214. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.js +0 -0
  215. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  216. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  217. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/n1ql.js +0 -0
  218. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.js +0 -0
  219. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  220. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  221. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  222. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/controller.framework.js +0 -0
  223. /package/framework/{v0.1.6-alpha.12/core/deps/busboy → v0.1.6-alpha.121/core/deps/busboy-1.6.0}/LICENSE +0 -0
  224. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  225. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/class.js +0 -0
  226. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/tools.js +0 -0
  227. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/README.md +0 -0
  228. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/currency.json +0 -0
  229. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/language/en.json +0 -0
  230. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/language/fr.json +0 -0
  231. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/region/en.json +0 -0
  232. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/region/fr.json +0 -0
  233. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/currency.csv +0 -0
  234. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/region.csv +0 -0
  235. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/region.mapping.json +0 -0
  236. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/README.md +0 -0
  237. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/README.md +0 -0
  238. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/build.json +0 -0
  239. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/README.md +0 -0
  240. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/build.json +0 -0
  241. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/src/main.js +0 -0
  242. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/README.md +0 -0
  243. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/build.json +0 -0
  244. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/src/main.js +0 -0
  245. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/README.md +0 -0
  246. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/build.json +0 -0
  247. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.express.js +0 -0
  248. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/_gitignore +0 -0
  249. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/app.json +0 -0
  250. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/routing.json +0 -0
  251. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/settings.json +0 -0
  252. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  253. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/templates.json +0 -0
  254. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  255. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  256. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/index.js +0 -0
  257. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  258. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  259. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  260. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  261. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  262. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/readme.md +0 -0
  263. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  264. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  265. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/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.121}/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.121}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  268. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/command/gina.bat.tpl +0 -0
  269. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/manifest.json +0 -0
  270. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/package.json +0 -0
  271. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/settings.json +0 -0
  272. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/statics.json +0 -0
  273. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/401.json +0 -0
  274. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/403.json +0 -0
  275. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/404.json +0 -0
  276. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/html/50x.html +0 -0
  277. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/json/500.json +0 -0
  278. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/json/503.json +0 -0
  279. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/extensions/logger/config.json +0 -0
  280. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/LICENSE +0 -0
  281. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/README.md +0 -0
  282. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/LICENSE +0 -0
  283. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/README.md +0 -0
  284. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/README.md +0 -0
  285. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/prototypes.js +0 -0
  286. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/README.md +0 -0
  287. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/build.json +0 -0
  288. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/src/dep/jszip.min.js +0 -0
  289. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/aliases.json +0 -0
  290. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/arguments.json +0 -0
  291. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/copy.js +0 -0
  292. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/cp.js +0 -0
  293. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/help.js +0 -0
  294. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/help.txt +0 -0
  295. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/list.js +0 -0
  296. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/remove.js +0 -0
  297. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/rename.js +0 -0
  298. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/restart.js +0 -0
  299. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/rm.js +0 -0
  300. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/status.js +0 -0
  301. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/stop.js +0 -0
  302. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/add.js +0 -0
  303. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/help.txt +0 -0
  304. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/link-dev.js +0 -0
  305. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/list.js +0 -0
  306. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/remove.js +0 -0
  307. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/rm.js +0 -0
  308. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/set.js +0 -0
  309. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/unset.js +0 -0
  310. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/use.js +0 -0
  311. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/get.js +0 -0
  312. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/help.js +0 -0
  313. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/help.txt +0 -0
  314. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/msg.json +0 -0
  315. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/open.js +0 -0
  316. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/restart.js +0 -0
  317. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/set.js +0 -0
  318. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/start.js +0 -0
  319. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/status.js +0 -0
  320. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/stop.js +0 -0
  321. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/update.js +0 -0
  322. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina-dev.1.md +0 -0
  323. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina-framework.1.md +0 -0
  324. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina.1.md +0 -0
  325. /package/framework/{v0.1.6-alpha.12/lib/cmd/env → v0.1.6-alpha.121/lib/cmd/minion}/help.js +0 -0
  326. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/msg.json +0 -0
  327. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/help.js +0 -0
  328. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/help.txt +0 -0
  329. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/inc/scan.js +0 -0
  330. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/list.js +0 -0
  331. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/reset.js +0 -0
  332. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/set.js +0 -0
  333. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/arguments.json +0 -0
  334. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/help.js +0 -0
  335. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/help.txt +0 -0
  336. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/remove.js +0 -0
  339. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/rename.js +0 -0
  340. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/restart.js +0 -0
  341. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/rm.js +0 -0
  342. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/start.js +0 -0
  343. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/status.js +0 -0
  344. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/stop.js +0 -0
  345. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/help.js +0 -0
  346. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/help.txt +0 -0
  347. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/set.js +0 -0
  348. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/add.js +0 -0
  349. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/help.js +0 -0
  350. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/help.txt +0 -0
  351. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/link-local.js +0 -0
  352. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/link-production.js +0 -0
  353. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/list.js +0 -0
  354. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/remove.js +0 -0
  355. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/rm.js +0 -0
  356. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/use.js +0 -0
  357. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/view/add.js +0 -0
  358. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/README.md +0 -0
  359. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/build.json +0 -0
  360. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/README.md +0 -0
  361. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/src/main.js +0 -0
  362. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/LICENSE +0 -0
  363. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/README.md +0 -0
  364. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/exemples/frontend.html +0 -0
  365. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/README.md +0 -0
  366. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  367. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/protected_inheritance.js +0 -0
  368. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/simple_inheritance.js +0 -0
  369. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/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.121}/lib/logger/README.md +0 -0
  371. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/default/index.js +0 -0
  372. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/index.js +0 -0
  373. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  374. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  375. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/index.js +0 -0
  376. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/speaker.js +0 -0
  377. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/README.md +0 -0
  378. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge.js +0 -0
  379. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge_2_literal objects.js +0 -0
  380. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge_and_preserve_first.js +0 -0
  381. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/src/main.js +0 -0
  382. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/README.md +0 -0
  383. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/build.json +0 -0
  384. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/shell.js +0 -0
  385. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/README.md +0 -0
  386. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/README.md +0 -0
  387. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/index.js +0 -0
  388. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/mocks.json +0 -0
  389. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/routing.json +0 -0
  390. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/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,9 @@
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 91: // CMD
3586
+ console.debug("CMD, CTRL hit");
3384
3587
  e.preventDefault();
3385
3588
  break;
3386
3589
  case 67: // to handle CMD+C (copy)
@@ -3427,15 +3630,18 @@
3427
3630
  }
3428
3631
  default:
3429
3632
  // Replace selection
3633
+ if (e.key.length > 1) {
3634
+ break;
3635
+ }
3430
3636
  if (posStart != posEnd) {
3431
- $_el.value = str.substr(0, posStart) + e.key;
3637
+ $_el.value = str.substring(0, posStart) + e.key;
3432
3638
  if (posEnd-1 < str.length) {
3433
3639
  $_el.value += str.substring(posEnd)
3434
3640
  }
3435
3641
  } else if (posStart == 0) {
3436
3642
  $_el.value = e.key + str.substring(posStart);
3437
3643
  } else {
3438
- $_el.value = str.substr(0, posStart) + e.key + str.substr(posEnd);
3644
+ $_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
3439
3645
  }
3440
3646
  e.currentTarget.setAttribute('readonly', 'readonly');
3441
3647
  // Force restore last caret position
@@ -3577,24 +3783,53 @@
3577
3783
  }
3578
3784
 
3579
3785
  /**
3580
- * reBindForm - This is a WIP
3786
+ * reBindForm
3787
+ * Allows form rebinding: it is like reseting validation
3581
3788
  *
3582
- * @param {object} HTMLElement
3583
- * @param {object} rules
3584
- * @returns {object} formValidatorInstance
3789
+ * E.g.:
3790
+ * $validator
3791
+ * .getFormById('my-form-id')
3792
+ * .reBind();
3793
+ *
3794
+ * @param {string} [formId]
3795
+ * @param {string} [rules]
3796
+ * @param {callback} [cb]
3585
3797
  */
3586
- var reBindForm = function($target, rules, cb) {
3587
- // Unbind form
3588
- var formInstance = unbindForm($target);
3798
+ var reBindForm = function(formId, rules, cb) {
3799
+ var $form = null
3800
+ , _id = null
3801
+ ;
3802
+ if (
3803
+ typeof(this.target) != 'undefined'
3804
+ && /FORM/i.test(this.target.tagName)
3805
+ ) {
3806
+ _id = formId = this.target.getAttribute('id')
3807
+ } else if ( /string/i.test(typeof(formId)) ) {
3808
+ _id = formId
3809
+ }
3810
+
3811
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
3812
+ $form = instance.$forms[_id];
3813
+ } else {
3814
+ throw new Error('form instance `'+ _id +'` not found');
3815
+ }
3816
+
3589
3817
  // reset errors
3590
- //resetErrorsDisplay(formInstance.id);
3818
+ resetErrorsDisplay(_id);
3819
+ // Unbind form
3820
+ unbindForm($form.target);
3591
3821
  // Bind
3592
- bindForm(formInstance.target, rules);
3822
+ if ( typeof(rule) != 'undefined' ) {
3823
+ bindForm($form.target, rules);
3824
+ } else {
3825
+ bindForm($form.target);
3826
+ }
3593
3827
 
3594
3828
  if ( cb ) {
3595
- return cb(formInstance);
3829
+ return cb($form);
3596
3830
  }
3597
- return formInstance;
3831
+
3832
+ return $form;
3598
3833
  }
3599
3834
 
3600
3835
  var unbindForm = function($target) {
@@ -3612,7 +3847,7 @@
3612
3847
 
3613
3848
  } else if ( typeof($target.target) != 'undefined' ) {
3614
3849
  $form = $target;
3615
- _id = $form.id;
3850
+ _id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
3616
3851
  } else {
3617
3852
  throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
3618
3853
  }
@@ -3651,7 +3886,7 @@
3651
3886
  // submit buttons
3652
3887
  $elTMP = $form.target.getElementsByTagName('button');
3653
3888
  if ( $elTMP.length > 0 ) {
3654
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3889
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3655
3890
  // if button is != type="submit", you will need to provide : data-gina-form-submit
3656
3891
  // TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
3657
3892
  $els.push($elTMP[i])
@@ -3661,7 +3896,7 @@
3661
3896
  // submit links
3662
3897
  $elTMP = $form.target.getElementsByTagName('a');
3663
3898
  if ( $elTMP.length > 0 ) {
3664
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3899
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3665
3900
  $els.push($elTMP[i])
3666
3901
  }
3667
3902
  }
@@ -3717,7 +3952,7 @@
3717
3952
  // textarea
3718
3953
  $elTMP = $form.target.getElementsByTagName('textarea');
3719
3954
  if ( $elTMP.length > 0 ) {
3720
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3955
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3721
3956
  $els.push( $elTMP[i] )
3722
3957
  }
3723
3958
  }
@@ -3726,7 +3961,7 @@
3726
3961
  // forms inside main form
3727
3962
  $elTMP = $form.target.getElementsByTagName('form');
3728
3963
  if ( $elTMP.length > 0 ) {
3729
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3964
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3730
3965
  $els.push( $elTMP[i] )
3731
3966
  }
3732
3967
  }
@@ -3811,8 +4046,10 @@
3811
4046
  /**
3812
4047
  * bindForm
3813
4048
  *
3814
- * @param {object} $target - DOM element
3815
- * @param {object} [customRule]
4049
+ * @param {object} [$target] - DOM element
4050
+ * @param {object|string} [customRule]
4051
+ *
4052
+ * @return {object} bindedForm
3816
4053
  * */
3817
4054
  var bindForm = function($target, customRule) {
3818
4055
 
@@ -3821,23 +4058,32 @@
3821
4058
  , rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
3822
4059
  ;
3823
4060
 
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');
4061
+ if (
4062
+ typeof($target) == 'undefined'
4063
+ && typeof(this.target) != 'undefined'
4064
+ && /FORM/i.test(this.target.tagName)
4065
+ ||
4066
+ !/object/i.test( typeof($target) )
4067
+ ) {
4068
+ _id = this.target.id || this.target.getAttribute('id');
4069
+ } else if ( /string/i.test(typeof($target)) ) {
4070
+ _id = $target
4071
+ } else {
4072
+ _id = $target.getAttribute('id')
4073
+ }
3831
4074
 
4075
+ try {
4076
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
4077
+ $form = instance.$forms[_id];
4078
+ if ( typeof($form.target) == 'undefined' ) {
4079
+ throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
4080
+ }
4081
+ $target = $form.target;
3832
4082
  } else {
3833
- throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n'+err.stack )
4083
+ throw new Error('form instance `'+ _id +'` not found');
3834
4084
  }
3835
4085
  } 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
4086
+ throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
3841
4087
  }
3842
4088
 
3843
4089
  console.debug('binding for: '+ _id);
@@ -4143,7 +4389,7 @@
4143
4389
  } else if ( /img/i.test($els[i].tagName) ) {
4144
4390
  $img = $els[i];
4145
4391
  deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
4146
- let file = $img.src.substr($img.src.lastIndexOf('/')+1);
4392
+ let file = $img.src.substring($img.src.lastIndexOf('/')+1);
4147
4393
  $uploadTrigger.customFiles.push({
4148
4394
  name: file,
4149
4395
  deleteLinkId: deleteLinkId
@@ -4535,7 +4781,16 @@
4535
4781
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
4536
4782
  instance.$forms[formId].isValidating = false;
4537
4783
  console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
4784
+ // Fixed on 2025-03-16
4538
4785
  var isFormValid = gResult.isValid();
4786
+ if (!isFormValid) {
4787
+ instance.$forms[formId].errors = gResult.error;
4788
+ for (let eField in gResult.error) {
4789
+ // refreshWarning($gFields[eField]);
4790
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
4791
+ }
4792
+ }
4793
+
4539
4794
  updateSubmitTriggerState( $gForm, isFormValid);
4540
4795
  once = false;
4541
4796
  })
@@ -5129,6 +5384,25 @@
5129
5384
  if (gina.events[_evt]) {
5130
5385
  cancelEvent(event);
5131
5386
 
5387
+ // Fixed on 2025-03-05 - "last focus" vs "current focus"
5388
+ // To get active element: document.activeElement
5389
+ var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
5390
+ var lastFocused = {
5391
+ id : $el.id,
5392
+ name: $el.name
5393
+ };
5394
+ if (!instance.$forms[formId].lastFocused.length) {
5395
+ instance.$forms[formId].lastFocused[0] = lastFocused;
5396
+ } else {
5397
+ instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
5398
+ }
5399
+ lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
5400
+
5401
+ // cleanup
5402
+ instance.$forms[formId].lastFocused.splice(2);
5403
+
5404
+ // console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
5405
+
5132
5406
  triggerEvent(gina, $el, _evt, event.detail);
5133
5407
  }
5134
5408
  });
@@ -5445,7 +5719,7 @@
5445
5719
  ;
5446
5720
  $buttonsTMP = $target.getElementsByTagName('button');
5447
5721
  if ( $buttonsTMP.length > 0 ) {
5448
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5722
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5449
5723
  if ($buttonsTMP[b].type == 'submit') {
5450
5724
  $buttons.push($buttonsTMP[b])
5451
5725
  }
@@ -5455,7 +5729,7 @@
5455
5729
  // binding links
5456
5730
  $buttonsTMP = $target.getElementsByTagName('a');
5457
5731
  if ( $buttonsTMP.length > 0 ) {
5458
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5732
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5459
5733
  if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
5460
5734
  $buttons.push($buttonsTMP[b])
5461
5735
  } else if (
@@ -5712,7 +5986,8 @@
5712
5986
  }
5713
5987
  updateSubmitTriggerState( $form, result.isValid() );
5714
5988
  });
5715
- } else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5989
+ }
5990
+ else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5716
5991
  updateSubmitTriggerState( $form , true );
5717
5992
  }
5718
5993
 
@@ -6175,7 +6450,8 @@
6175
6450
  if ( !/^form$/i.test($formOrElement.tagName) ) {
6176
6451
  $currentForm = $formOrElement.form;
6177
6452
  }
6178
- var formId = $currentForm.getAttribute('id');
6453
+ var formId = $currentForm.getAttribute('id');
6454
+ var isFormValid = null;
6179
6455
 
6180
6456
  if (
6181
6457
  hasParsedAllRules
@@ -6196,10 +6472,16 @@
6196
6472
  if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
6197
6473
  instance.$forms[formId].errors = {}
6198
6474
  }
6475
+ // Fixed on 2025-03-16
6476
+ if ( typeof(cb._errors[field]) != 'undefined' ) {
6477
+ instance.$forms[formId].errors[field] = cb._errors[field];
6478
+ }
6479
+ console.debug('[A] Refreshing warning/error on field '+ field);
6480
+ if (
6481
+ !isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
6482
+ || d[field].target.value != ''
6199
6483
 
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 != '' ) {
6484
+ ) {
6203
6485
  refreshWarning($allFields[field]);
6204
6486
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6205
6487
  updateSubmitTriggerState( $currentForm, isFormValid);
@@ -6207,8 +6489,9 @@
6207
6489
 
6208
6490
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6209
6491
  // update toolbar
6210
- if (!gina.forms.errors)
6492
+ if (!gina.forms.errors) {
6211
6493
  gina.forms.errors = {};
6494
+ }
6212
6495
 
6213
6496
  var objCallback = {
6214
6497
  id : formId,
@@ -6225,13 +6508,13 @@
6225
6508
  }
6226
6509
 
6227
6510
  // is this the last or the only field to be validated ?
6228
- var needsGlobalReValidation = false, isFormValid = null;
6511
+ var needsGlobalReValidation = false;
6229
6512
  if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
6230
6513
  // trigger end of validation
6231
6514
  // console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
6232
6515
  isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6233
6516
  if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
6234
- //console.debug('should update error display now ', cb._errors);
6517
+ console.debug('[1] Should update error display now ', cb._errors);
6235
6518
  instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
6236
6519
  refreshWarning($allFields[field]);
6237
6520
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
@@ -6263,8 +6546,6 @@
6263
6546
  window.ginaToolbar.update('forms', objCallback);
6264
6547
  }
6265
6548
 
6266
-
6267
-
6268
6549
  handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
6269
6550
  updateSubmitTriggerState( $currentForm, isFormValid);
6270
6551
  })
@@ -6408,7 +6689,7 @@
6408
6689
 
6409
6690
  for (var c in rules) {
6410
6691
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6692
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6693
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6694
 
6414
6695
 
@@ -6590,7 +6871,14 @@
6590
6871
  // filtering conditions
6591
6872
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6873
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6874
+ if (
6875
+ Array.isArray(rules[c].conditions[_c].case)
6876
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6877
+ ||
6878
+ !Array.isArray(rules[c].conditions[_c].case)
6879
+ && rules[c].conditions[_c].case != caseValue
6880
+
6881
+ ) {
6594
6882
  continue;
6595
6883
  }
6596
6884
 
@@ -6735,7 +7023,8 @@
6735
7023
  if (
6736
7024
  conditions[c]['case'] === caseValue
6737
7025
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
7026
+ Array.isArray(conditions[c]['case'])
7027
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
7028
  ||
6740
7029
  /^\//.test(conditions[c]['case'])
6741
7030
  ) {
@@ -6852,8 +7141,6 @@
6852
7141
  }
6853
7142
  --i;
6854
7143
  }
6855
-
6856
-
6857
7144
  } // EO for
6858
7145
  }
6859
7146
 
@@ -6874,7 +7161,7 @@
6874
7161
  }
6875
7162
 
6876
7163
  if (isGFFCtx)
6877
- $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substr(0, fieldErrorsAttributes[field].length-1))
7164
+ $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
6878
7165
  }
6879
7166
 
6880
7167
  //calling back
@@ -6945,6 +7232,8 @@
6945
7232
  'data' : formatData( _data )
6946
7233
  });
6947
7234
  removeListener(gina, event.target, 'validated.' + event.target.id);
7235
+
7236
+
6948
7237
  return
6949
7238
  }
6950
7239
  });