gina 0.1.6-alpha.8 → 0.1.6-alpha.80

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 (326) hide show
  1. package/README-4Contributors.md +14 -8
  2. package/README.md +3 -3
  3. package/bin/cli +13 -0
  4. package/bin/gina +29 -1
  5. package/framework/v0.1.6-alpha.80/VERSION +1 -0
  6. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/plugin/README.md +1 -0
  7. package/framework/v0.1.6-alpha.80/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  8. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/plugin/dist/vendor/gina/js/gina.js +369 -101
  9. package/framework/v0.1.6-alpha.80/core/asset/plugin/dist/vendor/gina/js/gina.min.js +776 -0
  10. package/framework/v0.1.6-alpha.80/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  11. package/framework/v0.1.6-alpha.80/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  12. package/framework/v0.1.6-alpha.80/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  13. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/config.js +117 -51
  14. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/connector.v4.js +28 -22
  15. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/controller/controller.js +329 -56
  16. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  17. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  18. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/LICENSE +19 -0
  19. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/README.md +191 -0
  20. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  21. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  22. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  23. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  24. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  25. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  26. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/lib/index.js +57 -0
  27. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  28. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  29. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  30. package/framework/v0.1.6-alpha.80/core/deps/busboy-1.6.0/package.json +22 -0
  31. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/gna.js +97 -18
  32. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/model/index.js +28 -24
  33. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/validator/src/form-validator.js +38 -26
  34. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/validator/src/main.js +254 -56
  35. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/router.js +75 -40
  36. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/server.isaac.js +46 -8
  37. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/server.js +31 -5
  38. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  39. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/templates.json +4 -2
  40. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/context.js +16 -11
  41. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/path.js +25 -9
  42. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/add.js +2 -1
  43. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/start.js +21 -8
  44. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/build.js +1 -1
  45. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/init.js +18 -0
  46. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/link-node-modules.js +2 -3
  47. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/link.js +1 -0
  48. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/tail.js +28 -11
  49. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/version.js +15 -1
  50. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/helper.js +6 -2
  51. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/add.js +3 -2
  52. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/build.js +4 -4
  53. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/protocol/list.js +71 -50
  54. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/collection/src/main.js +8 -0
  55. package/framework/v0.1.6-alpha.80/lib/domain/exemples/backend.js +12 -0
  56. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/src/main.js +3 -1
  57. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/package.json +1 -1
  58. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/model.js +1 -1
  59. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/routing/src/main.js +58 -11
  60. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/session-store.js +2 -2
  61. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/swig-filters/src/main.js +64 -9
  62. package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/validator.js +2 -2
  63. package/framework/v0.1.6-alpha.80/package.json +12 -0
  64. package/package.json +2 -2
  65. package/utils/helper.js +24 -0
  66. package/framework/v0.1.6-alpha.8/VERSION +0 -1
  67. package/framework/v0.1.6-alpha.8/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
  68. package/framework/v0.1.6-alpha.8/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
  69. package/framework/v0.1.6-alpha.8/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
  70. package/framework/v0.1.6-alpha.8/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
  71. package/framework/v0.1.6-alpha.8/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
  72. package/framework/v0.1.6-alpha.8/lib/domain/exemples/backend.js +0 -0
  73. package/framework/v0.1.6-alpha.8/package.json +0 -14
  74. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/AUTHORS +0 -0
  75. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/LICENSE +0 -0
  76. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/html/nolayout.html +0 -0
  77. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/html/static.html +0 -0
  78. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/android-chrome-192x192.png +0 -0
  79. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/android-chrome-512x512.png +0 -0
  80. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/apple-touch-icon.png +0 -0
  81. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/favicon-16x16.png +0 -0
  82. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/favicon-32x32.png +0 -0
  83. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/img/favicon.ico +0 -0
  84. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  85. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
  86. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/asset/plugin/uuid.json +0 -0
  87. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/index.js +0 -0
  88. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/connector.js +0 -0
  89. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  90. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  91. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/n1ql.js +0 -0
  92. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/session-store.js +0 -0
  93. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  94. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  95. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  96. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/controller/controller.framework.js +0 -0
  97. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/controller/index.js +0 -0
  98. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/.travis.yml +0 -0
  99. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/LICENSE +0 -0
  100. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/README.md +0 -0
  101. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/deps/encoding/encoding-indexes.js +0 -0
  102. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/deps/encoding/encoding.js +0 -0
  103. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/lib/main.js +0 -0
  104. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/lib/types/multipart.js +0 -0
  105. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/lib/types/urlencoded.js +0 -0
  106. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/lib/utils.js +0 -0
  107. /package/framework/{v0.1.6-alpha.8/core/deps/busboy → v0.1.6-alpha.80/core/deps/busboy-0.2.14}/package.json +0 -0
  108. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  109. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/dev/index.js +0 -0
  110. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/dev/lib/class.js +0 -0
  111. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/dev/lib/factory.js +0 -0
  112. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/dev/lib/tools.js +0 -0
  113. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/README.md +0 -0
  114. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/currency.json +0 -0
  115. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/dist/language/en.json +0 -0
  116. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/dist/language/fr.json +0 -0
  117. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/dist/region/en.json +0 -0
  118. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/dist/region/fr.json +0 -0
  119. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/index.js +0 -0
  120. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/src/make.js +0 -0
  121. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/src/resources/currency.csv +0 -0
  122. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/src/resources/region.csv +0 -0
  123. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/locales/src/resources/region.mapping.json +0 -0
  124. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/mime.types +0 -0
  125. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/model/entity.js +0 -0
  126. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/model/template/entityFactory.js +0 -0
  127. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/model/template/index.js +0 -0
  128. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/README.md +0 -0
  129. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/index.js +0 -0
  130. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/file/README.md +0 -0
  131. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/file/build.json +0 -0
  132. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/file/package.json +0 -0
  133. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/intl/README.md +0 -0
  134. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/intl/build.json +0 -0
  135. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/intl/package.json +0 -0
  136. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/intl/src/main.js +0 -0
  137. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/storage/README.md +0 -0
  138. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/storage/build.json +0 -0
  139. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/storage/package.json +0 -0
  140. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/storage/src/main.js +0 -0
  141. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/validator/README.md +0 -0
  142. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/validator/build.json +0 -0
  143. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/plugins/lib/validator/package.json +0 -0
  144. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/server.express.js +0 -0
  145. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/status.codes +0 -0
  146. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/_gitignore +0 -0
  147. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/config/app.json +0 -0
  148. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/config/routing.json +0 -0
  149. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/config/settings.json +0 -0
  150. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  151. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/config/templates.json +0 -0
  152. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  153. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  154. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle/index.js +0 -0
  155. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  156. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  157. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  158. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  159. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  160. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_public/readme.md +0 -0
  161. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  162. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  163. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  164. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  165. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  166. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/command/gina.bat.tpl +0 -0
  167. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/command/gina.tpl +0 -0
  168. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/env.json +0 -0
  169. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/manifest.json +0 -0
  170. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/package.json +0 -0
  171. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/settings.json +0 -0
  172. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/conf/statics.json +0 -0
  173. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/client/json/401.json +0 -0
  174. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/client/json/403.json +0 -0
  175. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/client/json/404.json +0 -0
  176. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/server/html/50x.html +0 -0
  177. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/server/json/500.json +0 -0
  178. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/error/server/json/503.json +0 -0
  179. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/core/template/extensions/logger/config.json +0 -0
  180. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/console.js +0 -0
  181. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/data/LICENSE +0 -0
  182. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/data/README.md +0 -0
  183. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/data/package.json +0 -0
  184. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/data/src/main.js +0 -0
  185. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/dateFormat.js +0 -0
  186. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/index.js +0 -0
  187. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/json/LICENSE +0 -0
  188. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/json/README.md +0 -0
  189. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/json/package.json +0 -0
  190. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/json/src/main.js +0 -0
  191. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/plugins/README.md +0 -0
  192. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/plugins/package.json +0 -0
  193. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/plugins/src/api-error.js +0 -0
  194. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/plugins/src/main.js +0 -0
  195. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/prototypes.js +0 -0
  196. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/task.js +0 -0
  197. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/helpers/text.js +0 -0
  198. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/archiver/README.md +0 -0
  199. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/archiver/build.json +0 -0
  200. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/archiver/package.json +0 -0
  201. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/archiver/src/dep/jszip.min.js +0 -0
  202. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/archiver/src/main.js +0 -0
  203. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/aliases.json +0 -0
  204. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/arguments.json +0 -0
  205. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/copy.js +0 -0
  206. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/cp.js +0 -0
  207. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/help.js +0 -0
  208. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/help.txt +0 -0
  209. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/list.js +0 -0
  210. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/remove.js +0 -0
  211. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/rename.js +0 -0
  212. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/restart.js +0 -0
  213. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/rm.js +0 -0
  214. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/status.js +0 -0
  215. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/bundle/stop.js +0 -0
  216. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/add.js +0 -0
  217. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/get.js +0 -0
  218. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/help.js +0 -0
  219. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/help.txt +0 -0
  220. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/link-dev.js +0 -0
  221. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/list.js +0 -0
  222. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/remove.js +0 -0
  223. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/rm.js +0 -0
  224. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/set.js +0 -0
  225. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/unset.js +0 -0
  226. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/env/use.js +0 -0
  227. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/dot.js +0 -0
  228. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/get.js +0 -0
  229. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/help.js +0 -0
  230. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/help.txt +0 -0
  231. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/msg.json +0 -0
  232. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/open.js +0 -0
  233. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/restart.js +0 -0
  234. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/set.js +0 -0
  235. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/start.js +0 -0
  236. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/status.js +0 -0
  237. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/stop.js +0 -0
  238. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/framework/update.js +0 -0
  239. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/gina-dev.1.md +0 -0
  240. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/gina-framework.1.md +0 -0
  241. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/gina.1.md +0 -0
  242. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/index.js +0 -0
  243. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/msg.json +0 -0
  244. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/help.js +0 -0
  245. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/help.txt +0 -0
  246. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/inc/scan.js +0 -0
  247. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/list.js +0 -0
  248. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/reset.js +0 -0
  249. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/port/set.js +0 -0
  250. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/arguments.json +0 -0
  251. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/help.js +0 -0
  252. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/help.txt +0 -0
  253. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/import.js +0 -0
  254. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/list.js +0 -0
  255. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/move.js +0 -0
  256. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/remove.js +0 -0
  257. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/rename.js +0 -0
  258. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/restart.js +0 -0
  259. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/rm.js +0 -0
  260. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/start.js +0 -0
  261. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/status.js +0 -0
  262. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/project/stop.js +0 -0
  263. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/protocol/help.js +0 -0
  264. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/protocol/help.txt +0 -0
  265. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/protocol/set.js +0 -0
  266. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/add.js +0 -0
  267. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/help.js +0 -0
  268. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/help.txt +0 -0
  269. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/link-local.js +0 -0
  270. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/link-production.js +0 -0
  271. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/list.js +0 -0
  272. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/remove.js +0 -0
  273. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/rm.js +0 -0
  274. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/scope/use.js +0 -0
  275. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cmd/view/add.js +0 -0
  276. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/collection/README.md +0 -0
  277. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/collection/build.json +0 -0
  278. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/collection/package.json +0 -0
  279. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/config.js +0 -0
  280. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cron/README.md +0 -0
  281. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cron/package.json +0 -0
  282. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/cron/src/main.js +0 -0
  283. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/LICENSE +0 -0
  284. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/README.md +0 -0
  285. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/dist/public_suffix_list.dat +0 -0
  286. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/exemples/frontend.html +0 -0
  287. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/domain/package.json +0 -0
  288. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/generator/index.js +0 -0
  289. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/index.js +0 -0
  290. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/LICENSE +0 -0
  291. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/README.md +0 -0
  292. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  293. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/example/protected_inheritance.js +0 -0
  294. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/example/simple_inheritance.js +0 -0
  295. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  296. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/package.json +0 -0
  297. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/inherits/src/main.js +0 -0
  298. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/README.md +0 -0
  299. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/package.json +0 -0
  300. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/default/index.js +0 -0
  301. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/file/index.js +0 -0
  302. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  303. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  304. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/mq/index.js +0 -0
  305. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/mq/listener.js +0 -0
  306. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/containers/mq/speaker.js +0 -0
  307. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/helper.js +0 -0
  308. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/logger/src/main.js +0 -0
  309. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/math/index.js +0 -0
  310. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/README.md +0 -0
  311. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/example/merge.js +0 -0
  312. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/example/merge_2_literal objects.js +0 -0
  313. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/example/merge_and_preserve_first.js +0 -0
  314. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/merge/src/main.js +0 -0
  315. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/proc.js +0 -0
  316. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/routing/README.md +0 -0
  317. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/routing/build.json +0 -0
  318. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/routing/package.json +0 -0
  319. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/shell.js +0 -0
  320. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/swig-filters/README.md +0 -0
  321. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/swig-filters/package.json +0 -0
  322. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/url/README.md +0 -0
  323. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/url/index.js +0 -0
  324. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/url/mocks.json +0 -0
  325. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/url/routing.json +0 -0
  326. /package/framework/{v0.1.6-alpha.8 → v0.1.6-alpha.80}/lib/url/test.js +0 -0
