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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gina",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "MVC framework for Node.js and Bun with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency",
5
5
  "keywords": [
6
6
  "nodejs",
@@ -76,12 +76,12 @@
76
76
  "gina-container": "bin/gina-container",
77
77
  "gina-init": "bin/gina-init"
78
78
  },
79
- "main": "./framework/v0.7.0/core/gna",
79
+ "main": "./framework/v0.7.1/core/gna",
80
80
  "exports": {
81
81
  ".": {
82
82
  "types": "./types/index.d.ts",
83
83
  "import": "./index.mjs",
84
- "require": "./framework/v0.7.0/core/gna.js"
84
+ "require": "./framework/v0.7.1/core/gna.js"
85
85
  },
86
86
  "./gna": {
87
87
  "types": "./types/gna.d.ts",
@@ -99,7 +99,7 @@
99
99
  }
100
100
  },
101
101
  "scripts": {
102
- "test": "node --test --test-timeout=120000 $GINA_TEST_FLAGS test/core/*.test.js test/lib/*.test.js test/bin/*.test.js test/integration/helper.test.js test/integration/container-boot.test.js test/integration/container-boot-init-failure.test.js test/integration/container-boot-request-parsing.test.js test/integration/container-boot-route-method.test.js test/integration/container-boot-route-confusion.test.js test/integration/container-boot-route-candidates.test.js test/integration/container-boot-head-b675.test.js test/integration/container-boot-swig-autoescape.test.js test/integration/logger-log-integrity.test.js framework/v*/test/unit/*.test.js",
102
+ "test": "node --test --test-timeout=120000 $GINA_TEST_FLAGS test/core/*.test.js test/lib/*.test.js test/bin/*.test.js test/integration/helper.test.js test/integration/container-boot.test.js test/integration/container-boot-init-failure.test.js test/integration/container-boot-request-parsing.test.js test/integration/container-boot-route-method.test.js test/integration/container-boot-route-confusion.test.js test/integration/container-boot-route-candidates.test.js test/integration/container-boot-head-b675.test.js test/integration/container-boot-swig-autoescape.test.js test/integration/container-boot-admin-guard-b708.test.js test/integration/container-boot-storage-query-b710.test.js test/integration/container-boot-admin-proxy-b709.test.js test/integration/container-boot-maintenance-allowfrom-b711.test.js test/integration/container-boot-maintenance-left-to-server-b715.test.js test/integration/container-boot-gina-endpoints-query-head-b717.test.js test/integration/container-boot-gina-endpoints-query-anchor-b712.test.js test/integration/container-boot-sse-h2-b722.test.js test/integration/container-boot-routing-case-b707.test.js test/integration/logger-log-integrity.test.js framework/v*/test/unit/*.test.js",
103
103
  "test:coverage": "GINA_TEST_FLAGS=--experimental-test-coverage npm test",
104
104
  "pretest:e2e": "playwright install chromium",
105
105
  "test:e2e": "playwright test test/e2e",
package/schema/app.json CHANGED
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "allowFrom": {
54
54
  "type": "array",
55
- "description": "IP allowlist for the metrics endpoint. Requests from any other source receive 403. Defaults to localhost only.",
55
+ "description": "IP allowlist for the metrics endpoint. Requests from any other source receive 403. Defaults to localhost only. Since 0.7.1 a loopback entry admits a scrape only when it connects directly — one relayed by a reverse proxy on the bundle's own host is refused, the same rule as `admin.allowFrom`.",
56
56
  "items": { "type": "string" },
57
57
  "default": ["127.0.0.1", "::1"]
58
58
  },
@@ -70,12 +70,12 @@
70
70
  },
