gina 0.5.14 → 0.5.15

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 (514) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +11 -6
  3. package/ROADMAP.md +2 -0
  4. package/framework/v0.5.15/VERSION +1 -0
  5. package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +110 -0
  6. package/framework/v0.5.15/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  7. package/framework/v0.5.15/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  8. package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +12 -0
  9. package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +87 -2
  10. package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/js/gina.js +352 -57
  11. package/framework/v0.5.15/core/asset/plugin/dist/vendor/gina/js/gina.min.js +584 -0
  12. package/framework/v0.5.15/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  13. package/framework/v0.5.15/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  14. package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-nunjucks.js +5 -0
  15. package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-swig.js +5 -0
  16. package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +29 -30
  17. package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/validator/src/main.js +280 -42
  18. package/framework/{v0.5.14 → v0.5.15}/core/server.isaac.js +5 -2
  19. package/framework/{v0.5.14 → v0.5.15}/core/server.js +69 -16
  20. package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/templates.json +3 -1
  21. package/framework/v0.5.15/core/template/boilerplate/bundle_public/js/components/x-checklist.js +140 -0
  22. package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_templates/html/content/homepage.html +2 -0
  23. package/framework/v0.5.15/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +30 -0
  24. package/framework/{v0.5.14 → v0.5.15}/core/template/conf/env.json +11 -8
  25. package/framework/{v0.5.14 → v0.5.15}/core/template/conf/settings.json +19 -15
  26. package/framework/{v0.5.14 → v0.5.15}/package.json +1 -1
  27. package/gna.js +4 -4
  28. package/llms.txt +13 -3
  29. package/package.json +3 -3
  30. package/playwright.config.js +6 -1
  31. package/framework/v0.5.14/VERSION +0 -1
  32. package/framework/v0.5.14/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  33. package/framework/v0.5.14/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  34. package/framework/v0.5.14/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -580
  35. package/framework/v0.5.14/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  36. package/framework/v0.5.14/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  37. package/test-results/popin-dialog.runtime-data--0edb7--never-injects-the-raw-JSON-chromium/error-context.md +0 -24
  38. /package/framework/{v0.5.14 → v0.5.15}/AUTHORS +0 -0
  39. /package/framework/{v0.5.14 → v0.5.15}/LICENSE +0 -0
  40. /package/framework/{v0.5.14 → v0.5.15}/core/asset/html/nolayout.html +0 -0
  41. /package/framework/{v0.5.14 → v0.5.15}/core/asset/html/static.html +0 -0
  42. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/android-chrome-192x192.png +0 -0
  43. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/android-chrome-512x512.png +0 -0
  44. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/apple-touch-icon.png +0 -0
  45. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/favicon-16x16.png +0 -0
  46. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/favicon-32x32.png +0 -0
  47. /package/framework/{v0.5.14 → v0.5.15}/core/asset/img/favicon.ico +0 -0
  48. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/README.md +0 -0
  49. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  50. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  51. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  52. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  53. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  54. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  55. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  56. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  57. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  58. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  59. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  60. /package/framework/{v0.5.14 → v0.5.15}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  61. /package/framework/{v0.5.14 → v0.5.15}/core/config.js +0 -0
  62. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/ai/index.js +0 -0
  63. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/ai/lib/connector.js +0 -0
  64. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/index.js +0 -0
  65. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/connector.js +0 -0
  66. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  67. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  68. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/n1ql.js +0 -0
  69. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/session-store.js +0 -0
  70. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  71. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  72. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mongodb/index.js +0 -0
  73. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mongodb/lib/connector.js +0 -0
  74. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mongodb/lib/job-store.js +0 -0
  75. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  76. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mongodb/lib/session-store.js +0 -0
  77. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mysql/index.js +0 -0
  78. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/mysql/lib/connector.js +0 -0
  79. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/postgresql/index.js +0 -0
  80. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/postgresql/lib/connector.js +0 -0
  81. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/redis/index.js +0 -0
  82. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/redis/lib/connector.js +0 -0
  83. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/redis/lib/job-store.js +0 -0
  84. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/redis/lib/session-store.js +0 -0
  85. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/scylladb/index.js +0 -0
  86. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/scylladb/lib/connector.js +0 -0
  87. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/scylladb/lib/session-store.js +0 -0
  88. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/sql-parser.js +0 -0
  89. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/sqlite/index.js +0 -0
  90. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/sqlite/lib/connector.js +0 -0
  91. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/sqlite/lib/job-store.js +0 -0
  92. /package/framework/{v0.5.14 → v0.5.15}/core/connectors/sqlite/lib/session-store.js +0 -0
  93. /package/framework/{v0.5.14 → v0.5.15}/core/content.encoding +0 -0
  94. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.framework.js +0 -0
  95. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.js +0 -0
  96. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-json.js +0 -0
  97. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-nunjucks-async.js +0 -0
  98. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-stream.js +0 -0
  99. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-swig-async.js +0 -0
  100. /package/framework/{v0.5.14 → v0.5.15}/core/controller/controller.render-v1.js +0 -0
  101. /package/framework/{v0.5.14 → v0.5.15}/core/controller/index.js +0 -0
  102. /package/framework/{v0.5.14 → v0.5.15}/core/controller/inspector-window-emit.js +0 -0
  103. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/LICENSE +0 -0
  104. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/README.md +0 -0
  105. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  106. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  107. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  108. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  109. /package/framework/{v0.5.14 → v0.5.15}/core/deps/busboy-1.6.0/package.json +0 -0
  110. /package/framework/{v0.5.14 → v0.5.15}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  111. /package/framework/{v0.5.14 → v0.5.15}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  112. /package/framework/{v0.5.14 → v0.5.15}/core/deps/streamsearch-1.1.0/package.json +0 -0
  113. /package/framework/{v0.5.14 → v0.5.15}/core/dev/index.js +0 -0
  114. /package/framework/{v0.5.14 → v0.5.15}/core/dev/lib/class.js +0 -0
  115. /package/framework/{v0.5.14 → v0.5.15}/core/dev/lib/factory.js +0 -0
  116. /package/framework/{v0.5.14 → v0.5.15}/core/dev/lib/tools.js +0 -0
  117. /package/framework/{v0.5.14 → v0.5.15}/core/gna.js +0 -0
  118. /package/framework/{v0.5.14 → v0.5.15}/core/locales/README.md +0 -0
  119. /package/framework/{v0.5.14 → v0.5.15}/core/locales/currency.json +0 -0
  120. /package/framework/{v0.5.14 → v0.5.15}/core/locales/dist/language/en.json +0 -0
  121. /package/framework/{v0.5.14 → v0.5.15}/core/locales/dist/language/fr.json +0 -0
  122. /package/framework/{v0.5.14 → v0.5.15}/core/locales/dist/region/en.json +0 -0
  123. /package/framework/{v0.5.14 → v0.5.15}/core/locales/dist/region/fr.json +0 -0
  124. /package/framework/{v0.5.14 → v0.5.15}/core/locales/index.js +0 -0
  125. /package/framework/{v0.5.14 → v0.5.15}/core/mime.types +0 -0
  126. /package/framework/{v0.5.14 → v0.5.15}/core/model/entity.js +0 -0
  127. /package/framework/{v0.5.14 → v0.5.15}/core/model/index.js +0 -0
  128. /package/framework/{v0.5.14 → v0.5.15}/core/model/template/entityFactory.js +0 -0
  129. /package/framework/{v0.5.14 → v0.5.15}/core/model/template/index.js +0 -0
  130. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/README.md +0 -0
  131. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/index.js +0 -0
  132. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/csrf/README.md +0 -0
  133. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/csrf/package.json +0 -0
  134. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/csrf/src/main.js +0 -0
  135. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/README.md +0 -0
  136. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coep/README.md +0 -0
  137. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coep/package.json +0 -0
  138. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  139. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coop/README.md +0 -0
  140. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coop/package.json +0 -0
  141. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  142. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/corp/README.md +0 -0
  143. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/corp/package.json +0 -0
  144. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  145. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/csp/README.md +0 -0
  146. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/csp/package.json +0 -0
  147. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  148. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  149. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  150. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  151. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  152. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  153. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  154. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  155. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  156. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/package.json +0 -0
  157. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  158. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  159. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  160. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/src/main.js +0 -0
  161. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  162. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  163. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  164. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  165. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  166. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  167. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  168. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  169. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  170. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  171. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  172. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  173. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  174. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  175. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  176. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  177. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  178. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  179. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/session/README.md +0 -0
  180. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/session/package.json +0 -0
  181. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/session/src/main.js +0 -0
  182. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/storage/README.md +0 -0
  183. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/storage/build.json +0 -0
  184. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/storage/package.json +0 -0
  185. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/storage/src/main.js +0 -0
  186. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/validator/README.md +0 -0
  187. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/validator/build.json +0 -0
  188. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/validator/package.json +0 -0
  189. /package/framework/{v0.5.14 → v0.5.15}/core/plugins/lib/validator/src/form-validator.js +0 -0
  190. /package/framework/{v0.5.14 → v0.5.15}/core/router.js +0 -0
  191. /package/framework/{v0.5.14 → v0.5.15}/core/server.express.js +0 -0
  192. /package/framework/{v0.5.14 → v0.5.15}/core/status.codes +0 -0
  193. /package/framework/{v0.5.14 → v0.5.15}/core/template/_gitignore +0 -0
  194. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/app.json +0 -0
  195. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  196. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/routing.json +0 -0
  197. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/settings.json +0 -0
  198. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  199. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  200. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  201. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  202. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  203. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/index.js +0 -0
  204. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle/locales/en.json +0 -0
  205. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  206. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  207. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  208. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  209. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  210. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  211. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  212. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/readme.md +0 -0
  213. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_public/sw.js +0 -0
  214. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  215. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  216. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  217. /package/framework/{v0.5.14 → v0.5.15}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  218. /package/framework/{v0.5.14 → v0.5.15}/core/template/command/gina.bat.tpl +0 -0
  219. /package/framework/{v0.5.14 → v0.5.15}/core/template/command/gina.tpl +0 -0
  220. /package/framework/{v0.5.14 → v0.5.15}/core/template/conf/manifest.json +0 -0
  221. /package/framework/{v0.5.14 → v0.5.15}/core/template/conf/package.json +0 -0
  222. /package/framework/{v0.5.14 → v0.5.15}/core/template/conf/statics.json +0 -0
  223. /package/framework/{v0.5.14 → v0.5.15}/core/template/conf/templates.json +0 -0
  224. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/client/json/401.json +0 -0
  225. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/client/json/403.json +0 -0
  226. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/client/json/404.json +0 -0
  227. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/server/html/50x.html +0 -0
  228. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/server/json/500.json +0 -0
  229. /package/framework/{v0.5.14 → v0.5.15}/core/template/error/server/json/503.json +0 -0
  230. /package/framework/{v0.5.14 → v0.5.15}/core/template/extensions/logger/config.json +0 -0
  231. /package/framework/{v0.5.14 → v0.5.15}/helpers/console.js +0 -0
  232. /package/framework/{v0.5.14 → v0.5.15}/helpers/context.js +0 -0
  233. /package/framework/{v0.5.14 → v0.5.15}/helpers/data/LICENSE +0 -0
  234. /package/framework/{v0.5.14 → v0.5.15}/helpers/data/README.md +0 -0
  235. /package/framework/{v0.5.14 → v0.5.15}/helpers/data/package.json +0 -0
  236. /package/framework/{v0.5.14 → v0.5.15}/helpers/data/src/main.js +0 -0
  237. /package/framework/{v0.5.14 → v0.5.15}/helpers/dateFormat.js +0 -0
  238. /package/framework/{v0.5.14 → v0.5.15}/helpers/index.js +0 -0
  239. /package/framework/{v0.5.14 → v0.5.15}/helpers/json/LICENSE +0 -0
  240. /package/framework/{v0.5.14 → v0.5.15}/helpers/json/README.md +0 -0
  241. /package/framework/{v0.5.14 → v0.5.15}/helpers/json/package.json +0 -0
  242. /package/framework/{v0.5.14 → v0.5.15}/helpers/json/src/main.js +0 -0
  243. /package/framework/{v0.5.14 → v0.5.15}/helpers/path.js +0 -0
  244. /package/framework/{v0.5.14 → v0.5.15}/helpers/plugins/README.md +0 -0
  245. /package/framework/{v0.5.14 → v0.5.15}/helpers/plugins/package.json +0 -0
  246. /package/framework/{v0.5.14 → v0.5.15}/helpers/plugins/src/api-error.js +0 -0
  247. /package/framework/{v0.5.14 → v0.5.15}/helpers/plugins/src/main.js +0 -0
  248. /package/framework/{v0.5.14 → v0.5.15}/helpers/prototypes.js +0 -0
  249. /package/framework/{v0.5.14 → v0.5.15}/helpers/task.js +0 -0
  250. /package/framework/{v0.5.14 → v0.5.15}/helpers/text.js +0 -0
  251. /package/framework/{v0.5.14 → v0.5.15}/lib/admin/package.json +0 -0
  252. /package/framework/{v0.5.14 → v0.5.15}/lib/admin/src/main.js +0 -0
  253. /package/framework/{v0.5.14 → v0.5.15}/lib/archiver/README.md +0 -0
  254. /package/framework/{v0.5.14 → v0.5.15}/lib/archiver/build.json +0 -0
  255. /package/framework/{v0.5.14 → v0.5.15}/lib/archiver/package.json +0 -0
  256. /package/framework/{v0.5.14 → v0.5.15}/lib/archiver/src/dep/jszip.min.js +0 -0
  257. /package/framework/{v0.5.14 → v0.5.15}/lib/archiver/src/main.js +0 -0
  258. /package/framework/{v0.5.14 → v0.5.15}/lib/async/package.json +0 -0
  259. /package/framework/{v0.5.14 → v0.5.15}/lib/async/src/main.js +0 -0
  260. /package/framework/{v0.5.14 → v0.5.15}/lib/cache/README.md +0 -0
  261. /package/framework/{v0.5.14 → v0.5.15}/lib/cache/build.json +0 -0
  262. /package/framework/{v0.5.14 → v0.5.15}/lib/cache/package.json +0 -0
  263. /package/framework/{v0.5.14 → v0.5.15}/lib/cache/src/main.js +0 -0
  264. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/aliases.json +0 -0
  265. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/add.js +0 -0
  266. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/arguments.json +0 -0
  267. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/build.js +0 -0
  268. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/copy.js +0 -0
  269. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/cp.js +0 -0
  270. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/help.js +0 -0
  271. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/help.txt +0 -0
  272. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  273. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/list.js +0 -0
  274. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/man.js +0 -0
  275. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/mcp-start.js +0 -0
  276. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/mcp.js +0 -0
  277. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/oas.js +0 -0
  278. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/openapi.js +0 -0
  279. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/remove.js +0 -0
  280. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/rename.js +0 -0
  281. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/restart.js +0 -0
  282. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/rm.js +0 -0
  283. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/start.js +0 -0
  284. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/status.js +0 -0
  285. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/bundle/stop.js +0 -0
  286. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/cache/stats.js +0 -0
  287. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/add.js +0 -0
  288. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/arguments.json +0 -0
  289. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/help.js +0 -0
  290. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/help.txt +0 -0
  291. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/infer.js +0 -0
  292. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/list.js +0 -0
  293. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/migrate.js +0 -0
  294. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/models.js +0 -0
  295. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/remove.js +0 -0
  296. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/rm.js +0 -0
  297. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/connector/test.js +0 -0
  298. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/add.js +0 -0
  299. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/get.js +0 -0
  300. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/help.js +0 -0
  301. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/help.txt +0 -0
  302. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/link-dev.js +0 -0
  303. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/list.js +0 -0
  304. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/remove.js +0 -0
  305. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/rm.js +0 -0
  306. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/set.js +0 -0
  307. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/unset.js +0 -0
  308. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/env/use.js +0 -0
  309. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/add.js +0 -0
  310. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/arguments.json +0 -0
  311. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/build.js +0 -0
  312. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/dot.js +0 -0
  313. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/get.js +0 -0
  314. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/help.js +0 -0
  315. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/help.txt +0 -0
  316. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/init.js +0 -0
  317. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/link-node-modules.js +0 -0
  318. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/link.js +0 -0
  319. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/list.js +0 -0
  320. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/man.js +0 -0
  321. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/msg.json +0 -0
  322. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/open.js +0 -0
  323. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/remove.js +0 -0
  324. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/reset.js +0 -0
  325. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/restart.js +0 -0
  326. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/set.js +0 -0
  327. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/start.js +0 -0
  328. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/status.js +0 -0
  329. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/stop.js +0 -0
  330. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/tail.js +0 -0
  331. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/update.js +0 -0
  332. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/framework/version.js +0 -0
  333. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/gina-dev.1.md +0 -0
  334. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/gina-framework.1.md +0 -0
  335. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/gina.1.md +0 -0
  336. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/helper.js +0 -0
  337. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/add.js +0 -0
  338. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/arguments.json +0 -0
  339. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/export.js +0 -0
  340. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/help.js +0 -0
  341. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/help.txt +0 -0
  342. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/import.js +0 -0
  343. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/i18n/scan.js +0 -0
  344. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/image/arguments.json +0 -0
  345. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/image/build.js +0 -0
  346. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/image/help.js +0 -0
  347. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/image/help.txt +0 -0
  348. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/image/man.js +0 -0
  349. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/index.js +0 -0
  350. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/inspector/help.js +0 -0
  351. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/inspector/help.txt +0 -0
  352. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/inspector/open.js +0 -0
  353. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/man-render.js +0 -0
  354. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/minion/arguments.json +0 -0
  355. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/minion/help.js +0 -0
  356. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/minion/help.txt +0 -0
  357. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/minion/kill.js +0 -0
  358. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/minion/list.js +0 -0
  359. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/msg.json +0 -0
  360. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/help.js +0 -0
  361. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/help.txt +0 -0
  362. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/inc/scan.js +0 -0
  363. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/list.js +0 -0
  364. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/reset.js +0 -0
  365. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/port/set.js +0 -0
  366. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/add.js +0 -0
  367. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/arguments.json +0 -0
  368. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/backup.js +0 -0
  369. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/build.js +0 -0
  370. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/help.js +0 -0
  371. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/help.txt +0 -0
  372. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/import.js +0 -0
  373. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/list.js +0 -0
  374. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/man.js +0 -0
  375. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/move.js +0 -0
  376. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/remove.js +0 -0
  377. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/rename.js +0 -0
  378. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/restart.js +0 -0
  379. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/restore.js +0 -0
  380. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/rm.js +0 -0
  381. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/start.js +0 -0
  382. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/status.js +0 -0
  383. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/project/stop.js +0 -0
  384. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/arguments.json +0 -0
  385. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/help.js +0 -0
  386. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/help.txt +0 -0
  387. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/list.js +0 -0
  388. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/remove.js +0 -0
  389. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/protocol/set.js +0 -0
  390. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/add.js +0 -0
  391. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/help.js +0 -0
  392. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/help.txt +0 -0
  393. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/link-local.js +0 -0
  394. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/link-production.js +0 -0
  395. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/list.js +0 -0
  396. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/remove.js +0 -0
  397. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/rm.js +0 -0
  398. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/scope/use.js +0 -0
  399. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/secrets/arguments.json +0 -0
  400. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/secrets/check.js +0 -0
  401. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/secrets/help.js +0 -0
  402. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/secrets/help.txt +0 -0
  403. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/secrets/scan.js +0 -0
  404. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/service/help.js +0 -0
  405. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/service/help.txt +0 -0
  406. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/service/list.js +0 -0
  407. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/service/man.js +0 -0
  408. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/service/start.js +0 -0
  409. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd/view/add.js +0 -0
  410. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd-status-format/package.json +0 -0
  411. /package/framework/{v0.5.14 → v0.5.15}/lib/cmd-status-format/src/main.js +0 -0
  412. /package/framework/{v0.5.14 → v0.5.15}/lib/collection/README.md +0 -0
  413. /package/framework/{v0.5.14 → v0.5.15}/lib/collection/build.json +0 -0
  414. /package/framework/{v0.5.14 → v0.5.15}/lib/collection/package.json +0 -0
  415. /package/framework/{v0.5.14 → v0.5.15}/lib/collection/src/main.js +0 -0
  416. /package/framework/{v0.5.14 → v0.5.15}/lib/config.js +0 -0
  417. /package/framework/{v0.5.14 → v0.5.15}/lib/connector-config/package.json +0 -0
  418. /package/framework/{v0.5.14 → v0.5.15}/lib/connector-config/src/main.js +0 -0
  419. /package/framework/{v0.5.14 → v0.5.15}/lib/connector-registry/package.json +0 -0
  420. /package/framework/{v0.5.14 → v0.5.15}/lib/connector-registry/src/main.js +0 -0
  421. /package/framework/{v0.5.14 → v0.5.15}/lib/cron/README.md +0 -0
  422. /package/framework/{v0.5.14 → v0.5.15}/lib/cron/package.json +0 -0
  423. /package/framework/{v0.5.14 → v0.5.15}/lib/cron/src/main.js +0 -0
  424. /package/framework/{v0.5.14 → v0.5.15}/lib/domain/LICENSE +0 -0
  425. /package/framework/{v0.5.14 → v0.5.15}/lib/domain/README.md +0 -0
  426. /package/framework/{v0.5.14 → v0.5.15}/lib/domain/package.json +0 -0
  427. /package/framework/{v0.5.14 → v0.5.15}/lib/domain/src/main.js +0 -0
  428. /package/framework/{v0.5.14 → v0.5.15}/lib/generator/index.js +0 -0
  429. /package/framework/{v0.5.14 → v0.5.15}/lib/i18n/package.json +0 -0
  430. /package/framework/{v0.5.14 → v0.5.15}/lib/i18n/src/main.js +0 -0
  431. /package/framework/{v0.5.14 → v0.5.15}/lib/image-build/package.json +0 -0
  432. /package/framework/{v0.5.14 → v0.5.15}/lib/image-build/src/main.js +0 -0
  433. /package/framework/{v0.5.14 → v0.5.15}/lib/index.js +0 -0
  434. /package/framework/{v0.5.14 → v0.5.15}/lib/inherits/LICENSE +0 -0
  435. /package/framework/{v0.5.14 → v0.5.15}/lib/inherits/README.md +0 -0
  436. /package/framework/{v0.5.14 → v0.5.15}/lib/inherits/package.json +0 -0
  437. /package/framework/{v0.5.14 → v0.5.15}/lib/inherits/src/main.js +0 -0
  438. /package/framework/{v0.5.14 → v0.5.15}/lib/inspector-events/package.json +0 -0
  439. /package/framework/{v0.5.14 → v0.5.15}/lib/inspector-events/src/main.js +0 -0
  440. /package/framework/{v0.5.14 → v0.5.15}/lib/inspector-redact/package.json +0 -0
  441. /package/framework/{v0.5.14 → v0.5.15}/lib/inspector-redact/src/main.js +0 -0
  442. /package/framework/{v0.5.14 → v0.5.15}/lib/instrument/package.json +0 -0
  443. /package/framework/{v0.5.14 → v0.5.15}/lib/instrument/src/main.js +0 -0
  444. /package/framework/{v0.5.14 → v0.5.15}/lib/job/package.json +0 -0
  445. /package/framework/{v0.5.14 → v0.5.15}/lib/job/src/main.js +0 -0
  446. /package/framework/{v0.5.14 → v0.5.15}/lib/job-store.js +0 -0
  447. /package/framework/{v0.5.14 → v0.5.15}/lib/json-config-header/package.json +0 -0
  448. /package/framework/{v0.5.14 → v0.5.15}/lib/json-config-header/src/main.js +0 -0
  449. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/README.md +0 -0
  450. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/package.json +0 -0
  451. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/default/index.js +0 -0
  452. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/file/index.js +0 -0
  453. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  454. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  455. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/mq/index.js +0 -0
  456. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/mq/listener.js +0 -0
  457. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/containers/mq/speaker.js +0 -0
  458. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/helper.js +0 -0
  459. /package/framework/{v0.5.14 → v0.5.15}/lib/logger/src/main.js +0 -0
  460. /package/framework/{v0.5.14 → v0.5.15}/lib/math/index.js +0 -0
  461. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-dispatch/package.json +0 -0
  462. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-dispatch/src/main.js +0 -0
  463. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-http/package.json +0 -0
  464. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-http/src/main.js +0 -0
  465. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-server/package.json +0 -0
  466. /package/framework/{v0.5.14 → v0.5.15}/lib/mcp-server/src/main.js +0 -0
  467. /package/framework/{v0.5.14 → v0.5.15}/lib/merge/README.md +0 -0
  468. /package/framework/{v0.5.14 → v0.5.15}/lib/merge/package.json +0 -0
  469. /package/framework/{v0.5.14 → v0.5.15}/lib/merge/src/main.js +0 -0
  470. /package/framework/{v0.5.14 → v0.5.15}/lib/metrics/package.json +0 -0
  471. /package/framework/{v0.5.14 → v0.5.15}/lib/metrics/src/main.js +0 -0
  472. /package/framework/{v0.5.14 → v0.5.15}/lib/model.js +0 -0
  473. /package/framework/{v0.5.14 → v0.5.15}/lib/nunjucks-filters/README.md +0 -0
  474. /package/framework/{v0.5.14 → v0.5.15}/lib/nunjucks-filters/package.json +0 -0
  475. /package/framework/{v0.5.14 → v0.5.15}/lib/nunjucks-filters/src/main.js +0 -0
  476. /package/framework/{v0.5.14 → v0.5.15}/lib/nunjucks-resolver/package.json +0 -0
  477. /package/framework/{v0.5.14 → v0.5.15}/lib/nunjucks-resolver/src/main.js +0 -0
  478. /package/framework/{v0.5.14 → v0.5.15}/lib/proc.js +0 -0
  479. /package/framework/{v0.5.14 → v0.5.15}/lib/routing/README.md +0 -0
  480. /package/framework/{v0.5.14 → v0.5.15}/lib/routing/build.json +0 -0
  481. /package/framework/{v0.5.14 → v0.5.15}/lib/routing/package.json +0 -0
  482. /package/framework/{v0.5.14 → v0.5.15}/lib/routing/src/main.js +0 -0
  483. /package/framework/{v0.5.14 → v0.5.15}/lib/routing/src/radix.js +0 -0
  484. /package/framework/{v0.5.14 → v0.5.15}/lib/routing-introspect/package.json +0 -0
  485. /package/framework/{v0.5.14 → v0.5.15}/lib/routing-introspect/src/main.js +0 -0
  486. /package/framework/{v0.5.14 → v0.5.15}/lib/secrets/package.json +0 -0
  487. /package/framework/{v0.5.14 → v0.5.15}/lib/secrets/src/backends/env.js +0 -0
  488. /package/framework/{v0.5.14 → v0.5.15}/lib/secrets/src/main.js +0 -0
  489. /package/framework/{v0.5.14 → v0.5.15}/lib/session-store.js +0 -0
  490. /package/framework/{v0.5.14 → v0.5.15}/lib/shell.js +0 -0
  491. /package/framework/{v0.5.14 → v0.5.15}/lib/state.js +0 -0
  492. /package/framework/{v0.5.14 → v0.5.15}/lib/swig-filters/README.md +0 -0
  493. /package/framework/{v0.5.14 → v0.5.15}/lib/swig-filters/package.json +0 -0
  494. /package/framework/{v0.5.14 → v0.5.15}/lib/swig-filters/src/main.js +0 -0
  495. /package/framework/{v0.5.14 → v0.5.15}/lib/swig-resolver/package.json +0 -0
  496. /package/framework/{v0.5.14 → v0.5.15}/lib/swig-resolver/src/main.js +0 -0
  497. /package/framework/{v0.5.14 → v0.5.15}/lib/template-loaders/package.json +0 -0
  498. /package/framework/{v0.5.14 → v0.5.15}/lib/template-loaders/src/loaders/http.js +0 -0
  499. /package/framework/{v0.5.14 → v0.5.15}/lib/template-loaders/src/loaders/memory.js +0 -0
  500. /package/framework/{v0.5.14 → v0.5.15}/lib/template-loaders/src/main.js +0 -0
  501. /package/framework/{v0.5.14 → v0.5.15}/lib/url/README.md +0 -0
  502. /package/framework/{v0.5.14 → v0.5.15}/lib/url/index.js +0 -0
  503. /package/framework/{v0.5.14 → v0.5.15}/lib/url/routing.json +0 -0
  504. /package/framework/{v0.5.14 → v0.5.15}/lib/uuid/package.json +0 -0
  505. /package/framework/{v0.5.14 → v0.5.15}/lib/uuid/src/main.js +0 -0
  506. /package/framework/{v0.5.14 → v0.5.15}/lib/validator.js +0 -0
  507. /package/framework/{v0.5.14 → v0.5.15}/lib/watcher/package.json +0 -0
  508. /package/framework/{v0.5.14 → v0.5.15}/lib/watcher/src/main.js +0 -0
  509. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-framing/package.json +0 -0
  510. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-framing/src/main.js +0 -0
  511. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-query/package.json +0 -0
  512. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-query/src/main.js +0 -0
  513. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-session/package.json +0 -0
  514. /package/framework/{v0.5.14 → v0.5.15}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