@@ -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,
@@ -409,12 +410,12 @@
409
410
 
410
411
  var refreshWarning = function($el) {
411
412
  var formId = $el.form.getAttribute('id');
412
- if ( /^true$/i.test(instance.$forms[formId].isValidating) ) {
413
- return;
414
- }
415
413
 
416
- var $parent = $el.parentNode, isErrorMessageHidden = false;
417
- var $children = $parent.getElementsByTagName('div');
414
+
415
+ var $parent = $el.parentNode
416
+ , isErrorMessageHidden = false
417
+ , $children = $parent.getElementsByTagName('div')
418
+ ;
418
419
 
419
420
  if ( /form\-item\-warning/.test($parent.className) ) {
420
421
  $parent.className = $parent.className.replace(/form\-item\-warning/, 'form-item-error');
@@ -424,6 +425,14 @@
424
425
  isErrorMessageHidden = true;
425
426
  }
426
427
 
428
+ // Fixed on 2025-03-07
429
+ if (
430
+ /^true$/i.test(instance.$forms[formId].isValidating)
431
+ && !isErrorMessageHidden
432
+ ) {
433
+ return;
434
+ }
435
+
427
436
 
428
437
  for (var c = 0, cLen = $children.length; c<cLen; ++c) {
429
438
  if ( /form\-item\-error\-message/.test($children[c].className) ) {
@@ -445,7 +454,7 @@
445
454
  * @param {object} $form - Target (HTMLFormElement)
446
455
  * @param {object} errors
447
456
  * @param {object|null} data
448
- * @param {object|null} [fileName]
457
+ * @param {string|null} [fileName]
449
458
  */
450
459
  var liveCheckErrors = {}; // Per Form & Per Element
451
460
  var handleErrorsDisplay = function($form, errors, data, fieldName) {
@@ -476,7 +485,7 @@
476
485
  if ( typeof(liveCheckErrors[formId]) == 'undefined') {
477
486
  liveCheckErrors[formId] = {};
478
487
  }
479
- if (errors.count() > 0) {
488
+ if (errors && errors.count() > 0) {
480
489
  // reset field name
481
490
  liveCheckErrors[formId][fieldName] = {};
482
491
  // override
@@ -486,8 +495,29 @@
486
495
  }
487
496
  errors = liveCheckErrors[formId];
488
497
  // only if the form has not been sent yet
489
- if (!instance.$forms[formId].sent || instance.$forms[formId].isValidating) {
498
+ if (
499
+ !instance.$forms[formId].sent
500
+ ||
501
+ instance.$forms[formId].isValidating
502
+ ) {
490
503
  isWarning = true;
504
+ // Fixed on 2025-03-07
505
+ var lastFocused = instance.$forms[formId].lastFocused;
506
+ // console.debug('fieldName: '+ fieldName + '\nactiveElement: '+ document.activeElement.getAttribute('name') +'\nlastFocused: ', lastFocused);
507
+ if (
508
+ lastFocused.length > 0
509
+ && typeof(lastFocused[1]) != 'undefined'
510
+ && lastFocused[1].name == fieldName
511
+ ||
512
+ lastFocused.length > 0
513
+ && !lastFocused[1]
514
+ && document.activeElement.getAttribute('name') != lastFocused[0].name
515
+ ||
516
+ document.activeElement.getAttribute('name') != fieldName
517
+ ) {
518
+ isWarning = false;
519
+ }
520
+ // console.debug('isWarning: '+isWarning);
491
521
  }
492
522
  } else {
493
523
  if ( typeof(liveCheckErrors[formId][fieldName]) != 'undefined') {
@@ -551,7 +581,11 @@
551
581
 
552
582
  if (!name) continue;
553
583
 
554
- if ( typeof(errors[name]) != 'undefined' && !/(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
584
+ if (
585
+ errors
586
+ && typeof(errors[name]) != 'undefined'
587
+ && !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
588
+ ) {
555
589
 
556
590
  if (isWarning) {
557
591
  // adding warning class
@@ -592,7 +626,24 @@
592
626
 
593
627
 
594
628
 
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) ) {
629
+ } else if (
630
+ errors
631
+ && typeof(errors[name]) == 'undefined'
632
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
633
+ ||
634
+ errors
635
+ && typeof(errors[name]) != 'undefined' && errors[name].count() == 0
636
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
637
+ ) {
638
+ // Fixed on 2025-03-10
639
+ // targeted field must be the active element
640
+ if (
641
+ document.activeElement.getAttribute('name') != fieldName
642
+ && errors.count() > 0
643
+ ) {
644
+ break
645
+ }
646
+ console.debug('[handleErrorsDisplay] Resetting when not in error');
596
647
  // reset when not in error
597
648
  // remove child elements
598
649
  var $children = $parent.getElementsByTagName('div');
@@ -606,16 +657,34 @@
606
657
 
607
658
  $parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
608
659
 
609
- } else if ( typeof(errors[name]) != 'undefined' && errAttr) {
660
+ } else if (
661
+ errors.count() > 0
662
+ && typeof(errors[name]) != 'undefined'
663
+ && errAttr
664
+ ) {
610
665
  // refreshing already displayed error on msg update
611
666
  var $divs = $parent.getElementsByTagName('div');
612
667
  for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
613
- if ($divs[d].className == 'form-item-error-message') {
668
+ // Fixed on 2025-03-05: className can have more than one !!
669
+ let foundMessage = $divs[d].className.match("form-item-error-message");
670
+ if (
671
+ foundMessage
672
+ && typeof(foundMessage.length) != 'undefined'
673
+ && foundMessage.length > 0
674
+ ) {
614
675
 
615
676
  $divs[d].parentElement.removeChild($divs[d]);
616
677
  $err = document.createElement('div');
617
678
  $err.setAttribute('class', 'form-item-error-message');
618
679
 
680
+ // Fixed on 2025-03-09: className cleanup
681
+ if (
682
+ !isWarning
683
+ && /(\s+form\-item\-warning|form\-item\-warning)/.test($parent.className)
684
+ ) {
685
+ $parent.className = $parent.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/, ' form-item-error');
686
+ }
687
+
619
688
  // injecting error messages
620
689
  // {
621
690
  // field: {
@@ -640,12 +709,17 @@
640
709
  }
641
710
  }
642
711
 
643
- if ($err && $target.type != 'hidden')
712
+ if ($err && $target.type != 'hidden') {
644
713
  insertAfter($target, $err);
645
-
714
+ }
646
715
  }
647
716
 
648
- if (typeof(fieldName) != 'undefined' && fieldName === $el.name) break;
717
+ if (
718
+ typeof(fieldName) != 'undefined'
719
+ && fieldName === $el.name
720
+ ) {
721
+ break;
722
+ }
649
723
  }
650
724
 
651
725
 
@@ -981,7 +1055,8 @@
981
1055
  // In case the user is also redirecting
982
1056
  var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
983
1057
 
984
- if (xhr.readyState == 2) { // responseType interception
1058
+ // responseType interception
1059
+ if (xhr.readyState == 2) {
985
1060
  isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader("Content-Disposition") ) ) ? true : false;
986
1061
  // force blob response type
987
1062
  if ( !xhr.responseType && isAttachment ) {
@@ -1034,7 +1109,9 @@
1034
1109
  size : blob.size
1035
1110
  }
1036
1111
 
1037
- } else { // normal case
1112
+ }
1113
+ // normal case
1114
+ else {
1038
1115
  result = xhr.responseText;
1039
1116
  }
1040
1117
 
@@ -1043,9 +1120,14 @@
1043
1120
  if ( /\/json/.test( contentType ) ) {
1044
1121
  result = JSON.parse(xhr.responseText);
1045
1122
 
1046
- if ( typeof(result.status) == 'undefined' )
1123
+ if ( typeof(result.status) == 'undefined' ) {
1047
1124
  result.status = xhr.status;
1048
-
1125
+ }
1126
+ // Fixed on 2025-03-13 Allowing toolbar to ubdate after xhr results
1127
+ // TODO - Allowing to revert to previously loaded data via a close button
1128
+ if (gina && envIsDev && typeof(window.ginaToolbar) && typeof(result) != 'undefined') {
1129
+ window.ginaToolbar.update('data-xhr', result);
1130
+ }
1049
1131
  }
1050
1132
 
1051
1133
  if ( /\/html/.test( contentType ) ) {
@@ -1276,6 +1358,13 @@
1276
1358
  // } else { // external - need to remove `X-Requested-With` from `options.headers`
1277
1359
  result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
1278
1360
  //}
1361
+ // isProxyHost ?
1362
+ if (
1363
+ result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
1364
+ && gina.config.hostname == window.location.host
1365
+ ) {
1366
+ result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
1367
+ }
1279
1368
 
1280
1369
  return setTimeout(() => {
1281
1370
  window.location.href = result.location;
@@ -3126,7 +3215,6 @@
3126
3215
  } else {
3127
3216
  handleErrorsDisplay(event.target.form, errors, null, event.target.name);
3128
3217
  }
3129
- //return cancelEvent(event);
3130
3218
  }
3131
3219
 
3132
3220
 
@@ -3162,7 +3250,7 @@
3162
3250
  instance.$forms[formId].isValidating = true;
3163
3251
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3164
3252
  instance.$forms[formId].isValidating = false;
3165
- console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
3253
+ console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3166
3254
  var isFormValid = gResult.isValid();
3167
3255
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3168
3256
  // update toolbar
@@ -3178,6 +3266,25 @@
3178
3266
  }
3179
3267
 
3180
3268
 
3269
+ if ( !isFormValid && gResult.error ) {
3270
+ instance.$forms[ $el.form.getAttribute('id') ].errors = gResult.error;
3271
+ // Fixed on 2025-03-09
3272
+ // for (let eField in gResult.error) {
3273
+ // refreshWarning($gFields[eField]);
3274
+ // // handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
3275
+ // }
3276
+ }
3277
+ // Fixed on 2025-03-10
3278
+ // Eg.: input select change impacting another element: solve `no more errors`
3279
+ else if (isFormValid) {
3280
+ //resetting error display
3281
+ instance.$forms[ formId ].errors = {};
3282
+ console.debug('resetting field: '+ $el.name);
3283
+ liveCheckErrors[formId] = {};
3284
+ // $form.dataset.ginaFormIsResetting = true;
3285
+ handleErrorsDisplay($gForm, {}, null, $el.name);
3286
+ }
3287
+
3181
3288
  updateSubmitTriggerState( $gForm, isFormValid);
3182
3289
 
3183
3290
  once = false;
@@ -3211,13 +3318,17 @@
3211
3318
  // other inputs & textareas
3212
3319
  else if ( /^focusin\./i.test(event.type) ) {
3213
3320
  if ( /\-error/.test($el.parentNode.className) ) {
3214
- console.debug('#1 you just focusin ....'+$el.id, $el.value);
3321
+ console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
3215
3322
  refreshWarning($el);
3216
3323
  }
3217
3324
  }
3218
3325
  else if ( /^focusout\./i.test(event.type) ) {
3219
3326
  if ( /\-warning/.test($el.parentNode.className) ) {
3220
3327
  console.debug('#1 you just focusout ....'+$el.id, $el.value);
3328
+ // event.target.form.getAttribute('id');
3329
+ // $el.form.id
3330
+ // $el.form.getAttribute('id')
3331
+ instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
3221
3332
  refreshWarning($el);
3222
3333
  // in case error context is changed by another task
3223
3334
  handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
@@ -3226,12 +3337,30 @@
3226
3337
  else if ( /^keyup\./i.test(event.type) ) {
3227
3338
  $el.ginaFormValidatorTestedValue = $el.value;
3228
3339
  liveCheckTimer = setTimeout( function onLiveCheckTimer() {
3229
- // do not trigger for copy/paste event
3230
- if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3340
+ // Do not trigger for copy/paste event
3341
+ if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3231
3342
  //console.debug('mapping ', keyboardMapping);
3232
3343
  return;
3233
3344
  }
3234
- console.debug(' keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3345
+
3346
+ // Fixed on 2025-03-05:
3347
+ // Treat TAB as focus in/out
3348
+ if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
3349
+ var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
3350
+ var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
3351
+ var isFormValid = true;
3352
+ console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
3353
+ if (errors && errors.count() > 0 ) {
3354
+ instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
3355
+ isFormValid = false;
3356
+ }
3357
+ refreshWarning($previeousEl);
3358
+ // in case error context is changed by another task
3359
+ handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
3360
+ updateSubmitTriggerState( $el.form, isFormValid);
3361
+ return;
3362
+ }
3363
+ console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3235
3364
  processEvent();
3236
3365
  }, 1000);
3237
3366
  }
@@ -3651,7 +3780,7 @@
3651
3780
  // submit buttons
3652
3781
  $elTMP = $form.target.getElementsByTagName('button');
3653
3782
  if ( $elTMP.length > 0 ) {
3654
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3783
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3655
3784
  // if button is != type="submit", you will need to provide : data-gina-form-submit
3656
3785
  // TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
3657
3786
  $els.push($elTMP[i])
@@ -3661,7 +3790,7 @@
3661
3790
  // submit links
3662
3791
  $elTMP = $form.target.getElementsByTagName('a');
3663
3792
  if ( $elTMP.length > 0 ) {
3664
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3793
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3665
3794
  $els.push($elTMP[i])
3666
3795
  }
3667
3796
  }
@@ -3717,7 +3846,7 @@
3717
3846
  // textarea
3718
3847
  $elTMP = $form.target.getElementsByTagName('textarea');
3719
3848
  if ( $elTMP.length > 0 ) {
3720
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3849
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3721
3850
  $els.push( $elTMP[i] )
3722
3851
  }
3723
3852
  }
@@ -3726,7 +3855,7 @@
3726
3855
  // forms inside main form
3727
3856
  $elTMP = $form.target.getElementsByTagName('form');
3728
3857
  if ( $elTMP.length > 0 ) {
3729
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3858
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3730
3859
  $els.push( $elTMP[i] )
3731
3860
  }
3732
3861
  }
@@ -4535,7 +4664,16 @@
4535
4664
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
4536
4665
  instance.$forms[formId].isValidating = false;
4537
4666
  console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
4667
+ // Fixed on 2025-03-09
4538
4668
  var isFormValid = gResult.isValid();
4669
+ if (!isFormValid) {
4670
+ instance.$forms[formId].errors = gResult.error;
4671
+ for (let eField in gResult.error) {
4672
+ // refreshWarning($gFields[eField]);
4673
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
4674
+ }
4675
+ }
4676
+
4539
4677
  updateSubmitTriggerState( $gForm, isFormValid);
4540
4678
  once = false;
4541
4679
  })
@@ -5129,6 +5267,25 @@
5129
5267
  if (gina.events[_evt]) {
5130
5268
  cancelEvent(event);
5131
5269
 
5270
+ // Fixed on 2025-03-05 - "last focus" vs "current focus"
5271
+ // To get active element: document.activeElement
5272
+ var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
5273
+ var lastFocused = {
5274
+ id : $el.id,
5275
+ name: $el.name
5276
+ };
5277
+ if (!instance.$forms[formId].lastFocused.length) {
5278
+ instance.$forms[formId].lastFocused[0] = lastFocused;
5279
+ } else {
5280
+ instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
5281
+ }
5282
+ lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
5283
+
5284
+ // cleanup
5285
+ instance.$forms[formId].lastFocused.splice(2);
5286
+
5287
+ // console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
5288
+
5132
5289
  triggerEvent(gina, $el, _evt, event.detail);
5133
5290
  }
5134
5291
  });
@@ -5445,7 +5602,7 @@
5445
5602
  ;
5446
5603
  $buttonsTMP = $target.getElementsByTagName('button');
5447
5604
  if ( $buttonsTMP.length > 0 ) {
5448
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5605
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5449
5606
  if ($buttonsTMP[b].type == 'submit') {
5450
5607
  $buttons.push($buttonsTMP[b])
5451
5608
  }
@@ -5455,7 +5612,7 @@
5455
5612
  // binding links
5456
5613
  $buttonsTMP = $target.getElementsByTagName('a');
5457
5614
  if ( $buttonsTMP.length > 0 ) {
5458
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5615
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5459
5616
  if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
5460
5617
  $buttons.push($buttonsTMP[b])
5461
5618
  } else if (
@@ -6175,7 +6332,8 @@
6175
6332
  if ( !/^form$/i.test($formOrElement.tagName) ) {
6176
6333
  $currentForm = $formOrElement.form;
6177
6334
  }
6178
- var formId = $currentForm.getAttribute('id');
6335
+ var formId = $currentForm.getAttribute('id');
6336
+ var isFormValid = null;
6179
6337
 
6180
6338
  if (
6181
6339
  hasParsedAllRules
@@ -6190,49 +6348,79 @@
6190
6348
 
6191
6349
  cb._data = d['toData']();
6192
6350
  cb._errors = d['getErrors'](field);
6193
- // console.debug('query callbakc triggered ', cb._errors, '\nisValidating: ', instance.$forms[formId].isValidating);
6351
+ isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6352
+ console.debug('[A] query callback triggered ', cb._errors, 'isFormValid: '+isFormValid, '\nisValidating: '+ instance.$forms[formId].isValidating);
6194
6353
  // update instance form errors
6195
- if ( cb._errors && cb._errors.count() > 0) {
6354
+ if ( cb._errors /**&& cb._errors.count() > 0*/) {
6196
6355
  if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
6197
6356
  instance.$forms[formId].errors = {}
6198
6357
  }
6199
6358
 
6200
6359
  instance.$forms[formId].errors[field] = cb._errors[field];
6201
6360
 
6202
- if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
6203
- refreshWarning($allFields[field]);
6204
- handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6205
- updateSubmitTriggerState( $currentForm, isFormValid);
6206
- }
6361
+ // if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
6362
+ // if ( typeof($allFields[field]._cancelled) == 'undefined' ) {
6363
+ // refreshWarning($allFields[field]);
6364
+ // }
6365
+ // handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6366
+ // updateSubmitTriggerState( $currentForm, isFormValid);
6367
+ // }
6207
6368
 
6208
- if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6209
- // update toolbar
6210
- if (!gina.forms.errors)
6211
- gina.forms.errors = {};
6369
+ // if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6370
+ // // update toolbar
6371
+ // if (!gina.forms.errors)
6372
+ // gina.forms.errors = {};
6212
6373
 
6213
- var objCallback = {
6214
- id : formId,
6215
- errors : instance.$forms[formId].errors || {}
6216
- };
6374
+ // var objCallback = {
6375
+ // id : formId,
6376
+ // errors : instance.$forms[formId].errors || {}
6377
+ // };
6217
6378
 
6218
- window.ginaToolbar.update('forms', objCallback);
6219
- }
6379
+ // window.ginaToolbar.update('forms', objCallback);
6380
+ // }
6220
6381
 
6221
6382
 
6222
- triggerEvent(gina, $currentForm, 'validated.' + formId, cb);
6223
- return;
6383
+ // triggerEvent(gina, $currentForm, 'validated.' + formId, cb);
6384
+ // return;
6224
6385
  }
6386
+ // Fixed on 2025-03-06
6387
+ if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
6388
+ console.debug('[A] Refreshing warning/error on field '+ field);
6389
+ // if ( typeof($allFields[field]._cancelled) == 'undefined' ) {
6390
+ refreshWarning($allFields[field]);
6391
+ // }
6392
+ handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6393
+ updateSubmitTriggerState( $currentForm, isFormValid);
6394
+ }
6395
+
6396
+ if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6397
+ // update toolbar
6398
+ if (!gina.forms.errors)
6399
+ gina.forms.errors = {};
6400
+
6401
+ var objCallback = {
6402
+ id : formId,
6403
+ errors : instance.$forms[formId].errors || {}
6404
+ };
6405
+
6406
+ window.ginaToolbar.update('forms', objCallback);
6407
+ }
6408
+
6409
+
6410
+ triggerEvent(gina, $currentForm, 'validated.' + formId, cb);
6411
+ return;
6225
6412
  }
