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
@@ -1,9 +1,12 @@
1
1
  var fs = require('fs');
2
2
  const {spawn} = require('child_process');
3
- const {execSync} = require('child_process');
3
+ // #B665 S2 (2026-09-27) — no shell: the daemons are listed through inc/ps-titles.js, and a pid's
4
+ // liveness is checked with process.kill(pid, 0).
5
+ // const {execSync} = require('child_process');
4
6
  //const { debug } = require('console');
5
7
 
6
8
  var CmdHelper = require('./../helper');
9
+ var psTitles = require('./inc/ps-titles');
7
10
  var console = lib.logger;
8
11
  /**
9
12
  * @module gina/lib/cmd/framework/status
@@ -46,41 +49,43 @@ function Status(opt, cmd) {
46
49
  }
47
50
 
48
51
  /**
49
- * Discovers processes matching `gina-v*` that are not tracked by PID files
50
- * and writes PID files for them, or kills any zombie processes.
52
+ * Discovers the current user's framework daemons (`gina-v<version>` titles)
53
+ * that are not tracked by PID files and writes PID files for them, or kills
54
+ * any zombie processes. The listing comes from `inc/ps-titles.js`, which runs
55
+ * `ps` without a shell and accepts only a daemon title (#B677).
51
56
  * @inner
52
57
  * @private
53
58
  * @param {string[]} pidFiles - Array of PID filenames already found in GINA_RUNDIR
54
59
  */