6
  and is generated by [Changie](https://github.com/miniscruff/changie).
7
7
 
8
8
 
9
+ ## 0.5.15 - 2026-07-11
10
+ ### Added
11
+ * A popin/dialog trigger can now opt out of the hover/focus preload with `data-gina-dialog-preload="false"` (honored on legacy `data-gina-popin-url` triggers too; the value is matched case-insensitively so a templated "False" cannot fail open): the warm-up GET no longer fires on hover or focus for that trigger, and its click loads normally, at click time. Declare it on any trigger whose GET has server-side effects — the preload otherwise assumes GET is safe to fire early, per HTTP semantics.
12
+ * Client-side components — standards-based Web Components conventions with zero dependencies: `gina view:add` scaffolds now ship a reference custom element (a server-rendered light-DOM partial paired with a behavior-only class — HTML and JS stay separated, repeatable markup clones from a server-rendered `<template>`), and the conventions are documented end-to-end (placement in `public/js/` + one `templates.json` entry, SSR hydration via attributes + a JSON `data-*` payload, data-down/events-up communication, SEO-first light DOM, strict-CSP compatibility, the reserved `gina-*` tag prefix). Components upgrade automatically inside popin/XHR-injected content — no rebinding; e2e coverage locks the popin auto-upgrade, strict-CSP, SSR-hydration, and no-JS crawler-equivalence contracts.
13
+ * Dev Inspector component observability: the View tab now shows a component census — instances per custom-element tag, with a red indicator for undefined components awaiting upgrade (a typo'd tag name or a missing/failed definition script is no longer a silent failure) — and the Events tab surfaces client-side component protocol events (composed bubbling `<tag>:<verb>` CustomEvents) captured by a dev-only statusbar dispatchEvent wrap: event name, emitting element and timestamp always; `detail` values only when `settings.inspector.events.captureArgs` is opted in (the existing server-side knob, now whispered to the browser) and always passed through the Inspector's redaction rules. The census and events follow XHR/popin fragment renders over the per-tab Inspector channel.
14
+ * FormValidator now recognises form-associated custom elements (FACEs). A custom element declaring `static formAssociated = true` with a `name` attribute and a `.value` getter now participates in a bound form like a native control: it is picked up by the bind layer (auto-id, dirty tracking, live-check on its composed bubbling `change`), validated against a rule keyed to its name at both live-check and submit, has its errors rendered, and its value rides the XHR payload. Native controls are unaffected.
15
+ ### Fixed
16
+ * Server-side auto-validation now works: gina.plugins.Validator(<rules>, data, formId[, culture]) used to crash on its first field with a null-$fields TypeError, so validating a data object against a rules object had never worked server-side. Plain rules now validate and return { isValid(), error, data }, and the trailing culture localises the error labels from the bundle catalog. The same guard lets a rule field that is missing from the client form collection reach the intended console warning instead of throwing. Conditional (_case_) rules remain client-only.
17
+ * A form submit whose response redirected into a popin could open that popin before its content arrived. The validator now opens the popin through the load handle, so the response body is injected first, and a failed load no longer opens an empty popin. A redirect that targets a different popin than the one currently open also closes the original popin, as intended.
18
+ * Fixed the published `gina.popin` accessors being bound to the first Popin instance's registry: `getPopinByName`/`getPopinById` resolved only the boot popin and `gina.popin.activePopinId` never updated, so a form submit redirecting into a different popin always failed with a 422 `Popin not found` error. The popin registry is now module-shared across every `new Popin()` (with `gina.popin` published once as a live object and the active-popin id written through from every instance), so the published accessors resolve every registered popin, click-time in-page dialog registrations are visible to `getActivePopin()`, and cross-popin form redirects work end-to-end.
19
+ * The documented data-gina-form-upload-<reset|delete>-trigger id override now resolves — the attribute name was built incorrectly so the override could never match — and the trigger-not-found warning suggests the correct element id.
20
+ * Upload preview reset/delete now actually removes the preview image and its trigger link — the cleanup tail was dead code behind an undefined identifier, so every reset/delete click threw a ReferenceError, previews were only inline-hidden, and re-uploads accumulated duplicate trigger ids (a second cycle surfaced a removeListener TypeError). Multi-file removal passes iterate a static snapshot so they no longer crash mid-iteration, and the form click proxy tolerates a click target removed during its own dispatch.
21
+ * Removing an uploaded file now restores a class-hidden add-affordance (new optional data-gina-form-upload-hidden-class attribute names the class to lift from the input and its parent) and dispatches the new data-gina-form-upload-on-reset / data-gina-form-upload-on-delete callbacks — a bare identifier registered on window, like data-gina-form-upload-on-success — once per removal action, after the removal request goes out, with { $upload, bindingType, files }; the restore no longer aborts the removal pass when the parent was inline-hidden.
22
+ * Static-asset 404s and framework error responses no longer bypass X-Powered-By suppression: settings.json server.hidePoweredBy now gates the per-request emission on both engines (previously it covered only the Isaac /_gina/* sites), and env.json server.response.header overrides now reach HTTP/1.1 error responses (the flush previously ran before the override loop, so the loop was skipped)
23
+ * The programmatic `$form.send(FormData)` submit path now nests bracket-notation field names (e.g. `item[0][id]`) into objects/arrays before posting, matching the declarative submit path — previously they were transmitted as literal JSON keys, so the server exposed `item[0][id]` as an un-nested key. File uploads and plain-object `send()` payloads are unchanged.
24
+ * A multipart/form-data POST carrying only text fields (no file parts) no longer hangs until a front-proxy timeout. The request-lifecycle continuation previously resumed only from inside the per-file write-stream finish loop, so a body with zero file parts ran that loop zero times and never resumed; it now resumes directly when there are no file parts. Non-file fields remain dropped from req.post (the documented multipart limitation) — only the hang is fixed. The parse runs before routing, so any path was affected, unauthenticated.
25
+ * A malformed, empty, or non-multipart request body sent with a multipart/form-data content-type no longer takes the bundle down. The parser error (previously unhandled — it surfaced as an uncaughtException that triggered a SIGTERM shutdown, so a single unauthenticated request could kill a worker) is now caught and answered with HTTP 400. Server-side path shared by both engines.
26
+
9
27
  ## 0.5.14 - 2026-07-09
10
28
  ### Added
11
29
  * Stable publishes now assert README.md carries exactly one "What's in <version>" section, naming the version being released (script/check_readme_freshness.js, wired into the release prepare step). The publish aborts when the section is missing, duplicated, or names a different version. Previously the gate only asserted that README.md had been touched since the previous stable tag, which is blind to a wrong edit: adding a new section while leaving the prior one in place touches the file, so the gate passed while shipping a README whose newest release was buried under older ones. The version-match assertion is skipped on prerelease targets, where the drafted stable heading legitimately precedes the version bump. Alpha publishes skip the gate entirely.
package/README.md CHANGED
@@ -42,12 +42,17 @@ open https://localhost:3100
42
42
 
43
43
  > **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
44
44
 
45
- ## What's in 0.5.14
46
-
47
- - **Fixeda non-string validator error label no longer takes the form down.** The validator engine discards it, warns once naming the rule, and renders that rule's English default instead covering all four sources a label can arrive from: a bundle catalog's `_validator` node, a `gina.validator.setErrorLabels()` override, a rule's `errorMessage` argument, and a field's `error`. Previously the engine threw `TypeError: target.match is not a function`, which aborted the validation pass no message rendered, the form never submitted through Gina, and every later form on the page was left unbound and silently fell back to a native browser submit with no client-side validation. `compileError()` also no longer throws when a backend field error carries no `{{placeholder}}`, and the `query` rule keeps its resolved label when a backend field error is not a string.
48
- - **Fixed — a field validation error no longer exposes a raw server stack trace to the browser.** When an `ApiError` is built for a client field and the underlying error has no message (so the framework falls back to its stack) or an application passes a stack string directly — the per-field message is replaced with a neutral one (`An error occurred`) outside local scope; the full stack is kept in local scope for debugging. This closes the one channel the JSON error-body stack strip could not reach: the per-field message map the form validator renders verbatim.
49
- - **Fixed — a changing validator message on a still-invalid field is re-announced to assistive technology.** When a field stays in error while its message changes — a different rule now fails, the message is value-dependent, or a late `setErrorLabels()` overlay changed the labelthe new message is re-announced through the form's ARIA live region, so screen readers no longer keep announcing the first message. The visible message already refreshed; this fixes the announcement to match.
50
- - **Addedstable publishes assert the README carries exactly one, correctly-named "What's in" section.** The release step now aborts a stable publish when the section is missing, duplicated, or names a different version previously it only checked that the file had been touched, which is blind to a wrong edit.
45
+ ## What's in 0.5.15
46
+
47
+ - **Addedclient-side components (Web Components).** Standards-based, zero-dependency conventions for stateful client widgets: `gina view:add` scaffolds a reference custom element (a server-rendered light-DOM partial paired with a behavior-only class, HTML and JS kept separate), components upgrade automatically inside popin/XHR-injected content with no rebinding, and the whole pattern is SEO/GEO-first (meaningful content ships in the initial server-rendered HTML) and strict-CSP compatible. Form-associated custom elements (`static formAssociated = true` + a `name` + a `.value` getter) participate in `FormValidator` like native controls collected, live-checked, validated, serialized into the AJAX payload, and error-rendered. Live-data components ride the `connectedCallback`/`disconnectedCallback` lifecycle over `method:"ws"` routes or SSE. The dev Inspector gains a component census (with a red indicator for undefined components awaiting upgrade) and captures client-side `<tag>:<verb>` component events.
48
+ - **Added — a popin/dialog trigger can opt out of the hover/focus preload.** Declare `data-gina-dialog-preload="false"` on any trigger whose GET has server-side effects and the warm-up GET no longer fires on hover or focus; the click loads normally, at click time. Existing triggers are unaffected.
49
+ - **Fixed — `gina.popin` sees every popin.** The popin registry is now shared across every `Popin` instance, so `getPopinByName()` / `getPopinById()` / `activePopinId` resolve every registered popin a form submitted from a popin whose response redirects into a *different* popin no longer fails with a 422 `Popin not found` error.
50
+ - **Fixeda redirect into a popin opens content-first.** The popin's body is injected before it opens, so a slow or failed load no longer flashes (or leaves open) an empty popin.
51
+ - **Fixed — server-side validation of a data object against a rules object works.** `gina.plugins.Validator(rules, data, formId[, culture])` used to crash on its first field; plain rules now validate and return `{ isValid(), error, data }`, with the optional `culture` localising labels from the bundle catalog. Conditional (`_case_`) rules remain client-only.
52
+ - **Fixed — `$form.send(FormData)` nests bracket-notation field names.** `item[0][id]`-style names now nest into objects/arrays before posting (matching the declarative submit path), instead of being transmitted as literal JSON keys.
53
+ - **Fixed — a fields-only multipart POST no longer hangs, and a malformed multipart body no longer crashes the bundle.** A `multipart/form-data` POST with no file parts previously hung until a front-proxy timeout, and a malformed/empty multipart body could take a worker down via an uncaught parser error (an unauthenticated single-request DoS); both are fixed — the fields-only case resumes directly, and the parser error is answered with HTTP 400.
54
+ - **Fixed — `X-Powered-By` suppression reaches static and error responses.** `settings.json > server.hidePoweredBy: true` now suppresses the header on every response gina originates (routed pages, static serves, static/traversal 404s, framework error pages) on both engines, and an `env.json` `X-Powered-By` override now replaces the value on HTTP/1.1 error responses too.
55
+ - **Fixed — upload reset/delete removes the preview, restores class-hidden inputs, and gains removal callbacks.** Clicking a preview's **Reset**/**Delete** link now actually removes the preview image, its trigger link, and the generated hidden fields (the cleanup was previously dead code that threw a `ReferenceError`); the add-affordance restore lifts a `data-gina-form-upload-hidden-class`, the `-reset-trigger`/`-delete-trigger` id override now resolves, and new `data-gina-form-upload-on-reset` / `-on-delete` callbacks fire once per removal.
51
56
 
52
57
  See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
53
58
 
package/ROADMAP.md CHANGED
@@ -39,6 +39,7 @@ This roadmap covers planned features, architectural improvements, new connectors
39
39
  | **Q3 2026** | `0.5.12` ✅ | FormValidator built-in rule labels localise from the per-bundle i18n catalog (`_validator.<rule>`) on both the client and server, with a `gina.validator.setErrorLabels()` per-key override · per-bundle i18n catalogs activate URL-prefix / cookie / `Accept-Language` culture negotiation and `t()` at boot, and the negotiated culture now reaches every request (it previously resolved to `en`/empty #B83, and was dropped on warm/cached reloads #B84) · `data-gina-form-rule` forms auto-boot the client validator · **Fixed**: validator correctness (empty-required single message #B78, cross-field `is` empty operand #B82, submit trigger stays operable via `aria-disabled` #B76), popin / redirect robustness (#B80 / #B77 / #B75, static directory-to-index 301 outside dev), and CLI robustness (malformed `@<project>` rejected #B69, `GINA_HOMEDIR` re-export across child commands, `project:start` / `service:start` delegation, zero-bundle bulk commands, `framework:add` install hint #B81) |
40
40
  | **Q3 2026** | `0.5.13` ✅ | Unrenderable `_validator` catalog labels are caught at bundle boot — an unknown `%`-token (anything but `%l` / `%n` / `%s`, including a literal percent glued to letters as in `20%sur le prix`), a non-string label, or a non-object `_validator` section now warns and names the offending rule and catalog file. Warn-only: the catalog still loads, so a translation typo surfaces in the boot log instead of in production copy |
41
41
  | **Q3 2026** | `0.5.14` ✅ | Validator + error-handling robustness — a non-string validator error label now degrades to the rule's English default instead of throwing (the throw had aborted validation and left every later form on the page unbound), across all four label sources · a per-field `ApiError` message no longer leaks a raw server stack trace to the browser outside local scope · a changing validator message on a still-invalid field re-announces through the ARIA live region · release: stable publishes assert a single, correctly-named README "What's in" section |
42
+ | **Q3 2026** | `0.5.15` ✅ | Client-side components (Web Components) — standards-based, zero-dependency conventions for stateful client widgets: `gina view:add` scaffolds a reference custom element (server-rendered light-DOM partial + behavior-only class), components upgrade automatically in popin/XHR-injected content with no rebinding, form-associated custom elements participate in `FormValidator`, live-data components ride the connect/disconnect lifecycle over `method:"ws"` routes or SSE, and the dev Inspector gains a component census + client component-event capture · a popin/dialog trigger can opt out of the hover/focus preload (`data-gina-dialog-preload="false"`) · **Fixed**: `gina.popin` sees every popin so a form can redirect into a different one (#B90), a redirect into a popin opens content-first (#B79), server-side validation of a data object against a rules object works (#B85), `$form.send(FormData)` nests bracket-notation field names (#B92), a fields-only multipart POST no longer hangs (#B93) and a malformed multipart body no longer crashes the bundle (#B97), `X-Powered-By` suppression reaches static and error responses (#B96), and upload reset/delete removes the preview, restores class-hidden inputs, and gains removal callbacks (#B94/#B95) |
42
43
  | **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
43
44
  | **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
44
45
 
@@ -56,6 +57,7 @@ This roadmap covers planned features, architectural improvements, new connectors
56
57
  | ✅ | **Per-bundle framework version** — Declare `"gina_version": "0.1.8"` on any bundle entry in `manifest.json` to pin that bundle to a specific installed framework version. The socket server continues running its own version; only the spawned bundle process uses the declared version. Validated against the tracked version list in `main.json` before start. `--gina-version=X.Y.Z` flag on `bundle:start` provides the same override without touching config files. | `0.3.0` | 2026-03-31 |
57
58
  | ✅ | **PATCH method** — `req.patch` populated with the parsed request body (JSON or form-encoded). `req.body` aliases `req.patch`. URI params merged. `"method": "PATCH"` valid in `routing.json`. Use PATCH for partial updates (only sent fields change) vs PUT which replaces the full resource. | `0.3.0` | 2026-03-31 |
58
59
  | ✅ | **HEAD method** — `req.head` populated with query-string and URI params. Full controller action runs so all response headers are set correctly; body is suppressed before writing to the wire. Both `render()` and `renderJSON()` honour HEAD. Routes declared as `GET` automatically accept HEAD — no extra routing rule needed. | `0.3.0` | 2026-03-31 |
60
+ | ✅ | **Client-side components (Web Components)** — Standards-based conventions for stateful client widgets: custom elements v1, zero dependency, no build tooling. Server-rendered light-DOM authoring keeps HTML (designer) and JS (developer) separated — the behavior-only class binds its own server-rendered subtree and holds no markup strings (repeatable markup clones from a server-rendered `<template>`). Components upgrade automatically in popin/XHR-injected content with no rebinding; SEO/GEO-first (meaningful content ships in the initial server-rendered HTML). `gina view:add` scaffolds a reference component (engine partial + behavior-only class); e2e coverage locks popin auto-upgrade, strict-CSP compatibility (real nonce'd header, no `unsafe-inline`), SSR hydration from attributes + a JSON `data-*` payload, and no-JS crawler equivalence. The `gina-*` tag prefix is reserved for framework components. Form-associated custom elements participate in FormValidator — a named component exposing a `.value` getter is collected, validated, serialized into the AJAX payload, and error-rendered like a native control (client-side live-check on its composed bubbling `change`, dirty-tracking, and auto-id), so long as it declares `static formAssociated = true`, carries a `name`, and fires a composed `change` on commit. Live-data components ride the same lifecycle — open the connection in `connectedCallback`, close it in `disconnectedCallback` (popin close then tears it down automatically) — paired with `method:"ws"` routes or SSE via `renderStream()`, with per-animation-frame batching guidance for high-frequency streams; the lifecycle contract is executed against a live HTTP/2 extended-CONNECT loopback in the test suite. Dev-mode Inspector observability: the View tab carries a component census with a red undefined-components indicator (a typo'd tag or a missing definition script is no longer a silent failure), and the Events tab surfaces client-side `<tag>:<verb>` component events — metadata always, `detail` values only behind the existing `inspector.events.captureArgs` opt-in. | `0.5.15` | 2026-07-11 |
59
61
 
60
62
  ---
61
63
 
@@ -0,0 +1 @@
1
+ 0.5.15
@@ -158,6 +158,109 @@
158
158
  return _rdcWalk(value, 0, [], domHits);
159
159
  }
160
160
 
161
+ // ── Component observability (#CC6) ────────────────────────────────────
162
+ // Census: instances per custom-element tag, split defined/awaiting-upgrade.
163
+ // An undefined custom tag (typo'd name, missing or failed definition
164
+ // script) is otherwise a perfectly silent failure — an inert inline
165
+ // element. Collected in-page because the Inspector SPA has no DOM access
166
+ // in bound/COOP mode; rides additively as user.view.components.
167
+ function _ginaComponentCensus() {
168
+ var census = { defined: {}, undefined: {}, undefinedCount: 0 };
169
+ try {
170
+ var totals = {};
171
+ var all = document.querySelectorAll('*');
172
+ for (var ci = 0; ci < all.length; ci++) {
173
+ var tag = all[ci].tagName ? all[ci].tagName.toLowerCase() : '';
174
+ if (tag.indexOf('-') === -1) continue;
175
+ totals[tag] = (totals[tag] || 0) + 1;
176
+ }
177
+ // the platform's own awaiting-upgrade selector
178
+ var pending = document.querySelectorAll(':not(:defined)');
179
+ for (var cp = 0; cp < pending.length; cp++) {
180
+ var ptag = pending[cp].tagName ? pending[cp].tagName.toLowerCase() : '';
181
+ if (ptag.indexOf('-') === -1) continue;
182
+ census.undefined[ptag] = (census.undefined[ptag] || 0) + 1;
183
+ census.undefinedCount++;
184
+ }
185
+ for (var ct in totals) {
186
+ var pendingCount = census.undefined[ct] || 0;
187
+ if (totals[ct] > pendingCount) census.defined[ct] = totals[ct] - pendingCount;
188
+ }
189
+ } catch (e) { /* best-effort — never break the page */ }
190
+ return census;
191
+ }
192
+ function _ginaAttachCensus() {
193
+ try {
194
+ var u = window.__ginaData && window.__ginaData.user;
195
+ if (u && u.view && typeof u.view === 'object') {
196
+ u.view.components = _ginaComponentCensus();
197
+ }
198
+ } catch (e) {}
199
+ }
200
+ var _ginaCensusTimer = null;
201
+ // XHR/popin updates publish BEFORE the fragment lands in the DOM — refresh
202
+ // the census (and republish) once, shortly after, so injected components
203
+ // and their upgrade state are reflected.
204
+ function _ginaScheduleCensusRefresh() {
205
+ if (_ginaCensusTimer) return;
206
+ _ginaCensusTimer = setTimeout(function () {
207
+ _ginaCensusTimer = null;
208
+ _ginaAttachCensus();
209
+ _ginaPublish();
210
+ }, 150);
211
+ }
212
+
213
+ // ── Component protocol events (#CC6) ──────────────────────────────────
214
+ // Dev-only visibility of composed, bubbling CustomEvents following the
215
+ // component convention `<tag>:<verb>` (dashed tag prefix — the framework's
216
+ // own dot-namespaced internal events never match). Event name + target +
217
+ // timestamp always ride; the event `detail` VALUES ride only when the
218
+ // events capture gate is opted in server-side (whispered as
219
+ // gina.inspectorEventsCaptureArgs) — arbitrary detail cannot be
220
+ // auto-redacted, so values stay off by default, and captured values still
221
+ // pass the redaction walk above.
222
+ var _ginaEvtBuf = [];
223
+ var _ginaEvtMax = 200;
224
+ var _ginaEvtCaptureDetail = !!(d.gina && d.gina.inspectorEventsCaptureArgs === true);
225
+ var _ginaEvtName = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)+:./;
226
+ var _ginaEvtTimer = null;
227
+ function _ginaEvtPublish() {
228
+ if (_ginaEvtTimer) return;
229
+ _ginaEvtTimer = setTimeout(function () {
230
+ _ginaEvtTimer = null;
231
+ try {
232
+ var u = window.__ginaData && window.__ginaData.user;
233
+ if (u) u.clientEvents = _ginaEvtBuf;
234
+ _ginaPublish();
235
+ } catch (e) {}
236
+ }, 250);
237
+ }
238
+ try {
239
+ var _ginaNativeDispatch = EventTarget.prototype.dispatchEvent;
240
+ EventTarget.prototype.dispatchEvent = function (ev) {
241
+ try {
242
+ if (ev && ev.bubbles && ev.composed && typeof ev.type === 'string'
243
+ && _ginaEvtName.test(ev.type)) {
244
+ var _evEntry = {
245
+ name : ev.type,
246
+ t : Date.now(),
247
+ target : (this && this.tagName)
248
+ ? String(this.tagName).toLowerCase() + (this.id ? '#' + this.id : '')
249
+ : 'non-element'
250
+ };
251
+ if (_ginaEvtCaptureDetail && typeof ev.detail !== 'undefined') {
252
+ try { _evEntry.meta = _rdc_redact(ev.detail, null); }
253
+ catch (x) { _evEntry.meta = '[uncapturable]'; }
254
+ }
255
+ _ginaEvtBuf.push(_evEntry);
256
+ if (_ginaEvtBuf.length > _ginaEvtMax) _ginaEvtBuf.shift();
257
+ _ginaEvtPublish();
258
+ }
259
+ } catch (e) { /* observability must never break dispatch */ }
260
+ return _ginaNativeDispatch.apply(this, arguments);
261
+ };
262
+ } catch (e) { /* prototype not writable — skip the wrap */ }
263
+
161
264
  // ── ginaToolbar shim ──────────────────────────────────────────────────
162
265
  // gina.min.js is a stale build that creates its own window.ginaToolbar
163
266
  // with a loadData function that accesses removed DOM elements
@@ -201,6 +304,11 @@
201
304
  }
202
305
  }
203
306
 
307
+ // #CC6 — refresh the component census with the update, and again
308
+ // shortly after (an XHR fragment lands in the DOM after this publish)
309
+ _ginaAttachCensus();
310
+ _ginaScheduleCensusRefresh();
311
+
204
312
  // Sync localStorage for the Inspector's fallback channel
205
313
  try { localStorage.setItem('__ginaData', JSON.stringify(window.__ginaData)); } catch (e) {}
206
314
  _ginaPublish();
@@ -249,6 +357,8 @@
249
357
  window.ginaToolbar = _shim;
250
358
  }
