gina 0.3.16-alpha.2 → 0.4.0

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 (463) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/CONVENTIONS.md +1 -1
  3. package/README.md +11 -7
  4. package/ROADMAP.md +7 -6
  5. package/bin/cli +1 -0
  6. package/framework/v0.4.0/VERSION +1 -0
  7. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +1 -1
  8. package/framework/v0.4.0/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  9. package/framework/v0.4.0/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  10. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/inspector/index.html +1 -0
  11. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +27 -2
  12. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +202 -72
  13. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/index.js +152 -274
  14. package/framework/v0.4.0/core/connectors/couchbase/lib/connector.js +30 -0
  15. package/framework/v0.4.0/core/connectors/couchbase/lib/session-store.js +29 -0
  16. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mongodb/index.js +2 -1
  17. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mysql/index.js +30 -13
  18. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/postgresql/index.js +14 -4
  19. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/scylladb/index.js +2 -1
  20. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/sql-parser.js +149 -11
  21. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/sqlite/index.js +27 -4
  22. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.js +183 -4
  23. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.render-json.js +20 -5
  24. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.render-nunjucks.js +188 -5
  25. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.render-stream.js +14 -1
  26. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.render-swig.js +171 -28
  27. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.render-v1.js +5 -1
  28. package/framework/v0.4.0/core/controller/inspector-window-emit.js +157 -0
  29. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/gna.js +81 -0
  30. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/README.md +3 -2
  31. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coop/README.md +1 -0
  32. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/csp/README.md +37 -12
  33. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/csp/src/main.js +133 -12
  34. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/server.isaac.js +235 -6
  35. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/server.js +205 -4
  36. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/index.js +4 -4
  37. package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/settings.json +55 -4
  38. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/mcp.js +1 -1
  39. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/msg.json +1 -1
  40. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/gina-dev.1.md +2 -2
  41. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/gina-framework.1.md +2 -2
  42. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/gina.1.md +2 -2
  43. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/msg.json +1 -1
  44. package/framework/v0.4.0/lib/cmd/secrets/arguments.json +6 -0
  45. package/framework/v0.4.0/lib/cmd/secrets/check.js +507 -0
  46. package/framework/v0.4.0/lib/cmd/secrets/help.js +46 -0
  47. package/framework/v0.4.0/lib/cmd/secrets/help.txt +71 -0
  48. package/framework/v0.4.0/lib/cmd/secrets/scan.js +448 -0
  49. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/index.js +16 -0
  50. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inherits/README.md +1 -1
  51. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inherits/package.json +1 -1
  52. package/framework/v0.4.0/lib/instrument/package.json +8 -0
  53. package/framework/v0.4.0/lib/instrument/src/main.js +240 -0
  54. package/framework/v0.4.0/lib/job/package.json +19 -0
  55. package/framework/v0.4.0/lib/job/src/main.js +806 -0
  56. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/merge/README.md +1 -1
  57. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/secrets/src/main.js +85 -0
  58. package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/swig-resolver/src/main.js +8 -5
  59. package/framework/{v0.3.16-alpha.2 → v0.4.0}/package.json +2 -2
  60. package/gna.js +4 -4
  61. package/llms.txt +46 -3
  62. package/package.json +3 -3
  63. package/resources/home/framework/project.json +1 -13
  64. package/resources/package.json.template +2 -2
  65. package/schema/locales.json +1 -1
  66. package/script/post_install.js +17 -0
  67. package/types/index.d.ts +2 -0
  68. package/framework/v0.3.16-alpha.2/VERSION +0 -1
  69. package/framework/v0.3.16-alpha.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  70. package/framework/v0.3.16-alpha.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  71. package/framework/v0.3.16-alpha.2/core/connectors/couchbase/lib/connector.js +0 -22
  72. package/framework/v0.3.16-alpha.2/core/connectors/couchbase/lib/connector.v2.js +0 -468
  73. package/framework/v0.3.16-alpha.2/core/connectors/couchbase/lib/session-store.js +0 -22
  74. package/framework/v0.3.16-alpha.2/core/connectors/couchbase/lib/session-store.v2.js +0 -259
  75. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/AUTHORS +0 -0
  76. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/LICENSE +0 -0
  77. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/html/nolayout.html +0 -0
  78. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/html/static.html +0 -0
  79. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/android-chrome-192x192.png +0 -0
  80. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/android-chrome-512x512.png +0 -0
  81. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/apple-touch-icon.png +0 -0
  82. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/favicon-16x16.png +0 -0
  83. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/favicon-32x32.png +0 -0
  84. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/img/favicon.ico +0 -0
  85. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/README.md +0 -0
  86. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  87. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  88. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  89. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  90. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  91. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  92. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  93. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  94. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  95. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  96. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  97. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  98. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  99. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  100. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  101. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/config.js +0 -0
  102. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/ai/index.js +0 -0
  103. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/ai/lib/connector.js +0 -0
  104. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  105. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  106. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/lib/n1ql.js +0 -0
  107. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  108. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  109. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mongodb/lib/connector.js +0 -0
  110. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  111. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mongodb/lib/session-store.js +0 -0
  112. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/mysql/lib/connector.js +0 -0
  113. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/postgresql/lib/connector.js +0 -0
  114. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/redis/index.js +0 -0
  115. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/redis/lib/session-store.js +0 -0
  116. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/scylladb/lib/connector.js +0 -0
  117. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/scylladb/lib/session-store.js +0 -0
  118. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/sqlite/lib/connector.js +0 -0
  119. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/connectors/sqlite/lib/session-store.js +0 -0
  120. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/content.encoding +0 -0
  121. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/controller.framework.js +0 -0
  122. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/controller/index.js +0 -0
  123. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/LICENSE +0 -0
  124. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/README.md +0 -0
  125. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  126. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  127. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  128. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  129. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/busboy-1.6.0/package.json +0 -0
  130. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  131. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  132. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/deps/streamsearch-1.1.0/package.json +0 -0
  133. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/dev/index.js +0 -0
  134. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/dev/lib/class.js +0 -0
  135. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/dev/lib/factory.js +0 -0
  136. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/dev/lib/tools.js +0 -0
  137. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/README.md +0 -0
  138. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/currency.json +0 -0
  139. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/dist/language/en.json +0 -0
  140. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/dist/language/fr.json +0 -0
  141. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/dist/region/en.json +0 -0
  142. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/dist/region/fr.json +0 -0
  143. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/locales/index.js +0 -0
  144. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/mime.types +0 -0
  145. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/model/entity.js +0 -0
  146. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/model/index.js +0 -0
  147. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/model/template/entityFactory.js +0 -0
  148. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/model/template/index.js +0 -0
  149. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/README.md +0 -0
  150. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/index.js +0 -0
  151. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/csrf/README.md +0 -0
  152. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/csrf/package.json +0 -0
  153. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/csrf/src/main.js +0 -0
  154. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coep/README.md +0 -0
  155. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coep/package.json +0 -0
  156. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  157. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coop/package.json +0 -0
  158. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  159. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/corp/README.md +0 -0
  160. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/corp/package.json +0 -0
  161. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  162. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/csp/package.json +0 -0
  163. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  164. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  165. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  166. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  167. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  168. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  169. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  170. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  171. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  172. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/package.json +0 -0
  173. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  174. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  175. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  176. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/src/main.js +0 -0
  177. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  178. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  179. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  180. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  181. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  182. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  183. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  184. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  185. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  186. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  187. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  188. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  189. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  190. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  191. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  192. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  193. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  194. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  195. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/session/README.md +0 -0
  196. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/session/package.json +0 -0
  197. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/session/src/main.js +0 -0
  198. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/storage/README.md +0 -0
  199. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/storage/build.json +0 -0
  200. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/storage/package.json +0 -0
  201. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/storage/src/main.js +0 -0
  202. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/validator/README.md +0 -0
  203. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/validator/build.json +0 -0
  204. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/validator/package.json +0 -0
  205. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/validator/src/form-validator.js +0 -0
  206. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/plugins/lib/validator/src/main.js +0 -0
  207. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/router.js +0 -0
  208. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/server.express.js +0 -0
  209. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/status.codes +0 -0
  210. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/_gitignore +0 -0
  211. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/app.json +0 -0
  212. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  213. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/routing.json +0 -0
  214. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/settings.json +0 -0
  215. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  216. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/templates.json +0 -0
  217. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  218. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  219. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  220. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  221. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle/locales/en.json +0 -0
  222. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  223. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  224. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  225. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  226. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  227. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  228. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  229. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/readme.md +0 -0
  230. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_public/sw.js +0 -0
  231. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  232. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  233. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  234. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  235. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  236. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/command/gina.bat.tpl +0 -0
  237. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/command/gina.tpl +0 -0
  238. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/env.json +0 -0
  239. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/manifest.json +0 -0
  240. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/package.json +0 -0
  241. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/statics.json +0 -0
  242. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/conf/templates.json +0 -0
  243. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/client/json/401.json +0 -0
  244. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/client/json/403.json +0 -0
  245. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/client/json/404.json +0 -0
  246. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/server/html/50x.html +0 -0
  247. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/server/json/500.json +0 -0
  248. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/error/server/json/503.json +0 -0
  249. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/core/template/extensions/logger/config.json +0 -0
  250. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/console.js +0 -0
  251. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/context.js +0 -0
  252. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/data/LICENSE +0 -0
  253. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/data/README.md +0 -0
  254. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/data/package.json +0 -0
  255. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/data/src/main.js +0 -0
  256. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/dateFormat.js +0 -0
  257. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/index.js +0 -0
  258. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/json/LICENSE +0 -0
  259. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/json/README.md +0 -0
  260. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/json/package.json +0 -0
  261. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/json/src/main.js +0 -0
  262. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/path.js +0 -0
  263. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/plugins/README.md +0 -0
  264. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/plugins/package.json +0 -0
  265. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/plugins/src/api-error.js +0 -0
  266. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/plugins/src/main.js +0 -0
  267. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/prototypes.js +0 -0
  268. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/task.js +0 -0
  269. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/helpers/text.js +0 -0
  270. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/archiver/README.md +0 -0
  271. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/archiver/build.json +0 -0
  272. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/archiver/package.json +0 -0
  273. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/archiver/src/dep/jszip.min.js +0 -0
  274. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/archiver/src/main.js +0 -0
  275. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/async/package.json +0 -0
  276. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/async/src/main.js +0 -0
  277. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cache/README.md +0 -0
  278. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cache/build.json +0 -0
  279. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cache/package.json +0 -0
  280. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cache/src/main.js +0 -0
  281. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/aliases.json +0 -0
  282. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/add.js +0 -0
  283. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/arguments.json +0 -0
  284. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/build.js +0 -0
  285. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/copy.js +0 -0
  286. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/cp.js +0 -0
  287. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/help.js +0 -0
  288. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/help.txt +0 -0
  289. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/list.js +0 -0
  290. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/mcp-start.js +0 -0
  291. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/oas.js +0 -0
  292. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/openapi.js +0 -0
  293. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/remove.js +0 -0
  294. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/rename.js +0 -0
  295. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/restart.js +0 -0
  296. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/rm.js +0 -0
  297. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/start.js +0 -0
  298. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/status.js +0 -0
  299. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/bundle/stop.js +0 -0
  300. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/cache/stats.js +0 -0
  301. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/add.js +0 -0
  302. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/arguments.json +0 -0
  303. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/help.js +0 -0
  304. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/help.txt +0 -0
  305. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/list.js +0 -0
  306. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/migrate.js +0 -0
  307. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/remove.js +0 -0
  308. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/connector/rm.js +0 -0
  309. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/add.js +0 -0
  310. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/get.js +0 -0
  311. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/help.js +0 -0
  312. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/help.txt +0 -0
  313. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/link-dev.js +0 -0
  314. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/list.js +0 -0
  315. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/remove.js +0 -0
  316. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/rm.js +0 -0
  317. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/set.js +0 -0
  318. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/unset.js +0 -0
  319. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/env/use.js +0 -0
  320. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/arguments.json +0 -0
  321. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/build.js +0 -0
  322. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/dot.js +0 -0
  323. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/get.js +0 -0
  324. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/help.js +0 -0
  325. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/help.txt +0 -0
  326. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/init.js +0 -0
  327. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/link-node-modules.js +0 -0
  328. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/link.js +0 -0
  329. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/open.js +0 -0
  330. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/restart.js +0 -0
  331. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/set.js +0 -0
  332. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/start.js +0 -0
  333. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/status.js +0 -0
  334. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/stop.js +0 -0
  335. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/tail.js +0 -0
  336. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/update.js +0 -0
  337. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/framework/version.js +0 -0
  338. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/helper.js +0 -0
  339. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/add.js +0 -0
  340. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/arguments.json +0 -0
  341. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/export.js +0 -0
  342. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/help.js +0 -0
  343. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/help.txt +0 -0
  344. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/import.js +0 -0
  345. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/i18n/scan.js +0 -0
  346. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/index.js +0 -0
  347. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/inspector/help.js +0 -0
  348. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/inspector/help.txt +0 -0
  349. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/inspector/open.js +0 -0
  350. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/minion/help.js +0 -0
  351. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/minion/help.txt +0 -0
  352. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/help.js +0 -0
  353. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/help.txt +0 -0
  354. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/inc/scan.js +0 -0
  355. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/list.js +0 -0
  356. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/reset.js +0 -0
  357. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/port/set.js +0 -0
  358. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/add.js +0 -0
  359. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/arguments.json +0 -0
  360. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/build.js +0 -0
  361. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/help.js +0 -0
  362. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/help.txt +0 -0
  363. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/import.js +0 -0
  364. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/list.js +0 -0
  365. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/move.js +0 -0
  366. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/remove.js +0 -0
  367. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/rename.js +0 -0
  368. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/restart.js +0 -0
  369. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/rm.js +0 -0
  370. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/start.js +0 -0
  371. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/status.js +0 -0
  372. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/project/stop.js +0 -0
  373. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/protocol/help.js +0 -0
  374. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/protocol/help.txt +0 -0
  375. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/protocol/list.js +0 -0
  376. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/protocol/set.js +0 -0
  377. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/add.js +0 -0
  378. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/help.js +0 -0
  379. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/help.txt +0 -0
  380. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/link-local.js +0 -0
  381. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/link-production.js +0 -0
  382. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/list.js +0 -0
  383. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/remove.js +0 -0
  384. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/rm.js +0 -0
  385. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/scope/use.js +0 -0
  386. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/service/help.js +0 -0
  387. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/service/help.txt +0 -0
  388. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/service/list.js +0 -0
  389. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cmd/view/add.js +0 -0
  390. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/collection/README.md +0 -0
  391. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/collection/build.json +0 -0
  392. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/collection/package.json +0 -0
  393. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/collection/src/main.js +0 -0
  394. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/config.js +0 -0
  395. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/connector-registry/package.json +0 -0
  396. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/connector-registry/src/main.js +0 -0
  397. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cron/README.md +0 -0
  398. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cron/package.json +0 -0
  399. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/cron/src/main.js +0 -0
  400. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/domain/LICENSE +0 -0
  401. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/domain/README.md +0 -0
  402. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/domain/package.json +0 -0
  403. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/domain/src/main.js +0 -0
  404. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/generator/index.js +0 -0
  405. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/i18n/package.json +0 -0
  406. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/i18n/src/main.js +0 -0
  407. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inherits/LICENSE +0 -0
  408. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inherits/src/main.js +0 -0
  409. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inspector-redact/package.json +0 -0
  410. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/inspector-redact/src/main.js +0 -0
  411. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/README.md +0 -0
  412. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/package.json +0 -0
  413. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/default/index.js +0 -0
  414. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/file/index.js +0 -0
  415. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  416. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  417. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/mq/index.js +0 -0
  418. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/mq/listener.js +0 -0
  419. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/containers/mq/speaker.js +0 -0
  420. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/helper.js +0 -0
  421. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/logger/src/main.js +0 -0
  422. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/math/index.js +0 -0
  423. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-dispatch/package.json +0 -0
  424. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-dispatch/src/main.js +0 -0
  425. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-http/package.json +0 -0
  426. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-http/src/main.js +0 -0
  427. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-server/package.json +0 -0
  428. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/mcp-server/src/main.js +0 -0
  429. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/merge/package.json +0 -0
  430. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/merge/src/main.js +0 -0
  431. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/metrics/package.json +0 -0
  432. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/metrics/src/main.js +0 -0
  433. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/model.js +0 -0
  434. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/nunjucks-filters/README.md +0 -0
  435. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/nunjucks-filters/package.json +0 -0
  436. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/nunjucks-filters/src/main.js +0 -0
  437. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/nunjucks-resolver/package.json +0 -0
  438. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/nunjucks-resolver/src/main.js +0 -0
  439. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/proc.js +0 -0
  440. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing/README.md +0 -0
  441. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing/build.json +0 -0
  442. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing/package.json +0 -0
  443. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing/src/main.js +0 -0
  444. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing/src/radix.js +0 -0
  445. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing-introspect/package.json +0 -0
  446. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/routing-introspect/src/main.js +0 -0
  447. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/secrets/package.json +0 -0
  448. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/secrets/src/backends/env.js +0 -0
  449. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/session-store.js +0 -0
  450. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/shell.js +0 -0
  451. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/state.js +0 -0
  452. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/swig-filters/README.md +0 -0
  453. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/swig-filters/package.json +0 -0
  454. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/swig-filters/src/main.js +0 -0
  455. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/swig-resolver/package.json +0 -0
  456. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/url/README.md +0 -0
  457. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/url/index.js +0 -0
  458. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/url/routing.json +0 -0
  459. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/uuid/package.json +0 -0
  460. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/uuid/src/main.js +0 -0
  461. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/validator.js +0 -0
  462. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/watcher/package.json +0 -0
  463. /package/framework/{v0.3.16-alpha.2 → v0.4.0}/lib/watcher/src/main.js +0 -0