6226
6413
 
6227
6414
  // is this the last or the only field to be validated ?
6228
- var needsGlobalReValidation = false, isFormValid = null;
6415
+ var needsGlobalReValidation = false;
6229
6416
  if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
6230
6417
  // trigger end of validation
6231
6418
  // console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
6232
6419
  isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6233
6420
  if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
6234
- //console.debug('should update error display now ', cb._errors);
6421
+ console.debug('[1] Should update error display now ', cb._errors);
6235
6422
  instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
6423
+ console.debug('[2] Should update error display now ', instance.$forms[formId].errors);
6236
6424
  refreshWarning($allFields[field]);
6237
6425
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6238
6426
  updateSubmitTriggerState( $currentForm, isFormValid);
@@ -6408,7 +6596,7 @@
6408
6596
 
6409
6597
  for (var c in rules) {
6410
6598
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6599
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6600
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6601
 
6414
6602
 
@@ -6590,7 +6778,14 @@
6590
6778
  // filtering conditions
6591
6779
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6780
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6781
+ if (
6782
+ Array.isArray(rules[c].conditions[_c].case)
6783
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6784
+ ||
6785
+ !Array.isArray(rules[c].conditions[_c].case)
6786
+ && rules[c].conditions[_c].case != caseValue
6787
+
6788
+ ) {
6594
6789
  continue;
6595
6790
  }
6596
6791
 
@@ -6735,7 +6930,8 @@
6735
6930
  if (
6736
6931
  conditions[c]['case'] === caseValue
6737
6932
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
6933
+ Array.isArray(conditions[c]['case'])
6934
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
6935
  ||
6740
6936
  /^\//.test(conditions[c]['case'])
6741
6937
  ) {
@@ -6945,6 +7141,8 @@
6945
7141
  'data' : formatData( _data )
6946
7142
  });
6947
7143
  removeListener(gina, event.target, 'validated.' + event.target.id);
7144
+
7145
+
6948
7146
  return
6949
7147
  }
6950
7148
  });