gina 0.4.0 → 0.4.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 (465) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +5 -11
  3. package/ROADMAP.md +18 -7
  4. package/bin/cli +12 -0
  5. package/framework/v0.4.1/VERSION +1 -0
  6. package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -3
  7. package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +1 -1
  8. package/framework/v0.4.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  9. package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  10. package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.js +43 -0
  11. package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-nunjucks.js +117 -7
  12. package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-swig.js +21 -1
  13. package/framework/{v0.4.0 → v0.4.1}/core/server.js +23 -1
  14. package/framework/{v0.4.0 → v0.4.1}/lib/cache/src/main.js +0 -3
  15. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/add.js +24 -0
  16. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/arguments.json +3 -1
  17. package/framework/v0.4.1/lib/cmd/bundle/copy.js +467 -0
  18. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/help.txt +74 -0
  19. package/framework/v0.4.1/lib/cmd/bundle/inc/name-rewrite.js +96 -0
  20. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/list.js +7 -90
  21. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/remove.js +11 -0
  22. package/framework/v0.4.1/lib/cmd/bundle/rename.js +506 -0
  23. package/framework/v0.4.1/lib/cmd/bundle/status.js +170 -0
  24. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/list.js +2 -18
  25. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/helper.js +1 -1
  26. package/framework/v0.4.1/lib/cmd/minion/arguments.json +4 -0
  27. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/minion/help.txt +5 -1
  28. package/framework/v0.4.1/lib/cmd/minion/kill.js +336 -0
  29. package/framework/v0.4.1/lib/cmd/minion/list.js +270 -0
  30. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/set.js +12 -0
  31. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/help.txt +16 -0
  32. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/remove.js +11 -0
  33. package/framework/v0.4.1/lib/cmd/project/status.js +218 -0
  34. package/framework/v0.4.1/lib/cmd/protocol/arguments.json +5 -0
  35. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/help.txt +8 -3
  36. package/framework/v0.4.1/lib/cmd/protocol/remove.js +308 -0
  37. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/set.js +12 -0
  38. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/list.js +4 -82
  39. package/framework/{v0.4.0 → v0.4.1}/lib/cmd/view/add.js +13 -0
  40. package/framework/v0.4.1/lib/cmd-status-format/package.json +17 -0
  41. package/framework/v0.4.1/lib/cmd-status-format/src/main.js +142 -0
  42. package/framework/{v0.4.0 → v0.4.1}/lib/collection/src/main.js +0 -3
  43. package/framework/{v0.4.0 → v0.4.1}/lib/index.js +4 -0
  44. package/framework/{v0.4.0 → v0.4.1}/package.json +1 -1
  45. package/gna.js +4 -4
  46. package/llms.txt +13 -6
  47. package/package.json +2 -2
  48. package/script/sync_docs_deps.js +147 -0
  49. package/framework/v0.4.0/VERSION +0 -1
  50. package/framework/v0.4.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  51. package/framework/v0.4.0/lib/cmd/bundle/copy.js +0 -18
  52. package/framework/v0.4.0/lib/cmd/bundle/rename.js +0 -7
  53. package/framework/v0.4.0/lib/cmd/bundle/status.js +0 -6
  54. package/framework/v0.4.0/lib/cmd/project/status.js +0 -3
  55. /package/framework/{v0.4.0 → v0.4.1}/AUTHORS +0 -0
  56. /package/framework/{v0.4.0 → v0.4.1}/LICENSE +0 -0
  57. /package/framework/{v0.4.0 → v0.4.1}/core/asset/html/nolayout.html +0 -0
  58. /package/framework/{v0.4.0 → v0.4.1}/core/asset/html/static.html +0 -0
  59. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/android-chrome-192x192.png +0 -0
  60. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/android-chrome-512x512.png +0 -0
  61. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/apple-touch-icon.png +0 -0
  62. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon-16x16.png +0 -0
  63. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon-32x32.png +0 -0
  64. /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon.ico +0 -0
  65. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/README.md +0 -0
  66. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  67. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  68. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  69. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  70. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  71. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  72. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  73. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  74. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  75. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  76. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  77. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  78. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  79. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  80. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  81. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  82. /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  83. /package/framework/{v0.4.0 → v0.4.1}/core/config.js +0 -0
  84. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/ai/index.js +0 -0
  85. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/ai/lib/connector.js +0 -0
  86. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/index.js +0 -0
  87. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.js +0 -0
  88. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  89. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  90. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
  91. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.js +0 -0
  92. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  93. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  94. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/index.js +0 -0
  95. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/connector.js +0 -0
  96. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  97. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/session-store.js +0 -0
  98. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mysql/index.js +0 -0
  99. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mysql/lib/connector.js +0 -0
  100. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/postgresql/index.js +0 -0
  101. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/postgresql/lib/connector.js +0 -0
  102. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/redis/index.js +0 -0
  103. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/redis/lib/session-store.js +0 -0
  104. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/index.js +0 -0
  105. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/lib/connector.js +0 -0
  106. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/lib/session-store.js +0 -0
  107. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sql-parser.js +0 -0
  108. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/index.js +0 -0
  109. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/lib/connector.js +0 -0
  110. /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/lib/session-store.js +0 -0
  111. /package/framework/{v0.4.0 → v0.4.1}/core/content.encoding +0 -0
  112. /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.framework.js +0 -0
  113. /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-json.js +0 -0
  114. /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-stream.js +0 -0
  115. /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-v1.js +0 -0
  116. /package/framework/{v0.4.0 → v0.4.1}/core/controller/index.js +0 -0
  117. /package/framework/{v0.4.0 → v0.4.1}/core/controller/inspector-window-emit.js +0 -0
  118. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/LICENSE +0 -0
  119. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/README.md +0 -0
  120. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  121. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  122. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  123. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  124. /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/package.json +0 -0
  125. /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  126. /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  127. /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/package.json +0 -0
  128. /package/framework/{v0.4.0 → v0.4.1}/core/dev/index.js +0 -0
  129. /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/class.js +0 -0
  130. /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/factory.js +0 -0
  131. /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/tools.js +0 -0
  132. /package/framework/{v0.4.0 → v0.4.1}/core/gna.js +0 -0
  133. /package/framework/{v0.4.0 → v0.4.1}/core/locales/README.md +0 -0
  134. /package/framework/{v0.4.0 → v0.4.1}/core/locales/currency.json +0 -0
  135. /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/language/en.json +0 -0
  136. /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/language/fr.json +0 -0
  137. /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/region/en.json +0 -0
  138. /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/region/fr.json +0 -0
  139. /package/framework/{v0.4.0 → v0.4.1}/core/locales/index.js +0 -0
  140. /package/framework/{v0.4.0 → v0.4.1}/core/mime.types +0 -0
  141. /package/framework/{v0.4.0 → v0.4.1}/core/model/entity.js +0 -0
  142. /package/framework/{v0.4.0 → v0.4.1}/core/model/index.js +0 -0
  143. /package/framework/{v0.4.0 → v0.4.1}/core/model/template/entityFactory.js +0 -0
  144. /package/framework/{v0.4.0 → v0.4.1}/core/model/template/index.js +0 -0
  145. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/README.md +0 -0
  146. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/index.js +0 -0
  147. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/README.md +0 -0
  148. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/package.json +0 -0
  149. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/src/main.js +0 -0
  150. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/README.md +0 -0
  151. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
  152. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
  153. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  154. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
  155. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
  156. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  157. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
  158. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
  159. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  160. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
  161. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
  162. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  163. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  164. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  165. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  166. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  167. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  168. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  169. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  170. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  171. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  172. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/package.json +0 -0
  173. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  174. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  175. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  176. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/src/main.js +0 -0
  177. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  178. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  179. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  180. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  181. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  182. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  183. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  184. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  185. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  186. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  187. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  188. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  189. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  190. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  191. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  192. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  193. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  194. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  195. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/README.md +0 -0
  196. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/package.json +0 -0
  197. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/src/main.js +0 -0
  198. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/README.md +0 -0
  199. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/build.json +0 -0
  200. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/package.json +0 -0
  201. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/src/main.js +0 -0
  202. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/README.md +0 -0
  203. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/build.json +0 -0
  204. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/package.json +0 -0
  205. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
  206. /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/src/main.js +0 -0
  207. /package/framework/{v0.4.0 → v0.4.1}/core/router.js +0 -0
  208. /package/framework/{v0.4.0 → v0.4.1}/core/server.express.js +0 -0
  209. /package/framework/{v0.4.0 → v0.4.1}/core/server.isaac.js +0 -0
  210. /package/framework/{v0.4.0 → v0.4.1}/core/status.codes +0 -0
  211. /package/framework/{v0.4.0 → v0.4.1}/core/template/_gitignore +0 -0
  212. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/app.json +0 -0
  213. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  214. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
  215. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
  216. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  217. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
  218. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  219. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  220. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  221. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  222. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/index.js +0 -0
  223. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
  224. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  225. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  226. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  227. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  228. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  229. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  230. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  231. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
  232. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
  233. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  234. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  235. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  236. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  237. /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  238. /package/framework/{v0.4.0 → v0.4.1}/core/template/command/gina.bat.tpl +0 -0
  239. /package/framework/{v0.4.0 → v0.4.1}/core/template/command/gina.tpl +0 -0
  240. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/env.json +0 -0
  241. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/manifest.json +0 -0
  242. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/package.json +0 -0
  243. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/settings.json +0 -0
  244. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/statics.json +0 -0
  245. /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/templates.json +0 -0
  246. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/401.json +0 -0
  247. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/403.json +0 -0
  248. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/404.json +0 -0
  249. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/html/50x.html +0 -0
  250. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/json/500.json +0 -0
  251. /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/json/503.json +0 -0
  252. /package/framework/{v0.4.0 → v0.4.1}/core/template/extensions/logger/config.json +0 -0
  253. /package/framework/{v0.4.0 → v0.4.1}/helpers/console.js +0 -0
  254. /package/framework/{v0.4.0 → v0.4.1}/helpers/context.js +0 -0
  255. /package/framework/{v0.4.0 → v0.4.1}/helpers/data/LICENSE +0 -0
  256. /package/framework/{v0.4.0 → v0.4.1}/helpers/data/README.md +0 -0
  257. /package/framework/{v0.4.0 → v0.4.1}/helpers/data/package.json +0 -0
  258. /package/framework/{v0.4.0 → v0.4.1}/helpers/data/src/main.js +0 -0
  259. /package/framework/{v0.4.0 → v0.4.1}/helpers/dateFormat.js +0 -0
  260. /package/framework/{v0.4.0 → v0.4.1}/helpers/index.js +0 -0
  261. /package/framework/{v0.4.0 → v0.4.1}/helpers/json/LICENSE +0 -0
  262. /package/framework/{v0.4.0 → v0.4.1}/helpers/json/README.md +0 -0
  263. /package/framework/{v0.4.0 → v0.4.1}/helpers/json/package.json +0 -0
  264. /package/framework/{v0.4.0 → v0.4.1}/helpers/json/src/main.js +0 -0
  265. /package/framework/{v0.4.0 → v0.4.1}/helpers/path.js +0 -0
  266. /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/README.md +0 -0
  267. /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/package.json +0 -0
  268. /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/src/api-error.js +0 -0
  269. /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/src/main.js +0 -0
  270. /package/framework/{v0.4.0 → v0.4.1}/helpers/prototypes.js +0 -0
  271. /package/framework/{v0.4.0 → v0.4.1}/helpers/task.js +0 -0
  272. /package/framework/{v0.4.0 → v0.4.1}/helpers/text.js +0 -0
  273. /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/README.md +0 -0
  274. /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/build.json +0 -0
  275. /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/package.json +0 -0
  276. /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/src/dep/jszip.min.js +0 -0
  277. /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/src/main.js +0 -0
  278. /package/framework/{v0.4.0 → v0.4.1}/lib/async/package.json +0 -0
  279. /package/framework/{v0.4.0 → v0.4.1}/lib/async/src/main.js +0 -0
  280. /package/framework/{v0.4.0 → v0.4.1}/lib/cache/README.md +0 -0
  281. /package/framework/{v0.4.0 → v0.4.1}/lib/cache/build.json +0 -0
  282. /package/framework/{v0.4.0 → v0.4.1}/lib/cache/package.json +0 -0
  283. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/aliases.json +0 -0
  284. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/build.js +0 -0
  285. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/cp.js +0 -0
  286. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/help.js +0 -0
  287. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/mcp-start.js +0 -0
  288. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/mcp.js +0 -0
  289. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/oas.js +0 -0
  290. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/openapi.js +0 -0
  291. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/restart.js +0 -0
  292. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/rm.js +0 -0
  293. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/start.js +0 -0
  294. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/stop.js +0 -0
  295. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/cache/stats.js +0 -0
  296. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/add.js +0 -0
  297. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/arguments.json +0 -0
  298. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/help.js +0 -0
  299. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/help.txt +0 -0
  300. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/migrate.js +0 -0
  301. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/remove.js +0 -0
  302. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/rm.js +0 -0
  303. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/add.js +0 -0
  304. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/get.js +0 -0
  305. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/help.js +0 -0
  306. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/help.txt +0 -0
  307. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/link-dev.js +0 -0
  308. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/list.js +0 -0
  309. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/remove.js +0 -0
  310. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/rm.js +0 -0
  311. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/set.js +0 -0
  312. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/unset.js +0 -0
  313. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/use.js +0 -0
  314. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/arguments.json +0 -0
  315. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/build.js +0 -0
  316. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/dot.js +0 -0
  317. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/get.js +0 -0
  318. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/help.js +0 -0
  319. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/help.txt +0 -0
  320. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/init.js +0 -0
  321. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/link-node-modules.js +0 -0
  322. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/link.js +0 -0
  323. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/msg.json +0 -0
  324. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/open.js +0 -0
  325. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/restart.js +0 -0
  326. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/set.js +0 -0
  327. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/start.js +0 -0
  328. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/status.js +0 -0
  329. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/stop.js +0 -0
  330. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/tail.js +0 -0
  331. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/update.js +0 -0
  332. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/version.js +0 -0
  333. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina-dev.1.md +0 -0
  334. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina-framework.1.md +0 -0
  335. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina.1.md +0 -0
  336. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/add.js +0 -0
  337. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/arguments.json +0 -0
  338. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/export.js +0 -0
  339. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/help.js +0 -0
  340. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/help.txt +0 -0
  341. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/import.js +0 -0
  342. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/scan.js +0 -0
  343. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/index.js +0 -0
  344. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/help.js +0 -0
  345. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/help.txt +0 -0
  346. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/open.js +0 -0
  347. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/minion/help.js +0 -0
  348. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/msg.json +0 -0
  349. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/help.js +0 -0
  350. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/help.txt +0 -0
  351. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/inc/scan.js +0 -0
  352. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/list.js +0 -0
  353. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/reset.js +0 -0
  354. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/add.js +0 -0
  355. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/arguments.json +0 -0
  356. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/build.js +0 -0
  357. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/help.js +0 -0
  358. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/import.js +0 -0
  359. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/list.js +0 -0
  360. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/move.js +0 -0
  361. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/rename.js +0 -0
  362. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/restart.js +0 -0
  363. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/rm.js +0 -0
  364. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/start.js +0 -0
  365. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/stop.js +0 -0
  366. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/help.js +0 -0
  367. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/list.js +0 -0
  368. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/add.js +0 -0
  369. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/help.js +0 -0
  370. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/help.txt +0 -0
  371. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/link-local.js +0 -0
  372. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/link-production.js +0 -0
  373. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/list.js +0 -0
  374. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/remove.js +0 -0
  375. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/rm.js +0 -0
  376. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/use.js +0 -0
  377. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/arguments.json +0 -0
  378. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/check.js +0 -0
  379. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/help.js +0 -0
  380. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/help.txt +0 -0
  381. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/scan.js +0 -0
  382. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/help.js +0 -0
  383. /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/help.txt +0 -0
  384. /package/framework/{v0.4.0 → v0.4.1}/lib/collection/README.md +0 -0
  385. /package/framework/{v0.4.0 → v0.4.1}/lib/collection/build.json +0 -0
  386. /package/framework/{v0.4.0 → v0.4.1}/lib/collection/package.json +0 -0
  387. /package/framework/{v0.4.0 → v0.4.1}/lib/config.js +0 -0
  388. /package/framework/{v0.4.0 → v0.4.1}/lib/connector-registry/package.json +0 -0
  389. /package/framework/{v0.4.0 → v0.4.1}/lib/connector-registry/src/main.js +0 -0
  390. /package/framework/{v0.4.0 → v0.4.1}/lib/cron/README.md +0 -0
  391. /package/framework/{v0.4.0 → v0.4.1}/lib/cron/package.json +0 -0
  392. /package/framework/{v0.4.0 → v0.4.1}/lib/cron/src/main.js +0 -0
  393. /package/framework/{v0.4.0 → v0.4.1}/lib/domain/LICENSE +0 -0
  394. /package/framework/{v0.4.0 → v0.4.1}/lib/domain/README.md +0 -0
  395. /package/framework/{v0.4.0 → v0.4.1}/lib/domain/package.json +0 -0
  396. /package/framework/{v0.4.0 → v0.4.1}/lib/domain/src/main.js +0 -0
  397. /package/framework/{v0.4.0 → v0.4.1}/lib/generator/index.js +0 -0
  398. /package/framework/{v0.4.0 → v0.4.1}/lib/i18n/package.json +0 -0
  399. /package/framework/{v0.4.0 → v0.4.1}/lib/i18n/src/main.js +0 -0
  400. /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/LICENSE +0 -0
  401. /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/README.md +0 -0
  402. /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/package.json +0 -0
  403. /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/src/main.js +0 -0
  404. /package/framework/{v0.4.0 → v0.4.1}/lib/inspector-redact/package.json +0 -0
  405. /package/framework/{v0.4.0 → v0.4.1}/lib/inspector-redact/src/main.js +0 -0
  406. /package/framework/{v0.4.0 → v0.4.1}/lib/instrument/package.json +0 -0
  407. /package/framework/{v0.4.0 → v0.4.1}/lib/instrument/src/main.js +0 -0
  408. /package/framework/{v0.4.0 → v0.4.1}/lib/job/package.json +0 -0
  409. /package/framework/{v0.4.0 → v0.4.1}/lib/job/src/main.js +0 -0
  410. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/README.md +0 -0
  411. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/package.json +0 -0
  412. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/default/index.js +0 -0
  413. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/index.js +0 -0
  414. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  415. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  416. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/index.js +0 -0
  417. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/listener.js +0 -0
  418. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/speaker.js +0 -0
  419. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/helper.js +0 -0
  420. /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/main.js +0 -0
  421. /package/framework/{v0.4.0 → v0.4.1}/lib/math/index.js +0 -0
  422. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-dispatch/package.json +0 -0
  423. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-dispatch/src/main.js +0 -0
  424. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-http/package.json +0 -0
  425. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-http/src/main.js +0 -0
  426. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-server/package.json +0 -0
  427. /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-server/src/main.js +0 -0
  428. /package/framework/{v0.4.0 → v0.4.1}/lib/merge/README.md +0 -0
  429. /package/framework/{v0.4.0 → v0.4.1}/lib/merge/package.json +0 -0
  430. /package/framework/{v0.4.0 → v0.4.1}/lib/merge/src/main.js +0 -0
  431. /package/framework/{v0.4.0 → v0.4.1}/lib/metrics/package.json +0 -0
  432. /package/framework/{v0.4.0 → v0.4.1}/lib/metrics/src/main.js +0 -0
  433. /package/framework/{v0.4.0 → v0.4.1}/lib/model.js +0 -0
  434. /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/README.md +0 -0
  435. /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/package.json +0 -0
  436. /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/src/main.js +0 -0
  437. /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-resolver/package.json +0 -0
  438. /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-resolver/src/main.js +0 -0
  439. /package/framework/{v0.4.0 → v0.4.1}/lib/proc.js +0 -0
  440. /package/framework/{v0.4.0 → v0.4.1}/lib/routing/README.md +0 -0
  441. /package/framework/{v0.4.0 → v0.4.1}/lib/routing/build.json +0 -0
  442. /package/framework/{v0.4.0 → v0.4.1}/lib/routing/package.json +0 -0
  443. /package/framework/{v0.4.0 → v0.4.1}/lib/routing/src/main.js +0 -0
  444. /package/framework/{v0.4.0 → v0.4.1}/lib/routing/src/radix.js +0 -0
  445. /package/framework/{v0.4.0 → v0.4.1}/lib/routing-introspect/package.json +0 -0
  446. /package/framework/{v0.4.0 → v0.4.1}/lib/routing-introspect/src/main.js +0 -0
  447. /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/package.json +0 -0
  448. /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/src/backends/env.js +0 -0
  449. /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/src/main.js +0 -0
  450. /package/framework/{v0.4.0 → v0.4.1}/lib/session-store.js +0 -0
  451. /package/framework/{v0.4.0 → v0.4.1}/lib/shell.js +0 -0
  452. /package/framework/{v0.4.0 → v0.4.1}/lib/state.js +0 -0
  453. /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/README.md +0 -0
  454. /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/package.json +0 -0
  455. /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/src/main.js +0 -0
  456. /package/framework/{v0.4.0 → v0.4.1}/lib/swig-resolver/package.json +0 -0
  457. /package/framework/{v0.4.0 → v0.4.1}/lib/swig-resolver/src/main.js +0 -0
  458. /package/framework/{v0.4.0 → v0.4.1}/lib/url/README.md +0 -0
  459. /package/framework/{v0.4.0 → v0.4.1}/lib/url/index.js +0 -0
  460. /package/framework/{v0.4.0 → v0.4.1}/lib/url/routing.json +0 -0
  461. /package/framework/{v0.4.0 → v0.4.1}/lib/uuid/package.json +0 -0
  462. /package/framework/{v0.4.0 → v0.4.1}/lib/uuid/src/main.js +0 -0
  463. /package/framework/{v0.4.0 → v0.4.1}/lib/validator.js +0 -0
  464. /package/framework/{v0.4.0 → v0.4.1}/lib/watcher/package.json +0 -0
  465. /package/framework/{v0.4.0 → v0.4.1}/lib/watcher/src/main.js +0 -0