@@ -675,32 +675,40 @@
675
675
  // ── Engine badge ──────────────────────────────────────────────────────
676
676
 
677
677
  /**
678
- * Detect the template engine name from view data.
679
- * Inspects `view.layout` path and `view.ext` to distinguish between
680
- * template engines. Does NOT use `env.engine` (that is the HTTP server
681
- * engine — isaac/express — not the template engine).
678
+ * Detect the template engine and version from server-emitted environment
679
+ * data, with a heuristic fallback from view layout/ext when the field is
680
+ * absent (legacy renders, test stubs, render-v1.js path).
681
+ *
682
+ * Does NOT use `env.engine` — that is the HTTP server engine (isaac/express),
683
+ * not the template engine.
684
+ *
682
685
  * @inner
683
- * @param {Object} view - View data from `__ginaData.user.view`
684
- * @param {Object} env - Environment data from `__ginaData.user.environment`
685
- * @returns {string} Template engine name (e.g. `'Swig'`, `'Nunjucks'`)
686
+ * @param {Object} view - View data from `__ginaData.user.view`
687
+ * @param {Object} env - Environment data from `__ginaData.user.environment`
688
+ * @returns {{name: (string|null), version: (string|null)}}
686
689
  */
687
690
  function detectEngine(view, env) {
688
- // Detect the TEMPLATE engine, not the HTTP engine.
689
- // env.engine is the HTTP server engine (isaac/express) do not use it here.
690
- // The template engine is determined by the view layout path or file extension.
691
+ // Server-emitted field wins render-swig.js / render-nunjucks.js
692
+ // populate env.templateEngine = { name, version } from the resolver
693
+ // decision cache.
694
+ if (env && env.templateEngine && typeof env.templateEngine === 'object') {
695
+ return {
696
+ name: env.templateEngine.name || null,
697
+ version: env.templateEngine.version || null
698
+ };
699
+ }
691
700
 
692
- // Try to detect from view.layout path (e.g. "swig/html/default")
701
+ // Fallback heuristic view.layout path then view.ext.
702
+ var name = null;
693
703
  if (view && typeof view.layout === 'string') {
694
- if (/swig[\/\\]/i.test(view.layout)) return 'Swig';
695
- if (/nunjucks[\/\\]|njk[\/\\]/i.test(view.layout)) return 'Nunjucks';
704
+ if (/swig[\/\\]/i.test(view.layout)) name = 'Swig';
705
+ else if (/nunjucks[\/\\]|njk[\/\\]/i.test(view.layout)) name = 'Nunjucks';
696
706
  }
697
- // Try from view.ext
698
- if (view && typeof view.ext === 'string') {
699
- if (view.ext === '.njk') return 'Nunjucks';
700
- if (view.ext === '.html') return 'Swig';
707
+ if (!name && view && typeof view.ext === 'string') {
708
+ if (view.ext === '.njk') name = 'Nunjucks';
709
+ else if (view.ext === '.html') name = 'Swig';
701
710
  }
702
- // Default: render-swig.js handles all current rendering
703
- return 'Swig';
711
+ return { name: name || 'Swig', version: null };
704
712
  }
705
713
 
706
714
  // ── Page metrics (weight, load time, paint time) ───────────────────────
@@ -732,7 +740,22 @@
732
740
  * @returns {PageMetrics} Metrics object (all numeric fields may be `null`)
733
741
  */
734
742
  function getPageMetrics(isXhr) {
735
- var m = { weight: null, resourceSize: null, loadMs: null, transferMs: null, fcpMs: null, source: 'page' };
743
+ var m = {
744
+ weight: null, resourceSize: null, loadMs: null, transferMs: null, fcpMs: null, source: 'page',
745
+ // Server-emitted fallback values (populated below from env.metrics).
746
+ // These survive the COOP/no-opener case where window.opener is null
747
+ // and the Performance API path returns the all-null skeleton.
748
+ serverWeight: null, serverLoadMs: null
749
+ };
750
+ // Read server-side metrics from the env payload first — independent of
751
+ // whether the opener is reachable.
752
+ try {
753
+ var _envMetrics = (ginaData && ginaData.user && ginaData.user.environment && ginaData.user.environment.metrics) || null;
754
+ if (_envMetrics) {
755
+ if (typeof _envMetrics.weightBytes === 'number') m.serverWeight = _envMetrics.weightBytes;
756
+ if (typeof _envMetrics.serverMs === 'number') m.serverLoadMs = _envMetrics.serverMs;
757
+ }
758
+ } catch (e) { /* defensive — leave server values null */ }
736
759
  try {
737
760
  var win = (source && source !== 'localStorage') ? source : null;
738
761
  if (!win || !win.performance) return m;
@@ -964,12 +987,20 @@
964
987
  var keys = Object.keys(view);
965
988
  keys.sort();
966
989
 
967
- // Empty state — no view data and no page metrics (JSON-only API)
990
+ // Empty state — no view data and no page metrics (JSON-only API).
991
+ // Server-side metrics survive the COOP/no-opener case, so the
992
+ // empty-state guard must also consider env.metrics; otherwise the
993
+ // View tab would falsely render "No views attached" when only the
994
+ // server-side fallback values are populated.
968
995
  var _emptyMetrics = true;
969
996
  try {
970
997
  if (source && source !== 'localStorage' && source.performance) {
971
998
  _emptyMetrics = false;
972
999
  }
1000
+ var _emSrvMet = (ginaData && ginaData.user && ginaData.user.environment && ginaData.user.environment.metrics) || null;
1001
+ if (_emSrvMet && (typeof _emSrvMet.weightBytes === 'number' || typeof _emSrvMet.serverMs === 'number')) {
1002
+ _emptyMetrics = false;
1003
+ }
973
1004
  } catch (e) {}
974
1005
  if (keys.length === 0 && _emptyMetrics) {
975
1006
  return '<div class="bm-tab-empty">'
@@ -1019,7 +1050,9 @@
1019
1050
 
1020
1051
  // Engine + metrics badges (floating right row)
1021
1052
  var env = (ginaData && ginaData.user && ginaData.user.environment) || {};
1022
- var engine = detectEngine(view, env);
1053
+ var engineInfo = detectEngine(view, env);
1054
+ var engine = engineInfo.name;
1055
+ var engineVersion = engineInfo.version;
1023
1056
  var u = ginaData && ginaData.user ? ginaData.user : {};
1024
1057
  var isXhr = typeof u['view-xhr'] !== 'undefined';
1025
1058
  var metrics = getPageMetrics(isXhr);
@@ -1030,58 +1063,96 @@
1030
1063
  var _anomMap = {};
1031
1064
  for (var _ai = 0; _ai < _anomalies.length; _ai++) _anomMap[_anomalies[_ai].metric] = _anomalies[_ai];
1032
1065
  updateViewDot(_anomalies);
1033
- var hasBadges = engine || metrics.weight || metrics.loadMs || metrics.transferMs || metrics.fcpMs;
1066
+ var hasBadges = engine
1067
+ || metrics.weight || metrics.serverWeight
1068
+ || metrics.loadMs || metrics.transferMs || metrics.serverLoadMs
1069
+ || metrics.fcpMs;
1034
1070
  if (hasBadges) {
1035
1071
  h += '<div class="bm-view-badges">';
1036
1072
  if (engine) {
1037
- h += '<span class="bm-vbadge bm-vbadge-engine" title="Template engine">'
1073
+ var _engineTitle = 'Template engine'
1074
+ + (engineVersion ? ': ' + engine + ' ' + engineVersion : '');
1075
+ h += '<span class="bm-vbadge bm-vbadge-engine" title="' + escHtml(_engineTitle) + '">'
1038
1076
  + '<svg viewBox="0 0 16 16"><path d="M5.854 4.854a.5.5 0 10-.708-.708l-3.5 3.5a.5.5 0 000 .708l3.5 3.5a.5.5 0 00.708-.708L2.707 8l3.147-3.146zm4.292 0a.5.5 0 01.708-.708l3.5 3.5a.5.5 0 010 .708l-3.5 3.5a.5.5 0 01-.708-.708L13.293 8l-3.147-3.146z"/></svg>'
1039
- + escHtml(engine) + '</span>';
1077
+ + escHtml(engine);
1078
+ if (engineVersion) {
1079
+ h += '<span class="bm-vbadge-sep">|</span>'
1080
+ + '<span class="bm-vbadge-ver">' + escHtml(engineVersion) + '</span>';
1081
+ }
1082
+ h += '</span>';
1040
1083
  }
1041
- if (metrics.weight) {
1042
- var _res = metrics.resourceSize;
1043
- var _xfr = metrics.weight;
1044
- var _showDual = _res && _res !== _xfr;
1045
- var weightTitle = _showDual
1046
- ? 'Resource: ' + formatBytes(_res) + ' | Transfer: ' + formatBytes(_xfr)
1047
- : (isXhr ? 'XHR response transfer size' : 'Page transfer size (document)');
1048
- var _aw = _anomMap['weight'];
1049
- h += '<span class="bm-vbadge bm-vbadge-weight' + (_aw ? ' bm-perf-' + _aw.level : '') + '" title="' + weightTitle + (_aw ? '\n\u26a0 ' + _aw.label : '') + '">'
1050
- + '<svg viewBox="0 0 16 16"><path d="M3.5 1h9l2.5 14H1zM4.8 2.5h6.4l2 11H2.8z"/></svg>';
1051
- if (_showDual) {
1052
- var _rp = splitBytes(_res), _xp = splitBytes(_xfr);
1084
+ // Weight badge \u2014 dual rendering rules:
1085
+ // 1. server + client \u2192 server dimmed | client primary (most informative)
1086
+ // 2. client only with differing resourceSize \u2192 resource | transfer (legacy)
1087
+ // 3. server only \u2192 server primary (COOP / no-opener fallback)
1088
+ // 4. client only (no resource diff) \u2192 transfer single
1089
+ if (metrics.weight || metrics.serverWeight) {
1090
+ var _clientW = metrics.weight;
1091
+ var _serverW = metrics.serverWeight;
1092
+ var _res = metrics.resourceSize;
1093
+ var _aw = _anomMap['weight'];
1094
+ var _wtTitle, _wtBody;
1095
+ if (_clientW && _serverW) {
1096
+ _wtTitle = 'Server: ' + formatBytes(_serverW) + ' (response body) | Client: ' + formatBytes(_clientW) + ' (browser transferSize)';
1097
+ _wtBody = '<span class="bm-vbadge-svr">' + formatBytes(_serverW) + '</span>'
1098
+ + '<span class="bm-vbadge-sep">|</span>'
1099
+ + formatBytes(_clientW);
1100
+ } else if (_clientW && _res && _res !== _clientW) {
1101
+ _wtTitle = 'Resource: ' + formatBytes(_res) + ' | Transfer: ' + formatBytes(_clientW);
1102
+ var _rp = splitBytes(_res), _xp = splitBytes(_clientW);
1053
1103
  if (_rp.unit === _xp.unit) {
1054
- h += '<span class="bm-vbadge-res">' + _rp.num + '</span>'
1055
- + '<span class="bm-vbadge-sep">|</span>'
1056
- + _xp.num + _xp.unit;
1104
+ _wtBody = '<span class="bm-vbadge-res">' + _rp.num + '</span>'
1105
+ + '<span class="bm-vbadge-sep">|</span>'
1106
+ + _xp.num + _xp.unit;
1057
1107
  } else {
1058
- h += '<span class="bm-vbadge-res">' + formatBytes(_res) + '</span>'
1059
- + '<span class="bm-vbadge-sep">|</span>'
1060
- + formatBytes(_xfr);
1108
+ _wtBody = '<span class="bm-vbadge-res">' + formatBytes(_res) + '</span>'
1109
+ + '<span class="bm-vbadge-sep">|</span>'
1110
+ + formatBytes(_clientW);
1061
1111
  }
1112
+ } else if (_clientW) {
1113
+ _wtTitle = isXhr ? 'XHR response transfer size' : 'Page transfer size (document)';
1114
+ _wtBody = formatBytes(_clientW);
1062
1115
  } else {
1063
- h += formatBytes(_xfr);
1116
+ _wtTitle = 'Server response body size (client transferSize unavailable \u2014 window.opener.performance is null, e.g. under Cross-Origin-Opener-Policy)';
1117
+ _wtBody = formatBytes(_serverW);
1064
1118
  }
1065
- h += '</span>';
1119
+ h += '<span class="bm-vbadge bm-vbadge-weight' + (_aw ? ' bm-perf-' + _aw.level : '') + '" title="' + _wtTitle + (_aw ? '\n\u26a0 ' + _aw.label : '') + '">'
1120
+ + '<svg viewBox="0 0 16 16"><path d="M3.5 1h9l2.5 14H1zM4.8 2.5h6.4l2 11H2.8z"/></svg>'
1121
+ + _wtBody
1122
+ + '</span>';
1066
1123
  }
1067
- if (metrics.loadMs || metrics.transferMs) {
1068
- var _ld = metrics.loadMs;
1069
- var _tf = metrics.transferMs;
1070
- var _showDualTime = _ld && _tf && _ld !== _tf;
1071
- var timeTitle = _showDualTime
1072
- ? 'Load: ' + fmtMs(_ld) + ' | Transfer: ' + fmtMs(_tf)
1073
- : (isXhr ? 'XHR round-trip duration' : (_ld ? 'Page load time' : 'Document transfer time (requestStart \u2192 responseEnd)'));
1074
- var _al = _anomMap['load'];
1075
- h += '<span class="bm-vbadge bm-vbadge-load' + (_al ? ' bm-perf-' + _al.level : '') + '" title="' + timeTitle + (_al ? '\n\u26a0 ' + _al.label : '') + '">'
1076
- + '<svg viewBox="0 0 16 16"><path d="M8 3.5a.5.5 0 00-1 0V8a.5.5 0 00.252.434l3.5 2a.5.5 0 00.496-.868L8 7.71V3.5z"/><path d="M8 16A8 8 0 108 0a8 8 0 000 16zm7-8A7 7 0 111 8a7 7 0 0114 0z"/></svg>';
1077
- if (_showDualTime) {
1078
- h += '<span class="bm-vbadge-res">' + fmtMs(_ld) + '</span>'
1079
- + '<span class="bm-vbadge-sep">|</span>'
1080
- + fmtMs(_tf);
1124
+ // Load badge \u2014 same four-way rules, applied to load time:
1125
+ // 1. server + client load \u2192 server dimmed | client primary
1126
+ // 2. client load + differing transfer time \u2192 load | transfer (legacy)
1127
+ // 3. server only \u2192 server primary (COOP / no-opener fallback)
1128
+ // 4. client only \u2192 load OR transfer single
1129
+ if (metrics.loadMs || metrics.transferMs || metrics.serverLoadMs) {
1130
+ var _ld = metrics.loadMs;
1131
+ var _tf = metrics.transferMs;
1132
+ var _srvLd = metrics.serverLoadMs;
1133
+ var _al = _anomMap['load'];
1134
+ var _ltTitle, _ltBody;
1135
+ if (_ld && _srvLd) {
1136
+ _ltTitle = 'Server: ' + fmtMs(_srvLd) + ' (backend processing) | Client: ' + fmtMs(_ld) + ' (full page load: network + parse + paint)';
1137
+ _ltBody = '<span class="bm-vbadge-svr">' + fmtMs(_srvLd) + '</span>'
1138
+ + '<span class="bm-vbadge-sep">|</span>'
1139
+ + fmtMs(_ld);
1140
+ } else if (_ld && _tf && _ld !== _tf) {
1141
+ _ltTitle = 'Load: ' + fmtMs(_ld) + ' | Transfer: ' + fmtMs(_tf);
1142
+ _ltBody = '<span class="bm-vbadge-res">' + fmtMs(_ld) + '</span>'
1143
+ + '<span class="bm-vbadge-sep">|</span>'
1144
+ + fmtMs(_tf);
1145
+ } else if (_ld || _tf) {
1146
+ _ltTitle = isXhr ? 'XHR round-trip duration' : (_ld ? 'Page load time' : 'Document transfer time (requestStart \u2192 responseEnd)');
1147
+ _ltBody = fmtMs(_ld || _tf);
1081
1148
  } else {
1082
- h += fmtMs(_ld || _tf);
1149
+ _ltTitle = 'Server processing time (client load time unavailable \u2014 window.opener.performance is null, e.g. under Cross-Origin-Opener-Policy)';
1150
+ _ltBody = fmtMs(_srvLd);
1083
1151
  }
1084
- h += '</span>';
1152
+ h += '<span class="bm-vbadge bm-vbadge-load' + (_al ? ' bm-perf-' + _al.level : '') + '" title="' + _ltTitle + (_al ? '\n\u26a0 ' + _al.label : '') + '">'
1153
+ + '<svg viewBox="0 0 16 16"><path d="M8 3.5a.5.5 0 00-1 0V8a.5.5 0 00.252.434l3.5 2a.5.5 0 00.496-.868L8 7.71V3.5z"/><path d="M8 16A8 8 0 108 0a8 8 0 000 16zm7-8A7 7 0 111 8a7 7 0 0114 0z"/></svg>'
1154
+ + _ltBody
1155
+ + '</span>';
1085
1156
  }
1086
1157
  if (metrics.fcpMs) {
1087
1158
  var _af = _anomMap['fcp'];
@@ -1836,9 +1907,15 @@
1836
1907
  * Looks up the connector:database key in _liveIndexes, then resolves by
1837
1908
  * extracting the target table from the statement.
1838
1909
  *
1910
+ * #QI Phase C.3 — descriptors are CLONED and stamped with a per-query
1911
+ * `covers` flag (leftmost-prefix vs `q.whereColumns`), mirroring the
1912
+ * server-side sql-parser annotateCoverage so the live (no indexes.sql) path
1913
+ * renders the same bm-idx-uncovered badge as the declared-index path. The
1914
+ * shared _liveIndexes cache is never mutated.
1915
+ *
1839
1916
  * @inner
1840
1917
  * @param {object} q - Query entry with `q.indexes === null`
1841
- * @returns {?Array<{name: string, primary: boolean}>} Resolved indexes, or null
1918
+ * @returns {?Array<{name: string, primary: boolean, columns: Array<string>, covers: boolean}>} Resolved indexes (cloned), [] when the table has none, or null when unresolvable
1842
1919
  */
1843
1920
  function resolveLiveIndexes(q) {
1844
1921
  if (!_liveIndexes || !_liveIndexes.connectors) return null;
@@ -1857,7 +1934,24 @@
1857
1934
  // Use the table field if available; otherwise extract from statement
1858
1935
  var tbl = q.table || extractTableFromStatement(q.statement);
1859
1936
  if (!tbl) return null;
1860
- return tables[tbl] || [];
1937
+ var live = tables[tbl];
1938
+ if (!live) return [];
1939
+ // Clone each descriptor (never mutate the shared cache — two queries on the
1940
+ // same table may filter different columns) and stamp `covers` via the
1941
+ // leftmost-prefix rule: an index serves the filter only if its FIRST column
1942
+ // is among the query's WHERE columns. Same logic as sql-parser annotateCoverage.
1943
+ var wc = q.whereColumns || [];
1944
+ var out = [];
1945
+ for (var i = 0; i < live.length; i++) {
1946
+ var cols = live[i].columns || [];
1947
+ out.push({
1948
+ name : live[i].name,
1949
+ primary : !!live[i].primary,
1950
+ columns : cols.slice(),
1951
+ covers : (cols.length > 0 && wc.length > 0 && wc.indexOf(cols[0]) > -1)
1952
+ });
1953
+ }
1954
+ return out;
1861
1955
  }
1862
1956
 
1863
1957
  /**
@@ -2321,15 +2415,34 @@
2321
2415
  indexHtml = '<span class="bm-query-idx bm-idx-none" title="No index used — full bucket scan">'
2322
2416
  + _svgIdxWarn + ' no index</span>';
2323
2417
  } else {
2324
- for (var ix = 0; ix < q.indexes.length; ix++) {
2325
- var idx = q.indexes[ix];
2326
- var idxCls = idx.primary ? 'bm-idx-primary' : 'bm-idx-secondary';
2327
- var idxTip = (idx.primary ? 'Primary index scan (consider adding a secondary index)' : 'Secondary index')
2328
- + ' click to copy';
2329
- indexHtml += '<span class="bm-query-idx bm-idx-copy ' + idxCls + '" title="' + idxTip
2330
- + '" data-idx-name="' + escHtml(idx.name) + '">'
2331
- + (idx.primary ? _svgIdxWarn : _svgIdx) + ' '
2332
- + escHtml(idx.name) + '</span>';
2418
+ // #QI Phase C the table has indexes; if none lead with a
2419
+ // filtered column (leftmost-prefix), this query's filter
2420
+ // cannot use them surface that gap rather than implying
2421
+ // coverage. covers/whereColumns are heuristic (declared
2422
+ // indexes vs WHERE columns), not a planner verdict.
2423
+ var _hasWhere = q.whereColumns && q.whereColumns.length > 0;
2424
+ var _anyCovers = false;
2425
+ if (_hasWhere) {
2426
+ for (var _ci = 0; _ci < q.indexes.length; _ci++) {
2427
+ if (q.indexes[_ci].covers) { _anyCovers = true; break; }
2428
+ }
2429
+ }
2430
+ if (_hasWhere && !_anyCovers) {
2431
+ var _wc = q.whereColumns.join(', ');
2432
+ indexHtml = '<span class="bm-query-idx bm-idx-uncovered" title="Indexes exist on this table, but none lead with a filtered column ('
2433
+ + escHtml(_wc) + ') — this query cannot use them. Add an index starting with one of these columns.">'
2434
+ + _svgIdxWarn + ' no index for filter</span>';
2435
+ } else {
2436
+ for (var ix = 0; ix < q.indexes.length; ix++) {
2437
+ var idx = q.indexes[ix];
2438
+ var idxCls = idx.primary ? 'bm-idx-primary' : 'bm-idx-secondary';
2439
+ var idxTip = (idx.primary ? 'Primary index scan (consider adding a secondary index)' : 'Secondary index')
2440
+ + ' — click to copy';
2441
+ indexHtml += '<span class="bm-query-idx bm-idx-copy ' + idxCls + '" title="' + idxTip
2442
+ + '" data-idx-name="' + escHtml(idx.name) + '">'
2443
+ + (idx.primary ? _svgIdxWarn : _svgIdx) + ' '
2444
+ + escHtml(idx.name) + '</span>';
2445
+ }
2333
2446
  }
2334
2447
  }
2335
2448
  } else if (q.connector) {
@@ -3648,6 +3761,15 @@
3648
3761
  target = target.replace(/\/+$/, '');
3649
3762
  var url = target + '/_gina/agent';
3650
3763
 
3764
+ // #INS9b — when the target bundle's agent endpoint is auth-gated
3765
+ // (settings.json inspector.agent.enabled outside dev mode), pass the key
3766
+ // via ?key=. EventSource cannot set request headers, so the browser path
3767
+ // is the query param. Optional — omitted when no key was supplied.
3768
+ var agentKey = params.get('key');
3769
+ if (agentKey) {
3770
+ url += '?key=' + encodeURIComponent(agentKey);
3771
+ }
3772
+
3651
3773
  source = 'agent';
3652
3774
  qs('#bm-dot').className = 'bm-dot warn';
3653
3775
  qs('#bm-label').textContent = 'Connecting\u2026';
@@ -4812,6 +4934,14 @@
4812
4934
  raw = raw.replace(/\/+$/, '');
4813
4935
  // Navigate with ?target= to activate agent mode
4814
4936
  var loc = window.location.pathname + '?target=' + encodeURIComponent(raw);
4937
+ // #INS9b — append the optional inspector key (?key=) for an
4938
+ // auth-gated agent endpoint. Kept in the URL only (ephemeral);
4939
+ // never persisted to localStorage.
4940
+ var keyInput = qs('#bm-connect-key');
4941
+ var keyRaw = keyInput ? (keyInput.value || '').trim() : '';
4942
+ if (keyRaw) {
4943
+ loc += '&key=' + encodeURIComponent(keyRaw);
4944
+ }
4815
4945
  window.location.href = loc;
4816
4946
  });
4817
4947
  }