251
359
 
360
+ // #CC6 — the initial component census rides the first publish
361
+ _ginaAttachCensus();
252
362
  // Publish data for Inspector via localStorage (works regardless of opener)
253
363
  try { localStorage.setItem('__ginaData', JSON.stringify(d)); } catch (e) {}
254
364
  _ginaPublish();
@@ -1228,6 +1228,18 @@ body {
1228
1228
  border-top: none;
1229
1229
  }
1230
1230
 
1231
+ /* #CC6 — component census (View tab) */
1232
+ .bm-comp-undefined {
1233
+ margin: 2px 0 4px;
1234
+ font-weight: 600;
1235
+ color: var(--err);
1236
+ }
1237
+
1238
+ .bm-comp-defined {
1239
+ margin: 2px 0 4px;
1240
+ color: var(--text-dim);
1241
+ }
1242
+
1231
1243
  /* Forms tab — accordion card for each form ──────────────────────────────── */
1232
1244
  .bm-form-card {
1233
1245
  background: var(--bg2);
@@ -138,8 +138,8 @@
138
138
  /** @constant {RegExp} Matches HTTP/HTTPS URLs */
139
139
  var RE_URL = /^https?:\/\//i;
140
140
 
141
- /** @constant {Object} Keys to skip when rendering the View tab */
142
- var VIEW_SKIP = { scripts: 1, stylesheets: 1 };
141
+ /** @constant {Object} Keys to skip when rendering the View tab (components renders bespoke — #CC6) */
142
+ var VIEW_SKIP = { scripts: 1, stylesheets: 1, components: 1 };
143
143
  /** @constant {Object} Keys whose children are recursively flattened into PROPERTIES */
144
144
  var VIEW_FLATTEN = { html: 1, properties: 1 };
145
145
 
@@ -633,6 +633,47 @@
633
633
  + '</div>';
634
634
  }