@@ -0,0 +1,170 @@
1
+ var fs = require('fs');
2
+ var console = lib.logger;
3
+ var fmt = lib.cmdStatusFormat;
4
+
5
+ var CmdHelper = require('./../helper');
6
+
7
+ /**
8
+ * @module gina/lib/cmd/bundle/status
9
+ */
10
+ /**
11
+ * Shows the running/stopped state, PID, port, and active env for a single bundle.
12
+ *
13
+ * Usage:
14
+ * gina bundle:status <bundle_name> @<project_name>
15
+ * gina bundle:status <bundle_name> @<project_name> --format=json
16
+ *
17
+ * Unlike `bundle:list` (which answers "what bundles exist" and leads each line
18
+ * with a source-presence marker), `bundle:status` answers "is this one bundle
19
+ * running" and leads with the run-state label.
20
+ *
21
+ * @class Status
22
+ * @constructor
23
+ * @param {object} opt - Parsed command-line options
24
+ * @param {object} opt.client - Socket client for terminal output
25
+ * @param {string[]} opt.argv - Full argv array
26
+ * @param {number} [opt.debugPort] - Node.js inspector port
27
+ * @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
28
+ * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
29
+ *
30
+ * @example
31
+ * // human-readable
32
+ * $ gina bundle:status api @myproject
33
+ * [ running ] api http/2.0 dev https 4208 pid 12345
34
+ *
35
+ * @example
36
+ * // machine-readable
37
+ * $ gina bundle:status api @myproject --format=json
38
+ * {"bundle":"api","project":"myproject","running":true,"pid":12345,"env":"dev","scheme":"http/2.0","protocol":"https","port":4208,"ports":{...}}
39
+ */
40
+ function Status(opt, cmd) {
41
+ var self = { format: null };
42
+
43
+ /**
44
+ * Parses the --format flag, resolves the target bundle/project, and prints
45
+ * the bundle's status. CmdHelper resolves the single positional bundle name
46
+ * into `self.name` (the same slot bundle:stop reads) and the `@<project>`
47
+ * token into `self.projectName`.
48
+ *
49
+ * @inner
50
+ * @private
51
+ */
52
+ var init = function() {
53
+
54
+ // import CMD helpers
55
+ new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
56
+ // check CMD configuration
57
+ if (!isCmdConfigured()) return false;
58
+
59
+ // Full pre-scan of argv for --format only. No dispatch inside the loop —
60
+ // separating parsing from dispatch keeps flag ordering from changing
61
+ // behaviour.
62
+ for (let i = 3, len = process.argv.length; i < len; i++) {
63
+ if ( /^\-\-format\=/.test(process.argv[i]) ) {
64
+ self.format = process.argv[i].split(/\=/)[1];
65
+ }
66
+ }
67
+
68
+ // A bundle status targets one specific bundle inside one project — both
69
+ // the bundle name and `@<project>` are required. CmdHelper only sets
70
+ // `self.name` when exactly one bundle positional is present
71
+ // (lib/cmd/helper.js — `cmd.bundles.length == 1`), and leaves
72
+ // `self.projectName` null (not undefined) when no `@<project>` token is
73
+ // present, so test loosely with `== null`.
74
+ if ( typeof(self.name) == 'undefined' || self.name == null ) {
75
+ console.error('Usage: gina bundle:status <bundle_name> @<project_name> [--format=json]');
76
+ process.exit(1);
77
+ }
78
+ if ( self.projectName == null ) {
79
+ console.error('You need to add `@<project_name>`. Usage: gina bundle:status <bundle_name> @<project_name>');
80
+ process.exit(1);
81
+ }
82
+
83
+ self.projects = require(_(GINA_HOMEDIR + '/projects.json'));
84
+ if ( typeof(self.projects[self.projectName]) == 'undefined' ) {
85
+ console.error('[ '+ self.projectName +' ] is not a registered project.');
86
+ process.exit(1);
87
+ }
88
+
89
+ // Tolerant ports load — a missing/malformed ports table yields "(no port)".
90
+ self.portsReverseData = {};
91
+ var portsPath = _(GINA_HOMEDIR + '/ports.reverse.json');
92
+ if ( fs.existsSync(portsPath) ) {
93
+ try {
94
+ self.portsReverseData = requireJSON(portsPath);
95
+ } catch (e) {
96
+ // Tolerant — fall through with empty ports table.
97
+ }
98
+ }
99
+
100
+ status();
101
+ process.exit(0);
102
+ }
103
+
104
+
105
+ /**
106
+ * Resolves the target bundle's port + running state and prints it. Exits 1
107
+ * when the bundle is not declared in the project's manifest.
108
+ *
109
+ * @inner
110
+ * @private
111
+ */
112
+ var status = function() {
113
+ var bundle = self.name;
114
+ var projectName = self.projectName;
115
+
116
+ // Confirm the bundle is declared in the project manifest.
117
+ var existsInManifest = false;
118
+ try {
119
+ var path = self.projects[projectName].path;
120
+ var bundles = require( _(path + '/manifest.json') ).bundles;
121
+ existsInManifest = ( typeof(bundles[bundle]) != 'undefined' );
122
+ } catch (err) {
123
+ existsInManifest = false;
124
+ }
125
+
126
+ if ( !existsInManifest ) {
127
+ if ( /^json?/.test(self.format) ) {
128
+ process.stdout.write(JSON.stringify({ bundle: bundle, project: projectName, status: 'not-found' }));
129
+ } else {
130
+ console.error('[ '+ bundle +'@'+ projectName +' ] is not a bundle of project [ '+ projectName +' ].');
131
+ }
132
+ process.exit(1);
133
+ }
134
+
135
+ var ports = (self.portsReverseData || {})[bundle + '@' + projectName] || null;
136
+ var preferred = fmt.pickPreferredPort(ports);
137
+ var runState = fmt.readPidfile(GINA_HOMEDIR + '/run', bundle, projectName);
138
+
139
+ var json = {
140
+ bundle : bundle,
141
+ project : projectName,
142
+ running : runState.running,
143
+ pid : runState.pid,
144
+ env : preferred ? preferred.env : null,
145
+ scheme : preferred ? preferred.scheme : null,
146
+ protocol : preferred ? preferred.protocol : null,
147
+ port : preferred ? preferred.port : null,
148
+ ports : ports
149
+ };
150
+
151
+ if ( /^json?/.test(self.format) ) {
152
+ return process.stdout.write(JSON.stringify(json));
153
+ }
154
+
155
+ var stateLabel = runState.running ? '[ running ]' : '[ stopped ]';
156
+ var portLabel = preferred
157
+ ? preferred.scheme + ' ' + preferred.env + ' ' + preferred.protocol + ' ' + preferred.port
158
+ : '(no port)';
159
+ var line = stateLabel + ' ' + fmt.pad(bundle, 16) + ' ' + portLabel;
160
+ if ( runState.running ) {
161
+ line += ' pid ' + runState.pid;
162
+ }
163
+ console.log(line);
164
+ }
165
+
166
+
167
+ init()
168
+ };
169
+
170
+ module.exports = Status
@@ -1,5 +1,6 @@
1
1
  var fs = require('fs');
