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,467 @@
1
+ var fs = require('fs');
2
+ var console = lib.logger;
3
+
4
+ var CmdHelper = require('./../helper');
5
+ var scan = require('./../port/inc/scan');
6
+ var nameRewrite = require('./inc/name-rewrite');
7
+
8
+ /**
9
+ * @module gina/lib/cmd/bundle/copy
10
+ */
11
+ /**
12
+ * Duplicates an existing bundle under a NEW name within the SAME project.
13
+ *
14
+ * Copies the source bundle's `src/<source>` tree to `src/<new_name>`, rewrites
15
+ * the bundle-name footprint in the copied `.js`/`.json` files, allocates a fresh
16
+ * full protocol×scheme×env port matrix for the new name, and registers it in the
17
+ * project `manifest.json` + `env.json` + `~/.gina/ports.json` /
18
+ * `~/.gina/ports.reverse.json`.
19
+ *
20
+ * The name rewrite is **word-boundary anchored** — it rewrites the PascalCase
21
+ * identifiers the scaffolder derives from the bundle name (`<Name>Controller`,
22
+ * the gina require-var, etc.) and the lowercase whole-word name, but never a name
23
+ * embedded inside a larger token. It is limited to `.js`/`.json` files; user
24
+ * content in templates / SQL / CSS is copied verbatim. The first-bundle webroot
25
+ * collision (`"/"`) is repointed to `"/<new_name>"` (comment-preserving).
26
+ *
27
+ * Use `--dry-run` to preview every file the rewrite would touch (and the planned
28
+ * port / manifest changes) before anything is written.
29
+ *
30
+ * Bundle-scoped, same-project: `gina bundle:copy <source> <new_name> @<project>`.
31
+ *
32
+ * Usage:
33
+ * gina bundle:copy <source> <new_name> @<project>
34
+ * gina bundle:copy <source> <new_name> @<project> --dry-run
35
+ * gina bundle:copy <source> <new_name> @<project> --dry-run --format=json
36
+ * gina bundle:copy <source> <new_name> @<project> --force // overwrite an existing target
37
+ *
38
+ * @class Copy
39
+ * @constructor
40
+ * @param {object} opt - Parsed command-line options
41
+ * @param {object} opt.client - Socket client for terminal output
42
+ * @param {string[]} opt.argv - Full argv array
43
+ * @param {number} [opt.debugPort] - Node.js inspector port
44
+ * @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
45
+ * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
46
+ *
47
+ * @example
48
+ * // duplicate bundle `api` as `web` inside project `myproject`
49
+ * $ gina bundle:copy api web @myproject
50
+ * Bundle [ api@myproject ] copied to [ web@myproject ].
51
+ *
52
+ * @example
53
+ * // preview only, machine-readable
54
+ * $ gina bundle:copy api web @myproject --dry-run --format=json
55
+ * {"source":"api","dest":"web","project":"myproject","dryRun":true,"overwrite":false,"filesToCopy":18,"rewriteSites":[{"file":"index.js","occurrences":9}],"portsToAllocate":8}
56
+ */
57
+ function Copy(opt, cmd) {
58
+ var self = {};
59
+ var local = { source: null, dest: null, portCount: 0 };
60
+
61
+ /**
62
+ * Wires CmdHelper, parses the two positionals (source + new name), validates
63
+ * the project, then runs the copy.
64
+ *
65
+ * @inner
66
+ * @private
67
+ */
68
+ var init = function() {
69
+
70
+ // import CMD helpers
71
+ new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
72
+ // check CMD configuration
73
+ if (!isCmdConfigured()) return false;
74
+
75
+ // bundle:copy takes TWO positionals (source + new name). CmdHelper only
76
+ // sets self.name for a SINGLE positional, so read self.bundles directly.
77
+ var bundles = self.bundles || [];
78
+ if ( bundles.length !== 2 ) {
79
+ console.error('bundle:copy requires a source AND a new name: gina bundle:copy <source> <new_name> @<project>');
80
+ process.exit(1);
81
+ return;
82
+ }
83
+ local.source = bundles[0];
84
+ local.dest = bundles[1];
85
+
86
+ if ( self.projectName == null || typeof(self.projects[self.projectName]) == 'undefined' ) {
87
+ console.error('[ '+ self.projectName +' ] is not a registered project.');
88
+ process.exit(1);
89
+ return;
90
+ }
91
+
92
+ // populate bundlesByProject[...] + ports/env/manifest context
93
+ loadAssets();
94
+
95
+ run();
96
+ }
97
+
98
+
99
+ // escapeRegex / capitalize / renameContent live in ./inc/name-rewrite.js
100
+ // (the pure rewrite engine shared with bundle:rename). Consumed below as
101
+ // `nameRewrite.*`; the fs-walking wrappers (walkFiles/rewriteTree/
102
+ // previewRewrite) stay here because they touch fs + lib.generator.
103
+
104
+
105
+ /**
106
+ * Recursively collects every file path under `dir`.
107
+ *
108
+ * @inner
109
+ * @private
110
+ * @param {string} dir
111
+ * @param {string[]} [acc]
112
+ * @returns {string[]}
113
+ */
114
+ var walkFiles = function(dir, acc) {
115
+ acc = acc || [];
116
+ var entries = [];
117
+ try { entries = fs.readdirSync(dir); } catch (e) { return acc; }
118
+ for (var i = 0; i < entries.length; i++) {
119
+ var full = dir + '/' + entries[i];
120
+ var st;
121
+ try { st = fs.statSync(full); } catch (e) { continue; }
122
+ if ( st.isDirectory() ) {
123
+ walkFiles(full, acc);
124
+ } else {
125
+ acc.push(full);
126
+ }
127
+ }
128
+ return acc;
129
+ }
130
+
131
+
132
+ /**
133
+ * Applies the name rewrite to every `.js`/`.json` file in the copied tree.
134
+ *
135
+ * @inner
136
+ * @private
137
+ * @param {string} destPath - Absolute path of the copied bundle tree
138
+ * @param {string} source
139
+ * @param {string} dest
140
+ * @returns {string[]} Absolute paths of the files actually rewritten
141
+ */
142
+ var rewriteTree = function(destPath, source, dest) {
143
+ var files = walkFiles(destPath)
144
+ , touched = [];
145
+ for (var i = 0; i < files.length; i++) {
146
+ var f = files[i];
147
+ if ( !/\.(js|json)$/i.test(f) ) continue;
148
+ var content;
149
+ try { content = fs.readFileSync(f, 'utf8'); } catch (e) { continue; }
150
+ var isServerSettings = /config\/settings\.server\.json$/.test(f);
151
+ var updated = nameRewrite.renameContent(content, source, dest, { fixWebroot: isServerSettings });
152
+ if ( updated !== content ) {
153
+ lib.generator.createFileFromDataSync(updated, f);
154
+ touched.push(f);
155
+ }
156
+ }
157
+ return touched;
158
+ }
159
+
160
+
161
+ /**
162
+ * Previews the rewrite without writing: scans the SOURCE tree's `.js`/`.json`
163
+ * files and reports, per file, how many name occurrences would be rewritten.
164
+ * This is the `--dry-run` safety valve — it surfaces every site the rewrite
165
+ * would touch so a coincidental match can be eyeballed before any write.
166
+ *
167
+ * @inner
168
+ * @private
169
+ * @param {string} srcPath
170
+ * @param {string} source
171
+ * @param {string} dest
172
+ * @returns {Array<{file: string, occurrences: number}>}
173
+ */
174
+ var previewRewrite = function(srcPath, source, dest) {
175
+ var files = walkFiles(srcPath)
176
+ , sites = [];
177
+ for (var i = 0; i < files.length; i++) {
178
+ var f = files[i];
179
+ if ( !/\.(js|json)$/i.test(f) ) continue;
180
+ var content;
181
+ try { content = fs.readFileSync(f, 'utf8'); } catch (e) { continue; }
182
+ var n = nameRewrite.countOccurrences(content, source);
183
+ if ( n > 0 ) {
184
+ sites.push({ file: f.replace(srcPath, '').replace(/^\//, ''), occurrences: n });
185
+ }
186
+ }
187
+ return sites;
188
+ }
189
+
190
+
191
+ /**
192
+ * Removes a pre-existing destination bundle (used on `--force`): deletes its
193
+ * source tree + mount symlink, and its `env.json` / `manifest.json` /
194
+ * `ports.json` / `ports.reverse.json` entries — mirrors bundle/remove.js.
195
+ * Reloads assets afterwards so the fresh copy sees the cleaned state.
196
+ *
197
+ * @inner
198
+ * @private
199
+ * @param {string} dest
200
+ */
201
+ var removeDest = function(dest) {
202
+ var project = self.projectName;
203
+
204
+ // source tree + mount symlink (best effort)
205
+ try {
206
+ var entry = (self.projectData && self.projectData.bundles) ? self.projectData.bundles[dest] : null;
207
+ if ( entry && entry.src ) {
208
+ var folder = new _(self.projects[project].path + '/' + entry.src, true);
209
+ if ( folder.isValidPath() ) folder.rmSync();
210
+ }
211
+ var coreEnv = getCoreEnv(dest);
212
+ new _(coreEnv.mountPath + '/' + dest, true).rmSync();
213
+ } catch (e) { /* best effort */ }
214
+
215
+ // env.json
216
+ if ( self.envData && typeof(self.envData[dest]) != 'undefined' ) {
217
+ delete self.envData[dest];
218
+ lib.generator.createFileFromDataSync(self.envData, self.envPath);
219
+ }
220
+ // manifest.json
221
+ if ( self.projectData && self.projectData.bundles && typeof(self.projectData.bundles[dest]) != 'undefined' ) {
222
+ delete self.projectData.bundles[dest];
223
+ lib.generator.createFileFromDataSync(self.projectData, self.projectManifestPath);
224
+ }
225
+ // ports.json / ports.reverse.json
226
+ var ports = JSON.clone(self.portsData)
227
+ , portsReverse = JSON.clone(self.portsReverseData)
228
+ , re;
229
+ for (var protocol in ports) {
230
+ for (var scheme in ports[protocol]) {
231
+ for (var port in ports[protocol][scheme]) {
232
+ re = new RegExp('^' + nameRewrite.escapeRegex(dest) + '@' + nameRewrite.escapeRegex(project) + '/');
233
+ if ( re.test(ports[protocol][scheme][port]) ) {
234
+ delete ports[protocol][scheme][port];
235
+ }
236
+ }
237
+ }
238
+ }
239
+ for (var addr in portsReverse) {
240
+ if ( addr === dest + '@' + project ) {
241
+ delete portsReverse[addr];
242
+ }
243
+ }
244
+ lib.generator.createFileFromDataSync(ports, self.portsPath);
245
+ lib.generator.createFileFromDataSync(portsReverse, self.portsReversePath);
246
+
247
+ // reload so setPorts / writeManifest see the cleaned files
248
+ loadAssets();
249
+ }
250
+
251
+
252
+ /**
253
+ * Registers the new bundle in the project manifest by cloning the source
254
+ * entry and repointing its `src` / `link` / `releases` target paths to the
255
+ * new name (preserves the source's version / tag / comment).
256
+ *
257
+ * @inner
258
+ * @private
259
+ * @param {string} source
260
+ * @param {string} dest
261
+ */
262
+ var writeManifest = function(source, dest) {
263
+ var data = requireJSON(self.projectManifestPath)
264
+ , srcEntry = data.bundles[source]
265
+ , entry = JSON.clone(srcEntry);
266
+
267
+ entry.src = 'src/' + dest;
268
+ entry.link = 'bundles/' + dest;
269
+ if ( entry.releases ) {
270
+ for (var scope in entry.releases) {
271
+ for (var env in entry.releases[scope]) {
272
+ var rel = entry.releases[scope][env];
273
+ if ( rel && rel.target ) {
274
+ rel.target = rel.target.replace('releases/' + source + '/', 'releases/' + dest + '/');
275
+ }
276
+ }
277
+ }
278
+ }
279
+ data.bundles[dest] = entry;
280
+ lib.generator.createFileFromDataSync(data, self.projectManifestPath);
281
+ try { delete require.cache[require.resolve(self.projectManifestPath)]; } catch (e) { /* not cached */ }
282
+ }
283
+
284
+
285
+ /**
286
+ * Prints the copy result (or dry-run preview) as text, or a
287
+ * `{ source, dest, project, dryRun, overwrite, filesToCopy, rewriteSites, portsToAllocate }`
288
+ * envelope with `--format=json`, then exits.
289
+ *
290
+ * @inner
291
+ * @private
292
+ * @param {boolean} dryRun
293
+ * @param {string|null} format
294
+ * @param {string} source
295
+ * @param {string} dest
296
+ * @param {string} project
297
+ * @param {string} srcPath
298
+ * @param {string} destPath
299
+ * @param {boolean} overwrite
300
+ * @param {Array} rewriteSites - preview {file,occurrences}[] (dry-run) or touched paths[] (success)
301
+ */
302
+ var report = function(dryRun, format, source, dest, project, srcPath, destPath, overwrite, rewriteSites) {
303
+ var fileCount = walkFiles(srcPath).length;
304
+
305
+ if ( /^json?/.test(format || '') ) {
306
+ var sites = (rewriteSites || []).map(function(s) {
307
+ return (typeof s === 'string')
308
+ ? { file: s.replace(destPath, '').replace(/^\//, '') }
309
+ : s;
310
+ });
311
+ process.stdout.write(JSON.stringify({
312
+ source : source,
313
+ dest : dest,
314
+ project : project,
315
+ dryRun : dryRun,
316
+ overwrite : !!overwrite,
317
+ filesToCopy : fileCount,
318
+ rewriteSites : sites,
319
+ portsToAllocate : local.portCount
320
+ }));
321
+ return process.exit(0);
322
+ }
323
+
324
+ if ( dryRun ) {
325
+ console.log('[ dry-run ] would copy bundle [ '+ source +'@'+ project +' ] → [ '+ dest +'@'+ project +' ] (no changes written).');
326
+ console.log(' source : '+ srcPath);
327
+ console.log(' target : '+ destPath + (overwrite ? ' (EXISTS — would be overwritten)' : ''));
328
+ console.log(' files : '+ fileCount + ' file(s) copied verbatim');
329
+ if ( rewriteSites.length > 0 ) {
330
+ console.log(' rename : `'+ source +'`/`'+ nameRewrite.capitalize(source) +'` → `'+ dest +'`/`'+ nameRewrite.capitalize(dest) +'` in '+ rewriteSites.length +' .js/.json file(s):');
331
+ for (var i = 0; i < rewriteSites.length; i++) {
332
+ var occ = rewriteSites[i].occurrences;
333
+ console.log(' - '+ rewriteSites[i].file +' ('+ occ +' occurrence'+ (occ === 1 ? '' : 's') +')');
334
+ }
335
+ } else {
336
+ console.log(' rename : no .js/.json occurrences of `'+ source +'` found.');
337
+ }
338
+ console.log(' ports : would allocate a fresh full matrix (~'+ local.portCount +' port slot(s)).');
339
+ return process.exit(0);
340
+ }
341
+
342
+ console.log('Bundle [ '+ source +'@'+ project +' ] copied to [ '+ dest +'@'+ project +' ].');
343
+ var touched = (rewriteSites && rewriteSites.length) || 0;
344
+ if ( touched > 0 ) {
345
+ console.log(' rewrote the bundle name in '+ touched +' file(s).');
346
+ }
347
+ console.log(' registered ports, env.json and manifest.json for the new bundle.');
348
+ console.log('You can now start it: gina bundle:start '+ dest +' @'+ project);
349
+ process.exit(0);
350
+ }
351
+
352
+
353
+ /**
354
+ * Validates the source/destination, then (unless `--dry-run`) scans for free
355
+ * ports, copies the source tree, rewrites the name footprint, allocates the
356
+ * port matrix, and registers the manifest entry.
357
+ *
358
+ * @inner
359
+ * @private
360
+ */
361
+ var run = function() {
362
+ var p = self.params || {};
363
+ var dryRun = !!p['dry-run'];
364
+ var force = !!p['force'];
365
+ var format = p['format'] || null;
366
+
367
+ var source = local.source;
368
+ var dest = local.dest;
369
+ var project = self.projectName;
370
+
371
+ if ( source === dest ) {
372
+ console.error('Source and new name are identical (`'+ source +'`). Choose a different new name.');
373
+ process.exit(1);
374
+ return;
375
+ }
376
+ if ( !isValidName(dest) ) {
377
+ console.error('[ '+ dest +' ] is not a valid bundle name.');
378
+ process.exit(1);
379
+ return;
380
+ }
381
+
382
+ // source must exist (registered + on disk)
383
+ var srcEntry = (self.bundlesByProject && self.bundlesByProject[project])
384
+ ? self.bundlesByProject[project][source]
385
+ : null;
386
+ if ( !srcEntry ) {
387
+ console.error('Source bundle [ '+ source +' ] is not registered inside `@'+ project +'`.');
388
+ process.exit(1);
389
+ return;
390
+ }
391
+ var srcPath = _(self.projects[project].path + '/' + srcEntry.src, true);
392
+ if ( !fs.existsSync(srcPath) ) {
393
+ console.error('Source bundle directory `'+ srcPath +'` does not exist.');
394
+ process.exit(1);
395
+ return;
396
+ }
397
+ var destPath = _(self.projects[project].path + '/src/' + dest, true);
398
+
399
+ // destination existence (manifest OR ports OR on-disk dir)
400
+ var destInManifest = !!(self.projectData && self.projectData.bundles && self.projectData.bundles[dest]);
401
+ var destHasPorts = isDefined('bundle', dest);
402
+ var destHasDir = fs.existsSync(destPath);
403
+ var destExists = destInManifest || destHasPorts || destHasDir;
404
+
405
+ if ( destExists && !force ) {
406
+ console.error('Target bundle [ '+ dest +' ] already exists inside `@'+ project +'`. Re-run with --force to overwrite it, or choose a different name.');
407
+ process.exit(1);
408
+ return;
409
+ }
410
+
411
+ // full-matrix port count for the new name (envs × protocols × schemes)
412
+ local.portCount = getBundleScanLimit(dest);
413
+
414
+ if ( dryRun ) {
415
+ return report(true, format, source, dest, project, srcPath, destPath, destExists, previewRewrite(srcPath, source, dest));
416
+ }
417
+
418
+ if ( destExists ) {
419
+ removeDest(dest);
420
+ }
421
+
422
+ // 1) scan for free ports
423
+ var options = {
424
+ ignore : getPortsList(),
425
+ limit : local.portCount,
426
+ startFrom : (p['start-port-from']) ? ~~p['start-port-from'] : null
427
+ };
428
+ scan(options, function(err, ports) {
429
+ if ( err ) {
430
+ console.error('Port scan failed: '+ (err.message || err));
431
+ process.exit(1);
432
+ return;
433
+ }
434
+
435
+ // 2) copy the source tree (trailing slash → copy children into destPath)
436
+ var srcDir = new _(self.projects[project].path + '/' + srcEntry.src + '/');
437
+ srcDir.cp(destPath, function done(cpErr) {
438
+ if ( cpErr ) {
439
+ console.error('Copy failed: '+ (cpErr.message || cpErr));
440
+ process.exit(1);
441
+ return;
442
+ }
443
+
444
+ // 3) rewrite the name footprint in the copied .js/.json files
445
+ var rewritten = rewriteTree(destPath, source, dest);
446
+
447
+ // 4) allocate the port matrix (writes ports.json / ports.reverse.json / env.json)
448
+ setPorts(dest, ports, function onPortsSet(pErr) {
449
+ if ( pErr ) {
450
+ console.error('Port allocation failed: '+ (pErr.message || pErr));
451
+ process.exit(1);
452
+ return;
453
+ }
454
+
455
+ // 5) register the manifest entry (cloned from source, repointed)
456
+ writeManifest(source, dest);
457
+
458
+ report(false, format, source, dest, project, srcPath, destPath, destExists, rewritten);
459
+ });
460
+ });
461
+ });
462
+ }
463
+
464
+ init();
465
+ };
466
+
467
+ module.exports = Copy
@@ -20,6 +20,16 @@
20
20
  $ gina bundle:add <bundle_name_1> <bundle_name_2> <bundle_name_3> @<project_name>
21
21
 
22
22
 
23
+ When the bundle already exists
24
+ ----------
25
+ You are prompted to replace, import, or cancel. Pass a flag to skip the
26
+ prompt — required when running without an interactive terminal (container,
27
+ CI, or piped stdin):
28
+
29
+ $ gina bundle:add <bundle_name> @<project_name> --import (register the existing source)
30
+ $ gina bundle:add <bundle_name> @<project_name> --replace (overwrite; existing files are lost)
31
+
32
+
23
33
 
24
34
  [ Removing an existing bundle ]
25
35
 
@@ -27,6 +37,61 @@
27
37
 
28
38
 
29
39
 
40
+ [ Copying a bundle under a new name ]
41
+
42
+ Duplicate a bundle's source + config under a new name inside the SAME
43
+ project. gina copies the source tree, rewrites the bundle-name footprint
44
+ (controller class names, the gina require-var, app.json name, webroot) in
45
+ the copied .js/.json files, allocates a fresh full protocol/scheme/env port
46
+ matrix for the new name, and registers it in manifest.json + env.json +
47
+ ~/.gina/ports.json. User content in templates / SQL / CSS is copied verbatim.
48
+
49
+ $ gina bundle:copy <source_bundle_name> <new_bundle_name> @<project_name>
50
+
51
+ Alias
52
+ ----------
53
+ $ gina bundle:cp <source_bundle_name> <new_bundle_name> @<project_name>
54
+
55
+ Preview without writing anything
56
+ ----------
57
+ Lists every file the name rewrite would touch (and the planned port /
58
+ manifest changes) so coincidental matches can be reviewed before any write.
59
+
60
+ $ gina bundle:copy <source_bundle_name> <new_bundle_name> @<project_name> --dry-run
61
+ $ gina bundle:copy <source_bundle_name> <new_bundle_name> @<project_name> --dry-run --format=json
62
+
63
+ Overwrite an existing target
64
+ ----------
65
+ $ gina bundle:copy <source_bundle_name> <new_bundle_name> @<project_name> --force
66
+
67
+
68
+
69
+ [ Renaming a bundle ]
70
+
71
+ Rename a bundle IN PLACE inside the SAME project. gina moves the source
72
+ tree to the new name, rewrites the bundle-name footprint (controller class
73
+ names, the gina require-var, app.json name, webroot) in the moved .js/.json
74
+ files, and rekeys manifest.json + env.json + the ports registry to the new
75
+ name. The existing port numbers are preserved (rekeyed, not reallocated).
76
+ User content in templates / SQL / CSS is moved verbatim. The bundle must be
77
+ stopped first.
78
+
79
+ $ gina bundle:rename <old_bundle_name> <new_bundle_name> @<project_name>
80
+
81
+ Preview without writing anything
82
+ ----------
83
+ Lists every file the name rewrite would touch so coincidental matches can be
84
+ reviewed before any write.
85
+
86
+ $ gina bundle:rename <old_bundle_name> <new_bundle_name> @<project_name> --dry-run
87
+ $ gina bundle:rename <old_bundle_name> <new_bundle_name> @<project_name> --dry-run --format=json
88
+
89
+ Overwrite an existing target
90
+ ----------
91
+ $ gina bundle:rename <old_bundle_name> <new_bundle_name> @<project_name> --force
92
+
93
+
94
+
30
95
  [ Listing all bundles inside your project ]
31
96
 
32
97
  $ gina bundle:list @<project_name>
@@ -36,6 +101,15 @@
36
101
  $ gina bundle:list
37
102
 
38
103
 
104
+ [ Showing a bundle's status ]
105
+
106
+ $ gina bundle:status <bundle_name> @<project_name>
107
+
108
+ or as JSON
109
+
110
+ $ gina bundle:status <bundle_name> @<project_name> --format=json
111
+
112
+
39
113
  [ Starting a bundle ]
40
114
 
41
115
  $ gina bundle:start <bundle_name> @<project_name>
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @module gina/lib/cmd/bundle/inc/name-rewrite
3
+ *
4
+ * Pure, dependency-free helpers for rewriting a bundle's name footprint in
5
+ * copied/renamed source files. Shared by `bundle:copy` and `bundle:rename`.
6
+ *
7
+ * The rewrite is **word-boundary anchored**: it renames the PascalCase
8
+ * identifiers the scaffolder derives from the bundle name (`<Name>Controller`,
9
+ * the gina require-var, etc.) and the lowercase whole-word name, but never a
10
+ * name embedded inside a larger token (`apiClient`, `rapid`, `api_key`). It is
11
+ * the caller's job to limit which files this runs on (`bundle:copy` /
12
+ * `bundle:rename` apply it to `.js`/`.json` only).
13
+ *
14
+ * No `fs`, no framework globals — require-by-path unit-testable.
15
+ */
16
+
17
+ /**
18
+ * Escapes regular-expression metacharacters so a bundle name can be embedded
19
+ * literally in a dynamically-built `RegExp`.
20
+ *
21
+ * @param {string} s
22
+ * @returns {string}
23
+ */
24
+ function escapeRegex(s) {
25
+ return String(s).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
26
+ }
27
+
28
+ /**
29
+ * Returns the name with its first character upper-cased (the `${Bundle}`
30
+ * convention the scaffolder uses for controller class names, etc.).
31
+ *
32
+ * @param {string} s
33
+ * @returns {string}
34
+ */
35
+ function capitalize(s) {
36
+ return s.charAt(0).toUpperCase() + s.slice(1);
37
+ }
38
+
39
+ /**
40
+ * Rewrites the bundle-name footprint in a single file's content:
41
+ * - `\b<Source>` (PascalCase prefix + standalone, e.g. `ApiController`, `Api`) → `<Dest>`
42
+ * - `\b<source>\b` (lowercase whole-word, e.g. require-var, `"name"`, webroot path) → `<dest>`
43
+ * - when `opts.fixWebroot` is true: a first-bundle webroot of `"/"` → `"/<dest>"`
44
+ *
45
+ * The two case-disjoint passes never collide. The webroot fix is opt-in because
46
+ * it is only correct for `bundle:copy` (a copied first bundle's `"/"` webroot
47
+ * would collide with the source's) — `bundle:rename` MUST leave a `"/"` webroot
48
+ * alone (it moves the only bundle, so there is no collision), while still
49
+ * rewriting a name-derived `"/<old>"` webroot via the lowercase pass.
50
+ *
51
+ * @param {string} content
52
+ * @param {string} source
53
+ * @param {string} dest
54
+ * @param {{fixWebroot?: boolean}} [opts]
55
+ * @returns {string}
56
+ */
57
+ function renameContent(content, source, dest, opts) {
58
+ opts = opts || {};
59
+ var SrcCap = capitalize(source)
60
+ , DstCap = capitalize(dest);
61
+
62
+ // PascalCase-prefix + standalone capitalized form (ApiController, "Api bundle")
63
+ content = content.replace(new RegExp('\\b' + escapeRegex(SrcCap), 'g'), DstCap);
64
+ // lowercase whole-word form (var api, "api", /api, api@project)
65
+ content = content.replace(new RegExp('\\b' + escapeRegex(source) + '\\b', 'g'), dest);
66
+
67
+ // first-bundle webroot collision (copy only): a verbatim "/" would clash with
68
+ // the source bundle — repoint to "/<dest>" (string op preserves comments).
69
+ if ( opts.fixWebroot ) {
70
+ content = content.replace(/("webroot"\s*:\s*)"\/"/, '$1"/' + dest + '"');
71
+ }
72
+ return content;
73
+ }
74
+
75
+ /**
76
+ * Counts how many name occurrences `renameContent` would rewrite in `content`
77
+ * (the PascalCase-prefix hits plus the lowercase whole-word hits). Used to
78
+ * preview rewrite sites in `--dry-run`. Does NOT count the webroot fix (it is a
79
+ * follow-on edit, not a name occurrence).
80
+ *
81
+ * @param {string} content
82
+ * @param {string} source
83
+ * @returns {number}
84
+ */
85
+ function countOccurrences(content, source) {
86
+ var reCap = new RegExp('\\b' + escapeRegex(capitalize(source)), 'g')
87
+ , reLow = new RegExp('\\b' + escapeRegex(source) + '\\b', 'g');
88
+ return (content.match(reCap) || []).length + (content.match(reLow) || []).length;
89
+ }
90
+
91
+ module.exports = {
92
+ escapeRegex : escapeRegex,
93
+ capitalize : capitalize,
94
+ renameContent : renameContent,
95
+ countOccurrences : countOccurrences
96
+ };