635
635
 
636
+ /**
637
+ * #CC6 — render the component census as a View-tab section. The census is
638
+ * collected in-page by the statusbar (the SPA has no DOM access in bound
639
+ * or COOP mode) and rides `user.view.components` additively. Undefined
640
+ * custom elements — a typo'd tag name, a missing or failed definition
641
+ * script — are otherwise a perfectly silent failure (an inert inline
642
+ * element), so they surface first, in red.
643
+ * @inner
644
+ * @param {Object} census - { defined: {tag: count}, undefined: {tag: count}, undefinedCount: number }
645
+ * @returns {string} HTML string (empty when the page has no custom elements)
646
+ */
647
+ function renderComponentsSection(census) {
648
+ var defined = (census && census.defined) || {};
649
+ var pending = (census && census.undefined) || {};
650
+ var defKeys = Object.keys(defined);
651
+ var undKeys = Object.keys(pending);
652
+ if (!defKeys.length && !undKeys.length) { return ''; }
653
+ var h = '<div class="bm-section">'
654
+ + '<h2 class="bm-section-title">components</h2>';
655
+ if (undKeys.length) {
656
+ var total = (census && typeof census.undefinedCount === 'number')
657
+ ? census.undefinedCount : undKeys.length;
658
+ var undParts = [];
659
+ for (var ui = 0; ui < undKeys.length; ui++) {
660
+ undParts.push(escHtml('<' + undKeys[ui] + '> ×' + pending[undKeys[ui]]));
661
+ }
662
+ h += '<div class="bm-comp-undefined">'
663
+ + escHtml(String(total)) + ' undefined component' + (total === 1 ? '' : 's')
664
+ + ' — not upgraded: ' + undParts.join(', ')
665
+ + '</div>';
666
+ }
667
+ if (defKeys.length) {
668
+ var defParts = [];
669
+ for (var di = 0; di < defKeys.length; di++) {
670
+ defParts.push(escHtml('<' + defKeys[di] + '> ×' + defined[defKeys[di]]));
671
+ }
672
+ h += '<div class="bm-comp-defined">' + defParts.join(', ') + '</div>';
673
+ }
674
+ return h + '</div>';
675
+ }
676
+
636
677
  // ── Data weight badge ──────────────────────────────────────────────────