2
2
  var console = lib.logger;
3
+ var fmt = lib.cmdStatusFormat;
3
4
 
4
5
  var CmdHelper = require('./../helper');
5
6
 
@@ -100,23 +101,6 @@ function List(opt, cmd) {
100
101
  process.exit(0);
101
102
  };
102
103
 
103
- /**
104
- * Right-pads `s` with spaces to reach `width`.
105
- *
106
- * @inner
107
- * @private
108
- * @param {string} s
109
- * @param {number} width
110
- * @returns {string}
111
- */
112
- var pad = function (s, width) {
113
- var out = String(s || '');
114
- while (out.length < width) {
115
- out += ' ';
116
- }
117
- return out;
118
- };
119
-
120
104
  /**
121
105
  * Reads a JSON file with tolerance for line and block comments via
122
106
  * `requireJSON` (routing/settings/connectors files routinely carry
@@ -426,7 +410,7 @@ function List(opt, cmd) {
426
410
  sourceLabel = '[' + r.bundle + ']';
427
411
  }
428
412
 
429
- var line = statusFlag + ' ' + pad(r.name, 16) + ' ' + pad(r.connector, 12) + ' ' + pad(sourceLabel, 24);
413
+ var line = statusFlag + ' ' + fmt.pad(r.name, 16) + ' ' + fmt.pad(r.connector, 12) + ' ' + fmt.pad(sourceLabel, 24);
430
414
 
431
415
  if (r.builtin) {
432
416
  line += r.note ? ('(' + r.note + ')') : '(built-in)';
@@ -477,7 +477,7 @@ function CmdHelper(cmd, client, debug) {
477
477
  // project name : passed or using the current folder as project name by default
478
478
  if ( cmd.projectName == null || typeof(cmd.projectName) == 'undefined' || cmd.projectName == '' ) {
479
479
 
480
- if (!/\:list$/.test(cmd.task)) {// ignore this cases
480
+ if (!/\:list$/.test(cmd.task) && !/^project\:status$/.test(cmd.task)) {// ignore this cases ( project:status is all-projects like project:list )
481
481
  var folder = new _(process.cwd()).toArray().last();
482
482
 
483
483
  if (isDefined('project', folder)) {
@@ -0,0 +1,4 @@
1
+ [
2
+ "--format",
3
+ "--dry-run"
4
+ ]
@@ -7,12 +7,16 @@
7
7
 
8
8
  $ gina minion:kill @<project_name>
9
9
 
10
+ or preview without killing (no processes are terminated)
11
+
12
+ $ gina minion:kill @<project_name> --dry-run
13
+
10
14
 
11
15
 
12
16
  [ Listing all minions inside your project ]
13
17
 
14
18
  $ gina minion:list @<project_name>
15
19
 
16
- or to list all minons by project
20
+ or to list all running minions grouped by project
17
21
 
18
22
  $ gina minion:list
@@ -0,0 +1,336 @@
1
+ const { execSync } = require('child_process');
2
+ var fs = require('fs');
3
+ var console = lib.logger;
4
+ var fmt = lib.cmdStatusFormat;
5
+
6
+ var CmdHelper = require('./../helper');
7
+
8
+ /**
9
+ * Grace period (ms) between the first SIGTERM and the follow-up SIGKILL for
10
+ * survivors.
11
+ *
12
+ * @constant
13
+ * @inner
14
+ * @type {number}
15
+ */
16
+ var KILL_GRACE_MS = 1500;
17
+
18
+ /**
19
+ * @module gina/lib/cmd/minion/kill
20
+ */
21
+ /**
22
+ * Reaps the running bundle child-processes ("minions") of a project — both the
23
+ * ones tracked by a `<bundle>@<project>.pid` file under the run directory
24
+ * (~/.gina/run) AND any orphaned `gina: <bundle>@<project>` processes still
25
+ * alive without a (or with a stale) pidfile, found via a `ps` sweep. This is
26
+ * the process-truth counterpart to `minion:list`: it terminates exactly what
27
+ * `minion:list` shows, plus the pidfile-less orphans that `bundle:stop`
28
+ * (manifest-driven) cannot reach.
29
+ *
30
+ * Termination is graceful-then-forceful: every target gets a SIGTERM, then
31
+ * after a short grace period any survivor gets a SIGKILL. Stale pidfiles
32
+ * (file present, process already gone) and the pidfiles of killed targets are
33
+ * unlinked afterwards. Mount symlinks are NOT touched — that is bundle-lifecycle
34
+ * clean-up (`bundle:stop`), not a process reaper's concern.
35
+ *
36
+ * `minion:kill` is project-scoped: a `@<project>` is required (there is no
37
+ * all-projects form — reaping every minion on the host is too blunt to be a
38
+ * default). The `ps` sweep is POSIX-only and skipped under Windows.
39
+ *
40
+ * Usage:
41
+ * gina minion:kill @<project_name>
42
+ * gina minion:kill @<project_name> --dry-run
43
+ * gina minion:kill @<project_name> --dry-run --format=json
44
+ *
45
+ * @class Kill
46
+ * @constructor
47
+ * @param {object} opt - Parsed command-line options
48
+ * @param {object} opt.client - Socket client for terminal output
49
+ * @param {string[]} opt.argv - Full argv array
50
+ * @param {number} [opt.debugPort] - Node.js inspector port
51
+ * @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
52
+ * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
53
+ *
54
+ * @example
55
+ * // preview what would be reaped, without killing anything
56
+ * $ gina minion:kill @myproject --dry-run
57
+ * [ dry-run ] minion:kill @myproject would terminate 1 minion(s):
58
+ * [ would kill ] api pid 12345
59
+ *
60
+ * @example
61
+ * // reap them
62
+ * $ gina minion:kill @myproject
63
+ * minion:kill @myproject terminated 1 minion(s):
64
+ * [ killed ] api pid 12345 (SIGTERM)
65
+ */
66
+ function Kill(opt, cmd) {
67
+ var self = { format: null, dryRun: false };
68
+
69
+ /**
70
+ * Parses --format / --dry-run, resolves the run directory, validates the
71
+ * project, then runs the reaper.
72
+ *
73
+ * @inner
74
+ * @private
75
+ */
76
+ var init = function() {
77
+
78
+ // import CMD helpers
79
+ new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
80
+ // check CMD configuration
81
+ if (!isCmdConfigured()) return false;
82
+
83
+ self.projects = require(_(GINA_HOMEDIR + '/projects.json'));
84
+
85
+ // Canonical run directory. GINA_RUNDIR may be customised; fall back to
86
+ // the default ~/.gina/run when the global is not set in this scope.
87
+ self.runDir = (typeof(GINA_RUNDIR) != 'undefined' && GINA_RUNDIR)
88
+ ? GINA_RUNDIR
89
+ : (GINA_HOMEDIR + '/run');
90
+
91
+ // Full pre-scan of argv for --format and --dry-run.
92
+ for (let i = 3, len = process.argv.length; i < len; i++) {
93
+ if ( /^\-\-format\=/.test(process.argv[i]) ) {
94
+ self.format = process.argv[i].split(/\=/)[1];
95
+ } else if ( /^\-\-dry-run$/.test(process.argv[i]) ) {
96
+ self.dryRun = true;
97
+ }
98
+ }
99
+
100
+ // minion:kill is project-scoped. CmdHelper's mandatory-`@<project>`
101
+ // guard already enforces this (kill is not `:list$`-exempt), but guard
102
+ // in-handler too so the contract is explicit and self-contained.
103
+ if ( self.projectName == null ) {
104
+ console.error('minion:kill requires a project: gina minion:kill @<project_name>');
105
+ process.exit(1);
106
+ }
107
+ if ( typeof(self.projects[self.projectName]) == 'undefined' ) {
108
+ console.error('[ '+ self.projectName +' ] is not a registered project.');
109
+ process.exit(1);
110
+ }
111
+
112
+ kill();
113
+ }
114
+
115
+
116
+ /**
117
+ * Builds the kill set for the project by unioning two sources:
118
+ * 1. run-dir pidfiles (`<bundle>@<project>.pid`) whose process is alive;
119
+ * 2. a `ps` sweep for live `gina: <bundle>@<project>` titles (orphans).
120
+ * Targets are keyed by PID so a process tracked by both sources is counted
121
+ * once. Stale pidfiles (file present, process gone) are collected separately
122
+ * for clean-up. The handler's own PID / parent PID are never targeted.
123
+ *
124
+ * @inner
125
+ * @private
126
+ * @returns {{targets: Object<string,object>, stale: Array<object>}}
127
+ */
128
+ var collectTargets = function() {
129
+ var targets = {}; // pid -> { bundle, pid, sources:[], pidfile? }
130
+ var stale = []; // { bundle, pidfile } for dead-but-present pidfiles
131
+
132
+ // --- pidfile pass ---
133
+ var files = [];
134
+ try {
135
+ files = fs.readdirSync(self.runDir);
136
+ } catch (e) {
137
+ files = [];
138
+ }
139
+ for (var i = 0, len = files.length; i < len; i++) {
140
+ var file = files[i];
141
+ if ( /^\./.test(file) || !/\.pid$/.test(file) || /^gina\-/.test(file) ) {
142
+ continue;
143
+ }
144
+ var base = file.replace(/\.pid$/, '');
145
+ var at = base.lastIndexOf('@');
146
+ if ( at < 1 || at === base.length - 1 ) {
147
+ continue;
148
+ }
149
+ var bundle = base.substring(0, at);
150
+ var project = base.substring(at + 1);
151
+ if ( project !== self.projectName ) {
152
+ continue;
153
+ }
154
+
155
+ var runState = fmt.readPidfile(self.runDir, bundle, project);
156
+ var pidfilePath = _(self.runDir + '/' + file, true);
157
+ if ( runState.running ) {
158
+ if ( runState.pid === process.pid || runState.pid === process.ppid ) {
159
+ continue; // never target ourselves
160
+ }
161
+ targets[runState.pid] = targets[runState.pid] || { bundle: bundle, pid: runState.pid, sources: [] };
162
+ targets[runState.pid].sources.push('pidfile');
163
+ targets[runState.pid].pidfile = pidfilePath;
164
+ } else {
165
+ stale.push({ bundle: bundle, pidfile: pidfilePath });
166
+ }
167
+ }
168
+
169
+ // --- ps pass (POSIX only) ---
170
+ if ( !isWin32() ) {
171
+ 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
+ }
194
+ } catch (e) {
195
+ // grep exits non-zero when nothing matches -> no orphans, fine.
196
+ }
197
+ }
198
+
199
+ return { targets: targets, stale: stale };
200
+ }
201
+
202
+
203
+ /**
204
+ * Unlinks the pidfiles of killed targets plus any stale pidfiles. Never
205
+ * throws — a pidfile that has already vanished is fine.
206
+ *
207
+ * @inner
208
+ * @private
209
+ * @param {Object<string,object>} targets
210
+ * @param {Array<object>} stale
211
+ */
212
+ var cleanupPidfiles = function(targets, stale) {
213
+ for (var p in targets) {
214
+ if ( targets[p].pidfile ) {
215
+ try {
216
+ if ( new _(targets[p].pidfile).existsSync() ) {
217
+ fs.unlinkSync(targets[p].pidfile);
218
+ }
219
+ } catch (e) { /* already gone */ }
220
+ }
221
+ }
222
+ for (var i = 0; i < stale.length; i++) {
223
+ try {
224
+ if ( new _(stale[i].pidfile).existsSync() ) {
225
+ fs.unlinkSync(stale[i].pidfile);
226
+ }
227
+ } catch (e) { /* already gone */ }
228
+ }
229
+ }
230
+
231
+
232
+ /**
233
+ * Prints the reaper result (dry-run preview or kill report) as text or, with
234
+ * `--format=json`, a `{ project, dryRun, killed[], staleCleaned[] }` envelope,
235
+ * then exits.
236
+ *
237
+ * @inner
238
+ * @private
239
+ * @param {Object<string,object>} targets
240
+ * @param {Array<object>} stale
241
+ * @param {boolean} dryRun
242
+ * @param {number[]} forced - PIDs that needed a SIGKILL after the SIGTERM grace
243
+ */
244
+ var report = function(targets, stale, dryRun, forced) {
245
+ var killed = [];
246
+ for (var p in targets) {
247
+ killed.push({
248
+ bundle : targets[p].bundle,
249
+ pid : ~~p,
250
+ sources : targets[p].sources,
251
+ forced : forced.indexOf(~~p) > -1
252
+ });
253
+ }
254
+ var staleList = stale.map(function (s) { return { bundle: s.bundle, pidfile: s.pidfile }; });
255
+
256
+ if ( /^json?/.test(self.format) ) {
257
+ process.stdout.write(JSON.stringify({
258
+ project : self.projectName,
259
+ dryRun : dryRun,
260
+ killed : killed,
261
+ staleCleaned : staleList
262
+ }));
263
+ return process.exit(0);
264
+ }
265
+
266
+ var str = '';
267
+ if ( dryRun ) {
268
+ str += '[ dry-run ] minion:kill @' + self.projectName + ' would terminate ' + killed.length + ' minion(s):\n\r';
269
+ } else {
270
+ str += 'minion:kill @' + self.projectName + ' terminated ' + killed.length + ' minion(s):\n\r';
271
+ }
272
+ for (var i = 0; i < killed.length; i++) {
273
+ var sig = dryRun ? '' : (killed[i].forced ? ' (SIGKILL)' : ' (SIGTERM)');
274
+ str += ' [ ' + (dryRun ? 'would kill' : 'killed') + ' ] ' + fmt.pad(killed[i].bundle, 16) + ' pid ' + killed[i].pid + sig + '\n\r';
275
+ }
276
+ if ( killed.length === 0 ) {
277
+ str += ' (no running minions)\n\r';
278
+ }
279
+ if ( staleList.length > 0 ) {
280
+ str += (dryRun ? ' stale pidfiles to clean: ' : ' stale pidfiles cleaned: ') + staleList.length + '\n\r';
281
+ }
282
+ console.log(str);
283
+ process.exit(0);
284
+ }
285
+
286
+
287
+ /**
288
+ * Collects the kill set, then either previews it (dry-run) or runs the
289
+ * SIGTERM -> grace -> SIGKILL escalation, cleans up pidfiles, and reports.
290
+ *
291
+ * @inner
292
+ * @private
293
+ */
294
+ var kill = function() {
295
+ var collected = collectTargets();
296
+ var targets = collected.targets;
297
+ var stale = collected.stale;
298
+ var pids = Object.keys(targets).map(function (p) { return ~~p; });
299
+
300
+ if ( self.dryRun ) {
301
+ return report(targets, stale, true, []);
302
+ }
303
+
304
+ if ( pids.length === 0 ) {
305
+ // nothing alive to reap — still clean up stale pidfiles
306
+ cleanupPidfiles(targets, stale);
307
+ return report(targets, stale, false, []);
308
+ }
309
+
310
+ // graceful first: SIGTERM every target
311
+ for (var i = 0; i < pids.length; i++) {
312
+ try {
313
+ process.kill(pids[i], 'SIGTERM');
314
+ } catch (e) { /* already gone */ }
315
+ }
316
+
317
+ // after the grace period, force-kill survivors, clean up, report
318
+ setTimeout(function () {
319
+ var forced = [];
320
+ for (var j = 0; j < pids.length; j++) {
321
+ try {
322
+ process.kill(pids[j], 0); // still alive?
323
+ process.kill(pids[j], 'SIGKILL');
324
+ forced.push(pids[j]);
325
+ } catch (e) { /* already dead after SIGTERM — good */ }
326
+ }
327
+ cleanupPidfiles(targets, stale);
328
+ report(targets, stale, false, forced);
329
+ }, KILL_GRACE_MS);
330
+ }
331
+
332
+
333
+ init()
334
+ };
335
+
336
+ module.exports = Kill