55
60
  var checkUnregistered = function(pidFiles) {
56
61
  // Those not in file
57
- var list = execSync("ps -ef | grep -v grep | grep 'gina-v' | awk '{print $2\" \"$8\" \"$9}'").toString().replace(/\n$/, '').split(/\n/g);
58
-
59
-
60
- if (!list.length || list[0] == "") {
61
- return;
62
- }
62
+ // #B677 (2026-09-27) — the current user's processes only, and a daemon title only:
63
+ // `ps -ef` listed every user's processes, and any `gina-`-titled process's title became
64
+ // a pid-file name that `_()` normalises, so `gina-v/../../x` wrote outside the run
65
+ // directory. `ps` runs from an argument vector (#B665 S2).
66
+ // was: var list = execSync("ps -ef | grep -v grep | grep 'gina-v' | awk '{print $2\" \"$8\" \"$9}'").toString().replace(/\n$/, '').split(/\n/g);
67
+ var list = psTitles.listOwnDaemons();
63
68
 
64
69
  // console.debug('pids list ', list);
65
70
  for (let p=0, len=list.length; p<len; p++) {
66
- if ( !/^\d+\s+gina\-/.test(list[p]) ) {
67
- continue;
68
- }
69
-
70
- let pidArr = list[p].split(/\s/);
71
- let pid = pidArr[0];
72
- let title = pidArr[1];
73
- let isZombie = ( typeof(pidArr[2]) != 'undefined' && /defunct/.test(pidArr[2]) ) ? true : false;
71
+ let pid = list[p].pid;
72
+ let title = list[p].title;
74
73
 
75
74
  // remove defunct process
76
- if (isZombie) {
77
- execSync("kill -9 "+ pid);
75
+ if (list[p].zombie) {
76
+ // was: execSync("kill -9 "+ pid);
77
+ try {
78
+ process.kill(pid, 'SIGKILL');
79
+ } catch (killErr) {
80
+ console.debug('Could not signal defunct process '+ pid +': '+ killErr.message);
81
+ }
78
82
  continue;
79
83
  }
80
84
 
81
85
  let file = title +'.pid';
82
86
  if ( pidFiles.indexOf( file ) < 0) {
83
- fs.writeFileSync( _(GINA_RUNDIR +'/'+ file, true), pid );
87
+ // a string: writeFileSync refuses a number
88
+ fs.writeFileSync( _(GINA_RUNDIR +'/'+ file, true), ''+ pid );
84
89
  pidFiles.push(title +'.pid');
85
90
  }
86
91
  }
@@ -88,7 +93,9 @@ function Status(opt, cmd) {
88
93
  }
89
94
 
90
95
  /**
91
- * Reads PID files and prints running framework versions to the logger.
96
+ * Reads PID files and prints running framework versions to the logger. On
97
+ * macOS and Linux a pid is running when `process.kill(pid, 0)` succeeds or
98
+ * fails with EPERM; any other pid file is removed.
92
99
  * @inner
93
100
  * @private
94
101
  * @param {object} opt
@@ -116,12 +123,24 @@ function Status(opt, cmd) {
116
123
  }
117
124
 
118
125
  if ( !isWin32() ) {
126
+ // #B665 S2 (2026-09-27) — liveness in-process, as framework:init's checkRunningPids:
127
+ // the pid file's content reached `ps -a <content>` through sh, and on a host
128
+ // without `ps` (a slim container image) every live framework pid file was
129
+ // removed. EPERM means alive (another user's process); ESRCH, or content that is
130
+ // not a pid, removes the file, as a failing `ps -a` did.
131
+ // was: let found = execSync("ps -a "+ pid).toString().replace(/\n$/, '').split(/\n/g);
132
+ var n = psTitles.parsePid(pid);
119
133
  try {
120
- let found = execSync("ps -a "+ pid).toString().replace(/\n$/, '').split(/\n/g);
134
+ if (n === null) {
135
+ throw new Error('not a pid: '+ pid);
136
+ }
137
+ process.kill(n, 0);
121
138
  } catch (err) {
122
- console.debug('file to remove: '+ _(GINA_RUNDIR +'/'+ file));
123
- fs.unlinkSync(_(GINA_RUNDIR +'/'+ file));
124
- continue;
139
+ if ( !err || err.code !== 'EPERM' ) {
140
+ console.debug('file to remove: '+ _(GINA_RUNDIR +'/'+ file));
141
+ fs.unlinkSync(_(GINA_RUNDIR +'/'+ file));
142
+ continue;
143
+ }
125
144
  }
126
145
  }
127
146
 
@@ -41,7 +41,7 @@ function Tail(opt, cmd) {
41
41
  process.title = 'gina-tail';
42
42
  var self = {};
43
43
  var nIntervId = null;
44
- var mqPortFile = _(getTmpDir() +'/mq-listener-v'+ GINA_VERSION +'.port', true);
44
+ var mqPortFile = _(getArgvDir() +'/mq-listener-v'+ GINA_VERSION +'.port', true); // #B704 — the framework home's run dir, never the shared tmp dir
45
45
  // To allow auto restart on: JavaScript heap out of memory
46
46
  var cmdUsedToStart = null;
47
47
 
@@ -1,4 +1,6 @@
1
1
  const { execSync } = require('child_process');
2
+ // #B665 (2026-09-27) — execFileSync: the auto-link children run from argument vectors.
3
+ const { execFileSync } = require('child_process');
2
4
  var fs = require('fs');
3
5
  var os = require('os');
4
6
  const { promisify } = require('util');
@@ -7,6 +9,7 @@ var merge = lib.merge;
7
9
  var inherits = lib.inherits;
8
10
  var Collection = lib.Collection;
9
11
  var helpers = require( getPath('gina').helpers);
12
+ var escapeRegex = require('./bundle/inc/name-rewrite').escapeRegex;
10
13
  /**
11
14
  * @module gina/lib/cmd/helper
12
15
  */
@@ -67,6 +70,9 @@ function CmdHelper(cmd, client, debug) {
67
70
  // Params forward: when a command line is running another command line
68
71
  // E.g: gina link or gina link-node-modules
69
72
  paramsStringified: '',
73
+ // The same params as a list, one argument each: the argument vector the
74
+ // link and link-node-modules children run from, without a shell (#B665)
75
+ paramsArgv: [],
70
76
  nodeParams : [],
71
77
  debugPort: debug.port,
72
78
  debugBrkEnabled: debug.brkEnabled,
@@ -136,7 +142,10 @@ function CmdHelper(cmd, client, debug) {
136
142
  /**
137
143
  * Parses process.argv for `--key[=value]` tokens.
138
144
  * Tokens listed in the command group's arguments.json are stored in
139
- * cmd.params; all other `--` tokens go to cmd.nodeParams (forwarded to Node).
145
+ * cmd.params, and forwarded as `--key=value` both in cmd.paramsStringified
146
+ * (a string, for display) and in cmd.paramsArgv (one list entry per token:
147
+ * the argument vector of the auto-link children, #B665); all other `--`
148
+ * tokens go to cmd.nodeParams (forwarded to Node).
140
149
  * Also detects --inspect-brk and sets cmd.debugBrkEnabled accordingly.
141
150
  *
142
151
  * @inner
@@ -203,6 +212,7 @@ function CmdHelper(cmd, client, debug) {
203
212
  if ( cmdArguments.indexOf('--' + arr[0]) > -1 ) {
204
213
  cmd.params[arr[0]] = arr[1];
205
214
  cmd.paramsStringified += ' --' + arr[0] +'='+ arr[1];
215
+ cmd.paramsArgv.push('--' + arr[0] +'='+ arr[1]);
206
216
  } else {
207
217
  cmd.nodeParams.push('--' + arr[0] +'='+ arr[1]);
208
218
  }
@@ -212,6 +222,7 @@ function CmdHelper(cmd, client, debug) {
212
222
  if ( cmdArguments.indexOf(process.argv[a]) > -1 ) {
213
223
  cmd.params[ process.argv[a].replace(/--/, '') ] = true;
214
224
  cmd.paramsStringified += ' '+process.argv[a] +'='+ true;
225
+ cmd.paramsArgv.push(process.argv[a] +'='+ true);
215
226
  } else {
216
227
  cmd.nodeParams.push(process.argv[a]);
217
228
  }
@@ -440,19 +451,27 @@ function CmdHelper(cmd, client, debug) {
440
451
  return false;
441
452
  }
442
453
  cmd.projects[cmd.projectName].def_prefix = realGinaPrefix;
454
+ // #B665 — the old paths are matched literally and the new ones
455
+ // inserted verbatim: a path holding `(` or `[` failed its own prefix
456
+ // test, a `.` matched any character, and a `$&` in the new path
457
+ // expanded to the matched text.
443
458
  let oldHomedir = cmd.projects[cmd.projectName].homedir;
444
- let reOldHomedir = new RegExp('^'+ oldHomedir);
459
+ // was: let reOldHomedir = new RegExp('^'+ oldHomedir);
460
+ let reOldHomedir = new RegExp('^' + escapeRegex(oldHomedir));
445
461
  let oldProjectPath = cmd.projects[cmd.projectName].path;
446
- let reOldProjectPath = new RegExp('^'+ oldProjectPath);
462
+ // was: let reOldProjectPath = new RegExp('^'+ oldProjectPath);
463
+ let reOldProjectPath = new RegExp('^' + escapeRegex(oldProjectPath));
447
464
  for ( let p in cmd.projects[cmd.projectName] ) {
448
465
  if ( typeof(cmd.projects[cmd.projectName][p]) == 'string' ) {
449
466
  if ( reOldHomedir.test(cmd.projects[cmd.projectName][p]) ) {
450
- cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldHomedir, newHomeDir);
467
+ // was: cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldHomedir, newHomeDir);
468
+ cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldHomedir, function() { return newHomeDir; });
451
469
  continue;
452
470
  }
453
471
 
454
472
  if ( reOldProjectPath.test(cmd.projects[cmd.projectName][p]) ) {
455
- cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldProjectPath, pathValue);
473
+ // was: cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldProjectPath, pathValue);
474
+ cmd.projects[cmd.projectName][p] = cmd.projects[cmd.projectName][p].replace(reOldProjectPath, function() { return pathValue; });
456
475
  continue;
457
476
  }
458
477
  }
@@ -511,7 +530,10 @@ function CmdHelper(cmd, client, debug) {
511
530
  if ( isValidName(cmd.bundles[0]) ) {
512
531
  cmd.name = cmd.bundles[0]
513
532
  } else {
514
- console.error('[ ' + cmd.name + ' ] is not a valid bundle name.');
533
+ // #B665 — name the rejected bundle: `cmd.name` is set only on success,
534
+ // so the message read `[ undefined ]`.
535
+ // was: console.error('[ ' + cmd.name + ' ] is not a valid bundle name.');
536
+ console.error('[ ' + cmd.bundles[0] + ' ] is not a valid bundle name.');
515
537
  process.exit(1)
516
538
  }
517
539
  } // else, might be a bulk operation: look for `isBulkOperation`
@@ -1174,7 +1196,11 @@ function CmdHelper(cmd, client, debug) {
1174
1196
  //console.debug('[ ConfigAssetsLoaderHelper ] Loaded bundles list\n'+ JSON.stringify(cmd.bundles, null, 4));
1175
1197
 
1176
1198
  // protocols & schemes list: for the project
1177
- re = new RegExp('\@' + cmd.projectName, '');
1199
+ // #B665 — the project name is matched literally and must end at the `/` that
1200
+ // follows it in a `<bundle>@<project>/<env>` value: `@shop` matched the ports
1201
+ // of `@shopping/...`, which then counted as this project's.
1202
+ // was: re = new RegExp('\@' + cmd.projectName, '');
1203
+ re = new RegExp('@' + escapeRegex(cmd.projectName) + '/', '');
1178
1204
 
1179
1205
  for (let protocol in ports) {
1180
1206
  if ( typeof(cmd.portsData[protocol]) == 'undefined')
@@ -1235,7 +1261,11 @@ function CmdHelper(cmd, client, debug) {
1235
1261
  var _linkEnv = Object.assign({}, process.env, { GINA_HOMEDIR: GINA_HOMEDIR });
1236
1262
  console.info('[helper] Running: '+ process.execPath +' '+ selfCli +' link-node-modules @'+cmd.projectName +cmd.paramsStringified);
1237
1263
  try {
1238
- execSync('"'+ process.execPath +'" "'+ selfCli +'" link-node-modules @'+cmd.projectName +cmd.paramsStringified, { env: _linkEnv });// +' --inspect-gina'
1264
+ // #B665 (2026-09-27) — an argument vector, without a shell: the project name
1265
+ // and every forwarded flag reached `sh` unquoted, so a value holding a space
1266
+ // was split and shell syntax in a flag ran.
1267
+ // was: execSync('"'+ process.execPath +'" "'+ selfCli +'" link-node-modules @'+cmd.projectName +cmd.paramsStringified, …);
1268
+ execFileSync(process.execPath, [selfCli, 'link-node-modules', '@' + cmd.projectName].concat(cmd.paramsArgv), { env: _linkEnv });
1239
1269
  } catch (linkErr) {
1240
1270
  var linkErrOutput = (linkErr.stderr) ? linkErr.stderr.toString().trim() : (linkErr.message || linkErr.stack);
1241
1271
  console.error(linkErrOutput);
@@ -1244,7 +1274,9 @@ function CmdHelper(cmd, client, debug) {
1244
1274
 
1245
1275
  console.info('[helper] Running: '+ process.execPath +' '+ selfCli +' link @'+cmd.projectName +cmd.paramsStringified);
1246
1276
  try {
1247
- console.debug(execSync('"'+ process.execPath +'" "'+ selfCli +'" link @'+cmd.projectName +cmd.paramsStringified, { env: _linkEnv }).toString().trim());// +' --inspect-gina'
1277
+ // #B665 (2026-09-27) — the same argument vector as link-node-modules above.
1278
+ // was: console.debug(execSync('"'+ process.execPath +'" "'+ selfCli +'" link @'+cmd.projectName +cmd.paramsStringified, …).toString().trim());
1279
+ console.debug(execFileSync(process.execPath, [selfCli, 'link', '@' + cmd.projectName].concat(cmd.paramsArgv), { env: _linkEnv }).toString().trim());
1248
1280
  } catch (err) {
1249
1281
  var errOutput = (err.stderr) ? err.stderr.toString().trim() : (err.message || err.stack);
1250
1282
  console.emerg(errOutput);
@@ -1325,10 +1357,14 @@ function CmdHelper(cmd, client, debug) {
1325
1357
  var hasProject = false, re = null;
1326
1358
  if ( cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined' ) {
1327
1359
  hasProject = true;
1328
- re = new RegExp('\@'+ cmd.projectName +'\/', '');
1360
+ // #B665 — the names are matched literally, and a bundle's from the start of the
1361
+ // value: `api@shop/` matched `myapi@shop/dev`.
1362
+ // was: re = new RegExp('\@'+ cmd.projectName +'\/', '');
1363
+ re = new RegExp('@' + escapeRegex(cmd.projectName) + '/', '');
1329
1364
 
1330
1365
  if ( cmd.name != null ) {
1331
- re = new RegExp(cmd.name + '\@'+ cmd.projectName +'\/', '');
1366
+ // was: re = new RegExp(cmd.name + '\@'+ cmd.projectName +'\/', '');
1367
+ re = new RegExp('^' + escapeRegex(cmd.name + '@' + cmd.projectName + '/'), '');
1332
1368
  }
1333
1369
  }
1334
1370
 
@@ -1981,14 +2017,21 @@ function CmdHelper(cmd, client, debug) {
1981
2017
 
1982
2018
 
1983
2019
  let stringifiedScheme = JSON.stringify(ports[protocol][scheme]);
1984
- let patt = new RegExp(bundle +'@'+ cmd.projectName +'/'+ env);
2020
+ // #B665 — the assignment is matched as one whole JSON string of the
2021
+ // scheme's text: unescaped and unanchored, `api@shop/dev` was found
2022
+ // inside `"api@shop/devel"` or `"myapi@shop/dev"`, and the port of the
2023
+ // first such value in the text was taken over for this one.
2024
+ // was: let patt = new RegExp(bundle +'@'+ cmd.projectName +'/'+ env);
2025
+ let patt = new RegExp(escapeRegex(JSON.stringify(bundle +'@'+ cmd.projectName +'/'+ env)));
1985
2026
  let found = false;
1986
2027
  let portToAssign = null;
1987
2028
  // do not override if existing
1988
2029
  if ( patt.test(stringifiedScheme) ) { // there can multiple matches
1989
2030
  found = true;
1990
2031
  // reusing the same for portsReverse
1991
- let re = new RegExp('([0-9]+)\"\:(|\s+)\"('+ bundle +'\@'+ cmd.projectName +'\/'+ env +')', 'g');
2032
+ // was: let re = new RegExp('([0-9]+)\"\:(|\s+)\"('+ bundle +'\@'+ cmd.projectName +'\/'+ env +')', 'g');
2033
+ // (`\s` in that string literal is a plain `s`)
2034
+ let re = new RegExp('([0-9]+)":(|\\s+)(' + escapeRegex(JSON.stringify(bundle +'@'+ cmd.projectName +'/'+ env)) + ')', 'g');
1992
2035
  let m;
1993
2036
  while ((m = re.exec(stringifiedScheme)) !== null) {
1994
2037
  // This is necessary to avoid infinite loops with zero-width matches
@@ -9,7 +9,8 @@
9
9
 
10
10
  <bundle> Registered bundle name; resolved to http://localhost:<port>
11
11
  <http|https URL> Full URL used as the target origin directly
12
- (e.g. bundles running on Docker or a remote env)
12
+ (e.g. bundles running on Docker or a remote env);
13
+ its query string and fragment are dropped
13
14
 
14
15
  Options:
15
16
 
@@ -197,8 +197,11 @@ function detectDarwin() {
197
197
 
198
198
  if (!fs.existsSync(plistPath)) return 'safari';
199
199
 
200
- var raw = child.execSync(
201
- 'plutil -convert json -o - "' + plistPath + '"'
200
+ // #B665 S2 (2026-09-27) — an argument vector: the path reaches plutil whole.
201
+ // was: var raw = child.execSync(
202
+ // was: 'plutil -convert json -o - "' + plistPath + '"'
203
+ var raw = child.execFileSync(
204
+ 'plutil', ['-convert', 'json', '-o', '-', plistPath]
202
205
  , { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }
203
206
  );
204
207
  var plist = JSON.parse(raw);
@@ -225,8 +228,11 @@ function detectDarwin() {
225
228
  */
226
229
  function detectLinux() {
227
230
  try {
228
- var desktop = child.execSync(
229
- 'xdg-settings get default-web-browser 2>/dev/null'
231
+ // #B665 S2 (2026-09-27) — no shell; stderr is piped, as `2>/dev/null` discarded it.
232
+ // was: var desktop = child.execSync(
233
+ // was: 'xdg-settings get default-web-browser 2>/dev/null'
234
+ var desktop = child.execFileSync(
235
+ 'xdg-settings', ['get', 'default-web-browser']
230
236
  , { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }
231
237
  ).trim().toLowerCase();
232
238
  for (var prefix in DESKTOP_MAP) {
@@ -283,10 +289,17 @@ function detectDefaultBrowser() {
283
289
  */
284
290
  function hasBin(bin) {
285
291
  try {
286
- var cmd = (os.platform() === 'win32')
287
- ? 'where ' + bin + ' 2>nul'
288
- : 'which ' + bin + ' 2>/dev/null';
289
- child.execSync(cmd, { stdio: ['pipe', 'pipe', 'pipe'] });
292
+ // #B665 S2 (2026-09-27) — `which` from an argument vector on macOS and Linux; Windows
293
+ // keeps `where` through cmd.exe (#B694).
294
+ // var cmd = (os.platform() === 'win32')
295
+ // ? 'where ' + bin + ' 2>nul'
296
+ // : 'which ' + bin + ' 2>/dev/null';
297
+ // child.execSync(cmd, { stdio: ['pipe', 'pipe', 'pipe'] });
298
+ if (os.platform() === 'win32') {
299
+ child.execSync('where ' + bin + ' 2>nul', { stdio: ['pipe', 'pipe', 'pipe'] });
300
+ } else {
301
+ child.execFileSync('which', [bin], { stdio: ['pipe', 'pipe', 'pipe'] });
302
+ }
290
303
  return true;
291
304
  } catch (e) { return false; }
292
305
  }
@@ -320,12 +333,14 @@ function resolveWindowsPath(winDef) {
320
333
  }
321
334
 
322
335
  /**
323
- * Build the shell command to open a URL in a specific browser.
336
+ * Build the launch that opens a URL in a specific browser: an argument vector
337
+ * (`bin` + `args`, run without a shell) on macOS and Linux, and a `start`
338
+ * command line (`cmd`, run through cmd.exe) on Windows (#B665, #B694).
324
339
  *
325
340
  * @inner
326
341
  * @param {string} shortName - Browser short name from BROWSERS
327
342
  * @param {string} url - The URL to open
328
- * @returns {{ cmd: string, appMode: boolean }|null}
343
+ * @returns {{ bin: string, args: string[], appMode: boolean }|{ cmd: string, appMode: boolean }|null}
329
344
  */
330
345
  function buildLaunchCmd(shortName, url) {
331
346
  var browser = BROWSERS[shortName];
@@ -345,14 +360,19 @@ function buildLaunchCmd(shortName, url) {
345
360
  // regular navigation, ignoring --app=.
346
361
  var binPath = '/Applications/' + platDef.app + '.app/Contents/MacOS/' + platDef.app;
347
362
  if (!fs.existsSync(binPath)) return null;
363
+ // #B665 S2 (2026-09-27) — an argument vector: the URL reaches the browser whole.
364
+ // was: cmd : '"' + binPath + '" --app="' + url + '"'
348
365
  return {
349
- cmd : '"' + binPath + '" --app="' + url + '"'
366
+ bin : binPath
367
+ , args : ['--app=' + url]
350
368
  , appMode : true
351
369
  };
352
370
  }
353
371
  // Non-app-mode browsers (Firefox, Safari): use `open -a`
372
+ // was: cmd : 'open -a "' + platDef.app + '" "' + url + '"'
354
373
  return {
355
- cmd : 'open -a "' + platDef.app + '" "' + url + '"'
374
+ bin : 'open'
375
+ , args : ['-a', platDef.app, url]
356
376
  , appMode : false
357
377
  };
358
378
  }
@@ -364,10 +384,12 @@ function buildLaunchCmd(shortName, url) {
364
384
  if (hasBin(bins[i])) { bin = bins[i]; break; }
365
385
  }
366
386
  if (!bin) return null;
367
- var linuxArgs = browser.appMode
368
- ? bin + ' --app="' + url + '"'
369
- : bin + ' "' + url + '"';
370
- return { cmd: linuxArgs, appMode: browser.appMode };
387
+ // #B665 S2 (2026-09-27) — an argument vector: the URL reaches the browser whole.
388
+ // var linuxArgs = browser.appMode
389
+ // ? bin + ' --app="' + url + '"'
390
+ // : bin + ' "' + url + '"';
391
+ // return { cmd: linuxArgs, appMode: browser.appMode };
392
+ return { bin: bin, args: browser.appMode ? ['--app=' + url] : [url], appMode: browser.appMode };
371
393
  }
372
394
 
373
395
  if (platform === 'win32') {
@@ -383,6 +405,28 @@ function buildLaunchCmd(shortName, url) {
383
405
  return null;
384
406
  }
385
407
 
408
+ /**
409
+ * Opens a URL in the system default browser: `open` on macOS and `xdg-open`
410
+ * elsewhere, each from an argument vector, and `start` through cmd.exe on
411
+ * Windows (#B665, #B694). Used by both fallbacks of `inspector:open`.
412
+ *
413
+ * @inner
414
+ * @param {string} url - The URL to open
415
+ * @returns {void}
416
+ * @example
417
+ * openInDefaultBrowser('http://localhost:3100/_gina/inspector/');
418
+ */
419
+ function openInDefaultBrowser(url) {
420
+ var platform = os.platform();
421
+ if (platform === 'win32') {
422
+ child.exec('start "" "' + url + '"');
423
+ } else if (platform === 'darwin') {
424
+ child.execFile('open', [url]);
425
+ } else {
426
+ child.execFile('xdg-open', [url]);
427
+ }
428
+ }
429
+
386
430
 
387
431
  /**
388
432
  * Reads `inspector.url` from `~/.gina/${shortVersion}/settings.json`
@@ -527,6 +571,9 @@ function Open(opt, cmd) {
527
571
  } else if (/^https?:\/\//i.test(arg)) {
528
572
  // Positional URL → target origin for cross-origin inspection
529
573
  // (Inspector on host, bundles on Docker, remote envs, …).
574
+ // #B719 — drop a query string or fragment first: the SPA appends
575
+ // `/_gina/...` to the target, which would otherwise land in the query.
576
+ arg = arg.replace(/[?#].*$/, '');
530
577
  // Strip trailing slashes so the SPA can append `/_gina/...` cleanly.
531
578
  targetOverride = arg.replace(/\/+$/, '');
532
579
  } else if (!/^--/.test(arg) && !/^@/.test(arg)) {
@@ -613,12 +660,14 @@ function Open(opt, cmd) {
613
660
  'No app-mode browser found. '
614
661
  + 'Opening in system default browser.'
615
662
  );
616
- var fallbackCmd = (os.platform() === 'win32')
617
- ? 'start "" "' + url + '"'
618
- : (os.platform() === 'darwin')
619
- ? 'open "' + url + '"'
620
- : 'xdg-open "' + url + '"';
621
- child.exec(fallbackCmd);
663
+ // #B665 S2 (2026-09-27) — openInDefaultBrowser(): an argument vector on macOS and Linux
664
+ // var fallbackCmd = (os.platform() === 'win32')
665
+ // ? 'start "" "' + url + '"'
666
+ // : (os.platform() === 'darwin')
667
+ // ? 'open "' + url + '"'
668
+ // : 'xdg-open "' + url + '"';
669
+ // child.exec(fallbackCmd);
670
+ openInDefaultBrowser(url);
622
671
  process.exit(0);
623
672
  return;
624
673
  }
@@ -630,18 +679,32 @@ function Open(opt, cmd) {
630
679
  );
631
680
  console.log(url);
632
681
 
633
- child.exec(launch.cmd, function (err) {
682
+ // #B665 S2 (2026-09-27) — the launch runs from an argument vector on macOS and Linux;
683
+ // Windows keeps its `start` command line (#B694).
684
+ // child.exec(launch.cmd, function (err) {
685
+ // if (err) {
686
+ // console.warn('Browser launch failed, trying system default.');
687
+ // var fallback = (os.platform() === 'win32')
688
+ // ? 'start "" "' + url + '"'
689
+ // : (os.platform() === 'darwin')
690
+ // ? 'open "' + url + '"'
691
+ // : 'xdg-open "' + url + '"';
692
+ // child.exec(fallback);
693
+ // }
694
+ // process.exit(0);
695
+ // });
696
+ var onLaunched = function (err) {
634
697
  if (err) {
635
698
  console.warn('Browser launch failed, trying system default.');
636
- var fallback = (os.platform() === 'win32')
637
- ? 'start "" "' + url + '"'
638
- : (os.platform() === 'darwin')
639
- ? 'open "' + url + '"'
640
- : 'xdg-open "' + url + '"';
641
- child.exec(fallback);
699
+ openInDefaultBrowser(url);
642
700
  }
643
701
  process.exit(0);
644
- });
702
+ };
703
+ if (launch.cmd) {
704
+ child.exec(launch.cmd, onLaunched);
705
+ } else {
706
+ child.execFile(launch.bin, launch.args, onLaunched);
707
+ }
645
708
  };
646
709
 
647
710
  init();
@@ -1,9 +1,13 @@
1
- const { execSync } = require('child_process');
1
+ // #B665 (2026-09-27) — execFileSync: the ps sweep lists processes without a shell.
2
+ // const { execSync } = require('child_process');
3
+ const { execFileSync } = require('child_process');
2
4
  var fs = require('fs');
3
5
  var console = lib.logger;
4
6
  var fmt = lib.cmdStatusFormat;
5
7
 
6
8
  var CmdHelper = require('./../helper');
9
+ // #B665 (2026-09-27) — the ps sweep matches the project name as literal text
10
+ var escapeRegex = require('./../bundle/inc/name-rewrite').escapeRegex;
7
11
 
8
12
  /**
9
13
  * Grace period (ms) between the first SIGTERM and the follow-up SIGKILL for
@@ -15,6 +19,17 @@ var CmdHelper = require('./../helper');
15
19
  */
16
20
  var KILL_GRACE_MS = 1500;
17
21
 
22
+ /**
23
+ * Output cap for the `ps -ef` listing of the orphan sweep, which is read whole
24
+ * since the shell pipeline that filtered it is gone: Node's 1 MB default could
25
+ * be exceeded on a host running many processes with long command lines (#B665).
26
+ *
27
+ * @constant
28
+ * @inner
29
+ * @type {number}
30
+ */
31
+ var PS_MAX_BUFFER = 64 * 1024 * 1024;
32
+
18
33
  /**
19
34
  * @module gina/lib/cmd/minion/kill
20
35
  */
@@ -116,7 +131,8 @@ function Kill(opt, cmd) {
116
131
  /**
117
132
  * Builds the kill set for the project by unioning two sources:
118
133
  * 1. run-dir pidfiles (`<bundle>@<project>.pid`) whose process is alive;
119
- * 2. a `ps` sweep for live `gina: <bundle>@<project>` titles (orphans).
134
+ * 2. a `ps` sweep for live `gina: <bundle>@<project>` titles (orphans):
135
+ * `ps -ef` run without a shell, its lines filtered here (#B665).
120
136
  * Targets are keyed by PID so a process tracked by both sources is counted
121
137
  * once. Stale pidfiles (file present, process gone) are collected separately
122
138
  * for clean-up. The handler's own PID / parent PID are never targeted.
@@ -168,31 +184,42 @@ function Kill(opt, cmd) {
168
184
 
169
185
  // --- ps pass (POSIX only) ---
170
186
  if ( !isWin32() ) {
187
+ // Match `gina: <bundle>@<project>` precisely: the trailing
188
+ // (\s|$) boundary stops `@foo` matching project `foobar`.
189
+ // #B665 (2026-09-27) — `ps` runs from an argument vector, without a shell, and its
190
+ // listing is filtered here: the project name reached a single-quoted `grep -E`
191
+ // command line unescaped, so a `'` in it broke out into the shell and a `.` in it
192
+ // matched any character. Lines naming `grep` are skipped as `grep -v grep` did;
193
+ // column 2 of `ps -ef` is the PID, its last column the `<bundle>@<project>` title.
194
+ // was: var psCmd = "ps -ef | grep -v grep | grep -E 'gina: [^ ]+@" + self.projectName + "([[:space:]]|$)' | awk '{print $2\"|\"$NF}'";
195
+ // was: var out = execSync(psCmd).toString().replace(/\n$/, '');
196
+ var titleRe = new RegExp('gina: [^ ]+@' + escapeRegex(self.projectName) + '(\\s|$)');
197
+ var out = '';
171
198
  try {
172
- // Match `gina: <bundle>@<project>` precisely: the trailing
173
- // ([[:space:]]|$) boundary stops `@foo` matching project `foobar`.
174
- var psCmd = "ps -ef | grep -v grep | grep -E 'gina: [^ ]+@" + self.projectName + "([[:space:]]|$)' | awk '{print $2\"|\"$NF}'";
175
- var out = execSync(psCmd).toString().replace(/\n$/, '');
176
- if ( out.length > 0 ) {
177
- var lines = out.split(/\n/);
178
- for (var j = 0; j < lines.length; j++) {
179
- var parts = lines[j].split(/\|/);
180
- var pid = ~~parts[0];
181
- if ( !pid || pid === process.pid || pid === process.ppid ) {
182
- continue;
183
- }
184
- var titleTail = parts[1] || ''; // <bundle>@<project>
185
- var psAt = titleTail.lastIndexOf('@');
186
- var psBundle = (psAt > 0) ? titleTail.substring(0, psAt) : titleTail;
187
- if ( targets[pid] ) {
188
- targets[pid].sources.push('ps');
189
- } else {
190
- targets[pid] = { bundle: psBundle, pid: pid, sources: ['ps'] };
191
- }
192
- }
193
- }
199
+ out = execFileSync('ps', ['-ef'], { maxBuffer: PS_MAX_BUFFER }).toString();
194
200
  } catch (e) {
195
- // grep exits non-zero when nothing matches -> no orphans, fine.
201
+ // no `ps` (a slim container image) -> no orphans, fine; a `ps` that failed
202
+ // after printing keeps what it printed, as the pipeline did
203
+ out = (e && e.stdout) ? e.stdout.toString() : '';
204
+ }
205
+ var lines = out.split(/\n/);
206
+ for (var j = 0; j < lines.length; j++) {
207
+ if ( lines[j].indexOf('grep') > -1 || !titleRe.test(lines[j]) ) {
208
+ continue;
209
+ }
210
+ var cols = lines[j].trim().split(/\s+/);
211
+ var pid = ~~cols[1];
212
+ if ( !pid || pid === process.pid || pid === process.ppid ) {
213
+ continue;
214
+ }
215
+ var titleTail = cols[cols.length - 1] || ''; // <bundle>@<project>
216
+ var psAt = titleTail.lastIndexOf('@');
217
+ var psBundle = (psAt > 0) ? titleTail.substring(0, psAt) : titleTail;
218
+ if ( targets[pid] ) {
219
+ targets[pid].sources.push('ps');
220
+ } else {
221
+ targets[pid] = { bundle: psBundle, pid: pid, sources: ['ps'] };
222
+ }
196
223
  }
197
224
  }
198
225