gina 0.7.0 → 0.7.1

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 (630) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +45 -61
  3. package/ROADMAP.md +3 -2
  4. package/bin/cli +5 -2
  5. package/bin/gina +10 -25
  6. package/framework/v0.7.1/VERSION +1 -0
  7. package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +21 -8
  8. package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +8 -11
  9. package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +160 -160
  10. package/framework/v0.7.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  11. package/framework/v0.7.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  12. package/framework/{v0.7.0 → v0.7.1}/core/config.js +10 -1
  13. package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.js +67 -15
  14. package/framework/{v0.7.0 → v0.7.1}/core/router.js +68 -8
  15. package/framework/{v0.7.0 → v0.7.1}/core/server.isaac.js +183 -45
  16. package/framework/{v0.7.0 → v0.7.1}/core/server.js +173 -55
  17. package/framework/{v0.7.0 → v0.7.1}/helpers/context.js +93 -32
  18. package/framework/{v0.7.0 → v0.7.1}/helpers/path.js +61 -43
  19. package/framework/{v0.7.0 → v0.7.1}/helpers/task.js +47 -35
  20. package/framework/v0.7.1/lib/admin/src/main.js +451 -0
  21. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/add.js +24 -0
  22. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/copy.js +14 -0
  23. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/help.txt +11 -0
  24. package/framework/v0.7.1/lib/cmd/bundle/inc/boot-lines.js +263 -0
  25. package/framework/v0.7.1/lib/cmd/bundle/inc/name.js +70 -0
  26. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/remove.js +8 -2
  27. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/rename.js +14 -0
  28. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/start.js +47 -12
  29. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/stop.js +64 -8
  30. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/remove.js +7 -2
  31. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/add.js +37 -2
  32. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/build.js +20 -5
  33. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/dot.js +10 -4
  34. package/framework/v0.7.1/lib/cmd/framework/inc/ps-titles.js +113 -0
  35. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/init.js +7 -2
  36. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/link.js +10 -2
  37. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/open.js +30 -6
  38. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/restart.js +24 -69
  39. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/start.js +6 -24
  40. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/status.js +44 -25
  41. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/tail.js +1 -1
  42. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/helper.js +56 -13
  43. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/inspector/help.txt +2 -1
  44. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/inspector/open.js +93 -30
  45. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/minion/kill.js +52 -25
  46. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/list.js +15 -6
  47. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/reset.js +11 -2
  48. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/add.js +50 -1
  49. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/help.txt +8 -8
  50. package/framework/v0.7.1/lib/cmd/project/inc/name.js +71 -0
  51. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/remove.js +5 -1
  52. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/rename.js +12 -0
  53. package/framework/v0.7.1/lib/cmd/project/restart.js +126 -0
  54. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/restore.js +19 -0
  55. package/framework/v0.7.1/lib/cmd/project/start.js +125 -0
  56. package/framework/v0.7.1/lib/cmd/project/stop.js +98 -0
  57. package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/set.js +7 -2
  58. package/framework/{v0.7.0 → v0.7.1}/lib/inherits/src/main.js +8 -11
  59. package/framework/{v0.7.0 → v0.7.1}/lib/maintenance/src/main.js +3 -2
  60. package/framework/{v0.7.0 → v0.7.1}/lib/metrics/src/main.js +30 -6
  61. package/framework/{v0.7.0 → v0.7.1}/lib/shell.js +58 -25
  62. package/framework/{v0.7.0 → v0.7.1}/package.json +1 -1
  63. package/gna.js +4 -4
  64. package/llms.txt +13 -13
  65. package/package.json +4 -4
  66. package/schema/app.json +3 -3
  67. package/script/post_install.js +20 -2
  68. package/script/pre_install.js +31 -6
  69. package/utils/helper.js +21 -9
  70. package/framework/v0.7.0/VERSION +0 -1
  71. package/framework/v0.7.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  72. package/framework/v0.7.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  73. package/framework/v0.7.0/lib/admin/src/main.js +0 -217
  74. package/framework/v0.7.0/lib/cmd/project/restart.js +0 -85
  75. package/framework/v0.7.0/lib/cmd/project/start.js +0 -85
  76. package/framework/v0.7.0/lib/cmd/project/stop.js +0 -66
  77. /package/framework/{v0.7.0 → v0.7.1}/AUTHORS +0 -0
  78. /package/framework/{v0.7.0 → v0.7.1}/LICENSE +0 -0
  79. /package/framework/{v0.7.0 → v0.7.1}/core/asset/html/nolayout.html +0 -0
  80. /package/framework/{v0.7.0 → v0.7.1}/core/asset/html/static.html +0 -0
  81. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/android-chrome-192x192.png +0 -0
  82. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/android-chrome-512x512.png +0 -0
  83. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/apple-touch-icon.png +0 -0
  84. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/favicon-16x16.png +0 -0
  85. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/favicon-32x32.png +0 -0
  86. /package/framework/{v0.7.0 → v0.7.1}/core/asset/img/favicon.ico +0 -0
  87. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/README.md +0 -0
  88. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  89. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  90. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  91. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  92. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  93. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  94. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  95. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  96. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  97. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  98. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  99. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  100. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  101. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  102. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  103. /package/framework/{v0.7.0 → v0.7.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  104. /package/framework/{v0.7.0 → v0.7.1}/core/config.requirements-anchor.js +0 -0
  105. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/ai/index.js +0 -0
  106. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/ai/lib/connector.js +0 -0
  107. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/index.js +0 -0
  108. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/connector.js +0 -0
  109. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  110. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  111. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
  112. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/session-store.js +0 -0
  113. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  114. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  115. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/couchbase/lib/storage-store.js +0 -0
  116. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/duckdb/index.js +0 -0
  117. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/duckdb/lib/connector.js +0 -0
  118. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mongodb/index.js +0 -0
  119. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mongodb/lib/connector.js +0 -0
  120. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mongodb/lib/job-store.js +0 -0
  121. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  122. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mongodb/lib/session-store.js +0 -0
  123. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mysql/index.js +0 -0
  124. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/mysql/lib/connector.js +0 -0
  125. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/param-redact.js +0 -0
  126. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/postgresql/index.js +0 -0
  127. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/postgresql/lib/connector.js +0 -0
  128. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/index.js +0 -0
  129. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/lib/connector.js +0 -0
  130. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/lib/job-store.js +0 -0
  131. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/lib/kv-store.js +0 -0
  132. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/lib/render-cache-store.js +0 -0
  133. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/redis/lib/session-store.js +0 -0
  134. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/scylladb/index.js +0 -0
  135. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/scylladb/lib/connector.js +0 -0
  136. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/scylladb/lib/session-store.js +0 -0
  137. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/settle-once.js +0 -0
  138. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sql-parser.js +0 -0
  139. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sqlite/index.js +0 -0
  140. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sqlite/lib/connector.js +0 -0
  141. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sqlite/lib/job-store.js +0 -0
  142. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sqlite/lib/kv-store.js +0 -0
  143. /package/framework/{v0.7.0 → v0.7.1}/core/connectors/sqlite/lib/session-store.js +0 -0
  144. /package/framework/{v0.7.0 → v0.7.1}/core/content.encoding +0 -0
  145. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.framework.js +0 -0
  146. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-json.js +0 -0
  147. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-nunjucks-async.js +0 -0
  148. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-nunjucks.js +0 -0
  149. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-stream.js +0 -0
  150. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-swig-async.js +0 -0
  151. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-swig.js +0 -0
  152. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-v1.js +0 -0
  153. /package/framework/{v0.7.0 → v0.7.1}/core/controller/controller.render-xml.js +0 -0
  154. /package/framework/{v0.7.0 → v0.7.1}/core/controller/index.js +0 -0
  155. /package/framework/{v0.7.0 → v0.7.1}/core/controller/inline-script.js +0 -0
  156. /package/framework/{v0.7.0 → v0.7.1}/core/controller/inspector-window-emit.js +0 -0
  157. /package/framework/{v0.7.0 → v0.7.1}/core/controller/release-banner.js +0 -0
  158. /package/framework/{v0.7.0 → v0.7.1}/core/dev/index.js +0 -0
  159. /package/framework/{v0.7.0 → v0.7.1}/core/dev/lib/class.js +0 -0
  160. /package/framework/{v0.7.0 → v0.7.1}/core/dev/lib/factory.js +0 -0
  161. /package/framework/{v0.7.0 → v0.7.1}/core/dev/lib/tools.js +0 -0
  162. /package/framework/{v0.7.0 → v0.7.1}/core/gna.js +0 -0
  163. /package/framework/{v0.7.0 → v0.7.1}/core/locales/README.md +0 -0
  164. /package/framework/{v0.7.0 → v0.7.1}/core/locales/currency.json +0 -0
  165. /package/framework/{v0.7.0 → v0.7.1}/core/locales/dist/language/en.json +0 -0
  166. /package/framework/{v0.7.0 → v0.7.1}/core/locales/dist/language/fr.json +0 -0
  167. /package/framework/{v0.7.0 → v0.7.1}/core/locales/dist/region/en.json +0 -0
  168. /package/framework/{v0.7.0 → v0.7.1}/core/locales/dist/region/fr.json +0 -0
  169. /package/framework/{v0.7.0 → v0.7.1}/core/locales/index.js +0 -0
  170. /package/framework/{v0.7.0 → v0.7.1}/core/mime.types +0 -0
  171. /package/framework/{v0.7.0 → v0.7.1}/core/model/entity.js +0 -0
  172. /package/framework/{v0.7.0 → v0.7.1}/core/model/index.js +0 -0
  173. /package/framework/{v0.7.0 → v0.7.1}/core/model/template/entityFactory.js +0 -0
  174. /package/framework/{v0.7.0 → v0.7.1}/core/model/template/index.js +0 -0
  175. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/README.md +0 -0
  176. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/index.js +0 -0
  177. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/csrf/README.md +0 -0
  178. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/csrf/package.json +0 -0
  179. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/csrf/src/main.js +0 -0
  180. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/README.md +0 -0
  181. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
  182. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
  183. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  184. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
  185. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
  186. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  187. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
  188. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
  189. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  190. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
  191. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
  192. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  193. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  194. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  195. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  196. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  197. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  198. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  199. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  200. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  201. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  202. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/package.json +0 -0
  203. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  204. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  205. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  206. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/src/main.js +0 -0
  207. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  208. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  209. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  210. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  211. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  212. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  213. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  214. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  215. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  216. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  217. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  218. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  219. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  220. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  221. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  222. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  223. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  224. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  225. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/session/README.md +0 -0
  226. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/session/package.json +0 -0
  227. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/session/src/main.js +0 -0
  228. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/storage/README.md +0 -0
  229. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/storage/build.json +0 -0
  230. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/storage/package.json +0 -0
  231. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/storage/src/main.js +0 -0
  232. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/validator/README.md +0 -0
  233. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/validator/build.json +0 -0
  234. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/validator/package.json +0 -0
  235. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
  236. /package/framework/{v0.7.0 → v0.7.1}/core/plugins/lib/validator/src/main.js +0 -0
  237. /package/framework/{v0.7.0 → v0.7.1}/core/server.express.js +0 -0
  238. /package/framework/{v0.7.0 → v0.7.1}/core/server.isaac.rapid-reset.js +0 -0
  239. /package/framework/{v0.7.0 → v0.7.1}/core/server.route-candidates.js +0 -0
  240. /package/framework/{v0.7.0 → v0.7.1}/core/status.codes +0 -0
  241. /package/framework/{v0.7.0 → v0.7.1}/core/template/_gitignore +0 -0
  242. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/app.json +0 -0
  243. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  244. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
  245. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
  246. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  247. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
  248. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  249. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  250. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  251. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  252. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/index.js +0 -0
  253. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
  254. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  255. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  256. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  257. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  258. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  259. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  260. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  261. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  262. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
  263. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
  264. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  265. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  266. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  267. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  268. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  269. /package/framework/{v0.7.0 → v0.7.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  270. /package/framework/{v0.7.0 → v0.7.1}/core/template/command/gina.bat.tpl +0 -0
  271. /package/framework/{v0.7.0 → v0.7.1}/core/template/command/gina.tpl +0 -0
  272. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/env.json +0 -0
  273. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/manifest.json +0 -0
  274. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/package.json +0 -0
  275. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/settings.json +0 -0
  276. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/statics.json +0 -0
  277. /package/framework/{v0.7.0 → v0.7.1}/core/template/conf/templates.json +0 -0
  278. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/client/json/401.json +0 -0
  279. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/client/json/403.json +0 -0
  280. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/client/json/404.json +0 -0
  281. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/server/html/50x.html +0 -0
  282. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/server/json/500.json +0 -0
  283. /package/framework/{v0.7.0 → v0.7.1}/core/template/error/server/json/503.json +0 -0
  284. /package/framework/{v0.7.0 → v0.7.1}/core/template/extensions/logger/config.json +0 -0
  285. /package/framework/{v0.7.0 → v0.7.1}/helpers/console.js +0 -0
  286. /package/framework/{v0.7.0 → v0.7.1}/helpers/data/LICENSE +0 -0
  287. /package/framework/{v0.7.0 → v0.7.1}/helpers/data/README.md +0 -0
  288. /package/framework/{v0.7.0 → v0.7.1}/helpers/data/package.json +0 -0
  289. /package/framework/{v0.7.0 → v0.7.1}/helpers/data/src/main.js +0 -0
  290. /package/framework/{v0.7.0 → v0.7.1}/helpers/dateFormat.js +0 -0
  291. /package/framework/{v0.7.0 → v0.7.1}/helpers/index.js +0 -0
  292. /package/framework/{v0.7.0 → v0.7.1}/helpers/json/LICENSE +0 -0
  293. /package/framework/{v0.7.0 → v0.7.1}/helpers/json/README.md +0 -0
  294. /package/framework/{v0.7.0 → v0.7.1}/helpers/json/package.json +0 -0
  295. /package/framework/{v0.7.0 → v0.7.1}/helpers/json/src/main.js +0 -0
  296. /package/framework/{v0.7.0 → v0.7.1}/helpers/plugins/README.md +0 -0
  297. /package/framework/{v0.7.0 → v0.7.1}/helpers/plugins/package.json +0 -0
  298. /package/framework/{v0.7.0 → v0.7.1}/helpers/plugins/src/api-error.js +0 -0
  299. /package/framework/{v0.7.0 → v0.7.1}/helpers/plugins/src/main.js +0 -0
  300. /package/framework/{v0.7.0 → v0.7.1}/helpers/prototypes.js +0 -0
  301. /package/framework/{v0.7.0 → v0.7.1}/helpers/text.js +0 -0
  302. /package/framework/{v0.7.0 → v0.7.1}/lib/admin/package.json +0 -0
  303. /package/framework/{v0.7.0 → v0.7.1}/lib/archiver/README.md +0 -0
  304. /package/framework/{v0.7.0 → v0.7.1}/lib/archiver/build.json +0 -0
  305. /package/framework/{v0.7.0 → v0.7.1}/lib/archiver/package.json +0 -0
  306. /package/framework/{v0.7.0 → v0.7.1}/lib/archiver/src/dep/jszip.min.js +0 -0
  307. /package/framework/{v0.7.0 → v0.7.1}/lib/archiver/src/main.js +0 -0
  308. /package/framework/{v0.7.0 → v0.7.1}/lib/async/package.json +0 -0
  309. /package/framework/{v0.7.0 → v0.7.1}/lib/async/src/main.js +0 -0
  310. /package/framework/{v0.7.0 → v0.7.1}/lib/audit/package.json +0 -0
  311. /package/framework/{v0.7.0 → v0.7.1}/lib/audit/src/main.js +0 -0
  312. /package/framework/{v0.7.0 → v0.7.1}/lib/audit-store.js +0 -0
  313. /package/framework/{v0.7.0 → v0.7.1}/lib/authn/package.json +0 -0
  314. /package/framework/{v0.7.0 → v0.7.1}/lib/authn/src/lockout.js +0 -0
  315. /package/framework/{v0.7.0 → v0.7.1}/lib/authn/src/main.js +0 -0
  316. /package/framework/{v0.7.0 → v0.7.1}/lib/authn/src/totp.js +0 -0
  317. /package/framework/{v0.7.0 → v0.7.1}/lib/authz-gate/package.json +0 -0
  318. /package/framework/{v0.7.0 → v0.7.1}/lib/authz-gate/src/main.js +0 -0
  319. /package/framework/{v0.7.0 → v0.7.1}/lib/cache/README.md +0 -0
  320. /package/framework/{v0.7.0 → v0.7.1}/lib/cache/build.json +0 -0
  321. /package/framework/{v0.7.0 → v0.7.1}/lib/cache/package.json +0 -0
  322. /package/framework/{v0.7.0 → v0.7.1}/lib/cache/src/main.js +0 -0
  323. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/aliases.json +0 -0
  324. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/audit/arguments.json +0 -0
  325. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/audit/help.txt +0 -0
  326. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/audit/verify.js +0 -0
  327. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/arguments.json +0 -0
  328. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/build.js +0 -0
  329. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/cp.js +0 -0
  330. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/help.js +0 -0
  331. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  332. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/list.js +0 -0
  333. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/man.js +0 -0
  334. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/mcp-start.js +0 -0
  335. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/mcp.js +0 -0
  336. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/oas.js +0 -0
  337. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/openapi.js +0 -0
  338. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/restart.js +0 -0
  339. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/rm.js +0 -0
  340. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/status.js +0 -0
  341. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/bundle/types.js +0 -0
  342. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/cache/arguments.json +0 -0
  343. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/cache/clear.js +0 -0
  344. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/cache/help.txt +0 -0
  345. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/cache/stats.js +0 -0
  346. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/add.js +0 -0
  347. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/arguments.json +0 -0
  348. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/help.js +0 -0
  349. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/help.txt +0 -0
  350. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/infer.js +0 -0
  351. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/list.js +0 -0
  352. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/migrate.js +0 -0
  353. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/models.js +0 -0
  354. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/remove.js +0 -0
  355. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/rm.js +0 -0
  356. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/connector/test.js +0 -0
  357. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/arguments.json +0 -0
  358. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/help.js +0 -0
  359. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/help.txt +0 -0
  360. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/man.js +0 -0
  361. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/ps.js +0 -0
  362. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/container/stop.js +0 -0
  363. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/add.js +0 -0
  364. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/arguments.json +0 -0
  365. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/help.txt +0 -0
  366. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/inc/args.js +0 -0
  367. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/inc/namespace.js +0 -0
  368. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  369. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/inc/reference-scan.js +0 -0
  370. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/inc/scaffold.js +0 -0
  371. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/remove.js +0 -0
  372. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/rename.js +0 -0
  373. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/controller/rm.js +0 -0
  374. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/add.js +0 -0
  375. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/get.js +0 -0
  376. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/help.js +0 -0
  377. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/help.txt +0 -0
  378. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/inc/name.js +0 -0
  379. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/link-dev.js +0 -0
  380. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/list.js +0 -0
  381. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/rm.js +0 -0
  382. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/set.js +0 -0
  383. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/unset.js +0 -0
  384. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/env/use.js +0 -0
  385. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/arguments.json +0 -0
  386. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/get.js +0 -0
  387. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/help.js +0 -0
  388. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/help.txt +0 -0
  389. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/link-node-modules.js +0 -0
  390. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/list.js +0 -0
  391. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/man.js +0 -0
  392. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/msg.json +0 -0
  393. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/remove.js +0 -0
  394. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/reset.js +0 -0
  395. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/set.js +0 -0
  396. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/stop.js +0 -0
  397. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/update.js +0 -0
  398. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/framework/version.js +0 -0
  399. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/gina-dev.1.md +0 -0
  400. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/gina-framework.1.md +0 -0
  401. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/gina.1.md +0 -0
  402. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/add.js +0 -0
  403. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/arguments.json +0 -0
  404. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/export.js +0 -0
  405. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/help.js +0 -0
  406. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/help.txt +0 -0
  407. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/import.js +0 -0
  408. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/i18n/scan.js +0 -0
  409. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/_host.js +0 -0
  410. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/arguments.json +0 -0
  411. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/build.js +0 -0
  412. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/help.js +0 -0
  413. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/help.txt +0 -0
  414. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/list.js +0 -0
  415. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/man.js +0 -0
  416. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/rm.js +0 -0
  417. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/image/run.js +0 -0
  418. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/index.js +0 -0
  419. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/inspector/help.js +0 -0
  420. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/man-render.js +0 -0
  421. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/minion/arguments.json +0 -0
  422. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/minion/help.js +0 -0
  423. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/minion/help.txt +0 -0
  424. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/minion/list.js +0 -0
  425. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/msg.json +0 -0
  426. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/help.js +0 -0
  427. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/help.txt +0 -0
  428. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/inc/scan.js +0 -0
  429. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/port/set.js +0 -0
  430. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/arguments.json +0 -0
  431. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/backup.js +0 -0
  432. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/build.js +0 -0
  433. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/help.js +0 -0
  434. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/import.js +0 -0
  435. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/list.js +0 -0
  436. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/man.js +0 -0
  437. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/move.js +0 -0
  438. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/rm.js +0 -0
  439. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/project/status.js +0 -0
  440. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/arguments.json +0 -0
  441. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/help.js +0 -0
  442. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/help.txt +0 -0
  443. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/list.js +0 -0
  444. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/protocol/remove.js +0 -0
  445. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/add.js +0 -0
  446. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/help.js +0 -0
  447. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/help.txt +0 -0
  448. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/inc/name.js +0 -0
  449. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/link-local.js +0 -0
  450. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/link-production.js +0 -0
  451. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/list.js +0 -0
  452. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/remove.js +0 -0
  453. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/rm.js +0 -0
  454. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/scope/use.js +0 -0
  455. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/secrets/arguments.json +0 -0
  456. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/secrets/check.js +0 -0
  457. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/secrets/help.js +0 -0
  458. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/secrets/help.txt +0 -0
  459. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/secrets/scan.js +0 -0
  460. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/service/help.js +0 -0
  461. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/service/help.txt +0 -0
  462. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/service/list.js +0 -0
  463. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/service/man.js +0 -0
  464. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/service/start.js +0 -0
  465. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/storage/arguments.json +0 -0
  466. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/storage/gc.js +0 -0
  467. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/storage/help.txt +0 -0
  468. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/storage/stats.js +0 -0
  469. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/storage/verify.js +0 -0
  470. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd/view/add.js +0 -0
  471. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd-status-format/package.json +0 -0
  472. /package/framework/{v0.7.0 → v0.7.1}/lib/cmd-status-format/src/main.js +0 -0
  473. /package/framework/{v0.7.0 → v0.7.1}/lib/collection/README.md +0 -0
  474. /package/framework/{v0.7.0 → v0.7.1}/lib/collection/build.json +0 -0
  475. /package/framework/{v0.7.0 → v0.7.1}/lib/collection/package.json +0 -0
  476. /package/framework/{v0.7.0 → v0.7.1}/lib/collection/src/main.js +0 -0
  477. /package/framework/{v0.7.0 → v0.7.1}/lib/conf-view/package.json +0 -0
  478. /package/framework/{v0.7.0 → v0.7.1}/lib/conf-view/src/main.js +0 -0
  479. /package/framework/{v0.7.0 → v0.7.1}/lib/config.js +0 -0
  480. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-config/package.json +0 -0
  481. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-config/src/main.js +0 -0
  482. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-error/package.json +0 -0
  483. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-error/src/main.js +0 -0
  484. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-registry/package.json +0 -0
  485. /package/framework/{v0.7.0 → v0.7.1}/lib/connector-registry/src/main.js +0 -0
  486. /package/framework/{v0.7.0 → v0.7.1}/lib/cron/README.md +0 -0
  487. /package/framework/{v0.7.0 → v0.7.1}/lib/cron/package.json +0 -0
  488. /package/framework/{v0.7.0 → v0.7.1}/lib/cron/src/main.js +0 -0
  489. /package/framework/{v0.7.0 → v0.7.1}/lib/domain/LICENSE +0 -0
  490. /package/framework/{v0.7.0 → v0.7.1}/lib/domain/README.md +0 -0
  491. /package/framework/{v0.7.0 → v0.7.1}/lib/domain/package.json +0 -0
  492. /package/framework/{v0.7.0 → v0.7.1}/lib/domain/src/main.js +0 -0
  493. /package/framework/{v0.7.0 → v0.7.1}/lib/dto/package.json +0 -0
  494. /package/framework/{v0.7.0 → v0.7.1}/lib/dto/src/main.js +0 -0
  495. /package/framework/{v0.7.0 → v0.7.1}/lib/dto-pipe/package.json +0 -0
  496. /package/framework/{v0.7.0 → v0.7.1}/lib/dto-pipe/src/main.js +0 -0
  497. /package/framework/{v0.7.0 → v0.7.1}/lib/dto-types/package.json +0 -0
  498. /package/framework/{v0.7.0 → v0.7.1}/lib/dto-types/src/main.js +0 -0
  499. /package/framework/{v0.7.0 → v0.7.1}/lib/duration/package.json +0 -0
  500. /package/framework/{v0.7.0 → v0.7.1}/lib/duration/src/main.js +0 -0
  501. /package/framework/{v0.7.0 → v0.7.1}/lib/generator/index.js +0 -0
  502. /package/framework/{v0.7.0 → v0.7.1}/lib/i18n/package.json +0 -0
  503. /package/framework/{v0.7.0 → v0.7.1}/lib/i18n/src/main.js +0 -0
  504. /package/framework/{v0.7.0 → v0.7.1}/lib/idempotency/package.json +0 -0
  505. /package/framework/{v0.7.0 → v0.7.1}/lib/idempotency/src/main.js +0 -0
  506. /package/framework/{v0.7.0 → v0.7.1}/lib/image-build/package.json +0 -0
  507. /package/framework/{v0.7.0 → v0.7.1}/lib/image-build/src/main.js +0 -0
  508. /package/framework/{v0.7.0 → v0.7.1}/lib/index.js +0 -0
  509. /package/framework/{v0.7.0 → v0.7.1}/lib/inherits/LICENSE +0 -0
  510. /package/framework/{v0.7.0 → v0.7.1}/lib/inherits/README.md +0 -0
  511. /package/framework/{v0.7.0 → v0.7.1}/lib/inherits/package.json +0 -0
  512. /package/framework/{v0.7.0 → v0.7.1}/lib/inspector-events/package.json +0 -0
  513. /package/framework/{v0.7.0 → v0.7.1}/lib/inspector-events/src/main.js +0 -0
  514. /package/framework/{v0.7.0 → v0.7.1}/lib/inspector-redact/package.json +0 -0
  515. /package/framework/{v0.7.0 → v0.7.1}/lib/inspector-redact/src/main.js +0 -0
  516. /package/framework/{v0.7.0 → v0.7.1}/lib/instrument/package.json +0 -0
  517. /package/framework/{v0.7.0 → v0.7.1}/lib/instrument/src/main.js +0 -0
  518. /package/framework/{v0.7.0 → v0.7.1}/lib/job/package.json +0 -0
  519. /package/framework/{v0.7.0 → v0.7.1}/lib/job/src/main.js +0 -0
  520. /package/framework/{v0.7.0 → v0.7.1}/lib/job-store.js +0 -0
  521. /package/framework/{v0.7.0 → v0.7.1}/lib/json-config-header/package.json +0 -0
  522. /package/framework/{v0.7.0 → v0.7.1}/lib/json-config-header/src/main.js +0 -0
  523. /package/framework/{v0.7.0 → v0.7.1}/lib/kv/package.json +0 -0
  524. /package/framework/{v0.7.0 → v0.7.1}/lib/kv/src/main.js +0 -0
  525. /package/framework/{v0.7.0 → v0.7.1}/lib/kv-store.js +0 -0
  526. /package/framework/{v0.7.0 → v0.7.1}/lib/loading-state/package.json +0 -0
  527. /package/framework/{v0.7.0 → v0.7.1}/lib/loading-state/src/main.js +0 -0
  528. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/README.md +0 -0
  529. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/package.json +0 -0
  530. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/containers/default/index.js +0 -0
  531. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/containers/file/index.js +0 -0
  532. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/containers/mq/index.js +0 -0
  533. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/containers/mq/listener.js +0 -0
  534. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/containers/mq/speaker.js +0 -0
  535. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/helper.js +0 -0
  536. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/main.js +0 -0
  537. /package/framework/{v0.7.0 → v0.7.1}/lib/logger/src/redact.js +0 -0
  538. /package/framework/{v0.7.0 → v0.7.1}/lib/maintenance/package.json +0 -0
  539. /package/framework/{v0.7.0 → v0.7.1}/lib/math/index.js +0 -0
  540. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-dispatch/package.json +0 -0
  541. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-dispatch/src/main.js +0 -0
  542. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-http/package.json +0 -0
  543. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-http/src/main.js +0 -0
  544. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-server/package.json +0 -0
  545. /package/framework/{v0.7.0 → v0.7.1}/lib/mcp-server/src/main.js +0 -0
  546. /package/framework/{v0.7.0 → v0.7.1}/lib/merge/README.md +0 -0
  547. /package/framework/{v0.7.0 → v0.7.1}/lib/merge/package.json +0 -0
  548. /package/framework/{v0.7.0 → v0.7.1}/lib/merge/src/main.js +0 -0
  549. /package/framework/{v0.7.0 → v0.7.1}/lib/message-validator/package.json +0 -0
  550. /package/framework/{v0.7.0 → v0.7.1}/lib/message-validator/src/main.js +0 -0
  551. /package/framework/{v0.7.0 → v0.7.1}/lib/metrics/package.json +0 -0
  552. /package/framework/{v0.7.0 → v0.7.1}/lib/model.js +0 -0
  553. /package/framework/{v0.7.0 → v0.7.1}/lib/money/package.json +0 -0
  554. /package/framework/{v0.7.0 → v0.7.1}/lib/money/src/main.js +0 -0
  555. /package/framework/{v0.7.0 → v0.7.1}/lib/multipart/package.json +0 -0
  556. /package/framework/{v0.7.0 → v0.7.1}/lib/multipart/src/main.js +0 -0
  557. /package/framework/{v0.7.0 → v0.7.1}/lib/net-locality/package.json +0 -0
  558. /package/framework/{v0.7.0 → v0.7.1}/lib/net-locality/src/main.js +0 -0
  559. /package/framework/{v0.7.0 → v0.7.1}/lib/nunjucks-filters/README.md +0 -0
  560. /package/framework/{v0.7.0 → v0.7.1}/lib/nunjucks-filters/package.json +0 -0
  561. /package/framework/{v0.7.0 → v0.7.1}/lib/nunjucks-filters/src/main.js +0 -0
  562. /package/framework/{v0.7.0 → v0.7.1}/lib/nunjucks-resolver/package.json +0 -0
  563. /package/framework/{v0.7.0 → v0.7.1}/lib/nunjucks-resolver/src/main.js +0 -0
  564. /package/framework/{v0.7.0 → v0.7.1}/lib/priority/package.json +0 -0
  565. /package/framework/{v0.7.0 → v0.7.1}/lib/priority/src/main.js +0 -0
  566. /package/framework/{v0.7.0 → v0.7.1}/lib/proc.js +0 -0
  567. /package/framework/{v0.7.0 → v0.7.1}/lib/push/package.json +0 -0
  568. /package/framework/{v0.7.0 → v0.7.1}/lib/push/src/main.js +0 -0
  569. /package/framework/{v0.7.0 → v0.7.1}/lib/rate-limit/package.json +0 -0
  570. /package/framework/{v0.7.0 → v0.7.1}/lib/rate-limit/src/main.js +0 -0
  571. /package/framework/{v0.7.0 → v0.7.1}/lib/release-watch/package.json +0 -0
  572. /package/framework/{v0.7.0 → v0.7.1}/lib/release-watch/src/main.js +0 -0
  573. /package/framework/{v0.7.0 → v0.7.1}/lib/render-cache/package.json +0 -0
  574. /package/framework/{v0.7.0 → v0.7.1}/lib/render-cache/src/main.js +0 -0
  575. /package/framework/{v0.7.0 → v0.7.1}/lib/render-cache-store.js +0 -0
  576. /package/framework/{v0.7.0 → v0.7.1}/lib/routing/README.md +0 -0
  577. /package/framework/{v0.7.0 → v0.7.1}/lib/routing/build.json +0 -0
  578. /package/framework/{v0.7.0 → v0.7.1}/lib/routing/package.json +0 -0
  579. /package/framework/{v0.7.0 → v0.7.1}/lib/routing/src/main.js +0 -0
  580. /package/framework/{v0.7.0 → v0.7.1}/lib/routing-introspect/package.json +0 -0
  581. /package/framework/{v0.7.0 → v0.7.1}/lib/routing-introspect/src/main.js +0 -0
  582. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/package.json +0 -0
  583. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/backends/env.js +0 -0
  584. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/backends/exec.js +0 -0
  585. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/backends/file.js +0 -0
  586. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/declaration.js +0 -0
  587. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/env-file.js +0 -0
  588. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/main.js +0 -0
  589. /package/framework/{v0.7.0 → v0.7.1}/lib/secrets/src/sources.js +0 -0
  590. /package/framework/{v0.7.0 → v0.7.1}/lib/security-headers-emitter/package.json +0 -0
  591. /package/framework/{v0.7.0 → v0.7.1}/lib/security-headers-emitter/src/main.js +0 -0
  592. /package/framework/{v0.7.0 → v0.7.1}/lib/session-lifetime/package.json +0 -0
  593. /package/framework/{v0.7.0 → v0.7.1}/lib/session-lifetime/src/main.js +0 -0
  594. /package/framework/{v0.7.0 → v0.7.1}/lib/session-store.js +0 -0
  595. /package/framework/{v0.7.0 → v0.7.1}/lib/sqlite-driver.js +0 -0
  596. /package/framework/{v0.7.0 → v0.7.1}/lib/sri/package.json +0 -0
  597. /package/framework/{v0.7.0 → v0.7.1}/lib/sri/src/main.js +0 -0
  598. /package/framework/{v0.7.0 → v0.7.1}/lib/state.js +0 -0
  599. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/package.json +0 -0
  600. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/local-cas.js +0 -0
  601. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/local-stream.js +0 -0
  602. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/local.js +0 -0
  603. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/main.js +0 -0
  604. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/meta-store.js +0 -0
  605. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/s3.js +0 -0
  606. /package/framework/{v0.7.0 → v0.7.1}/lib/storage/src/util.js +0 -0
  607. /package/framework/{v0.7.0 → v0.7.1}/lib/storage-store.js +0 -0
  608. /package/framework/{v0.7.0 → v0.7.1}/lib/swig-filters/README.md +0 -0
  609. /package/framework/{v0.7.0 → v0.7.1}/lib/swig-filters/package.json +0 -0
  610. /package/framework/{v0.7.0 → v0.7.1}/lib/swig-filters/src/main.js +0 -0
  611. /package/framework/{v0.7.0 → v0.7.1}/lib/swig-resolver/package.json +0 -0
  612. /package/framework/{v0.7.0 → v0.7.1}/lib/swig-resolver/src/main.js +0 -0
  613. /package/framework/{v0.7.0 → v0.7.1}/lib/template-loaders/package.json +0 -0
  614. /package/framework/{v0.7.0 → v0.7.1}/lib/template-loaders/src/loaders/http.js +0 -0
  615. /package/framework/{v0.7.0 → v0.7.1}/lib/template-loaders/src/loaders/memory.js +0 -0
  616. /package/framework/{v0.7.0 → v0.7.1}/lib/template-loaders/src/main.js +0 -0
  617. /package/framework/{v0.7.0 → v0.7.1}/lib/url/README.md +0 -0
  618. /package/framework/{v0.7.0 → v0.7.1}/lib/url/index.js +0 -0
  619. /package/framework/{v0.7.0 → v0.7.1}/lib/url/routing.json +0 -0
  620. /package/framework/{v0.7.0 → v0.7.1}/lib/uuid/package.json +0 -0
  621. /package/framework/{v0.7.0 → v0.7.1}/lib/uuid/src/main.js +0 -0
  622. /package/framework/{v0.7.0 → v0.7.1}/lib/validator.js +0 -0
  623. /package/framework/{v0.7.0 → v0.7.1}/lib/watcher/package.json +0 -0
  624. /package/framework/{v0.7.0 → v0.7.1}/lib/watcher/src/main.js +0 -0
  625. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-framing/package.json +0 -0
  626. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-framing/src/main.js +0 -0
  627. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-query/package.json +0 -0
  628. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-query/src/main.js +0 -0
  629. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-session/package.json +0 -0
  630. /package/framework/{v0.7.0 → v0.7.1}/lib/ws-session/src/main.js +0 -0
@@ -6,7 +6,10 @@ const fs = require('fs');
6
6
  const crypto = require('crypto');
7
7
  const nodePath = require('path'); // #B179: used for path-traversal boundary enforcement
8
8
  const os = require('os'); // maintenance status payload: pid + hostname (per-process identity)
9
- const { execSync, exec } = require('child_process');
9
+ // #B665 S2 (2026-09-27) — execFileSync / execFile: the brotli and gzip lookups and compressions
10
+ // run from argument vectors, so the cache path reaches them whole.
11
+ // const { execSync, exec } = require('child_process');
12
+ const { execFileSync, execFile } = require('child_process');
10
13
  const {EventEmitter} = require('events');
11
14
  // #B10 fix: engine.io is only needed when options.ioServer is configured (WebSocket support).
12
15
  // Require it lazily so bundles without WebSocket support don't crash if engine.io is absent.
@@ -133,6 +136,9 @@ function _instrumentKeyValid(req) {
133
136
  * populated it; otherwise drains the request stream (works for HTTP/1.1
134
137
  * IncomingMessage and HTTP/2 Http2ServerRequest). A 2s timeout guards against
135
138
  * an already-consumed stream that never re-fires `end`. Calls back exactly once.
139
+ * Accepts Buffer and string chunks: a request whose encoding was set emits strings
140
+ * (core/server.js calls `request.setEncoding` for every non-multipart request), which
141
+ * are turned back into bytes so the cap counts bytes and the read cannot throw (#B714).
136
142
  *
137
143
  * @inner
138
144
  * @param {http.IncomingMessage|http2.Http2ServerRequest} req
@@ -157,6 +163,12 @@ function _readInstrumentBody(req, cb) {
157
163
  _timer = setTimeout(function() { _finish(new Error('body read timeout')); }, 2000);
158
164
  if (_timer && typeof _timer.unref === 'function') { _timer.unref(); }
159
165
  req.on('data', function(chunk) {
166
+ // #B714 — a request whose encoding was set emits strings (core/server.js onInstance
167
+ // calls request.setEncoding for every non-multipart request): turn a string back into
168
+ // bytes, so the cap counts bytes and Buffer.concat below accepts every chunk.
169
+ if ( typeof(chunk) == 'string' ) {
170
+ chunk = Buffer.from(chunk, req.readableEncoding || 'utf8');
171
+ }
160
172
  _size += chunk.length;
161
173
  if (_size > _MAX) {
162
174
  _finish(new Error('body too large'));
@@ -166,7 +178,14 @@ function _readInstrumentBody(req, cb) {
166
178
  _chunks.push(chunk);
167
179
  });
168
180
  req.on('end', function() {
169
- var _raw = Buffer.concat(_chunks).toString('utf8').trim();
181
+ // #B714 — a throw here escapes as an uncaughtException and stops the bundle:
182
+ // answer it through the callback.
183
+ var _raw;
184
+ try {
185
+ _raw = Buffer.concat(_chunks).toString('utf8').trim();
186
+ } catch (e) {
187
+ return _finish(e);
188
+ }
170
189
  if (!_raw) return _finish(null, {});
171
190
  try { _finish(null, JSON.parse(_raw)); }
172
191
  catch (e) { _finish(new Error('invalid JSON body')); }
@@ -211,6 +230,39 @@ var confineToBase = function(filename, base) {
211
230
  return null;
212
231
  }
213
232
 
233
+ /**
234
+ * #B715 — the `/_gina/*` paths the maintenance gate leaves to core/server.js. core/server.js
235
+ * answers them in its own /_gina band, above its twin gate, where this listener does not
236
+ * answer them (or not in that shape), so a window would otherwise close them on this engine
237
+ * only: storage/stats, storage/gc and storage/verify exist only in core/server.js, and a
238
+ * health check whose url carries a query string misses the `$`-anchored handler here, which
239
+ * tests the raw url, while the core/server.js twin sees the url without its query.
240
+ *
241
+ * The compare is on the exact query-free root path, so a route the bundle declares elsewhere
242
+ * under /_gina/ stays behind the gate; a method or a shape core/server.js does not answer
243
+ * meets its twin gate there. Keep the list in step with the core/server.js /_gina band:
244
+ * `test/core/maintenance-gate-left-to-server-b715.test.js` fails when a core/server.js
245
+ * endpoint has neither a handler here above the gate nor an entry below.
246
+ *
247
+ * @inner
248
+ * @private
249
+ * @memberof module:gina/core/server.isaac
250
+ * @param {string} url - The raw request url, query included
251
+ * @returns {boolean} `true` when the gate lets the request through to core/server.js
252
+ * @example
253
+ * _isLeftToServerJs('/_gina/storage/gc?dryRun=1'); // → true
254
+ * _isLeftToServerJs('/_gina/health/check?probe=1'); // → true
255
+ * _isLeftToServerJs('/_gina/info'); // → false (answered above the gate)
256
+ * _isLeftToServerJs('/web/_gina/storage/stats'); // → false (not the root path)
257
+ */
258
+ function _isLeftToServerJs(url) {
259
+ var p = ( typeof(url) == 'string' ) ? url.split('?')[0] : '';
260
+ return p === '/_gina/storage/stats'
261
+ || p === '/_gina/storage/gc'
262
+ || p === '/_gina/storage/verify'
263
+ || p === '/_gina/health/check';
264
+ }
265
+
214
266
  /**
215
267
  * Reloads all core and lib modules from disk by replacing their require.cache
216
268
  * entries with fresh exports. Excludes gna.js itself. Also refreshes the
@@ -389,14 +441,16 @@ function ServerEngineClass(options) {
389
441
  // Checking if brotli is installed
390
442
  var brotliBin = null;
391
443
  try {
392
- brotliBin = execSync( 'which brotli' ).toString().trim();
444
+ // was: brotliBin = execSync( 'which brotli' ).toString().trim();
445
+ brotliBin = execFileSync( 'which', ['brotli'] ).toString().trim();
393
446
  } catch (binErr) {
394
447
  // Means that it is not installed.
395
448
  }
396
449
  // Checking if gzip is installed
397
450
  var gZipBin = null;
398
451
  try {
399
- gZipBin = execSync( 'which gzip' ).toString().trim();
452
+ // was: gZipBin = execSync( 'which gzip' ).toString().trim();
453
+ gZipBin = execFileSync( 'which', ['gzip'] ).toString().trim();
400
454
  } catch (binErr) {
401
455
  // Means that it is not installed.
402
456
  }
@@ -410,7 +464,7 @@ function ServerEngineClass(options) {
410
464
  let targetFile = null
411
465
  , fd = null
412
466
  , buffer = null
413
- , cmd = null
467
+ // , cmd = null (#B665 S2: the compressions take argument vectors)
414
468
  , brFileObj = null
415
469
  , gzFileObj = null
416
470
  ;
@@ -435,10 +489,12 @@ function ServerEngineClass(options) {
435
489
  brFileObj.rmSync();
436
490
  }
437
491
  // Creating a new br version
438
- cmd = brotliBin +' --best '+ _(targetDir +'/'+ targetFile, true);
492
+ // #B665 S2 (2026-09-27) — an argument vector: the cache path reaches brotli whole.
493
+ // was: cmd = brotliBin +' --best '+ _(targetDir +'/'+ targetFile, true);
439
494
  // replaced: execSync — async exec to avoid blocking event loop during startup (#P32)
440
495
  // console.debug( execSync( cmd ).toString() );
441
- exec(cmd, function(brCmdErr, stdout) {
496
+ // was: exec(cmd, function(brCmdErr, stdout) {
497
+ execFile(brotliBin, ['--best', _(targetDir +'/'+ targetFile, true)], function(brCmdErr, stdout) {
442
498
  if (brCmdErr) { console.error('[ SERVER ] brotli compression error: ' + (brCmdErr.stack || brCmdErr.message)); return; }
443
499
  if (stdout) console.debug(stdout.toString().trim());
444
500
  });
@@ -459,10 +515,12 @@ function ServerEngineClass(options) {
459
515
  gzFileObj.rmSync();
460
516
  }
461
517
  // Creating a new gz version
462
- cmd = gZipBin +' -9 -k '+ _(targetDir +'/'+ targetFile, true);
518
+ // #B665 S2 (2026-09-27) — an argument vector: the cache path reaches gzip whole.
519
+ // was: cmd = gZipBin +' -9 -k '+ _(targetDir +'/'+ targetFile, true);
463
520
  // replaced: execSync — async exec to avoid blocking event loop during startup (#P32)
464
521
  // console.debug( execSync( cmd ).toString() );
465
- exec(cmd, function(gzCmdErr, stdout) {
522
+ // was: exec(cmd, function(gzCmdErr, stdout) {
523
+ execFile(gZipBin, ['-9', '-k', _(targetDir +'/'+ targetFile, true)], function(gzCmdErr, stdout) {
466
524
  if (gzCmdErr) { console.error('[ SERVER ] gzip compression error: ' + (gzCmdErr.stack || gzCmdErr.message)); return; }
467
525
  if (stdout) console.debug(stdout.toString().trim());
468
526
  });
@@ -491,8 +549,9 @@ function ServerEngineClass(options) {
491
549
  if ( brFileObj.existsSync() ) {
492
550
  brFileObj.rmSync();
493
551
  }
494
- cmd = brotliBin +' --best '+ _(targetDir +'/'+ targetFile, true);
495
- exec(cmd, function(brCmdErr, stdout) {
552
+ // was: cmd = brotliBin +' --best '+ _(targetDir +'/'+ targetFile, true);
553
+ // was: exec(cmd, function(brCmdErr, stdout) {
554
+ execFile(brotliBin, ['--best', _(targetDir +'/'+ targetFile, true)], function(brCmdErr, stdout) {
496
555
  if (brCmdErr) { console.error('[ SERVER ] brotli compression error: ' + (brCmdErr.stack || brCmdErr.message)); return; }
497
556
  if (stdout) console.debug(stdout.toString().trim());
498
557
  });
@@ -508,8 +567,9 @@ function ServerEngineClass(options) {
508
567
  if ( gzFileObj.existsSync() ) {
509
568
  gzFileObj.rmSync();
510
569
  }
511
- cmd = gZipBin +' -9 -k '+ _(targetDir +'/'+ targetFile, true);
512
- exec(cmd, function(gzCmdErr, stdout) {
570
+ // was: cmd = gZipBin +' -9 -k '+ _(targetDir +'/'+ targetFile, true);
571
+ // was: exec(cmd, function(gzCmdErr, stdout) {
572
+ execFile(gZipBin, ['-9', '-k', _(targetDir +'/'+ targetFile, true)], function(gzCmdErr, stdout) {
513
573
  if (gzCmdErr) { console.error('[ SERVER ] gzip compression error: ' + (gzCmdErr.stack || gzCmdErr.message)); return; }
514
574
  if (stdout) console.debug(stdout.toString().trim());
515
575
  });
@@ -1167,6 +1227,14 @@ function ServerEngineClass(options) {
1167
1227
  if ( typeof(request.priority) == 'undefined' ) {
1168
1228
  request.priority = lib.priority.parse(request.headers['priority']);
1169
1229
  }
1230
+ // #B709 — the proxy classification of a /_gina/* request, taken ONCE from
1231
+ // its pristine headers: the h1 Host rewrite further down would make every
1232
+ // direct caller of a server.js-only handler (storage/*) look proxied. The
1233
+ // admin and metrics allowlists read it. First-seer; server.js's onInstance
1234
+ // top fills it when absent (Express). Keep the two tops in sync.
1235
+ if ( request.url.indexOf('/_gina/') > -1 ) {
1236
+ lib.admin.stampProxied(request);
1237
+ }
1170
1238
  // #OBS1 slice 3 — HTTP request lifecycle hook for Prometheus metrics.
1171
1239
  // Gated on lib.metrics.isEnabled() so the listener is only wired when
1172
1240
  // app.json metrics.enabled is true. Records on response 'finish' (fires
@@ -1230,8 +1298,15 @@ function ServerEngineClass(options) {
1230
1298
  // Placed above every /_gina/* handler so current AND future ones
1231
1299
  // inherit the refusal. SAFE methods are untouched — the Inspector's
1232
1300
  // cross-origin GET/SSE channels are a documented design.
1301
+ //
1302
+ // #B708 — placement is not enough: the URL test must also match
1303
+ // wherever a write handler matches. It looks for `/_gina/` anywhere
1304
+ // in the full url, in any case, because the unanchored handlers
1305
+ // (cache/clear, maintenance, instrument) accept a path prefix and the
1306
+ // endpoint path at the end of the query string, and cache/clear and
1307
+ // release/* accept any case — see the core/server.js twin.
1233
1308
  if (
1234
- /^\/_gina\//.test(request.url)
1309
+ /\/_gina\//i.test(request.url)
1235
1310
  && !lib.admin.isSafeMethod(request.method)
1236
1311
  && lib.admin.isCrossOriginWrite(request)
1237
1312
  ) {
@@ -1261,11 +1336,26 @@ function ServerEngineClass(options) {
1261
1336
  return response.end(xOrgBody);
1262
1337
  }
1263
1338
 
1339
+ // #B709 — the admin-gated handlers below (metrics, info, cache/*,
1340
+ // maintenance) match this query-free path EXACTLY — the root form, or the
1341
+ // bundle's own webroot form — never the raw url: a nested endpoint path,
1342
+ // the endpoint path in a query string, another letter case or an empty
1343
+ // leading segment reaches none of them. storage/* and release/* stay
1344
+ // anchored on the url. See the core/server.js twin.
1345
+ var _ginaCtlPath = lib.admin.controlPath(request.url, options.webroot);
1346
+
1264
1347
  // healthcheck
1265
1348
  // TODO - add a top level API : server.api.js (check, get ...)
1266
1349
  // TODO - on 90% RAM usage, redirect to `come back later then restart bundle`
1267
1350
  // TODO - check url against wroot : getContext() ?
1268
- if ( request.method.toUpperCase() === 'GET' && /\_gina\/health\/check$/i.test(request.url) ) {
1351
+ // #B717 — a query string no longer misses the handler (`(?:\?|$)`, the idiom of the
1352
+ // instrument and agent handlers). #B718 — HEAD is answered too (a load balancer may
1353
+ // probe with HEAD): the same status and headers, no body. Kept in sync with the
1354
+ // core/server.js twin.
1355
+ // #B712 — `^[^?]*`: the endpoint path must end the url's PATH, not its query string
1356
+ // (`/web/?next=/_gina/health/check` is the page's). Kept in sync with core/server.js.
1357
+ var _healthMethod = request.method.toUpperCase();
1358
+ if ( ( _healthMethod === 'GET' || _healthMethod === 'HEAD' ) && /^[^?]*\_gina\/health\/check(?:\?|$)/i.test(request.url) ) {
1269
1359
 
1270
1360
  const healthStatus = JSON.stringify({
1271
1361
  status: "healthy",
@@ -1281,6 +1371,14 @@ function ServerEngineClass(options) {
1281
1371
 
1282
1372
  // HTTP/2 (Multiplexing)
1283
1373
  if (response.stream) {
1374
+ if ( _healthMethod === 'HEAD' ) {
1375
+ response.stream.respond({
1376
+ ':status': 200,
1377
+ ...healthHeaders,
1378
+ 'content-length': Buffer.byteLength(healthStatus)
1379
+ });
1380
+ return response.stream.end();
1381
+ }
1284
1382
  // On utilise le stream pour garder la session ouverte
1285
1383
  response.stream.respond({
1286
1384
  ':status': 200,
@@ -1290,12 +1388,17 @@ function ServerEngineClass(options) {
1290
1388
  }
1291
1389
 
1292
1390
  // Fallback HTTP/1.1
1391
+ if ( _healthMethod === 'HEAD' ) {
1392
+ healthHeaders['content-length'] = Buffer.byteLength(healthStatus);
1393
+ response.writeHead(200, healthHeaders);
1394
+ return response.end();
1395
+ }
1293
1396
  response.writeHead(200, healthHeaders);
1294
1397
  return response.end(healthStatus);
1295
1398
  }
1296
1399
 
1297
1400
  // /_gina/metrics — Prometheus exposition format (#OBS1, slice 2)
1298
- if ( request.method.toUpperCase() === 'GET' && /\/_gina\/metrics$/i.test(request.url) ) {
1401
+ if ( request.method.toUpperCase() === 'GET' && /^\/_gina\/metrics$/.test(_ginaCtlPath) ) {
1299
1402
  if ( !lib.metrics.isClientAllowed(request) ) {
1300
1403
  var metricsForbiddenBody = JSON.stringify({ error: 'forbidden', message: '/_gina/metrics: client IP not in app.json metrics.allowFrom' });
1301
1404
  var metricsForbiddenHeaders = _setPoweredByHeader({
@@ -1350,7 +1453,7 @@ function ServerEngineClass(options) {
1350
1453
  });
1351
1454
  }
1352
1455
 
1353
- if ( request.method.toUpperCase() === 'GET' && /\_gina\/info$/i.test(request.url) ) {
1456
+ if ( request.method.toUpperCase() === 'GET' && /^\/_gina\/info$/.test(_ginaCtlPath) ) {
1354
1457
 
1355
1458
  // #S7 — IP allowlist gate. Mirrors the metrics endpoint
1356
1459
  // gate at L605-621. 403 on deny.
@@ -1411,7 +1514,7 @@ function ServerEngineClass(options) {
1411
1514
  return response.end(infoStatus);
1412
1515
  }
1413
1516
 
1414
- if ( request.method.toUpperCase() === 'GET' && /\/_gina\/cache\/stats$/i.test(request.url) ) {
1517
+ if ( request.method.toUpperCase() === 'GET' && /^\/_gina\/cache\/stats$/.test(_ginaCtlPath) ) {
1415
1518
 
1416
1519
  // #S7 — IP allowlist gate. Same shape as the /_gina/info gate above.
1417
1520
  if ( !lib.admin.isClientAllowed(request) ) {
@@ -1466,7 +1569,7 @@ function ServerEngineClass(options) {
1466
1569
  // cache.invalidateOnEvents) and takes precedence over ?bundle.
1467
1570
  // Current-namespace fs bodies are removed via the entries' cleanup fns;
1468
1571
  // old-namespace fs orphans are reclaimed by the CLI (gina cache:clear).
1469
- if ( request.method.toUpperCase() === 'POST' && /\/_gina\/cache\/clear(\?.*)?$/i.test(request.url) ) {
1572
+ if ( request.method.toUpperCase() === 'POST' && /^\/_gina\/cache\/clear$/.test(_ginaCtlPath) ) {
1470
1573
 
1471
1574
  if ( !lib.admin.isClientAllowed(request) ) {
1472
1575
  var cacheClearForbiddenBody = JSON.stringify({ error: 'forbidden', message: '/_gina/cache/clear: client IP not in app.json admin.allowFrom' });
@@ -1528,7 +1631,8 @@ function ServerEngineClass(options) {
1528
1631
  if (
1529
1632
  lib.releaseWatch.isActive()
1530
1633
  && request.method.toUpperCase() === 'GET'
1531
- && /^\/_gina\/release\/status$/i.test(request.url)
1634
+ // #B717 — `(?:\?|$)`: a query string no longer misses the handler
1635
+ && /^\/_gina\/release\/status(?:\?|$)/.test(request.url)
1532
1636
  ) {
1533
1637
  if ( !lib.admin.isClientAllowed(request) ) {
1534
1638
  var _rwStatusForbiddenBody = JSON.stringify({ error: 'forbidden', message: '/_gina/release/status: client IP not in app.json admin.allowFrom' });
@@ -1562,7 +1666,7 @@ function ServerEngineClass(options) {
1562
1666
  if (
1563
1667
  lib.releaseWatch.isActive()
1564
1668
  && request.method.toUpperCase() === 'POST'
1565
- && /^\/_gina\/release\/rebuild(\?.*)?$/i.test(request.url)
1669
+ && /^\/_gina\/release\/rebuild(\?.*)?$/.test(request.url)
1566
1670
  ) {
1567
1671
  if ( !lib.admin.isClientAllowed(request) ) {
1568
1672
  var _rwRebuildForbiddenBody = JSON.stringify({ error: 'forbidden', message: '/_gina/release/rebuild: client IP not in app.json admin.allowFrom' });
@@ -1609,7 +1713,8 @@ function ServerEngineClass(options) {
1609
1713
  if (
1610
1714
  lib.releaseWatch.isActive()
1611
1715
  && request.method.toUpperCase() === 'GET'
1612
- && /^\/_gina\/release\/events$/i.test(request.url)
1716
+ // #B717 — `(?:\?|$)`: a query string no longer misses the handler
1717
+ && /^\/_gina\/release\/events(?:\?|$)/.test(request.url)
1613
1718
  ) {
1614
1719
  if ( !lib.admin.isClientAllowed(request) ) {
1615
1720
  var _rwEventsForbiddenBody = JSON.stringify({ error: 'forbidden', message: '/_gina/release/events: client IP not in app.json admin.allowFrom' });
@@ -1624,10 +1729,11 @@ function ServerEngineClass(options) {
1624
1729
  response.writeHead(403, _rwEventsForbiddenHeaders);
1625
1730
  return response.end(_rwEventsForbiddenBody);
1626
1731
  }
1732
+ // #B722 — no `connection` in the shared set: HTTP/2 forbids connection-specific
1733
+ // headers, node's respond() threw on it, and the stream never opened over h2
1627
1734
  var _rwSseHeaders = _setPoweredByHeader({
1628
1735
  'content-type': 'text/event-stream; charset=utf-8',
1629
1736
  'cache-control': 'no-cache, no-store',
1630
- 'connection': 'keep-alive',
1631
1737
  'x-content-type-options': 'nosniff'
1632
1738
  });
1633
1739
  var _rwWrite, _rwOnClose;
@@ -1637,8 +1743,8 @@ function ServerEngineClass(options) {
1637
1743
  _rwWrite = function(d) { try { response.stream.write(d); } catch(e){} };
1638
1744
  _rwOnClose = function(fn) { response.stream.on('close', fn); };
1639
1745
  } else {
1640
- // HTTP/1.1
1641
- response.writeHead(200, _rwSseHeaders);
1746
+ // HTTP/1.1 — `connection` is an HTTP/1 header (#B722)
1747
+ response.writeHead(200, { ..._rwSseHeaders, 'connection': 'keep-alive' });
1642
1748
  _rwWrite = function(d) { try { response.write(d); } catch(e){} };
1643
1749
  _rwOnClose = function(fn) { request.on('close', fn); };
1644
1750
  }
@@ -1671,8 +1777,9 @@ function ServerEngineClass(options) {
1671
1777
  // timestamps), never result / error. Engine-agnostic handler lives in
1672
1778
  // server.js; this is the Isaac (HTTP/2) fast-path. 404 on unknown /
1673
1779
  // malformed id.
1780
+ // #B712 — `^[^?]*`: the job path must be the url's path, never its query string.
1674
1781
  var _jobsMatch = (request.method.toUpperCase() === 'GET')
1675
- ? request.url.match(/\/_gina\/jobs\/([A-Za-z0-9_-]+)\/?(\?.*)?$/)
1782
+ ? request.url.match(/^[^?]*\/_gina\/jobs\/([A-Za-z0-9_-]+)\/?(\?.*)?$/)
1676
1783
  : null;
1677
1784
  if ( _jobsMatch ) {
1678
1785
  var _jobsId = _jobsMatch[1];
@@ -1712,7 +1819,7 @@ function ServerEngineClass(options) {
1712
1819
  // settings.json says is closed.
1713
1820
  if (
1714
1821
  ( request.method.toUpperCase() === 'GET' || request.method.toUpperCase() === 'POST' )
1715
- && /\/_gina\/maintenance(?:\?|$)/.test(request.url)
1822
+ && /^\/_gina\/maintenance$/.test(_ginaCtlPath)
1716
1823
  ) {
1717
1824
  var _mtCtlHeaders = _setPoweredByHeader({
1718
1825
  'cache-control': 'no-cache, no-store, must-revalidate',
@@ -1850,7 +1957,8 @@ function ServerEngineClass(options) {
1850
1957
  if (
1851
1958
  process.gina && process.gina._inspectorInstrumentEnabled
1852
1959
  && (request.method.toUpperCase() === 'GET' || request.method.toUpperCase() === 'POST')
1853
- && /\/_gina\/instrument(?:\?|$)/.test(request.url)
1960
+ // #B712 — `^[^?]*`: in the url's path, not its query string
1961
+ && /^[^?]*\/_gina\/instrument(?:\?|$)/.test(request.url)
1854
1962
  ) {
1855
1963
  var _instrHeaders = _setPoweredByHeader({
1856
1964
  'content-type': 'application/json; charset=utf8',
@@ -1896,14 +2004,17 @@ function ServerEngineClass(options) {
1896
2004
  if (
1897
2005
  isCacheless
1898
2006
  && request.method.toUpperCase() === 'GET'
1899
- && /\/_gina\/inspector(\/.*)?$/.test(request.url)
2007
+ // #B712 — `^[^?]*…(?:\?|$)`: in the url's path, and a query string no longer misses it
2008
+ && /^[^?]*\/_gina\/inspector(\/[^?]*)?(?:\?|$)/.test(request.url)
1900
2009
  ) {
1901
2010
  // Activate profiling on first Inspector access — one-way flag,
1902
2011
  // stays true until bundle restart. QI (controller.js:257) gates
1903
2012
  // on this; it must be true before any request is processed.
1904
2013
  if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
1905
2014
  var _inspBase = __dirname + '/asset/plugin/dist/vendor/gina/inspector';
1906
- var _inspPath = request.url.replace(/^.*\/_gina\/inspector\/?/, '').split('?')[0];
2015
+ // #B712 — read from the url's path, like the matcher above: a query string that
2016
+ // names another Inspector path no longer picks the file
2017
+ var _inspPath = request.url.split('?')[0].replace(/^.*\/_gina\/inspector\/?/, '');
1907
2018
  if (!_inspPath || _inspPath === '') _inspPath = 'index.html';
1908
2019
 
1909
2020
  var _inspMime = {
@@ -1953,15 +2064,17 @@ function ServerEngineClass(options) {
1953
2064
  if (
1954
2065
  isCacheless
1955
2066
  && request.method.toUpperCase() === 'GET'
1956
- && /\/_gina\/logs$/.test(request.url)
2067
+ // #B712 — `^[^?]*…(?:\?|$)`: in the url's path, and a query string no longer misses it
2068
+ && /^[^?]*\/_gina\/logs(?:\?|$)/.test(request.url)
1957
2069
  ) {
1958
2070
  if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
1959
2071
  var _ansiRe = /\x1B\[\d+m/g;
1960
2072
 
2073
+ // #B722 — no `connection` in the shared set: HTTP/2 forbids connection-specific
2074
+ // headers, node's respond() threw on it, and the stream never opened over h2
1961
2075
  var _sseHeaders = _setPoweredByHeader({
1962
2076
  'content-type': 'text/event-stream; charset=utf-8',
1963
2077
  'cache-control': 'no-cache, no-store',
1964
- 'connection': 'keep-alive',
1965
2078
  'x-content-type-options': 'nosniff',
1966
2079
  'access-control-allow-origin': '*'
1967
2080
  });
@@ -1974,8 +2087,8 @@ function ServerEngineClass(options) {
1974
2087
  _write = function(d) { try { response.stream.write(d); } catch(e){} };
1975
2088
  _onClose = function(fn) { response.stream.on('close', fn); };
1976
2089
  } else {
1977
- // HTTP/1.1
1978
- response.writeHead(200, _sseHeaders);
2090
+ // HTTP/1.1 — `connection` is an HTTP/1 header (#B722)
2091
+ response.writeHead(200, { ..._sseHeaders, 'connection': 'keep-alive' });
1979
2092
  _write = function(d) { try { response.write(d); } catch(e){} };
1980
2093
  _onClose = function(fn) { request.on('close', fn); };
1981
2094
  }
@@ -2021,7 +2134,8 @@ function ServerEngineClass(options) {
2021
2134
  if (
2022
2135
  (isCacheless || (process.gina && process.gina._inspectorAgentEnabled))
2023
2136
  && request.method.toUpperCase() === 'GET'
2024
- && /\/_gina\/agent(?:\?|$)/.test(request.url)
2137
+ // #B712 — `^[^?]*`: in the url's path, not its query string
2138
+ && /^[^?]*\/_gina\/agent(?:\?|$)/.test(request.url)
2025
2139
  ) {
2026
2140
  // #INS9b — outside dev mode the agent endpoint requires a valid
2027
2141
  // key (x-gina-inspector-key header or ?key= query param). In dev
@@ -2042,10 +2156,10 @@ function ServerEngineClass(options) {
2042
2156
  if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
2043
2157
  var _agAnsiRe = /\x1B\[\d+m/g;
2044
2158
 
2159
+ // #B722 — no `connection` in the shared set (see the /_gina/logs stream above)
2045
2160
  var _agHeaders = _setPoweredByHeader({
2046
2161
  'content-type': 'text/event-stream; charset=utf-8',
2047
2162
  'cache-control': 'no-cache, no-store',
2048
- 'connection': 'keep-alive',
2049
2163
  'access-control-allow-origin': '*',
2050
2164
  'x-content-type-options': 'nosniff'
2051
2165
  });
@@ -2058,8 +2172,8 @@ function ServerEngineClass(options) {
2058
2172
  _agWrite = function(d) { try { response.stream.write(d); } catch(e){} };
2059
2173
  _agOnClose = function(fn) { response.stream.on('close', fn); };
2060
2174
  } else {
2061
- // HTTP/1.1
2062
- response.writeHead(200, _agHeaders);
2175
+ // HTTP/1.1 — `connection` is an HTTP/1 header (#B722)
2176
+ response.writeHead(200, { ..._agHeaders, 'connection': 'keep-alive' });
2063
2177
  _agWrite = function(d) { try { response.write(d); } catch(e){} };
2064
2178
  _agOnClose = function(fn) { request.on('close', fn); };
2065
2179
  }
@@ -2158,7 +2272,8 @@ function ServerEngineClass(options) {
2158
2272
  if (
2159
2273
  isCacheless
2160
2274
  && request.method.toUpperCase() === 'GET'
2161
- && /\/_gina\/indexes$/.test(request.url)
2275
+ // #B712 — `^[^?]*…(?:\?|$)`: in the url's path, and a query string no longer misses it
2276
+ && /^[^?]*\/_gina\/indexes(?:\?|$)/.test(request.url)
2162
2277
  ) {
2163
2278
  if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
2164
2279
 
@@ -2224,7 +2339,8 @@ function ServerEngineClass(options) {
2224
2339
  if (
2225
2340
  isCacheless
2226
2341
  && request.method.toUpperCase() === 'GET'
2227
- && /\/_gina\/reveal$/.test(request.url)
2342
+ // #B712 — `^[^?]*…(?:\?|$)`: in the url's path, and a query string no longer misses it
2343
+ && /^[^?]*\/_gina\/reveal(?:\?|$)/.test(request.url)
2228
2344
  ) {
2229
2345
  var _rvHeaders = _setPoweredByHeader({
2230
2346
  'content-type': 'application/json; charset=utf8',
@@ -2378,11 +2494,19 @@ function ServerEngineClass(options) {
2378
2494
 
2379
2495
 
2380
2496
  if (
2381
- request.method.toUpperCase() === 'GET' && /\_gina\/assets\/routing\.json$/i.test(request.url)
2497
+ request.method.toUpperCase() === 'GET' && /\_gina\/assets\/routing\.json(?:\?|$)/i.test(request.url)
2382
2498
  ) {
2383
2499
  // server.toApi(reques, response)
2384
2500
  // console.debug('[ SERVER ][200] '+ request.url);
2385
- localAsset = assetsCollection.findOne({ file: request.url.split(/\//g).slice(-1).toString() });
2501
+ // #B717 — a query string no longer misses the handler (`(?:\?|$)`), and the asset
2502
+ // lookup reads the file name the test matched: the url's last segment of
2503
+ // `routing.json?x` named no asset, and the `localAsset.mime` read below would
2504
+ // have thrown. Not the query-free path's last segment either — the test also
2505
+ // matches `/x?y=/_gina/assets/routing.json`, whose path names `x`.
2506
+ // #B707 — the name is lower-cased: the test is case-insensitive while `findOne`
2507
+ // compares strictly, so `Routing.json` named no asset and the `localAsset.mime`
2508
+ // read below threw — an uncaughtException that ended the process.
2509
+ localAsset = assetsCollection.findOne({ file: /\_gina\/assets\/(routing\.json)(?:\?|$)/i.exec(request.url)[1].toLowerCase() });
2386
2510
  // #B66 — on a proxied deployment serve the host-stripped routing.json so
2387
2511
  // the browser never receives any bundle's INTERNAL scheme://host:port (an
2388
2512
  // information disclosure) and cross-bundle client toUrl resolves
@@ -2494,8 +2618,12 @@ function ServerEngineClass(options) {
2494
2618
  // core/server.js then serves the asset underneath it — MEASURED as a
2495
2619
  // 200 bypass, against a synchronous arm that held at 503. The full
2496
2620
  // mechanism is documented at the core/server.js twin.
2621
+ //
2622
+ // #B715 — the `/_gina/*` paths only core/server.js answers pass through to
2623
+ // it (`_isLeftToServerJs`); the check runs last, so it costs nothing while
2624
+ // no window is open.
2497
2625
  var _mtState = server._maintenance;
2498
- if ( _mtState && lib.maintenance.isActive(_mtState) ) {
2626
+ if ( _mtState && lib.maintenance.isActive(_mtState) && !_isLeftToServerJs(request.url) ) {
2499
2627
  var _mtNow = Date.now();
2500
2628
  var _mtConf = lib.maintenance.effectiveConf(_mtState, _mtNow);
2501
2629
  var _mtVerdict = lib.maintenance.evaluateBypass(
@@ -2546,9 +2674,19 @@ function ServerEngineClass(options) {
2546
2674
  return response.end();
2547
2675
  }
2548
2676
  // cookie / header / allowlisted-and-not-proxied: straight through.
2677
+ // #B711 — mark the verdict for core/server.js. Below, isaac rewrites an http/1.1
2678
+ // `Host` without its port before handing the request over, and server.js's own
2679
+ // gate would decide again on that rewritten `Host`, read a listed direct client as
2680
+ // proxied and answer 503. server.js honours this mark instead of re-deciding.
2681
+ request._ginaMaintenanceAdmitted = true;
2549
2682
  }
2550
2683
 
2551
- if (!isCacheless || String(server._cacheIsEnabled).toLowerCase() === 'true') {
2684
+ // The output cache is looked up only while `server.cache.enable` is on. Every
2685
+ // writer refuses to store while it is off (render-swig / render-json writeCache),
2686
+ // the engine-agnostic read in server.js gates on the same flag, and the former
2687
+ // production-unconditional lookup cost two existsSync() calls per GET and could
2688
+ // serve an entry left on disk by an earlier run that had the cache enabled.
2689
+ if ( String(server._cacheIsEnabled).toLowerCase() === 'true' ) {
2552
2690
  if ( request.method.toUpperCase() === 'GET' ) {
2553
2691
  var cacheStatus = null;
2554
2692
  if ( String(server._cacheIsEnabled).toLowerCase() === 'true' ) {
@@ -3205,7 +3343,7 @@ function ServerEngineClass(options) {
3205
3343
  server.on('upgrade', function(req, socket, head){
3206
3344
  // #INS8 — defer /_gina/agent upgrades to the WebSocket agent handler
3207
3345
  // attached in server.js; engine.io owns only its own upgrade path.
3208
- if (/\/_gina\/agent(?:\?|$)/.test(req.url || '')) { return; }
3346
+ if (/\/_gina\/agent(?:\?|$)/.test(req.url ? req.url.split('?')[0] : '')) { return; }
3209
3347
  console.debug('[IO SERVER ] upgrading socket #'+ this.id);
3210
3348
  ioServer.handleUpgrade(req, socket, head);
3211
3349
  });