gina 0.3.2 → 0.3.3

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 (510) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +18 -8
  3. package/ROADMAP.md +10 -9
  4. package/framework/v0.3.3/VERSION +1 -0
  5. package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/README.md +7 -8
  6. package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
  7. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  8. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  9. package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +2 -0
  10. package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +103 -0
  11. package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +293 -201
  12. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js +21636 -0
  13. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  14. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  15. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +286 -0
  16. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  17. package/framework/v0.3.3/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  18. package/framework/{v0.3.2 → v0.3.3}/core/config.js +6 -1
  19. package/framework/{v0.3.2 → v0.3.3}/core/connectors/mysql/index.js +52 -0
  20. package/framework/{v0.3.2 → v0.3.3}/core/connectors/postgresql/index.js +45 -0
  21. package/framework/{v0.3.2 → v0.3.3}/core/connectors/sqlite/index.js +46 -0
  22. package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.js +1 -1
  23. package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/lib/types/multipart.js +2 -1
  24. package/framework/v0.3.3/core/deps/streamsearch-1.1.0/LICENSE +19 -0
  25. package/framework/v0.3.3/core/deps/streamsearch-1.1.0/lib/sbmh.js +267 -0
  26. package/framework/v0.3.3/core/deps/streamsearch-1.1.0/package.json +34 -0
  27. package/framework/{v0.3.2 → v0.3.3}/core/gna.js +30 -30
  28. package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/storage/src/main.js +3 -3
  29. package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/validator/src/main.js +34 -29
  30. package/framework/{v0.3.2 → v0.3.3}/core/server.isaac.js +77 -13
  31. package/framework/{v0.3.2 → v0.3.3}/core/server.js +66 -18
  32. package/framework/{v0.3.2 → v0.3.3}/helpers/json/src/main.js +14 -1
  33. package/framework/{v0.3.2 → v0.3.3}/lib/cache/src/main.js +2 -2
  34. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/aliases.json +3 -0
  35. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/arguments.json +2 -1
  36. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/help.txt +21 -1
  37. package/framework/v0.3.3/lib/cmd/bundle/oas.js +6 -0
  38. package/framework/v0.3.3/lib/cmd/bundle/openapi.js +519 -0
  39. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/start.js +4 -1
  40. package/framework/v0.3.3/lib/cmd/framework/get.js +98 -0
  41. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/help.txt +8 -3
  42. package/framework/{v0.3.2 → v0.3.3}/lib/cmd/port/help.txt +7 -2
  43. package/framework/v0.3.3/lib/cmd/port/set.js +348 -0
  44. package/framework/{v0.3.2 → v0.3.3}/lib/collection/src/main.js +4 -4
  45. package/framework/{v0.3.2 → v0.3.3}/lib/index.js +1 -0
  46. package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/mq/listener.js +2 -2
  47. package/framework/v0.3.3/lib/uuid/package.json +7 -0
  48. package/framework/v0.3.3/lib/uuid/src/main.js +99 -0
  49. package/framework/v0.3.3/package.json +8 -0
  50. package/gna.js +86 -0
  51. package/llms.txt +94 -4
  52. package/package.json +107 -101
  53. package/types/globals.d.ts +205 -0
  54. package/types/gna.d.ts +67 -0
  55. package/types/index.d.ts +566 -0
  56. package/framework/v0.3.2/VERSION +0 -1
  57. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  58. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  59. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -532
  60. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  61. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  62. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -8
  63. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  64. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  65. package/framework/v0.3.2/core/deps/swig-1.4.2/CONTRIBUTING.md +0 -107
  66. package/framework/v0.3.2/core/deps/swig-1.4.2/HISTORY.md +0 -498
  67. package/framework/v0.3.2/core/deps/swig-1.4.2/LICENSE +0 -7
  68. package/framework/v0.3.2/core/deps/swig-1.4.2/Makefile +0 -192
  69. package/framework/v0.3.2/core/deps/swig-1.4.2/README.md +0 -88
  70. package/framework/v0.3.2/core/deps/swig-1.4.2/bin/swig.js +0 -161
  71. package/framework/v0.3.2/core/deps/swig-1.4.2/browser/comments.js +0 -2
  72. package/framework/v0.3.2/core/deps/swig-1.4.2/browser/index.js +0 -9
  73. package/framework/v0.3.2/core/deps/swig-1.4.2/dist/swig.min.js +0 -7
  74. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/api.html +0 -136
  75. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/browser.html +0 -36
  76. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/cli.html +0 -64
  77. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/extending.html +0 -183
  78. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/filters.html +0 -97
  79. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/includes/TYPES.html +0 -0
  80. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/includes/macros.html +0 -9
  81. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/index.html +0 -212
  82. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/layout.html +0 -43
  83. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/loaders.html +0 -106
  84. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/previous.html +0 -25
  85. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs/tags.html +0 -72
  86. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/docs.json +0 -3
  87. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/index.html +0 -98
  88. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/index.json +0 -3
  89. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/js/lib/rainbow.min.js +0 -11
  90. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/js/master.js +0 -106
  91. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/layouts/html5.html +0 -25
  92. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/layouts/master.html +0 -59
  93. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/button.less +0 -22
  94. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/fork.less +0 -23
  95. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/header.less +0 -61
  96. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/layout.less +0 -96
  97. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/mixins.less +0 -268
  98. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/rainbow.less +0 -58
  99. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/reset.less +0 -250
  100. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/sidenav.less +0 -16
  101. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/swig.less +0 -124
  102. package/framework/v0.3.2/core/deps/swig-1.4.2/docs/less/variables.less +0 -42
  103. package/framework/v0.3.2/core/deps/swig-1.4.2/index.js +0 -1
  104. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/dateformatter.js +0 -198
  105. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/filters.js +0 -630
  106. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/lexer.js +0 -306
  107. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/loaders/filesystem.js +0 -59
  108. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/loaders/index.js +0 -53
  109. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/loaders/memory.js +0 -63
  110. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/parser.js +0 -744
  111. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/swig.js +0 -740
  112. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/autoescape.js +0 -37
  113. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/block.js +0 -25
  114. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/else.js +0 -25
  115. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/elseif.js +0 -28
  116. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/extends.js +0 -19
  117. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/filter.js +0 -68
  118. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/for.js +0 -130
  119. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/if.js +0 -86
  120. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/import.js +0 -91
  121. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/include.js +0 -100
  122. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/index.js +0 -16
  123. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/macro.js +0 -79
  124. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/parent.js +0 -51
  125. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/raw.js +0 -23
  126. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/set.js +0 -109
  127. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/tags/spaceless.js +0 -42
  128. package/framework/v0.3.2/core/deps/swig-1.4.2/lib/utils.js +0 -184
  129. package/framework/v0.3.2/core/deps/swig-1.4.2/package.json +0 -41
  130. package/framework/v0.3.2/core/deps/swig-1.4.2/scripts/config-lint.js +0 -41
  131. package/framework/v0.3.2/core/deps/swig-1.4.2/scripts/githooks/post-merge +0 -3
  132. package/framework/v0.3.2/core/deps/swig-1.4.2/scripts/githooks/pre-commit +0 -59
  133. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/basic.test.js +0 -296
  134. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/bin.filters.js +0 -3
  135. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/bin.locals.js +0 -5
  136. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/bin.locals.json +0 -7
  137. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/bin.tags.js +0 -15
  138. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/bin.test.js +0 -159
  139. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/custom_filter.bin.html +0 -1
  140. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/custom_tag.bin.html +0 -1
  141. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/custom_tagControls.bin.html +0 -1
  142. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/custom_varControls.bin.html +0 -1
  143. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/bin/options.js +0 -3
  144. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_1.expectation.html +0 -6
  145. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_1.test.html +0 -3
  146. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_2.expectation.html +0 -6
  147. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_2.test.html +0 -5
  148. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_base.html +0 -6
  149. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.base.html +0 -1
  150. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.middle.html +0 -2
  151. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_bare.html +0 -2
  152. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_base.html +0 -3
  153. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_include.html +0 -3
  154. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_real_base.html +0 -1
  155. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_set.expectation.html +0 -6
  156. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_set.test.html +0 -4
  157. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.expectation.html +0 -1
  158. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.test.html +0 -3
  159. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.expectation.html +0 -1
  160. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.test.html +0 -2
  161. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/import.expectation.html +0 -24
  162. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/import.test.html +0 -10
  163. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/include.expectation.html +0 -24
  164. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/include.test.html +0 -13
  165. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/include_bar.html +0 -1
  166. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/include_extends.expectation.html +0 -4
  167. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/include_extends.test.html +0 -1
  168. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/includes.html +0 -1
  169. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/macros.expectation.html +0 -8
  170. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/macros.html +0 -23
  171. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/macros.test.html +0 -11
  172. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/nested_blocks.expectation.html +0 -3
  173. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/nested_blocks.test.html +0 -3
  174. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/nested_blocks_parent.html +0 -3
  175. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/parent-parent.expectation.html +0 -8
  176. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/parent-parent.test.html +0 -1
  177. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/parent.expectation.html +0 -8
  178. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/parent.test.html +0 -9
  179. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/set.expectation.html +0 -3
  180. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases/set.test.html +0 -8
  181. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases-error/circular.test.html +0 -1
  182. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases-error/circular_parent.html +0 -1
  183. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases-error/extends-non-existent.test.html +0 -1
  184. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases-error/report-filename-partial.html +0 -1
  185. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/cases-error/report-filename.test.html +0 -1
  186. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/comments.test.js +0 -12
  187. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/filters.test.js +0 -316
  188. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/loaders.test.js +0 -119
  189. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/regressions.test.js +0 -41
  190. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/autoescape.test.js +0 -45
  191. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/else.test.js +0 -61
  192. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/extend.test.js +0 -11
  193. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/filter.test.js +0 -29
  194. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/for.test.js +0 -63
  195. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/if.test.js +0 -75
  196. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/import.test.js +0 -15
  197. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/include.test.js +0 -26
  198. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/macro.test.js +0 -38
  199. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/parent.test.js +0 -14
  200. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/raw.test.js +0 -33
  201. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/set.test.js +0 -56
  202. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags/spaceless.test.js +0 -26
  203. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/tags.test.js +0 -56
  204. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/templates.test.js +0 -62
  205. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/variables.test.js +0 -183
  206. package/framework/v0.3.2/core/deps/swig-1.4.2/tests/whitespace.test.js +0 -43
  207. package/framework/v0.3.2/lib/cmd/framework/get.js +0 -0
  208. package/framework/v0.3.2/lib/cmd/port/set.js +0 -0
  209. package/framework/v0.3.2/package.json +0 -5
  210. /package/framework/{v0.3.2 → v0.3.3}/AUTHORS +0 -0
  211. /package/framework/{v0.3.2 → v0.3.3}/LICENSE +0 -0
  212. /package/framework/{v0.3.2 → v0.3.3}/core/asset/html/nolayout.html +0 -0
  213. /package/framework/{v0.3.2 → v0.3.3}/core/asset/html/static.html +0 -0
  214. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/android-chrome-192x192.png +0 -0
  215. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/android-chrome-512x512.png +0 -0
  216. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/apple-touch-icon.png +0 -0
  217. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/favicon-16x16.png +0 -0
  218. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/favicon-32x32.png +0 -0
  219. /package/framework/{v0.3.2 → v0.3.3}/core/asset/img/favicon.ico +0 -0
  220. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  221. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  222. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  223. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  224. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  225. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  226. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  227. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  228. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  229. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  230. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  231. /package/framework/{v0.3.2 → v0.3.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  232. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/ai/index.js +0 -0
  233. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/ai/lib/connector.js +0 -0
  234. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/index.js +0 -0
  235. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/connector.js +0 -0
  236. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  237. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  238. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  239. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
  240. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/session-store.js +0 -0
  241. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  242. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  243. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  244. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/mysql/lib/connector.js +0 -0
  245. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/postgresql/lib/connector.js +0 -0
  246. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/redis/index.js +0 -0
  247. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/redis/lib/session-store.js +0 -0
  248. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/sql-parser.js +0 -0
  249. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/sqlite/lib/connector.js +0 -0
  250. /package/framework/{v0.3.2 → v0.3.3}/core/connectors/sqlite/lib/session-store.js +0 -0
  251. /package/framework/{v0.3.2 → v0.3.3}/core/content.encoding +0 -0
  252. /package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.framework.js +0 -0
  253. /package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.render-json.js +0 -0
  254. /package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.render-stream.js +0 -0
  255. /package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.render-swig.js +0 -0
  256. /package/framework/{v0.3.2 → v0.3.3}/core/controller/controller.render-v1.js +0 -0
  257. /package/framework/{v0.3.2 → v0.3.3}/core/controller/index.js +0 -0
  258. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/LICENSE +0 -0
  259. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/README.md +0 -0
  260. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  261. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  262. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  263. /package/framework/{v0.3.2 → v0.3.3}/core/deps/busboy-1.6.0/package.json +0 -0
  264. /package/framework/{v0.3.2 → v0.3.3}/core/deps/optimist-0.6.1/LICENSE +0 -0
  265. /package/framework/{v0.3.2 → v0.3.3}/core/deps/optimist-0.6.1/index.js +0 -0
  266. /package/framework/{v0.3.2 → v0.3.3}/core/deps/optimist-0.6.1/package.json +0 -0
  267. /package/framework/{v0.3.2 → v0.3.3}/core/deps/optimist-0.6.1/readme.markdown +0 -0
  268. /package/framework/{v0.3.2 → v0.3.3}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  269. /package/framework/{v0.3.2 → v0.3.3}/core/deps/swig-client/swig.js +0 -0
  270. /package/framework/{v0.3.2 → v0.3.3}/core/dev/index.js +0 -0
  271. /package/framework/{v0.3.2 → v0.3.3}/core/dev/lib/class.js +0 -0
  272. /package/framework/{v0.3.2 → v0.3.3}/core/dev/lib/factory.js +0 -0
  273. /package/framework/{v0.3.2 → v0.3.3}/core/dev/lib/tools.js +0 -0
  274. /package/framework/{v0.3.2 → v0.3.3}/core/locales/README.md +0 -0
  275. /package/framework/{v0.3.2 → v0.3.3}/core/locales/currency.json +0 -0
  276. /package/framework/{v0.3.2 → v0.3.3}/core/locales/dist/language/en.json +0 -0
  277. /package/framework/{v0.3.2 → v0.3.3}/core/locales/dist/language/fr.json +0 -0
  278. /package/framework/{v0.3.2 → v0.3.3}/core/locales/dist/region/en.json +0 -0
  279. /package/framework/{v0.3.2 → v0.3.3}/core/locales/dist/region/fr.json +0 -0
  280. /package/framework/{v0.3.2 → v0.3.3}/core/locales/index.js +0 -0
  281. /package/framework/{v0.3.2 → v0.3.3}/core/mime.types +0 -0
  282. /package/framework/{v0.3.2 → v0.3.3}/core/model/entity.js +0 -0
  283. /package/framework/{v0.3.2 → v0.3.3}/core/model/index.js +0 -0
  284. /package/framework/{v0.3.2 → v0.3.3}/core/model/template/entityFactory.js +0 -0
  285. /package/framework/{v0.3.2 → v0.3.3}/core/model/template/index.js +0 -0
  286. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/README.md +0 -0
  287. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/index.js +0 -0
  288. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/file/README.md +0 -0
  289. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/file/build.json +0 -0
  290. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/file/package.json +0 -0
  291. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/intl/README.md +0 -0
  292. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/intl/build.json +0 -0
  293. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/intl/package.json +0 -0
  294. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/intl/src/main.js +0 -0
  295. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/storage/README.md +0 -0
  296. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/storage/build.json +0 -0
  297. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/storage/package.json +0 -0
  298. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/validator/README.md +0 -0
  299. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/validator/build.json +0 -0
  300. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/validator/package.json +0 -0
  301. /package/framework/{v0.3.2 → v0.3.3}/core/plugins/lib/validator/src/form-validator.js +0 -0
  302. /package/framework/{v0.3.2 → v0.3.3}/core/router.js +0 -0
  303. /package/framework/{v0.3.2 → v0.3.3}/core/server.express.js +0 -0
  304. /package/framework/{v0.3.2 → v0.3.3}/core/status.codes +0 -0
  305. /package/framework/{v0.3.2 → v0.3.3}/core/template/_gitignore +0 -0
  306. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/app.json +0 -0
  307. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  308. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
  309. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
  310. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  311. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
  312. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  313. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  314. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  315. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  316. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle/index.js +0 -0
  317. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  318. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  319. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  320. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  321. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  322. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  323. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
  324. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  325. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  326. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  327. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  328. /package/framework/{v0.3.2 → v0.3.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  329. /package/framework/{v0.3.2 → v0.3.3}/core/template/command/gina.bat.tpl +0 -0
  330. /package/framework/{v0.3.2 → v0.3.3}/core/template/command/gina.tpl +0 -0
  331. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/env.json +0 -0
  332. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/manifest.json +0 -0
  333. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/package.json +0 -0
  334. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/settings.json +0 -0
  335. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/statics.json +0 -0
  336. /package/framework/{v0.3.2 → v0.3.3}/core/template/conf/templates.json +0 -0
  337. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/client/json/401.json +0 -0
  338. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/client/json/403.json +0 -0
  339. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/client/json/404.json +0 -0
  340. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/server/html/50x.html +0 -0
  341. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/server/json/500.json +0 -0
  342. /package/framework/{v0.3.2 → v0.3.3}/core/template/error/server/json/503.json +0 -0
  343. /package/framework/{v0.3.2 → v0.3.3}/core/template/extensions/logger/config.json +0 -0
  344. /package/framework/{v0.3.2 → v0.3.3}/helpers/console.js +0 -0
  345. /package/framework/{v0.3.2 → v0.3.3}/helpers/context.js +0 -0
  346. /package/framework/{v0.3.2 → v0.3.3}/helpers/data/LICENSE +0 -0
  347. /package/framework/{v0.3.2 → v0.3.3}/helpers/data/README.md +0 -0
  348. /package/framework/{v0.3.2 → v0.3.3}/helpers/data/package.json +0 -0
  349. /package/framework/{v0.3.2 → v0.3.3}/helpers/data/src/main.js +0 -0
  350. /package/framework/{v0.3.2 → v0.3.3}/helpers/dateFormat.js +0 -0
  351. /package/framework/{v0.3.2 → v0.3.3}/helpers/index.js +0 -0
  352. /package/framework/{v0.3.2 → v0.3.3}/helpers/json/LICENSE +0 -0
  353. /package/framework/{v0.3.2 → v0.3.3}/helpers/json/README.md +0 -0
  354. /package/framework/{v0.3.2 → v0.3.3}/helpers/json/package.json +0 -0
  355. /package/framework/{v0.3.2 → v0.3.3}/helpers/path.js +0 -0
  356. /package/framework/{v0.3.2 → v0.3.3}/helpers/plugins/README.md +0 -0
  357. /package/framework/{v0.3.2 → v0.3.3}/helpers/plugins/package.json +0 -0
  358. /package/framework/{v0.3.2 → v0.3.3}/helpers/plugins/src/api-error.js +0 -0
  359. /package/framework/{v0.3.2 → v0.3.3}/helpers/plugins/src/main.js +0 -0
  360. /package/framework/{v0.3.2 → v0.3.3}/helpers/prototypes.js +0 -0
  361. /package/framework/{v0.3.2 → v0.3.3}/helpers/task.js +0 -0
  362. /package/framework/{v0.3.2 → v0.3.3}/helpers/text.js +0 -0
  363. /package/framework/{v0.3.2 → v0.3.3}/lib/archiver/README.md +0 -0
  364. /package/framework/{v0.3.2 → v0.3.3}/lib/archiver/build.json +0 -0
  365. /package/framework/{v0.3.2 → v0.3.3}/lib/archiver/package.json +0 -0
  366. /package/framework/{v0.3.2 → v0.3.3}/lib/archiver/src/dep/jszip.min.js +0 -0
  367. /package/framework/{v0.3.2 → v0.3.3}/lib/archiver/src/main.js +0 -0
  368. /package/framework/{v0.3.2 → v0.3.3}/lib/async/package.json +0 -0
  369. /package/framework/{v0.3.2 → v0.3.3}/lib/async/src/main.js +0 -0
  370. /package/framework/{v0.3.2 → v0.3.3}/lib/cache/README.md +0 -0
  371. /package/framework/{v0.3.2 → v0.3.3}/lib/cache/build.json +0 -0
  372. /package/framework/{v0.3.2 → v0.3.3}/lib/cache/package.json +0 -0
  373. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/add.js +0 -0
  374. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/build.js +0 -0
  375. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/copy.js +0 -0
  376. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/cp.js +0 -0
  377. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/help.js +0 -0
  378. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/list.js +0 -0
  379. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/remove.js +0 -0
  380. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/rename.js +0 -0
  381. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/restart.js +0 -0
  382. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/rm.js +0 -0
  383. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/status.js +0 -0
  384. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/bundle/stop.js +0 -0
  385. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/cache/stats.js +0 -0
  386. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/add.js +0 -0
  387. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/get.js +0 -0
  388. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/help.js +0 -0
  389. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/help.txt +0 -0
  390. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/link-dev.js +0 -0
  391. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/list.js +0 -0
  392. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/remove.js +0 -0
  393. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/rm.js +0 -0
  394. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/set.js +0 -0
  395. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/unset.js +0 -0
  396. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/env/use.js +0 -0
  397. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/arguments.json +0 -0
  398. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/build.js +0 -0
  399. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/dot.js +0 -0
  400. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/help.js +0 -0
  401. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/init.js +0 -0
  402. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/link-node-modules.js +0 -0
  403. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/link.js +0 -0
  404. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/msg.json +0 -0
  405. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/open.js +0 -0
  406. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/restart.js +0 -0
  407. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/set.js +0 -0
  408. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/start.js +0 -0
  409. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/status.js +0 -0
  410. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/stop.js +0 -0
  411. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/tail.js +0 -0
  412. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/update.js +0 -0
  413. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/framework/version.js +0 -0
  414. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/gina-dev.1.md +0 -0
  415. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/gina-framework.1.md +0 -0
  416. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/gina.1.md +0 -0
  417. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/helper.js +0 -0
  418. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/index.js +0 -0
  419. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/inspector/help.js +0 -0
  420. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/inspector/help.txt +0 -0
  421. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/inspector/open.js +0 -0
  422. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/minion/help.js +0 -0
  423. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/minion/help.txt +0 -0
  424. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/msg.json +0 -0
  425. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/port/help.js +0 -0
  426. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/port/inc/scan.js +0 -0
  427. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/port/list.js +0 -0
  428. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/port/reset.js +0 -0
  429. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/add.js +0 -0
  430. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/arguments.json +0 -0
  431. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/build.js +0 -0
  432. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/help.js +0 -0
  433. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/help.txt +0 -0
  434. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/import.js +0 -0
  435. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/list.js +0 -0
  436. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/move.js +0 -0
  437. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/remove.js +0 -0
  438. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/rename.js +0 -0
  439. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/restart.js +0 -0
  440. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/rm.js +0 -0
  441. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/start.js +0 -0
  442. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/status.js +0 -0
  443. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/project/stop.js +0 -0
  444. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/protocol/help.js +0 -0
  445. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/protocol/help.txt +0 -0
  446. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/protocol/list.js +0 -0
  447. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/protocol/set.js +0 -0
  448. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/add.js +0 -0
  449. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/help.js +0 -0
  450. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/help.txt +0 -0
  451. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/link-local.js +0 -0
  452. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/link-production.js +0 -0
  453. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/list.js +0 -0
  454. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/remove.js +0 -0
  455. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/rm.js +0 -0
  456. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/scope/use.js +0 -0
  457. /package/framework/{v0.3.2 → v0.3.3}/lib/cmd/view/add.js +0 -0
  458. /package/framework/{v0.3.2 → v0.3.3}/lib/collection/README.md +0 -0
  459. /package/framework/{v0.3.2 → v0.3.3}/lib/collection/build.json +0 -0
  460. /package/framework/{v0.3.2 → v0.3.3}/lib/collection/package.json +0 -0
  461. /package/framework/{v0.3.2 → v0.3.3}/lib/config.js +0 -0
  462. /package/framework/{v0.3.2 → v0.3.3}/lib/cron/README.md +0 -0
  463. /package/framework/{v0.3.2 → v0.3.3}/lib/cron/package.json +0 -0
  464. /package/framework/{v0.3.2 → v0.3.3}/lib/cron/src/main.js +0 -0
  465. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/LICENSE +0 -0
  466. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/README.md +0 -0
  467. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +0 -0
  468. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/dist/public_suffix_list.dat +0 -0
  469. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/dist/public_suffix_list.dat.br +0 -0
  470. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/dist/public_suffix_list.dat.gz +0 -0
  471. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/package.json +0 -0
  472. /package/framework/{v0.3.2 → v0.3.3}/lib/domain/src/main.js +0 -0
  473. /package/framework/{v0.3.2 → v0.3.3}/lib/generator/index.js +0 -0
  474. /package/framework/{v0.3.2 → v0.3.3}/lib/inherits/LICENSE +0 -0
  475. /package/framework/{v0.3.2 → v0.3.3}/lib/inherits/README.md +0 -0
  476. /package/framework/{v0.3.2 → v0.3.3}/lib/inherits/package.json +0 -0
  477. /package/framework/{v0.3.2 → v0.3.3}/lib/inherits/src/main.js +0 -0
  478. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/README.md +0 -0
  479. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/package.json +0 -0
  480. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/default/index.js +0 -0
  481. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/file/index.js +0 -0
  482. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  483. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  484. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/mq/index.js +0 -0
  485. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/containers/mq/speaker.js +0 -0
  486. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/helper.js +0 -0
  487. /package/framework/{v0.3.2 → v0.3.3}/lib/logger/src/main.js +0 -0
  488. /package/framework/{v0.3.2 → v0.3.3}/lib/math/index.js +0 -0
  489. /package/framework/{v0.3.2 → v0.3.3}/lib/merge/README.md +0 -0
  490. /package/framework/{v0.3.2 → v0.3.3}/lib/merge/package.json +0 -0
  491. /package/framework/{v0.3.2 → v0.3.3}/lib/merge/src/main.js +0 -0
  492. /package/framework/{v0.3.2 → v0.3.3}/lib/model.js +0 -0
  493. /package/framework/{v0.3.2 → v0.3.3}/lib/proc.js +0 -0
  494. /package/framework/{v0.3.2 → v0.3.3}/lib/routing/README.md +0 -0
  495. /package/framework/{v0.3.2 → v0.3.3}/lib/routing/build.json +0 -0
  496. /package/framework/{v0.3.2 → v0.3.3}/lib/routing/package.json +0 -0
  497. /package/framework/{v0.3.2 → v0.3.3}/lib/routing/src/main.js +0 -0
  498. /package/framework/{v0.3.2 → v0.3.3}/lib/routing/src/radix.js +0 -0
  499. /package/framework/{v0.3.2 → v0.3.3}/lib/session-store.js +0 -0
  500. /package/framework/{v0.3.2 → v0.3.3}/lib/shell.js +0 -0
  501. /package/framework/{v0.3.2 → v0.3.3}/lib/state.js +0 -0
  502. /package/framework/{v0.3.2 → v0.3.3}/lib/swig-filters/README.md +0 -0
  503. /package/framework/{v0.3.2 → v0.3.3}/lib/swig-filters/package.json +0 -0
  504. /package/framework/{v0.3.2 → v0.3.3}/lib/swig-filters/src/main.js +0 -0
  505. /package/framework/{v0.3.2 → v0.3.3}/lib/url/README.md +0 -0
  506. /package/framework/{v0.3.2 → v0.3.3}/lib/url/index.js +0 -0
  507. /package/framework/{v0.3.2 → v0.3.3}/lib/url/routing.json +0 -0
  508. /package/framework/{v0.3.2 → v0.3.3}/lib/validator.js +0 -0
  509. /package/framework/{v0.3.2 → v0.3.3}/lib/watcher/package.json +0 -0
  510. /package/framework/{v0.3.2 → v0.3.3}/lib/watcher/src/main.js +0 -0
@@ -2740,6 +2740,106 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
2740
2740
  // Publish as AMD module
2741
2741
  define( 'lib/merge',[],function() { return Merge() })
2742
2742
  };
2743
+
2744
+ /**
2745
+ * @module lib/uuid
2746
+ * @description Lightweight, cryptographically secure ID generator.
2747
+ * Produces short random strings from a base-62 alphabet (0-9 A-Z a-z).
2748
+ * Uses `crypto.getRandomValues` (available in Node.js >= 15 and all modern browsers).
2749
+ * Bitmask technique avoids modulo bias — identical to the approach used by the
2750
+ * `nanoid` npm package, but with zero external dependencies.
2751
+ *
2752
+ * Works in Node.js (CommonJS) and browser (AMD / GFF) contexts.
2753
+ *
2754
+ * @example
2755
+ * var uuid = require('lib/uuid');
2756
+ * uuid(); // 'aB3x' (4 chars, base-62 default)
2757
+ * uuid(8); // 'kQ7mZp2R'
2758
+ *
2759
+ * // Custom alphabet
2760
+ * var hex = uuid.customAlphabet('0123456789abcdef', 8);
2761
+ * hex(); // 'f47ac10b' (8 chars, hex)
2762
+ * hex(4); // 'a3f1' (override length)
2763
+ *
2764
+ * @param {number} [size=4] - Length of the generated ID
2765
+ * @returns {string} Random string of `size` characters from the base-62 alphabet
2766
+ */
2767
+
2768
+ var _alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
2769
+ var _mask = 63; // smallest (2^n - 1) >= 62 — rejects 62,63 (~3% waste, no bias)
2770
+ var _step = 7; // ceil(1.6 * 63 * 4 / 62) — enough random bytes per iteration
2771
+
2772
+ /**
2773
+ * Generate a cryptographically secure random ID.
2774
+ *
2775
+ * @param {number} [size=4] - Desired ID length
2776
+ * @returns {string} Random base-62 string
2777
+ */
2778
+ function uuid(size) {
2779
+ size = size || 4;
2780
+ var id = '';
2781
+ while (true) {
2782
+ var bytes = crypto.getRandomValues(new Uint8Array(_step));
2783
+ for (var j = 0; j < _step; j++) {
2784
+ var idx = bytes[j] & _mask;
2785
+ if (idx < 62) {
2786
+ id += _alphabet[idx];
2787
+ if (id.length === size) return id;
2788
+ }
2789
+ }
2790
+ }
2791
+ }
2792
+
2793
+ /**
2794
+ * Create a generator function for a custom alphabet and default size.
2795
+ *
2796
+ * @param {string} alphabet - Characters to use (e.g. '0123456789abcdef')
2797
+ * @param {number} [defaultSize=4] - Default length when the returned function is called without arguments
2798
+ * @returns {function(number=): string} Generator function
2799
+ */
2800
+ uuid.customAlphabet = function(alphabet, defaultSize) {
2801
+ defaultSize = defaultSize || 4;
2802
+ // Compute bitmask: smallest (2^n - 1) >= alphabet.length - 1
2803
+ var mask = 1;
2804
+ while (mask < alphabet.length - 1) mask = (mask << 1) | 1;
2805
+ // Step: enough random bytes per iteration to fill `defaultSize` with ~60% overhead
2806
+ var step = Math.ceil(1.6 * (mask + 1) * defaultSize / alphabet.length);
2807
+ if (step < 5) step = 5;
2808
+
2809
+ return function(size) {
2810
+ size = size || defaultSize;
2811
+ var id = '';
2812
+ while (true) {
2813
+ var bytes = crypto.getRandomValues(new Uint8Array(step));
2814
+ for (var j = 0; j < step; j++) {
2815
+ var idx = bytes[j] & mask;
2816
+ if (idx < alphabet.length) {
2817
+ id += alphabet[idx];
2818
+ if (id.length === size) return id;
2819
+ }
2820
+ }
2821
+ }
2822
+ };
2823
+ };
2824
+
2825
+
2826
+ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
2827
+ // Server-side: ensure crypto.getRandomValues is available (Node < 19 polyfill)
2828
+ if ( typeof(crypto) === 'undefined' || typeof(crypto.getRandomValues) !== 'function' ) {
2829
+ var _webcrypto = require('crypto').webcrypto || require('crypto');
2830
+ if (typeof(globalThis) !== 'undefined') {
2831
+ globalThis.crypto = _webcrypto;
2832
+ } else {
2833
+ crypto = _webcrypto;
2834
+ }
2835
+ }
2836
+ // Publish as node.js module
2837
+ module.exports = uuid
2838
+ } else if ( typeof(define) === 'function' && define.amd) {
2839
+ // Publish as AMD module
2840
+ define( 'lib/uuid',[],function() { return uuid })
2841
+ }
2842
+ ;
2743
2843
  /**
2744
2844
  * FormValidatorUtil
2745
2845
  *
@@ -6422,7 +6522,6 @@ function addListener(target, element, name, callback) {
6422
6522
  function triggerEvent (target, element, name, args, proxiedEvent) {
6423
6523
  if (typeof(element) != 'undefined' && element != null) {
6424
6524
  var evt = null, isDefaultPrevented = false, isAttachedToDOM = false, merge = null;
6425
- // removed: jquery event bridge (users should use addEventListener instead of $().on())
6426
6525
 
6427
6526
  if (window.CustomEvent || document.createEvent) {
6428
6527
 
@@ -6558,14 +6657,14 @@ function setupXhr(options) {
6558
6657
  }
6559
6658
 
6560
6659
  // setting up headers - all but Content-Type ; it will be set right before .send() is called
6561
- for (var hearder in options.headers) {
6562
- //if ( hearder == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '') {
6563
- // options.headers[hearder] = enctype
6660
+ for (var header in options.headers) {
6661
+ //if ( header == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '') {
6662
+ // options.headers[header] = enctype
6564
6663
  //}
6565
- if (hearder == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '')
6664
+ if (header == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '')
6566
6665
  continue;
6567
6666
 
6568
- xhr.setRequestHeader(hearder, options.headers[hearder]);
6667
+ xhr.setRequestHeader(header, options.headers[header]);
6569
6668
  }
6570
6669
  }
6571
6670
  return xhr;
@@ -6635,14 +6734,14 @@ function handleXhr(xhr, $el, options, require) {
6635
6734
  var enctype = $el.getAttribute('enctype') || options.headers['Content-Type'];
6636
6735
 
6637
6736
  // setting up headers - all but Content-Type ; it will be set right before .send() is called
6638
- for (var hearder in options.headers) {
6639
- //if ( hearder == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '') {
6640
- // options.headers[hearder] = enctype
6737
+ for (var header in options.headers) {
6738
+ //if ( header == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '') {
6739
+ // options.headers[header] = enctype
6641
6740
  //}
6642
- if (hearder == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '')
6741
+ if (header == 'Content-Type' && typeof (enctype) != 'undefined' && enctype != null && enctype != '')
6643
6742
  continue;
6644
6743
 
6645
- xhr.setRequestHeader(hearder, options.headers[hearder]);
6744
+ xhr.setRequestHeader(header, options.headers[header]);
6646
6745
  }
6647
6746
  xhr.withCredentials = ( typeof(options.withCredentials) != 'undefined' ) ? options.withCredentials : false;
6648
6747
 
@@ -6964,7 +7063,7 @@ function handleXhr(xhr, $el, options, require) {
6964
7063
 
6965
7064
  } else { // normal case
6966
7065
 
6967
- if ( /^(\{|\[).test( xhr.responseText ) /) {
7066
+ if ( /^(\{|\[)/.test( xhr.responseText ) ) {
6968
7067
 
6969
7068
  try {
6970
7069
  result = merge( result, JSON.parse(xhr.responseText) )
@@ -7996,19 +8095,17 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
7996
8095
  // Publish as AMD module
7997
8096
  define( 'helpers/dateFormat',[],function() { return DateFormatHelper })
7998
8097
  };
7999
- define('gina', [ 'require', 'lib/merge', 'lib/routing', 'utils/events', 'helpers/prototypes', 'helpers/dateFormat' ], function (require) {
8098
+ define('gina', [ 'require', 'lib/merge', 'lib/uuid', 'lib/routing', 'utils/events', 'helpers/prototypes', 'helpers/dateFormat' ], function (require) {
8000
8099
 
8001
8100
  /**
8002
8101
  * Imports & definitions
8003
8102
  * */