71
71
  "admin": {
72
72
  "type": "object",
73
- "description": "Admin-grade /_gina/* endpoint access control. Gates /_gina/info and /_gina/cache/stats on a per-bundle IP allowlist. Same shape as `metrics.allowFrom` but a separate axis — admin endpoints expose process state (memory, uptime, HTTP/2 session counters, cache contents) and are scope-separately from Prometheus scrapes.",
73
+ "description": "Admin-grade /_gina/* endpoint access control. Gates /_gina/info, /_gina/cache/stats, /_gina/cache/clear, /_gina/storage/*, /_gina/release/* and /_gina/maintenance on a per-bundle IP allowlist. Same shape as `metrics.allowFrom` but a separate axis — admin endpoints expose process state (memory, uptime, HTTP/2 session counters, cache contents) and are scope-separately from Prometheus scrapes.",
74
74
  "additionalProperties": false,
75
75
  "properties": {
76
76
  "allowFrom": {
77
77
  "type": "array",
78
- "description": "IP allowlist for admin /_gina/* endpoints (/_gina/info, /_gina/cache/stats). Requests from any other source receive 403. Defaults to localhost only (127.0.0.1, ::1). Empty array `[]` denies everyone — explicit lockdown choice. Reads from req.socket.remoteAddress only — X-Forwarded-For is NOT trusted because reverse proxies could spoof it.",
78
+ "description": "IP allowlist for admin /_gina/* endpoints (/_gina/info, /_gina/cache/*, /_gina/storage/*, /_gina/release/*, /_gina/maintenance). Requests from any other source receive 403. Defaults to localhost only (127.0.0.1, ::1). Empty array `[]` denies everyone — explicit lockdown choice. Reads from req.socket.remoteAddress only — X-Forwarded-For is NOT trusted because reverse proxies could spoof it. Since 0.7.1 a loopback entry admits a caller only when it connects directly: a request from 127.0.0.1 or ::1 that carries a proxy signal (an X-Forwarded-* or Forwarded header, or a port-less Host unless server.proxy.requireForwardedHeaders is true) comes from a reverse proxy on the bundle's own host and is refused. List the address of a proxy running on another host to admit what it relays.",
79
79
  "items": { "type": "string" },
80
80
  "default": ["127.0.0.1", "::1"]
81
81
  }
@@ -23,6 +23,22 @@ var runtime = require(__dirname + '/../utils/runtime.js');
23
23
  var isWin32 = function() {
24
24
  return (process.platform === 'win32') ? true : false;
25
25
  };
26
+ /**
27
+ * Escapes the regular-expression metacharacters of `s`, so an install prefix or a home
28
+ * directory is matched as the literal path it is (#B665): a path holding `+` or `[`
29
+ * threw, and its `.` matched any character. The same one-liner as
30
+ * `lib/cmd/bundle/inc/name-rewrite.js`'s `escapeRegex`, kept here because this script
31
+ * runs before a framework directory can be relied on.
32
+ *
33
+ * @param {string} s - A path
34
+ * @returns {string} `s` with every metacharacter backslash-escaped
35
+ *
36
+ * @example
37
+ * new RegExp('^' + escapeRegex('/opt/c++/.npm-global')).test('/opt/c++/.npm-global/lib') // → true
38
+ */
39
+ var escapeRegex = function(s) {
40
+ return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
41
+ };
26
42
  var isWritableSync = function(path) {
27
43
  var canWrite = false;
28
44
  if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
@@ -331,7 +347,8 @@ function PostInstall() {
331
347
  // OK ... found installed gina but on a different prefix
332
348
  // In this case, let's assume that it is not really installed
333
349
  console.info('A previous version of gina has been detected');
334
- if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
350
+ // was: if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
351
+ if ( !new RegExp('^'+ escapeRegex(self.prefix)).test(hasFoundGina.dependencies.gina.path) ) {
335
352
  self.isGinaInstalled = false;
336
353
  console.info('Ignoring previous because of a mismatching install prefix');
337
354
  }
@@ -775,7 +792,8 @@ function PostInstall() {
775
792
  }
776
793
 
777
794
  var inFile = null;
778
- var patt = _(self.prefix.replace( new RegExp( '^' +getUserHome() ), '(.*)[$]HOME') + '/bin', true);
795
+ // was: var patt = _(self.prefix.replace( new RegExp( '^' +getUserHome() ), '(.*)[$]HOME') + '/bin', true);
796
+ var patt = _(self.prefix.replace( new RegExp( '^' + escapeRegex(getUserHome()) ), '(.*)[$]HOME') + '/bin', true);
779
797
  try {
780
798
  inFile = execSync("cat ~/.profile | grep -Eo '" + patt +"'", {shell: "/bin/bash"}).toString();
781
799
  } catch (err) {
@@ -247,7 +247,8 @@ function PreInstall() {
247
247
 
248
248
  // OK ... found installed gina but on a different prefix
249
249
  // In this case, let's assume that it is not really installed
250
- if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
250
+ // was: if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
251
+ if ( !new RegExp('^'+ escapeRegex(self.prefix)).test(hasFoundGina.dependencies.gina.path) ) {
251
252
  self.isGinaInstalled = false;
252
253
  }
253
254
  }
@@ -597,6 +598,24 @@ function PreInstall() {
597
598
  return (process.platform === 'win32') ? true : false;
598
599
  };
599
600
 
601
+ /**
602
+ * Escapes the regular-expression metacharacters of `s`, so an install prefix is
603
+ * matched as the literal path it is (#B665): a prefix holding `+` or `[` threw and
604
+ * failed the install, and its `.` matched any character. The same one-liner as
605
+ * `lib/cmd/bundle/inc/name-rewrite.js`'s `escapeRegex`, kept here because this script
606
+ * runs before a framework directory can be relied on.
607
+ *
608
+ * @inner
609
+ * @param {string} s - A path
610
+ * @returns {string} `s` with every metacharacter backslash-escaped
611
+ *
612
+ * @example
613
+ * new RegExp('^' + escapeRegex('/opt/c++/.npm-global')).test('/opt/c++/.npm-global/var') // → true
614
+ */
615
+ var escapeRegex = function(s) {
616
+ return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
617
+ };
618
+
600
619
  var existsSync = function(path) {
601
620
  if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
602
621
  try {
@@ -644,7 +663,9 @@ function PreInstall() {
644
663
  // Means `/usr/local/var/lock` or `/usr/local/var/run` by default.
645
664
  var runDir = (isWin32()) ? getUserHome() + '\\.gina\\run' : prefix+'/var/lock';
646
665
 
647
- if ( !isWin32() && new RegExp('^'+ prefix).test(runDir) && !isWritableSync(prefix) ) {
666
+ // #B665 — the prefix is matched literally (see escapeRegex): a `c++` prefix threw here.
667
+ // was: if ( !isWin32() && new RegExp('^'+ prefix).test(runDir) && !isWritableSync(prefix) ) {
668
+ if ( !isWin32() && new RegExp('^'+ escapeRegex(prefix)).test(runDir) && !isWritableSync(prefix) ) {
648
669
  runDir = getUserHome() +'/.gina/run';
649
670
  if ( !existsSync(runDir) ) {
650
671
  fs.mkdirSync(runDir)
@@ -717,14 +738,16 @@ function PreInstall() {
717
738
  prefix+'/var/tmp'
718
739
  ;
719
740
 
720
- if ( new RegExp('^'+ prefix).test(tmpDir) && !isWritableSync(prefix) ) {
741
+ // was: if ( new RegExp('^'+ prefix).test(tmpDir) && !isWritableSync(prefix) ) {
742
+ if ( new RegExp('^'+ escapeRegex(prefix)).test(tmpDir) && !isWritableSync(prefix) ) {
721
743
  tmpDir = getUserHome() +'/.gina/tmp';
722
744
  if ( !existsSync(tmpDir) ) {
723
745
  fs.mkdirSync(tmpDir)
724
746
  }
725
747
  }
726
748
 
727
- if ( new RegExp('^'+ prefix +'/var').test(tmpDir) && !existsSync(prefix+'/var') ) {
749
+ // was: if ( new RegExp('^'+ prefix +'/var').test(tmpDir) && !existsSync(prefix+'/var') ) {
750
+ if ( new RegExp('^'+ escapeRegex(prefix +'/var')).test(tmpDir) && !existsSync(prefix+'/var') ) {
728
751
  fs.mkdirSync(prefix+'/var');
729
752
  }
730
753
  }
@@ -775,7 +798,8 @@ function PreInstall() {
775
798
  prefix+'/var/log'
776
799
  ;
777
800
 
778
- if ( new RegExp('^'+ prefix).test(logDir) && !isWritableSync(prefix) ) {
801
+ // was: if ( new RegExp('^'+ prefix).test(logDir) && !isWritableSync(prefix) ) {
802
+ if ( new RegExp('^'+ escapeRegex(prefix)).test(logDir) && !isWritableSync(prefix) ) {
779
803
  logDir = getUserHome() +'/.gina/log';
780
804
  if ( !existsSync(logDir) ) {
781
805
  fs.mkdirSync(logDir)
@@ -784,7 +808,8 @@ function PreInstall() {
784
808
  return logDir
785
809
  }
786
810
 
787
- if ( new RegExp('^'+ prefix +'/var').test(logDir) && !existsSync(prefix+'/var') ) {
811
+ // was: if ( new RegExp('^'+ prefix +'/var').test(logDir) && !existsSync(prefix+'/var') ) {
812
+ if ( new RegExp('^'+ escapeRegex(prefix +'/var')).test(logDir) && !existsSync(prefix+'/var') ) {
788
813
  fs.mkdirSync(prefix+'/var');
789
814
  }
790
815
 
package/utils/helper.js CHANGED
@@ -1,6 +1,9 @@
1
1
  var fs = require('fs');
2
2
  var os = require('os');
3
- var { execSync } = require('child_process');
3
+ // #B665 S2 (2026-09-27) — npm runs from an argument vector, the form #B663 gave the install
4
+ // scripts: `$(which npm)` split an npm installed under a path holding a space.
5
+ // var { execSync } = require('child_process');
6
+ var { execFileSync } = require('child_process');
4
7
 
5
8
  var lib = null;
6
9
  var console = null;
@@ -39,7 +42,8 @@ function MainHelper(opt) {
39
42
 
40
43
  try {
41
44
  pkg = packObj;
42
- self.defaultPrefix = ( typeof(packObj.config) != 'undefined' && typeof(packObj.config.prefix) != 'undefined' ) ? packObj.config.prefix : execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
45
+ // was: self.defaultPrefix = ( typeof(packObj.config) != 'undefined' && typeof(packObj.config.prefix) != 'undefined' ) ? packObj.config.prefix : execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
46
+ self.defaultPrefix = ( typeof(packObj.config) != 'undefined' && typeof(packObj.config.prefix) != 'undefined' ) ? packObj.config.prefix : execFileSync('npm', ['config', 'get', 'prefix', '--quiet']).toString().replace(/\n$/g, '');
43
47
  self.defaultPrefix = self.defaultPrefix.replace(/^\~/, getUserHome());
44
48
  prefix = getEnvVar('GINA_PREFIX') || self.defaultPrefix;
45
49
  self.optionalPrefix = pkg.config.optionalPrefix.replace(/^\~/, getUserHome());
@@ -47,13 +51,18 @@ function MainHelper(opt) {
47
51
  console.warn('MainHelper::Init() Execption: '+ err.stack);
48
52
  console.debug('Trying alternative config');
49
53
  try {
50
- self.defaultPrefix = execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
54
+ // was: self.defaultPrefix = execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
55
+ self.defaultPrefix = execFileSync('npm', ['config', 'get', 'prefix', '--quiet']).toString().replace(/\n$/g, '');
51
56
  prefix = getEnvVar('GINA_PREFIX') || self.defaultPrefix;
52
- cmd = 'npm list gina --long --json --prefix='+ prefix;
57
+ // #B665 S2 (2026-09-27) — an argument vector: the prefix reaches npm whole.
58
+ // was: cmd = 'npm list gina --long --json --prefix='+ prefix;
59
+ cmd = ['list', 'gina', '--long', '--json', '--prefix='+ prefix];
53
60
  if (self.isGlobalInstall) {
54
- cmd += ' -g';
61
+ // was: cmd += ' -g';
62
+ cmd.push('-g');
55
63
  }
56
- pkg = execSync(cmd).toString().replace(/\n$/g, '');
64
+ // was: pkg = execSync(cmd).toString().replace(/\n$/g, '');
65
+ pkg = execFileSync('npm', cmd).toString().replace(/\n$/g, '');
57
66
  self.optionalPrefix = JSON.parse(pkg).dependencies.gina.config.optionalPrefix.replace(/^\~/, getUserHome());
58
67
  } catch (_err) {
59
68
  throw new Error(_err.stack +'\n'+ err.stack)
@@ -245,7 +254,8 @@ function MainHelper(opt) {
245
254
  return logDir
246
255
  }
247
256
 
248
- var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
257
+ // was: var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
258
+ var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execFileSync('npm', ['config', 'get', 'prefix', '--quiet']).toString().replace(/\n$/g, '');
249
259
 
250
260
  if ( isWin32() ) {
251
261
  logDir = process.env.LOG ||
@@ -321,7 +331,8 @@ function MainHelper(opt) {
321
331
  return runDir
322
332
  }
323
333
 
324
- var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
334
+ // was: var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
335
+ var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execFileSync('npm', ['config', 'get', 'prefix', '--quiet']).toString().replace(/\n$/g, '');
325
336
 
326
337
  runDir = (isWin32()) ? getUserHome() + '\\.gina\\run' : prefix + '/var/lock';
327
338
 
@@ -386,7 +397,8 @@ function MainHelper(opt) {
386
397
  return dir
387
398
  }
388
399
 
389
- var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
400
+ // was: var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execSync('$(which npm) config get prefix --quiet').toString().replace(/\n$/g, '');
401
+ var prefix = getEnvVar('GINA_PREFIX') || self.prefix || self.defaultPrefix || execFileSync('npm', ['config', 'get', 'prefix', '--quiet']).toString().replace(/\n$/g, '');
390
402
 
391
403
  // support for node 0.10.x & 0.11.x
392
404
  var tmp = (os.tmpdir) ? os.tmpdir : function() {
@@ -1 +0,0 @@
1
- 0.7.0
@@ -1,217 +0,0 @@
1
- /*
2
- * This file is part of the gina package.
3
- * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
4
- *
5
- * For the full copyright and license information, please view the LICENSE
6
- * file that was distributed with this source code.
7
- */
8
-
9
- /**
10
- * @module gina/lib/admin
11
- *
12
- * Admin /_gina/* IP-allowlist gate (#S7). Single source of truth for the
13
- * access check on the admin-grade /_gina/* endpoints (`/_gina/info`,
14
- * `/_gina/cache/stats`). Both server engines (`server.js` and
15
- * `server.isaac.js`) previously carried a byte-identical copy of this
16
- * helper; this module is now the single source and both engines call
17
- * `lib.admin.isClientAllowed(req)`.
18
- *
19
- * The allowlist is resolved from `process.gina._adminAllowList`, which
20
- * `gna.js` populates at bundle init from `app.json` `admin.allowFrom`
21
- * (defaults to loopback `['127.0.0.1', '::1']`). Sibling of
22
- * `lib.metrics.isClientAllowed` on a separate axis — admin endpoints expose
23
- * process state (memory, uptime, HTTP/2 session counters, cache contents)
24
- * and are gated separately from Prometheus scrapes.
25
- *
26
- * Also the home of the cross-origin WRITE guard (#B384) that fronts the same
27
- * family. The two are complementary and neither subsumes the other: the IP
28
- * allowlist answers "may this address talk to admin endpoints at all", while
29
- * {@link isCrossOriginWrite} answers "did this state-changing request actually
30
- * originate from the operator, or from a page that merely borrowed their
31
- * browser's ambient IP". Kept as a SEPARATE function rather than folded into
32
- * `isClientAllowed` so the six admin GET endpoints keep their existing
33
- * semantics and the name never over-promises.
34
- *
35
- * Registered as a PLAIN `require` in `lib/index.js` (not `_require`): a
36
- * stateless pure-function leaf with no instance/singleton state to
37
- * hot-reload — same #B32-residual precedent as merge / uuid / Collection.
38
- *
39
- * @example
40
- * // from an engine handler (lib is the framework lib registry)
41
- * if (!lib.admin.isClientAllowed(request)) {
42
- * response.statusCode = 403;
43
- * return response.end(JSON.stringify({ error: 'forbidden' }));
44
- * }
45
- */
46
-
47
- /**
48
- * Default allowlist used when `admin.allowFrom` is unset — loopback only.
49
- * @constant {string[]}
50
- */
51
- var DEFAULT_ALLOW_LIST = ['127.0.0.1', '::1'];
52
-
53
- /**
54
- * Decide whether a request's client IP is in an explicit allowlist. Inner
55
- * seam exposed for branch testing without mutating `process.gina` state.
56
- *
57
- * Reads the client IP from `req.socket.remoteAddress` only — never trusts
58
- * `X-Forwarded-For` (reverse proxies could spoof it). Normalises
59
- * `::ffff:IPv4` (IPv6-mapped IPv4) → `IPv4` so listing `127.0.0.1` matches
60
- * both forms. An empty list (`[]`) denies everyone (explicit lockdown).
61
- *
62
- * @inner
63
- * @param {http.IncomingMessage|http2.Http2ServerRequest} req
64
- * @param {string[]} list the allowlist to test against
65
- * @returns {boolean} true if the client IP is in `list`
66
- * @example
67
- * _isAllowedWithList({ socket: { remoteAddress: '127.0.0.1' } }, ['127.0.0.1']); // true
68
- * _isAllowedWithList({ socket: { remoteAddress: '10.0.0.1' } }, []); // false
69
- */
70
- function _isAllowedWithList(req, list) {
71
- if (list.length === 0) return false;
72
- var ip = (req.socket && req.socket.remoteAddress)
73
- || (req.connection && req.connection.remoteAddress)
74
- || '';
75
- if (ip.indexOf('::ffff:') === 0) ip = ip.slice(7);
76
- return list.indexOf(ip) >= 0;
77
- }
78
-
79
- /**
80
- * IP-allowlist check for the admin-grade /_gina/* endpoints.
81
- *
82
- * Resolves the allowlist from `process.gina._adminAllowList` (set by
83
- * `gna.js` from `app.json` admin.allowFrom), falling back to loopback-only
84
- * when the global is missing (init not yet fired — the safest default).
85
- *
86
- * @param {http.IncomingMessage|http2.Http2ServerRequest} req
87
- * @returns {boolean} true if the client IP is allowed, false otherwise
88
- * @example
89
- * if (!lib.admin.isClientAllowed(request)) { return self.throwError(403); }
90
- */
91
- function isClientAllowed(req) {
92
- var list = (typeof process.gina === 'object' && process.gina && Array.isArray(process.gina._adminAllowList))
93
- ? process.gina._adminAllowList
94
- : DEFAULT_ALLOW_LIST;
95
- return _isAllowedWithList(req, list);
96
- }
97
-
98
- /**
99
- * Request methods that cannot mutate state (RFC 9110 §9.2.1). Mirrors the set
100
- * in `core/controller/controller.js` — a cross-origin GET is not a CSRF vector,
101
- * and refusing one would break the Inspector's deliberately cross-origin
102
- * GET/SSE channels (`/_gina/agent`, `/_gina/logs`, `/_gina/indexes`), where
103
- * `core/server.js` documents that "cross-origin is the norm here".
104
- * @constant {Object.<string, boolean>}
105
- */
106
- var SAFE_HTTP_METHODS = { GET: true, HEAD: true, OPTIONS: true, TRACE: true };
107
-
108
- /**
109
- * Decide whether a request method is SAFE (non-mutating).
110
- *
111
- * @param {string} method - the HTTP method
112
- * @returns {boolean} true when the method cannot mutate state
113
- * @example
114
- * isSafeMethod('get'); // true
115
- * isSafeMethod('POST'); // false
116
- * isSafeMethod(null); // false
117
- */
118
- function isSafeMethod(method) {
119
- return SAFE_HTTP_METHODS[ String(method || '').toUpperCase() ] === true;
120
- }
121
-
122
- /**
123
- * Detect a browser-driven CROSS-ORIGIN WRITE to the `/_gina/*` control family
124
- * (#B384).
125
- *
126
- * These endpoints authenticate with an AMBIENT credential — the client's IP,
127
- * via {@link isClientAllowed} — and a browser attaches that automatically to
128
- * every request a page makes. That is precisely the precondition for CSRF: an
129
- * operator browsing from an allowlisted address (loopback by DEFAULT, i.e. the
130
- * machine running the bundle) can be lured to a page that silently writes to
131
- * `/_gina/storage/gc`, `/_gina/cache/clear`, `/_gina/release/rebuild` or
132
- * `/_gina/maintenance`. The first three take their entire input from the QUERY
133
- * STRING and read no body at all, so the attack needs no `fetch` and no CORS
134
- * reasoning — a plain auto-submitting `<form>` suffices, and browsers have
135
- * always permitted a form to POST cross-origin.
136
- *
137
- * Two signals, in order of trustworthiness:
138
- *
139
- * 1. `Sec-Fetch-Site` — computed by the browser and a FORBIDDEN header name,
140
- * so page script cannot forge it. It is also independent of how a reverse
141
- * proxy rewrites `Host`, which is why it is preferred. `same-origin`
142
- * passes; `none` passes (a user-initiated navigation — typed URL or
143
- * bookmark — is not a forged request); `same-site` and `cross-site` are
144
- * REFUSED, since a sibling subdomain is still a different origin and can
145
- * still forge.
146
- * 2. `Origin` compared against the authority the client actually connected
147
- * to — the fallback for browsers predating Fetch Metadata. Built from
148
- * `:authority` (HTTP/2) or `Host` (HTTP/1.1) ONLY, NEVER from
149
- * `X-Forwarded-Host` or any other forwarded header: #B367 established
150
- * those are attacker-controlled, and a guard comparing against a value the
151
- * attacker supplies is no guard. `Origin: null` (sandboxed iframe,
152
- * `file://` page) is refused — the #CSRF3 precedent.
153
- *
154
- * NO browser signal at all ⇒ ALLOWED. CSRF attacks ambient browser
155
- * credentials; a client sending neither header is not a browser (curl, the
156
- * gina CLI's own probes, a deploy script), so refusing it would break every
157
- * documented operator workflow while stopping nothing.
158
- *
159
- * ⚠️ Residual, deliberately pinned: a browser old enough to send NEITHER
160
- * `Sec-Fetch-Site` NOR `Origin` on a POST would pass. Every current browser
161
- * sends `Origin` on cross-origin POSTs, so this is a legacy-only gap — and a
162
- * narrower one than the IP allowlist already fronting these endpoints.
163
- *
164
- * ⚠️ Second residual: a reverse proxy that REWRITES `Host` to an internal
165
- * upstream name desynchronises the fallback comparison, which would refuse a
166
- * legitimate same-origin write from a pre-Fetch-Metadata browser. Modern
167
- * browsers are unaffected (signal 1 never consults `Host`), and these
168
- * endpoints are IP-gated on `req.socket.remoteAddress`, which behind a proxy
169
- * is the PROXY's address — so the deployment must already have opted in by
170
- * listing it.
171
- *
172
- * @param {http.IncomingMessage|http2.Http2ServerRequest} req
173
- * @returns {boolean} true when the request is a browser-driven cross-origin
174
- * write and must be refused
175
- * @example
176
- * isCrossOriginWrite({ headers: { 'sec-fetch-site': 'same-origin' } }); // false
177
- * isCrossOriginWrite({ headers: { 'sec-fetch-site': 'cross-site' } }); // true
178
- * isCrossOriginWrite({ headers: {} }); // false (curl)
179
- * isCrossOriginWrite({ headers: { origin: 'http://evil.tld', host: 'app.tld' } }); // true
180
- * isCrossOriginWrite({ headers: { origin: 'http://app.tld', host: 'app.tld' } }); // false
181
- */
182
- function isCrossOriginWrite(req) {
183
- if ( typeof(req) != 'object' || req === null ) {
184
- return true; // malformed ⇒ fail CLOSED
185
- }
186
- var headers = req.headers || {};
187
-
188
- var site = headers['sec-fetch-site'];
189
- if ( typeof(site) == 'string' && site.trim() !== '' ) {
190
- site = site.trim().toLowerCase();
191
- return !( site === 'same-origin' || site === 'none' );
192
- }
193
-
194
- var origin = headers['origin'];
195
- if ( typeof(origin) != 'string' || origin.trim() === '' ) {
196
- return false; // no browser signal ⇒ not a browser ⇒ not CSRF
197
- }
198
- origin = origin.trim();
199
- if ( origin.toLowerCase() === 'null' ) {
200
- return true; // sandboxed iframe / file:// — #CSRF3 precedent
201
- }
202
- var authority = headers[':authority'] || headers['host'] || '';
203
- if ( typeof(authority) != 'string' || authority === '' ) {
204
- return true; // nothing trustworthy to compare against ⇒ fail CLOSED
205
- }
206
- var originHost = origin.replace(/^[a-z0-9+.\-]+:\/\//i, '');
207
- return ( originHost.toLowerCase() !== authority.toLowerCase() );
208
- }
209
-
210
- module.exports = {
211
- isClientAllowed : isClientAllowed,
212
- isCrossOriginWrite : isCrossOriginWrite,
213
- isSafeMethod : isSafeMethod,
214
- _isAllowedWithList : _isAllowedWithList,
215
- DEFAULT_ALLOW_LIST : DEFAULT_ALLOW_LIST,
216
- SAFE_HTTP_METHODS : SAFE_HTTP_METHODS
217
- };
@@ -1,85 +0,0 @@
1
- var exec = require('child_process').exec;
2
-
3
- var CmdHelper = require('./../helper');
4
- var console = lib.logger;
5
- /**
6
- * @module gina/lib/cmd/project/restart
7
- */
8
- /**
9
- * Restarts all bundles in a project.
10
- * Delegates to `gina bundle:restart @<project>` (bulk mode).
11
- *
12
- * Usage:
13
- * gina project:restart @<project_name>
14
- *
15
- * @class Restart
16
- * @constructor
17
- * @param {object} opt - Parsed command-line options
18
- * @param {object} opt.client - Socket client or process.stdout for terminal output
19
- * @param {string[]} opt.argv - Full argv array
20
- * @param {number} [opt.debugPort] - Node.js inspector port
21
- * @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
22
- * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
23
- */
24
- function Restart(opt, cmd) {
25
-
26
- var self = {};
27
-
28
- var init = function(opt, cmd) {
29
- // import CMD helpers
30
- new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
31
-
32
- // check CMD configuration
33
- if (!isCmdConfigured()) return false;
34
-
35
- self.cmdStr = process.argv.splice(0, 2).join(' ');
36
-
37
- // collect --flags to forward
38
- self.inheritedArgv = [];
39
- for (var i = 0, len = process.argv.length; i < len; i++) {
40
- if ( /^\-\-/.test(process.argv[i]) ) {
41
- self.inheritedArgv.push(process.argv[i])
42
- }
43
- }
44
- self.inheritedArgv = self.inheritedArgv.join(' ');
45
-
46
- restart(opt, cmd);
47
- }
48
-
49
- var restart = function(opt, cmd) {
50
-
51
- var _cmd = '$gina bundle:restart @' + self.projectName;
52
- if (self.inheritedArgv != '') {
53
- _cmd += ' ' + self.inheritedArgv;
54
- }
55
- if (opt.debugPort) {
56
- _cmd += ' --inspect';
57
- if (opt.debugBrkEnabled) {
58
- _cmd += '-brk'
59
- }
60
- _cmd += '=' + opt.debugPort;
61
- }
62
- _cmd = _cmd.replace(/\$(gina)/g, self.cmdStr);
63
-
64
- console.info('Restarting all bundles in @' + self.projectName + ' ...');
65
- console.debug('Executing: ' + _cmd);
66
-
67
- // Re-export the home: the bootstrap env sweep strips GINA_* from
68
- // process.env, so the delegated bundle command would otherwise act
69
- // on the default home (see linkGina in project/add.js).
70
- exec(_cmd, { maxBuffer: 1024 * 500, env: Object.assign({}, process.env, { GINA_HOMEDIR: GINA_HOMEDIR }) }, function(err, stdout, stderr) {
71
- if (stdout) {
72
- console.log(stdout.replace(/\n\rTrying to.*/gm, ''));
73
- }
74
- if (err) {
75
- console.error(err.toString());
76
- return process.exit(1);
77
- }
78
- process.exit(0);
79
- });
80
- }
81
-
82
- init(opt, cmd);
83
- }
84
-
85
- module.exports = Restart
@@ -1,85 +0,0 @@
1
- var exec = require('child_process').exec;
2
-
3
- var CmdHelper = require('./../helper');
4
- var console = lib.logger;
5
- /**
6
- * @module gina/lib/cmd/project/start
7
- */
8
- /**
9
- * Starts all bundles in a project.
10
- * Delegates to `gina bundle:start @<project>` (bulk mode).
11
- *
12
- * Usage:
13
- * gina project:start @<project_name> [ --env=dev, --scope=local, --inspect-brk=5000 ]
14
- *
15
- * @class Start
16
- * @constructor
17
- * @param {object} opt - Parsed command-line options
18
- * @param {object} opt.client - Socket client or process.stdout for terminal output
19
- * @param {string[]} opt.argv - Full argv array
20
- * @param {number} [opt.debugPort] - Node.js inspector port
21
- * @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
22
- * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
23
- */
24
- function Start(opt, cmd) {
25
-
26
- var self = {};
27
-
28
- var init = function(opt, cmd) {
29
- // import CMD helpers
30
- new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
31
-
32
- // check CMD configuration
33
- if (!isCmdConfigured()) return false;
34
-
35
- self.cmdStr = process.argv.splice(0, 2).join(' ');
36
-
37
- // collect --flags to forward
38
- self.inheritedArgv = [];
39
- for (var i = 0, len = process.argv.length; i < len; i++) {
40
- if ( /^\-\-/.test(process.argv[i]) ) {
41
- self.inheritedArgv.push(process.argv[i])
42
- }
43
- }
44
- self.inheritedArgv = self.inheritedArgv.join(' ');
45
-
46
- start(opt, cmd);
47
- }
48
-
49
- var start = function(opt, cmd) {
50
-
51
- var _cmd = '$gina bundle:start @' + self.projectName;
52
- if (self.inheritedArgv != '') {
53
- _cmd += ' ' + self.inheritedArgv;
54
- }
55
- if (opt.debugPort) {
56
- _cmd += ' --inspect';
57
- if (opt.debugBrkEnabled) {
58
- _cmd += '-brk'
59
- }
60
- _cmd += '=' + opt.debugPort;
61
- }
62
- _cmd = _cmd.replace(/\$(gina)/g, self.cmdStr);
63
-
64
- console.info('Starting all bundles in @' + self.projectName + ' ...');
65
- console.debug('Executing: ' + _cmd);
66
-
67
- // Re-export the home: the bootstrap env sweep strips GINA_* from
68
- // process.env, so the delegated bundle command would otherwise act
69
- // on the default home (see linkGina in project/add.js).
70
- exec(_cmd, { maxBuffer: 1024 * 500, env: Object.assign({}, process.env, { GINA_HOMEDIR: GINA_HOMEDIR }) }, function(err, stdout, stderr) {
71
- if (stdout) {
72
- console.log(stdout);
73
- }
74
- if (err) {
75
- console.error(err.toString());
76
- return process.exit(1);
77
- }
78
- process.exit(0);
79
- });
80
- }
81
-
82
- init(opt, cmd);
83
- }
84
-
85
- module.exports = Start