637
678
 
638
679
  /**
@@ -1225,6 +1266,11 @@
1225
1266
  h += renderSection(objectSections[s].name, objectSections[s].data, objectSections[s].gina);
1226
1267
  }
1227
1268
 
1269
+ // #CC6 — component census (statusbar-collected; bespoke red indicator)
1270
+ if (view.components && typeof view.components === 'object') {
1271
+ h += renderComponentsSection(view.components);
1272
+ }
1273
+
1228
1274
  return h;
1229
1275
  }
1230
1276
 
@@ -1868,6 +1914,7 @@
1868
1914
  // via textContent; return before the innerHTML/fold path. Event
1869
1915
  // names + metadata are app-controlled but treated as untrusted.
1870
1916
  renderAppEvents(treeEl, u.events);
1917
+ appendClientEvents(treeEl, u.clientEvents); // #CC6 — component protocol events
1871
1918
  return;
1872
1919
  }
1873
1920
 
@@ -2047,6 +2094,44 @@
2047
2094
  }
2048
2095
  }
2049
2096
 
2097
+ /**
2098
+ * #CC6 — format the client-side component-event buffer (the statusbar's
2099
+ * dispatchEvent capture: composed bubbling CustomEvents named
2100
+ * `<tag>:<verb>`). One line per event: time, name, emitting element and —
2101
+ * only when the server-side capture gate is opted in — the redacted
2102
+ * `detail` payload.
2103
+ * @inner
2104
+ * @param {?Object[]} arr - `user.clientEvents`, or null.
2105
+ * @returns {string}
2106
+ */
2107
+ function formatClientEventBuffer(arr) {
2108
+ return arr.map(function (e) {
2109
+ var ts = '';
2110
+ try { ts = new Date(e.t).toISOString().substr(11, 12); } catch (x) { ts = ''; }
2111
+ var line = (ts ? ts + ' ' : '') + (e.name || '?') + (e.target ? ' ' + e.target : '');
2112
+ if (typeof e.meta !== 'undefined') {
2113
+ var s;
2114
+ try { s = JSON.stringify(e.meta); } catch (x) { s = '[unserialisable]'; }
2115
+ line += ' ' + s;
2116
+ }
2117
+ return line;
2118
+ }).join('\n');
2119
+ }
2120
+
2121
+ /**
2122
+ * #CC6 — append the client component-event block to the Events pane,
2123
+ * below the server events. Always textContent — event names, targets and
2124
+ * detail payloads are page-controlled and treated as untrusted.
2125
+ * @inner
2126
+ * @param {Element} el - The `#tree-events` pane.
2127
+ * @param {?Object[]} clientEvents - `user.clientEvents`, or null.
2128
+ */
2129
+ function appendClientEvents(el, clientEvents) {
2130
+ if (!el || !clientEvents || !clientEvents.length) { return; }
2131
+ el.textContent += '\n\n── Client component events ──\n'
2132
+ + formatClientEventBuffer(clientEvents);
2133
+ }
2134
+
2050
2135
  /**
2051
2136
  * Render the Data tab in raw JSON mode (pretty-printed `<pre>` block).
2052
2137
  * @inner