8004
8103
  var eventsHandler = require('utils/events'); // events handler
8005
8104
  var merge = require('lib/merge');
8105
+ var uuid = require('lib/uuid');
8006
8106
  var routing = require('lib/routing');
8007
8107
  var dateFormat = require('helpers/dateFormat')();
8008
8108
  var prototypes = require('helpers/prototypes')({ dateFormat: dateFormat });
8009
- // removed: uuid dependency (replaced by crypto.randomUUID())
8010
- // removed: jquery dependency
8011
-
8012
8109
  if (!window.process ) {
8013
8110
  (function(window, nextTick, process, prefixes, i, p, fnc) {
8014
8111
  p = window[process] || (window[process] = {});
@@ -8062,7 +8159,7 @@ define('gina', [ 'require', 'lib/merge', 'lib/routing', 'utils/events', 'helpers
8062
8159
 
8063
8160
  // instance proto
8064
8161
  var proto = {
8065
- 'id' : 'gina-' + crypto.randomUUID(),
8162
+ 'id' : 'gina-' + uuid(),
8066
8163
 
8067
8164
  'plugin' : this.plugin,
8068
8165
  'on' : on,
@@ -8187,7 +8284,7 @@ function BindingHelper(handlerContext) {
8187
8284
  //restore
8188
8285
  handleObject.call = hCall;
8189
8286
  } catch (err) {
8190
- console.error('BindingHelper encountered error while trying to execute `'+ hCall +'`' + err.stack || err);
8287
+ console.error('BindingHelper encountered error while trying to execute `'+ hCall +'`' + (err.stack || err));
8191
8288
  }
8192
8289
 
8193
8290
  self.process(bindings, len, i+1)
@@ -8766,13 +8863,12 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
8766
8863
  define( 'lib/domain',[],function() { return Domain })
8767
8864
  }
8768
8865
  ;
8769
- define('gina/link', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], function (require) {
8866
+ define('gina/link', [ 'require', 'lib/domain', 'lib/merge', 'lib/uuid', 'utils/events' ], function (require) {
8770
8867
 
8771
- // removed: jquery dependency
8772
- // removed: uuid dependency (replaced by crypto.randomUUID())
8773
8868
  var Domain = require('lib/domain');
8774
8869
  var domainInstance = null;
8775
8870
  var merge = require('lib/merge');
8871
+ var uuid = require('lib/uuid');
8776
8872
 
8777
8873
  require('utils/events'); // events
8778
8874
 
@@ -8802,7 +8898,7 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], fu
8802
8898
 
8803
8899
  var instance = {
8804
8900
  plugin : this.plugin,
8805
- id : 'gina-links-' + crypto.randomUUID(),
8901
+ id : 'gina-links-' + uuid(),
8806
8902
  on : on,
8807
8903
  eventData : {},
8808
8904
 
@@ -9145,7 +9241,7 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], fu
9145
9241
 
9146
9242
  // }
9147
9243
 
9148
- elId = 'link.click.'+ 'gina-link-' + instance.id +'-'+ crypto.randomUUID();
9244
+ elId = 'link.click.'+ 'gina-link-' + instance.id +'-'+ uuid();
9149
9245
  }
9150
9246
  $el['id'] = elId;
9151
9247
  props.id = elId;
@@ -9206,7 +9302,7 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], fu
9206
9302
  addListener(gina, instance.target, evt, function(event) {
9207
9303
 
9208
9304
  if ( typeof(event.target.id) == 'undefined' ) {
9209
- event.target.setAttribute('id', evt +'.'+ crypto.randomUUID() );
9305
+ event.target.setAttribute('id', evt +'.'+ uuid() );
9210
9306
  event.target.id = event.target.getAttribute('id')
9211
9307
  }
9212
9308
 
@@ -9672,7 +9768,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
9672
9768
  * - lib/merge
9673
9769
  * - utils/events
9674
9770
  * - utils/data
9675
- * - vendor/uuid
9771
+ * - lib/uuid
9676
9772
  *
9677
9773
  * Additional helpers for the backend are located in framwework/v{version}/helpers/plugins/validator-*.js
9678
9774
  *
@@ -9758,7 +9854,7 @@ function ValidatorPlugin(rules, data, formId) {
9758
9854
  require('../../../../../helpers/data');
9759
9855
  }
9760
9856
 
9761
- var uuid = { v1: function() { return Date.now().toString(36) + '-' + crypto.randomUUID(); }, v4: function() { return crypto.randomUUID(); } };
9857
+ var uuid = (isGFFCtx) ? require('lib/uuid') : require('../../../../../lib/uuid');
9762
9858
  var merge = (isGFFCtx) ? require('lib/merge') : require('../../../../../lib/merge');
9763
9859
  var inherits = (isGFFCtx) ? require('lib/inherits') : require('../../../../../lib/inherits');
9764
9860
  var FormValidator = (isGFFCtx) ? require('lib/form-validator') : require('./form-validator');
@@ -9768,7 +9864,7 @@ function ValidatorPlugin(rules, data, formId) {
9768
9864
 
9769
9865
  /** definitions */
9770
9866
  var instance = {
9771
- 'id' : 'validator-' + uuid.v4(),
9867
+ 'id' : 'validator-' + uuid(),
9772
9868
 
9773
9869
  'plugin' : this.plugin,
9774
9870
  'on' : (isGFFCtx) ? on : null,
@@ -10017,7 +10113,7 @@ function ValidatorPlugin(rules, data, formId) {
10017
10113
  } else if ( typeof(_id) == 'object' && !Array.isArray(_id) ) { // weird exception
10018
10114
 
10019
10115
  $target = _id.form;
10020
- _id = $target.getAttribute('id') || 'form.'+uuid.v4();
10116
+ _id = $target.getAttribute('id') || 'form.'+uuid();
10021
10117
 
10022
10118
  $target.setAttribute('id', _id);// just in case
10023
10119
 
@@ -11352,7 +11448,7 @@ function ValidatorPlugin(rules, data, formId) {
11352
11448
  if (hasBinaries && binaries.length > 0) {
11353
11449
 
11354
11450
  // We need a separator to define each part of the request
11355
- var boundary = '--ginaWKBoundary' + uuid.v4().replace(/\-/g, '');
11451
+ var boundary = '--ginaWKBoundary' + uuid();
11356
11452
 
11357
11453
 
11358
11454
  return processFiles(binaries, boundary, '', 0, function onComplete(err, data, done) {
@@ -12020,7 +12116,7 @@ function ValidatorPlugin(rules, data, formId) {
12020
12116
  _id = _id.replace(/\#/, '')
12021
12117
  } else if ( typeof(_id) == 'object' && !Array.isArray(_id) ) { // weird exception
12022
12118
  var $target = _id.form;
12023
- _id = $target.getAttribute('id') || 'form.'+uuid.v4();
12119
+ _id = $target.getAttribute('id') || 'form.'+uuid();
12024
12120
 
12025
12121
  $target.setAttribute('id', _id);// just in case
12026
12122
 
@@ -12244,12 +12340,12 @@ function ValidatorPlugin(rules, data, formId) {
12244
12340
  // preparing prototype (need at least an ID for this)
12245
12341
 
12246
12342
  if ($allForms[f].getAttribute) {
12247
- id = $allForms[f].getAttribute('id') || 'form.' + uuid.v4();
12343
+ id = $allForms[f].getAttribute('id') || 'form.' + uuid();
12248
12344
  if ( id !== $allForms[f].getAttribute('id') ) {
12249
12345
  $allForms[f].setAttribute('id', id)
12250
12346
  }
12251
12347
  } else {
12252
- id = 'form.' + uuid.v4();
12348
+ id = 'form.' + uuid();
12253
12349
  $allForms[f].setAttribute('id', id)
12254
12350
  }
12255
12351
 
@@ -12298,7 +12394,7 @@ function ValidatorPlugin(rules, data, formId) {
12298
12394
  if ( typeof($allForms[f].id) == 'object' ) {
12299
12395
  delete instance.$forms[$allForms[f].id];
12300
12396
 
12301
- var _id = $allForms[f].attributes.getNamedItem('id').nodeValue || 'form.'+uuid.v4();
12397
+ var _id = $allForms[f].attributes.getNamedItem('id').nodeValue || 'form.'+uuid();
12302
12398
 
12303
12399
  $allForms[f].setAttribute('id', _id);
12304
12400
  $allForms[f]['id'] = _id;
@@ -12362,12 +12458,12 @@ function ValidatorPlugin(rules, data, formId) {
12362
12458
  ;
12363
12459
 
12364
12460
  if ($form.getAttribute) {
12365
- id = $form.getAttribute('id') || 'form.' + uuid.v4();
12461
+ id = $form.getAttribute('id') || 'form.' + uuid();
12366
12462
  if (id !== $form.getAttribute('id')) {
12367
12463
  $form.setAttribute('id', id)
12368
12464
  }
12369
12465
  } else {
12370
- id = 'form.' + uuid.v4();
12466
+ id = 'form.' + uuid();
12371
12467
  $form.setAttribute('id', id)
12372
12468
  }
12373
12469
 
@@ -12404,7 +12500,7 @@ function ValidatorPlugin(rules, data, formId) {
12404
12500
  if (typeof ($form.id) == 'object') {
12405
12501
  delete instance.$forms[$form.id];
12406
12502
 
12407
- var _id = $form.attributes.getNamedItem('id').nodeValue || 'form.' + uuid.v4();
12503
+ var _id = $form.attributes.getNamedItem('id').nodeValue || 'form.' + uuid();
12408
12504
 
12409
12505
  $form.setAttribute('id', _id);
12410
12506
  $form.id = _id;
@@ -13000,10 +13096,14 @@ function ValidatorPlugin(rules, data, formId) {
13000
13096
  if ( !isFormValid && gResult.error ) {
13001
13097
  // Fixed on 2025-03-16 - we need past and live errors
13002
13098
  instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
13003
- // Fixed on 2025-03-16
13004
- for (let eField in gResult.error) {
13005
- refreshWarning($gFields[eField]);
13006
- handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
13099
+ // Fixed on 2026-04-09 - only display errors for the touched field,
13100
+ // not all fields from the global pass. The global pass determines
13101
+ // submit button state; untouched fields should not show errors
13102
+ // until the user interacts with them or submits.
13103
+ var _touchedField = event.target.name;
13104
+ if ( typeof(gResult.error[_touchedField]) != 'undefined' ) {
13105
+ refreshWarning($gFields[_touchedField]);
13106
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
13007
13107
  }
13008
13108
  }
13009
13109
  // Fixed on 2025-03-16
@@ -13922,7 +14022,7 @@ function ValidatorPlugin(rules, data, formId) {
13922
14022
  // if ( $target.isPopinContext ) {
13923
14023
  // elId = ( isPopinClick ) ? 'popin.click.' : 'popin.link.';
13924
14024
  // }
13925
- // elId += uuid.v4();
14025
+ // elId += uuid();
13926
14026
  // $a[f].setAttribute('id', elId)
13927
14027
  // }
13928
14028
  // }
@@ -13933,7 +14033,7 @@ function ValidatorPlugin(rules, data, formId) {
13933
14033
  checkForRuleAlias($form.rules, $textareas[f]);
13934
14034
  elId = $textareas[f].getAttribute('id');
13935
14035
  if (!elId || elId == '') {
13936
- elId = 'textareas.' + uuid.v4();
14036
+ elId = 'textareas.' + uuid();
13937
14037
  $textareas[f].setAttribute('id', elId)
13938
14038
  }
13939
14039
  if (!$form.fieldsSet[ elId ]) {
@@ -13965,7 +14065,7 @@ function ValidatorPlugin(rules, data, formId) {
13965
14065
  checkForRuleAlias($form.rules, $inputs[f]);
13966
14066
  elId = $inputs[f].getAttribute('id');
13967
14067
  if (!elId || elId == '') {
13968
- elId = 'input.' + uuid.v4();
14068
+ elId = 'input.' + uuid();
13969
14069
  $inputs[f].setAttribute('id', elId)
13970
14070
  }
13971
14071
 
@@ -14351,7 +14451,7 @@ function ValidatorPlugin(rules, data, formId) {
14351
14451
  // create input & add it to the form
14352
14452
  $newVirtualField = document.createElement('input');
14353
14453
  $newVirtualField.type = 'hidden';
14354
- $newVirtualField.id = 'input.' + uuid.v4();
14454
+ $newVirtualField.id = 'input.' + uuid();
14355
14455
  $newVirtualField.name = _name;
14356
14456
  $newVirtualField.value = '';
14357
14457
 
@@ -14528,9 +14628,10 @@ function ValidatorPlugin(rules, data, formId) {
14528
14628
  var isFormValid = gResult.isValid();
14529
14629
  if (!isFormValid) {
14530
14630
  instance.$forms[formId].errors = gResult.error;
14531
- for (let eField in gResult.error) {
14532
- // refreshWarning($gFields[eField]);
14533
- handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
14631
+ // Fixed on 2026-04-09 - only display errors for the touched field
14632
+ var _touchedField = event.target.name;
14633
+ if ( typeof(gResult.error[_touchedField]) != 'undefined' ) {
14634
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
14534
14635
  }
14535
14636
  }
14536
14637
 
@@ -14551,7 +14652,7 @@ function ValidatorPlugin(rules, data, formId) {
14551
14652
  if (elId && /^gina\-toolbar/.test(elId)) continue;
14552
14653
 
14553
14654
  if (!elId || elId == '') {
14554
- elId = 'select.' + uuid.v4();
14655
+ elId = 'select.' + uuid();
14555
14656
  $select[s].setAttribute('id', elId)
14556
14657
  }
14557
14658
 
@@ -14935,7 +15036,7 @@ function ValidatorPlugin(rules, data, formId) {
14935
15036
  type = $inputs[i].getAttribute('type');
14936
15037
 
14937
15038
  if ( typeof($inputs[i].id) == 'undefined' || $inputs[i].id == '' ) {
14938
- $inputs[i].id = type +'-'+ uuid.v4();
15039
+ $inputs[i].id = type +'-'+ uuid();
14939
15040
  $inputs[i].setAttribute('id', $inputs[i].id)
14940
15041
  }
14941
15042
 
@@ -15278,7 +15379,7 @@ function ValidatorPlugin(rules, data, formId) {
15278
15379
  }
15279
15380
  // safety checking
15280
15381
  if ( typeof($el.id) == 'undefined' || !$el.getAttribute('id') ) {
15281
- $el.setAttribute('id', 'click.' + uuid.v4() );
15382
+ $el.setAttribute('id', 'click.' + uuid() );
15282
15383
  $el.id = $el.getAttribute('id')
15283
15384
  } else {
15284
15385
  $el.id = $el.getAttribute('id')
@@ -15484,7 +15585,7 @@ function ValidatorPlugin(rules, data, formId) {
15484
15585
  && !gina.popinIsBinded
15485
15586
  && !/gina\-link/.test($buttonsTMP[b].className)
15486
15587
  ) { // will not be binded but will receive an id if not existing
15487
- linkId = 'link.'+ uuid.v4();
15588
+ linkId = 'link.'+ uuid();
15488
15589
  $buttonsTMP[b].id = linkId;
15489
15590
  }
15490
15591
  }
@@ -15514,7 +15615,7 @@ function ValidatorPlugin(rules, data, formId) {
15514
15615
  }
15515
15616
 
15516
15617
  if ( typeof($submit.id) == 'undefined' || typeof($submit.id) != 'undefined' && $submit.id == "" ) {
15517
- $submit.id = 'click.'+uuid.v4();
15618
+ $submit.id = 'click.'+uuid();
15518
15619
  $submit.setAttribute('id', $submit.id);
15519
15620
  }
15520
15621
 
@@ -15557,7 +15658,7 @@ function ValidatorPlugin(rules, data, formId) {
15557
15658
  }
15558
15659
 
15559
15660
  if (!$submit['id']) {
15560
- evt = 'click.'+ uuid.v4();
15661
+ evt = 'click.'+ uuid();
15561
15662
  $submit['id'] = evt;
15562
15663
  $submit.setAttribute( 'id', evt);
15563
15664
  } else {
@@ -17032,14 +17133,24 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
17032
17133
  define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], function (require) {
17033
17134
 
17034
17135
  // TODO - Integrate dialog-polyfill : https://github.com/GoogleChrome/dialog-polyfill/blob/master/dist/dialog-polyfill.js
17035
- // removed: jquery dependency
17036
- // removed: uuid dependency (replaced by crypto.randomUUID())
17037
17136
  var Domain = require('lib/domain');
17038
17137
  var domainInstance = null;
17039
17138
  var merge = require('lib/merge');
17040
17139
 
17041
17140
  require('utils/events'); // events
17042
17141
 
17142
+ /** @type {number} Auto-incrementing ID counter for internal popin identifiers */
17143
+ var _uid = 0;
17144
+ /**
17145
+ * Generates a lightweight unique ID for internal use (event names, DOM element IDs).
17146
+ * Replaces crypto.randomUUID() to avoid unnecessary crypto overhead.
17147
+ *
17148
+ * @inner
17149
+ * @param {string} [prefix='gp'] - Optional prefix
17150
+ * @returns {string} Unique ID string
17151
+ */
17152
+ function _nextId(prefix) { return (prefix || 'gp') + '-' + (++_uid); }
17153
+
17043
17154
  /**
17044
17155
  * Gina Popin Handler
17045
17156
  *
@@ -17066,7 +17177,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17066
17177
 
17067
17178
  var instance = {
17068
17179
  plugin : this.plugin,
17069
- id : 'gina-popins-' + crypto.randomUUID(),
17180
+ id : 'gina-popins-' + _nextId(),
17070
17181
  on : on,
17071
17182
  eventData : {},
17072
17183
 
@@ -17106,6 +17217,9 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17106
17217
 
17107
17218
  var registeredPopins = [];
17108
17219
 
17220
+ // Cached regex — avoids repeated RegExp construction in click handlers
17221
+ var _rePopinClick = new RegExp('^popin\\.click\\.gina-popin-' + instance.id);
17222
+
17109
17223
 
17110
17224
  /**
17111
17225
  * popinCreateContainer
@@ -17196,7 +17310,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17196
17310
  isRouting = ( typeof(isRouting) != 'undefined' ) ? isRouting : false;
17197
17311
 
17198
17312
  var attr = 'data-gina-popin-name';
17199
- var $els = getElementsByAttribute(attr);
17313
+ var $els = document.querySelectorAll('[' + attr + ']');
17200
17314
  var $el = null, name = null, id = null;
17201
17315
  var url = null;
17202
17316
  var proceed = null, evt = null;
@@ -17232,7 +17346,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17232
17346
  if (name == $popin.name) {
17233
17347
  id = $el.id || $el.getAttribute('id') || null;
17234
17348
  // By default
17235
- evt = 'popin.click.'+ 'gina-popin-' + instance.id +'-'+ crypto.randomUUID() +'-'+ name;
17349
+ evt = 'popin.click.'+ 'gina-popin-' + instance.id +'-'+ _nextId() +'-'+ name;
17236
17350
  // console.debug("[POPIN CLICK #1]", id, " VS ", evt);
17237
17351
  // Retrieving existing event
17238
17352
  if ( id && new RegExp( '^popin.click.gina-popin-').test(id) ) {
@@ -17311,7 +17425,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17311
17425
  }
17312
17426
 
17313
17427
  if ( typeof(event.target.id) == 'undefined' ) {
17314
- event.target.setAttribute('id', evt +'.'+ crypto.randomUUID() );
17428
+ event.target.setAttribute('id', evt +'.'+ _nextId() );
17315
17429
  event.target.id = event.target.getAttribute('id')
17316
17430
  }
17317
17431
 
@@ -17327,7 +17441,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17327
17441
  //console.log('popin.click !! ', event.target);
17328
17442
  var _evt = event.target.id;
17329
17443
 
17330
- if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) ) {
17444
+ if ( _rePopinClick.test(_evt) ) {
17331
17445
  triggerEvent(gina, event.target, _evt, event.detail);
17332
17446
  }
17333
17447
 
@@ -17421,7 +17535,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17421
17535
  }*/ else { // close
17422
17536
 
17423
17537
  if ( typeof(event.target.id) == 'undefined' ) {
17424
- event.target.setAttribute('id', evt +'.'+ crypto.randomUUID() );
17538
+ event.target.setAttribute('id', evt +'.'+ _nextId() );
17425
17539
  event.target.id = event.target.getAttribute('id')
17426
17540
  }
17427
17541
 
@@ -17436,7 +17550,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17436
17550
  cancelEvent(event);
17437
17551
  var _evt = event.target.id;
17438
17552
 
17439
- if ( new RegExp( '^popin.click.gina-popin-' + instance.id).test(_evt) ) {
17553
+ if ( _rePopinClick.test(_evt) ) {
17440
17554
  triggerEvent(gina, event.target, _evt, event.detail);
17441
17555
  }
17442
17556
 
@@ -17467,43 +17581,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17467
17581
  removeListener(gina, event.target, 'mousedown');
17468
17582
 
17469
17583
  // binding popin close
17470
- var $close = []
17471
- , $buttonsTMP = []
17472
- ;
17473
-
17474
- i = 0;
17475
- $buttonsTMP = $el.getElementsByTagName('button');
17476
- b = 0; len = $buttonsTMP.length;
17477
- if ( len > 0 ) {
17478
- for(; b < len; ++b) {
17479
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17480
- $close[i] = $buttonsTMP[b];
17481
- ++i;
17482
- }
17483
- }
17484
- }
17485
-
17486
- $buttonsTMP = $el.getElementsByTagName('div');
17487
- b = 0; len = $buttonsTMP.length;
17488
- if ( len > 0 ) {
17489
- for(; b < len; ++b) {
17490
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17491
- $close[i] = $buttonsTMP[b];
17492
- ++i
17493
- }
17494
- }
17495
- }
17496
-
17497
- $buttonsTMP = $el.getElementsByTagName('a');
17498
- b = 0; len = $buttonsTMP.length;
17499
- if ( len > 0 ) {
17500
- for(; b < len; ++b) {
17501
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17502
- $close[i] = $buttonsTMP[b];
17503
- ++i
17504
- }
17505
- }
17506
- }
17584
+ var $close = Array.prototype.slice.call($el.querySelectorAll('.gina-popin-close'));
17507
17585
 
17508
17586
  b = 0; len = $close.length;
17509
17587
  for (; b < len; ++b) {
@@ -17559,54 +17637,29 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17559
17637
  }
17560
17638
 
17561
17639
  // binding popin close & links (& its target attributes)
17562
- var $close = []
17563
- , $buttonsTMP = []
17564
- , $link = []
17565
- ;
17566
-
17567
- $buttonsTMP = $el.getElementsByTagName('button');
17568
- i = 0; b = 0; len = $buttonsTMP.length;
17569
- if ( $buttonsTMP.length > 0 ) {
17570
- for(; b < len; ++b) {
17571
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17572
- $close[i] = $buttonsTMP[b];
17573
- ++i
17574
- }
17575
- }
17576
- }
17640
+ var $close = Array.prototype.slice.call($el.querySelectorAll('.gina-popin-close'));
17641
+ var $link = [];
17577
17642
 
17578
- $buttonsTMP = $el.getElementsByTagName('div');
17579
- b = 0; len = $buttonsTMP.length;
17643
+ // Collect non-close <a> links
17644
+ var $aTags = $el.getElementsByTagName('a');
17645
+ b = 0; len = $aTags.length;
17580
17646
  if ( len > 0 ) {
17581
17647
  for(; b < len; ++b) {
17582
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17583
- $close[i] = $buttonsTMP[b];
17584
- ++i;
17585
- }
17586
- }
17587
- }
17588
-
17589
- $buttonsTMP = $el.getElementsByTagName('a');
17590
- b = 0; len = $buttonsTMP.length;
17591
- if ( len > 0 ) {
17592
- for(; b < len; ++b) {
17593
- if ( /gina-popin-close/.test($buttonsTMP[b].className) ) {
17594
- $close[i] = $buttonsTMP[b];
17595
- ++i;
17648
+ if ( $aTags[b].classList.contains('gina-popin-close') ) {
17596
17649
  continue
17597
17650
  }
17598
17651
 
17599
17652
  if (
17600
- typeof($buttonsTMP[b]) != 'undefined'
17601
- && !/(\#|\#.*)$/.test($buttonsTMP[b].href) // ignore href="#"
17653
+ typeof($aTags[b]) != 'undefined'
17654
+ && !/(\#|\#.*)$/.test($aTags[b].href) // ignore href="#"
17602
17655
  // ignore href already bindded byr formValidator or the user
17603
- && !$buttonsTMP[b].id
17656
+ && !$aTags[b].id
17604
17657
  ||
17605
- typeof($buttonsTMP[b]) != 'undefined'
17606
- && !/(\#|\#.*)$/.test($buttonsTMP[b].href) // ignore href="#"
17607
- && !/^(click\.|popin\.link)/.test($buttonsTMP[b].id)
17658
+ typeof($aTags[b]) != 'undefined'
17659
+ && !/(\#|\#.*)$/.test($aTags[b].href) // ignore href="#"
17660
+ && !/^(click\.|popin\.link)/.test($aTags[b].id)
17608
17661
  ) {
17609
- $link.push($buttonsTMP[b]);
17662
+ $link.push($aTags[b]);
17610
17663
  continue
17611
17664
  }
17612
17665
  }
@@ -17632,7 +17685,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17632
17685
 
17633
17686
  if (!$close[b]['id']) {
17634
17687
 
17635
- evt = 'popin.close.'+ crypto.randomUUID();
17688
+ evt = 'popin.close.'+ _nextId();
17636
17689
  $close[b]['id'] = evt;
17637
17690
  $close[b].setAttribute( 'id', evt);
17638
17691
 
@@ -17678,10 +17731,10 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17678
17731
  // link or action ?
17679
17732
  if (/^null$/i.test($link[i]['id'])) {
17680
17733
  if ( isLink ) {
17681
- evt = 'popin.link.' + crypto.randomUUID();
17734
+ evt = 'popin.link.' + _nextId();
17682
17735
  $link[i].setAttribute('data-gina-popin-is-link', true);
17683
17736
  } else {
17684
- evt = 'popin.click.' + crypto.randomUUID();
17737
+ evt = 'popin.click.' + _nextId();
17685
17738
  $link[i].setAttribute('data-gina-popin-is-link', false);
17686
17739
  }
17687
17740
  } else {
@@ -17754,7 +17807,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17754
17807
  for(; i < len; ++i) {
17755
17808
 
17756
17809
  if ( !$forms[i]['id'] || typeof($forms[i]) != 'string' ) {
17757
- _id = $forms[i].getAttribute('id') || 'form.' + crypto.randomUUID();
17810
+ _id = $forms[i].getAttribute('id') || 'form.' + _nextId();
17758
17811
  $forms[i].setAttribute('id', _id);// just in case
17759
17812
  $forms[i]['id'] = _id
17760
17813
  } else {
@@ -18016,6 +18069,16 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18016
18069
  $popin.options = merge(options, $popin.options);
18017
18070
 
18018
18071
  var result = null;
18072
+
18073
+ // Fresh XHR per load — prevents concurrent popins from sharing state
18074
+ var xhr = null;
18075
+ if (window.XMLHttpRequest) {
18076
+ xhr = new XMLHttpRequest();
18077
+ } else if (window.ActiveXObject) {
18078
+ try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
18079
+ catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} }
18080
+ }
18081
+
18019
18082
  if ( options.withCredentials ) { // Preflighted requests
18020
18083
  if ('withCredentials' in xhr) {
18021
18084
  // XHR for Chrome/Firefox/Opera/Safari.
@@ -18395,28 +18458,35 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18395
18458
  }
18396
18459
  }
18397
18460
 
18398
- function getScript(source) {
18399
- // then trigger scripts load
18400
- //var xhr = new XMLHttpRequest();
18401
- var xhr = setupXhr();
18402
- xhr.open('GET', source, true);
18403
- xhr.setRequestHeader("Content-Type", "text/javascript");
18404
- xhr.onload = function () {
18405
- eval(xhr.response);
18406
- };
18407
- xhr.send();
18461
+ /**
18462
+ * Loads an external script by injecting a <script> element into the document head.
18463
+ * Browser handles loading in parallel — no sequential XHR or eval().
18464
+ *
18465
+ * @param {string} source - Script URL
18466
+ * @param {object} [$popin] - Popin object for tracking injected headers (cleaned up on close)
18467
+ */
18468
+ function getScript(source, $popin) {
18469
+ var s = document.createElement('script');
18470
+ s.src = source;
18471
+ s.id = 'popin-script-' + _nextId();
18472
+ if ($popin) { $popin.$headers.push({ id: s.id }); }
18473
+ document.head.appendChild(s);
18408
18474
  }
18409
18475
 
18410
- function getStyle(source) {
18411
- // then trigger scripts load
18412
- //var xhr = new XMLHttpRequest();
18413
- var xhr = setupXhr();
18414
- xhr.open('GET', source, true);
18415
- xhr.setRequestHeader("Content-Type", "text/css");
18416
- xhr.onload = function () {
18417
- eval(xhr.response);
18418
- };
18419
- xhr.send();
18476
+ /**
18477
+ * Loads an external stylesheet by injecting a <link> element into the document head.
18478
+ * Browser handles loading in parallel — no sequential XHR or eval().
18479
+ *
18480
+ * @param {string} source - Stylesheet URL
18481
+ * @param {object} [$popin] - Popin object for tracking injected headers (cleaned up on close)
18482
+ */
18483
+ function getStyle(source, $popin) {
18484
+ var link = document.createElement('link');
18485
+ link.rel = 'stylesheet';
18486
+ link.href = source;
18487
+ link.id = 'popin-style-' + _nextId();
18488
+ if ($popin) { $popin.$headers.push({ id: link.id }); }
18489
+ document.head.appendChild(link);
18420
18490
  }
18421
18491
 
18422
18492
  function refreshCSS() {
@@ -18500,7 +18570,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18500
18570
  if ( globalScriptsList.indexOf(filename) > -1 )
18501
18571
  continue;
18502
18572
 
18503
- getScript(scripts[i].src);
18573
+ getScript(scripts[i].src, $popin);
18504
18574
  }
18505
18575
 
18506
18576
  // Styles
@@ -18517,21 +18587,22 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18517
18587
  if ( globalStylesList.indexOf(filename) > -1 )
18518
18588
  continue;
18519
18589
 
18520
- getStyle(styles[i].href);
18590
+ getStyle(styles[i].href, $popin);
18521
18591
  }
18522
18592
 
18523
- popinBind({ target: $el, type: 'loaded.' + $popin.id }, $popin);
18593
+ // Skip if already bound by the loaded listener avoids double DOM scanning
18594
+ if (!gina.popinIsBinded) {
18595
+ popinBind({ target: $el, type: 'loaded.' + $popin.id }, $popin);
18596
+ }
18524
18597
 
18525
18598
 
18526
- if ( !/gina-popin-is-active/.test($el.className) )
18527
- $el.className += ' gina-popin-is-active';
18599
+ $el.classList.add('gina-popin-is-active');
18528
18600
 
18529
18601
  if ( !self.options.useDialogMode || gina.config.envIsDev ) {
18530
18602
  // overlay
18531
- if ( !/gina-popin-is-active/.test(instance.target.firstChild.className) )
18532
- instance.target.firstChild.className += ' gina-popin-is-active';
18603
+ instance.target.firstChild.classList.add('gina-popin-is-active');
18533
18604
  // overlay
18534
- if ( /gina-popin-is-active/.test(instance.target.firstChild.className) ) {
18605
+ if ( instance.target.firstChild.classList.contains('gina-popin-is-active') ) {
18535
18606
  removeListener(gina, instance.target, 'open.'+ $popin.id)
18536
18607
  }
18537
18608
  }
@@ -18589,10 +18660,10 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18589
18660
 
18590
18661
  isRouting = ( typeof(isRouting) != 'undefined' ) ? isRouting : false;
18591
18662
 
18592
- if ( $el != null && /gina-popin-is-active/.test($el.className) ) {
18663
+ if ( $el != null && $el.classList.contains('gina-popin-is-active') ) {
18593
18664
  if (!isRouting) {
18594
- instance.target.firstChild.className = instance.target.firstChild.className.replace(/\sgina-popin-is-active|gina-popin-is-active|gina-popin-is-active\s/, '');
18595
- $el.className = $el.className.replace(/\sgina-popin-is-active|gina-popin-is-active|gina-popin-is-active\s/, '');
18665
+ instance.target.firstChild.classList.remove('gina-popin-is-active');
18666
+ $el.classList.remove('gina-popin-is-active');
18596
18667
  $el.innerHTML = '';
18597
18668
  }
18598
18669
  // Fixed: clear loading state on reset — defensive cleanup for navigation
@@ -18674,7 +18745,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18674
18745
  $popin.hasForm = false;
18675
18746
  }
18676
18747
 
18677
- if ( $el != null && /gina-popin-is-active/.test($el.className) ) {
18748
+ if ( $el != null && $el.classList.contains('gina-popin-is-active') ) {
18678
18749
 
18679
18750
  popinUnbind(name);
18680
18751
  $popin.isOpen = false;
@@ -18718,11 +18789,11 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18718
18789
  /**
18719
18790
  * popinDestroy
18720
18791
  *
18721
- * Destroyes a popin by name
18722
- *
18723
- * @parama {string} name
18792
+ * Destroys a popin by name: closes it if open, removes event listeners,
18793
+ * removes the DOM element, and cleans up the internal registry.
18724
18794
  *
18725
- * */
18795
+ * @param {string} [name] - Popin name. If omitted, destroys the active popin.
18796
+ */
18726
18797
  function popinDestroy(name) {
18727
18798
 
18728
18799
  var $popin = ( typeof(name) != 'undefined') ? getPopinByName(name) : getActivePopin();
@@ -18730,8 +18801,42 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18730
18801
  if ( !$popin && typeof(name) != 'undefined' ) {
18731
18802
  throw new Error('Popin `'+name+'` not found !');
18732
18803
  }
18804
+ if ( !$popin ) return;
18733
18805
 
18734
18806
  id = $popin.id;
18807
+ name = $popin.name;
18808
+
18809
+ // Close first if still open (handles listener cleanup, form unbinding, header removal)
18810
+ if ( $popin.isOpen ) {
18811
+ $popin.isRedirecting = false;
18812
+ popinClose(name);
18813
+ }
18814
+
18815
+ // Remove the DOM element
18816
+ $el = document.getElementById(id);
18817
+ if ( $el ) {
18818
+ $el.remove();
18819
+ }
18820
+
18821
+ // Remove remaining listeners
18822
+ removeListener(gina, $popin.target, 'loaded.' + id);
18823
+ removeListener(gina, $popin.target, 'ready.' + id);
18824
+ removeListener(gina, $popin.target, 'open.' + id);
18825
+ removeListener(gina, $popin.target, 'close.' + id);
18826
+
18827
+ // Clean up registry
18828
+ delete instance.$popins[id];
18829
+ var regIdx = registeredPopins.indexOf(name);
18830
+ if ( regIdx > -1 ) {
18831
+ registeredPopins.splice(regIdx, 1);
18832
+ }
18833
+
18834
+ // Reset active if this was the active popin
18835
+ if ( instance.activePopinId === id ) {
18836
+ instance.activePopinId = null;
18837
+ }
18838
+
18839
+ triggerEvent(gina, instance.target, 'destroy.' + id, { name: name, id: id });
18735
18840
  }
18736
18841
 
18737
18842
  function registerPopin($popin, options) {
@@ -18752,6 +18857,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18752
18857
  if ( registeredPopins.indexOf($popin.options['name']) > -1 ) {
18753
18858
  throw new Error('`popin '+$popin.options['name']+'` already exists !')
18754
18859
  }
18860
+ registeredPopins.push($popin.options['name']);
18755
18861
 
18756
18862
  // import over plugins
18757
18863
  if ( typeof($popin.options['validator']) != 'undefined' ) {
@@ -18804,21 +18910,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18804
18910
 
18805
18911
  instance.$popins[$popin.id] = $popin;
18806
18912
 
18807
- // setting up AJAX
18808
- if (window.XMLHttpRequest) { // Mozilla, Safari, ...
18809
- xhr = new XMLHttpRequest();
18810
- } else if (window.ActiveXObject) { // IE
18811
- try {
18812
- xhr = new ActiveXObject("Msxml2.XMLHTTP");
18813
- } catch (e) {
18814
- try {
18815
- xhr = new ActiveXObject("Microsoft.XMLHTTP");
18816
- }
18817
- catch (e) {}
18818
- }
18819
- }
18820
-
18821
-
18913
+ // XHR is now created per popinLoad() call — no shared instance needed
18822
18914
 
18823
18915
  bindOpen($popin);
18824
18916
  }
@@ -18860,6 +18952,7 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18860
18952
  instance.getActivePopin = getActivePopin;
18861
18953
  instance.open = popinOpen;
18862
18954
  instance.close = popinClose;
18955
+ instance.destroy = popinDestroy;
18863
18956
  }
18864
18957
 
18865
18958
 
@@ -18895,7 +18988,7 @@ function StoragePlugin(options) {
18895
18988
 
18896
18989
  var merge = merge || require('lib/merge');;
18897
18990
  var Collection = Collection || require('lib/collection');
18898
- var uuid = { v1: function() { return Date.now().toString(36) + '-' + crypto.randomUUID(); }, v4: function() { return crypto.randomUUID(); } };
18991
+ var uuid = uuid || require('lib/uuid');
18899
18992
  var dateFormat = dateFormat || require('helpers/dateFormat');
18900
18993
 
18901
18994
 
@@ -19110,7 +19203,7 @@ function StoragePlugin(options) {
19110
19203
  function collectionInsert(content) {
19111
19204
 
19112
19205
  // TODO - add uuid
19113
- content['_id'] = uuid.v1();
19206
+ content['_id'] = Date.now().toString(36) + '-' + uuid();
19114
19207
  content['_createdAt'] = new Date().format("isoDateTime");
19115
19208
  content['_updatedAt'] = new Date().format("isoDateTime");
19116
19209
 
@@ -19304,7 +19397,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
19304
19397
  // Publish as node.js module
19305
19398
  var merge = require('lib/merge'); //require('../../../../../lib/merge');
19306
19399
  var Collection = require('lib/collection'); //require('../../../../../lib/collection');
19307
- var uuid = { v1: function() { return Date.now().toString(36) + '-' + crypto.randomUUID(); }, v4: function() { return crypto.randomUUID(); } };
19400
+ var uuid = require('lib/uuid');
19308
19401
 
19309
19402
  module.exports = StoragePlugin
19310
19403
 
@@ -19557,7 +19650,7 @@ if ( typeof(module) !== 'undefined' && module.exports ) {
19557
19650
  * `Collection.length` returns entry count — do not use `.count()` as it
19558
19651
  * includes function properties in the count.
19559
19652
  *
19560
- * Dependencies: `lib/merge`, `uuid`
19653
+ * Dependencies: `lib/merge`, `lib/uuid`
19561
19654
  */
19562
19655
 
19563
19656
  /**
@@ -19598,7 +19691,7 @@ if ( typeof(module) !== 'undefined' && module.exports ) {
19598
19691
  function Collection(content, options) {
19599
19692
 
19600
19693
  var isGFFCtx = ( ( typeof(module) !== 'undefined' ) && module.exports ) ? false : true;
19601
- var uuid = { v4: function() { return crypto.randomUUID(); } };
19694
+ var uuid = (isGFFCtx) ? require('lib/uuid') : require('../../../lib/uuid');
19602
19695
  var merge = (isGFFCtx) ? require('lib/merge') : require('../../../lib/merge');
19603
19696
 
19604
19697
  // defined search option rules
@@ -19655,7 +19748,7 @@ function Collection(content, options) {
19655
19748
  if ( typeof(content[entry]._uuid) != 'undefined' ) {
19656
19749
  content[entry]._hasItsOwnUuid = true;
19657
19750
  } else {
19658
- content[entry]._uuid = uuid.v4();
19751
+ content[entry]._uuid = uuid();
19659
19752
  }
19660
19753
 
19661
19754
  // To avoid duplicate entries
@@ -20416,7 +20509,7 @@ function Collection(content, options) {
20416
20509
  var tmpContent = Array.isArray(this) ? this : content;
20417
20510
 
20418
20511
  // Indexing;
20419
- set._uuid = uuid.v4();
20512
+ set._uuid = uuid();
20420
20513
  tmpContent.push(set);
20421
20514
 
20422
20515
  result = tmpContent;
@@ -21124,7 +21217,6 @@ function ready() {
21124
21217
  }, 50, i, readyList);
21125
21218
 
21126
21219
  } else { // onEachHandlerReady
21127
- // removed: jquery / $ context passthrough
21128
21220
  readyList[i].ctx = window.originalContext || null;
21129
21221
  readyList[i].fn.call(window, readyList[i].ctx, window.require);
21130
21222
  ++i;
@@ -21204,7 +21296,7 @@ if ( typeof(window['gina']) == 'undefined' ) { // could have be defined by loade
21204
21296
  /**
21205
21297
  * ready
21206
21298
  * This is the one public interface use to wrap `handlers`
21207
- * It is an equivalent of jQuery(document).ready(cb)
21299
+ * It is an equivalent of document.addEventListener('DOMContentLoaded', cb)
21208
21300
  *
21209
21301
  * No need to use it for `handlers`, it is automatically applied for each `handler`
21210
21302
  *