gina 0.6.3 → 0.6.4

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 (567) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +32 -40
  3. package/ROADMAP.md +3 -1
  4. package/framework/v0.6.4/VERSION +1 -0
  5. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  6. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  7. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  8. package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/js/gina.js +1522 -79
  9. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js +640 -0
  10. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  11. package/framework/v0.6.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  12. package/framework/{v0.6.3 → v0.6.4}/core/config.js +22 -4
  13. package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.js +62 -2
  14. package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-nunjucks.js +11 -3
  15. package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-swig.js +15 -1
  16. package/framework/{v0.6.3 → v0.6.4}/core/gna.js +33 -1
  17. package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/validator/src/main.js +892 -21
  18. package/framework/{v0.6.3 → v0.6.4}/core/server.js +60 -2
  19. package/framework/v0.6.4/core/template/_gitignore +27 -0
  20. package/framework/{v0.6.3 → v0.6.4}/lib/cmd/secrets/arguments.json +1 -0
  21. package/framework/v0.6.4/lib/cmd/secrets/check.js +861 -0
  22. package/framework/{v0.6.3 → v0.6.4}/lib/cmd/secrets/help.txt +29 -5
  23. package/framework/v0.6.4/lib/loading-state/package.json +7 -0
  24. package/framework/v0.6.4/lib/loading-state/src/main.js +366 -0
  25. package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/mq/listener.js +23 -0
  26. package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/mq/speaker.js +27 -0
  27. package/framework/v0.6.4/lib/secrets/src/backends/file.js +180 -0
  28. package/framework/v0.6.4/lib/secrets/src/env-file.js +220 -0
  29. package/framework/{v0.6.3 → v0.6.4}/lib/secrets/src/main.js +84 -1
  30. package/framework/{v0.6.3 → v0.6.4}/package.json +1 -1
  31. package/gna.js +4 -4
  32. package/llms.txt +7 -7
  33. package/package.json +3 -3
  34. package/schema/settings.json +14 -0
  35. package/framework/v0.6.3/VERSION +0 -1
  36. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -1
  37. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  38. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  39. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -625
  40. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  41. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  42. package/framework/v0.6.3/core/template/_gitignore +0 -19
  43. package/framework/v0.6.3/lib/cmd/secrets/check.js +0 -507
  44. /package/framework/{v0.6.3 → v0.6.4}/AUTHORS +0 -0
  45. /package/framework/{v0.6.3 → v0.6.4}/LICENSE +0 -0
  46. /package/framework/{v0.6.3 → v0.6.4}/core/asset/html/nolayout.html +0 -0
  47. /package/framework/{v0.6.3 → v0.6.4}/core/asset/html/static.html +0 -0
  48. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/android-chrome-192x192.png +0 -0
  49. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/android-chrome-512x512.png +0 -0
  50. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/apple-touch-icon.png +0 -0
  51. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/favicon-16x16.png +0 -0
  52. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/favicon-32x32.png +0 -0
  53. /package/framework/{v0.6.3 → v0.6.4}/core/asset/img/favicon.ico +0 -0
  54. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/README.md +0 -0
  55. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  56. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  57. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  58. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  59. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  60. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  61. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  62. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  63. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  64. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  65. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  66. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  67. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  68. /package/framework/{v0.6.3 → v0.6.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  69. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/ai/index.js +0 -0
  70. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/ai/lib/connector.js +0 -0
  71. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/index.js +0 -0
  72. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/connector.js +0 -0
  73. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  74. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  75. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/n1ql.js +0 -0
  76. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/session-store.js +0 -0
  77. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  78. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  79. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/duckdb/index.js +0 -0
  80. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/duckdb/lib/connector.js +0 -0
  81. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mongodb/index.js +0 -0
  82. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mongodb/lib/connector.js +0 -0
  83. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mongodb/lib/job-store.js +0 -0
  84. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  85. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mongodb/lib/session-store.js +0 -0
  86. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mysql/index.js +0 -0
  87. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/mysql/lib/connector.js +0 -0
  88. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/postgresql/index.js +0 -0
  89. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/postgresql/lib/connector.js +0 -0
  90. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/redis/index.js +0 -0
  91. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/redis/lib/connector.js +0 -0
  92. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/redis/lib/job-store.js +0 -0
  93. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/redis/lib/render-cache-store.js +0 -0
  94. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/redis/lib/session-store.js +0 -0
  95. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/scylladb/index.js +0 -0
  96. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/scylladb/lib/connector.js +0 -0
  97. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/scylladb/lib/session-store.js +0 -0
  98. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/sql-parser.js +0 -0
  99. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/sqlite/index.js +0 -0
  100. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/sqlite/lib/connector.js +0 -0
  101. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/sqlite/lib/job-store.js +0 -0
  102. /package/framework/{v0.6.3 → v0.6.4}/core/connectors/sqlite/lib/session-store.js +0 -0
  103. /package/framework/{v0.6.3 → v0.6.4}/core/content.encoding +0 -0
  104. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.framework.js +0 -0
  105. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-json.js +0 -0
  106. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-nunjucks-async.js +0 -0
  107. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-stream.js +0 -0
  108. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-swig-async.js +0 -0
  109. /package/framework/{v0.6.3 → v0.6.4}/core/controller/controller.render-v1.js +0 -0
  110. /package/framework/{v0.6.3 → v0.6.4}/core/controller/index.js +0 -0
  111. /package/framework/{v0.6.3 → v0.6.4}/core/controller/inspector-window-emit.js +0 -0
  112. /package/framework/{v0.6.3 → v0.6.4}/core/controller/release-banner.js +0 -0
  113. /package/framework/{v0.6.3 → v0.6.4}/core/dev/index.js +0 -0
  114. /package/framework/{v0.6.3 → v0.6.4}/core/dev/lib/class.js +0 -0
  115. /package/framework/{v0.6.3 → v0.6.4}/core/dev/lib/factory.js +0 -0
  116. /package/framework/{v0.6.3 → v0.6.4}/core/dev/lib/tools.js +0 -0
  117. /package/framework/{v0.6.3 → v0.6.4}/core/locales/README.md +0 -0
  118. /package/framework/{v0.6.3 → v0.6.4}/core/locales/currency.json +0 -0
  119. /package/framework/{v0.6.3 → v0.6.4}/core/locales/dist/language/en.json +0 -0
  120. /package/framework/{v0.6.3 → v0.6.4}/core/locales/dist/language/fr.json +0 -0
  121. /package/framework/{v0.6.3 → v0.6.4}/core/locales/dist/region/en.json +0 -0
  122. /package/framework/{v0.6.3 → v0.6.4}/core/locales/dist/region/fr.json +0 -0
  123. /package/framework/{v0.6.3 → v0.6.4}/core/locales/index.js +0 -0
  124. /package/framework/{v0.6.3 → v0.6.4}/core/mime.types +0 -0
  125. /package/framework/{v0.6.3 → v0.6.4}/core/model/entity.js +0 -0
  126. /package/framework/{v0.6.3 → v0.6.4}/core/model/index.js +0 -0
  127. /package/framework/{v0.6.3 → v0.6.4}/core/model/template/entityFactory.js +0 -0
  128. /package/framework/{v0.6.3 → v0.6.4}/core/model/template/index.js +0 -0
  129. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/README.md +0 -0
  130. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/index.js +0 -0
  131. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/csrf/README.md +0 -0
  132. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/csrf/package.json +0 -0
  133. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/csrf/src/main.js +0 -0
  134. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/README.md +0 -0
  135. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coep/README.md +0 -0
  136. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coep/package.json +0 -0
  137. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  138. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coop/README.md +0 -0
  139. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coop/package.json +0 -0
  140. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  141. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/corp/README.md +0 -0
  142. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/corp/package.json +0 -0
  143. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  144. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/csp/README.md +0 -0
  145. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/csp/package.json +0 -0
  146. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  147. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  148. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  149. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  150. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  151. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  152. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  153. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  154. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  155. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  156. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/package.json +0 -0
  157. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  158. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  159. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  160. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/src/main.js +0 -0
  161. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  162. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  163. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  164. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  165. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  166. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  167. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  168. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  169. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  170. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  171. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  172. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  173. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  174. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  175. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  176. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  177. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  178. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  179. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/session/README.md +0 -0
  180. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/session/package.json +0 -0
  181. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/session/src/main.js +0 -0
  182. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/storage/README.md +0 -0
  183. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/storage/build.json +0 -0
  184. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/storage/package.json +0 -0
  185. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/storage/src/main.js +0 -0
  186. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/validator/README.md +0 -0
  187. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/validator/build.json +0 -0
  188. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/validator/package.json +0 -0
  189. /package/framework/{v0.6.3 → v0.6.4}/core/plugins/lib/validator/src/form-validator.js +0 -0
  190. /package/framework/{v0.6.3 → v0.6.4}/core/router.js +0 -0
  191. /package/framework/{v0.6.3 → v0.6.4}/core/server.express.js +0 -0
  192. /package/framework/{v0.6.3 → v0.6.4}/core/server.isaac.js +0 -0
  193. /package/framework/{v0.6.3 → v0.6.4}/core/status.codes +0 -0
  194. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/app.json +0 -0
  195. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  196. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/routing.json +0 -0
  197. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/settings.json +0 -0
  198. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  199. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/templates.json +0 -0
  200. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  201. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  202. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  203. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  204. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/index.js +0 -0
  205. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle/locales/en.json +0 -0
  206. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  207. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  208. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  209. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  210. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  211. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  212. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  213. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  214. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/readme.md +0 -0
  215. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_public/sw.js +0 -0
  216. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  217. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  218. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  219. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  220. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  221. /package/framework/{v0.6.3 → v0.6.4}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  222. /package/framework/{v0.6.3 → v0.6.4}/core/template/command/gina.bat.tpl +0 -0
  223. /package/framework/{v0.6.3 → v0.6.4}/core/template/command/gina.tpl +0 -0
  224. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/env.json +0 -0
  225. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/manifest.json +0 -0
  226. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/package.json +0 -0
  227. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/settings.json +0 -0
  228. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/statics.json +0 -0
  229. /package/framework/{v0.6.3 → v0.6.4}/core/template/conf/templates.json +0 -0
  230. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/client/json/401.json +0 -0
  231. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/client/json/403.json +0 -0
  232. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/client/json/404.json +0 -0
  233. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/server/html/50x.html +0 -0
  234. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/server/json/500.json +0 -0
  235. /package/framework/{v0.6.3 → v0.6.4}/core/template/error/server/json/503.json +0 -0
  236. /package/framework/{v0.6.3 → v0.6.4}/core/template/extensions/logger/config.json +0 -0
  237. /package/framework/{v0.6.3 → v0.6.4}/helpers/console.js +0 -0
  238. /package/framework/{v0.6.3 → v0.6.4}/helpers/context.js +0 -0
  239. /package/framework/{v0.6.3 → v0.6.4}/helpers/data/LICENSE +0 -0
  240. /package/framework/{v0.6.3 → v0.6.4}/helpers/data/README.md +0 -0
  241. /package/framework/{v0.6.3 → v0.6.4}/helpers/data/package.json +0 -0
  242. /package/framework/{v0.6.3 → v0.6.4}/helpers/data/src/main.js +0 -0
  243. /package/framework/{v0.6.3 → v0.6.4}/helpers/dateFormat.js +0 -0
  244. /package/framework/{v0.6.3 → v0.6.4}/helpers/index.js +0 -0
  245. /package/framework/{v0.6.3 → v0.6.4}/helpers/json/LICENSE +0 -0
  246. /package/framework/{v0.6.3 → v0.6.4}/helpers/json/README.md +0 -0
  247. /package/framework/{v0.6.3 → v0.6.4}/helpers/json/package.json +0 -0
  248. /package/framework/{v0.6.3 → v0.6.4}/helpers/json/src/main.js +0 -0
  249. /package/framework/{v0.6.3 → v0.6.4}/helpers/path.js +0 -0
  250. /package/framework/{v0.6.3 → v0.6.4}/helpers/plugins/README.md +0 -0
  251. /package/framework/{v0.6.3 → v0.6.4}/helpers/plugins/package.json +0 -0
  252. /package/framework/{v0.6.3 → v0.6.4}/helpers/plugins/src/api-error.js +0 -0
  253. /package/framework/{v0.6.3 → v0.6.4}/helpers/plugins/src/main.js +0 -0
  254. /package/framework/{v0.6.3 → v0.6.4}/helpers/prototypes.js +0 -0
  255. /package/framework/{v0.6.3 → v0.6.4}/helpers/task.js +0 -0
  256. /package/framework/{v0.6.3 → v0.6.4}/helpers/text.js +0 -0
  257. /package/framework/{v0.6.3 → v0.6.4}/lib/admin/package.json +0 -0
  258. /package/framework/{v0.6.3 → v0.6.4}/lib/admin/src/main.js +0 -0
  259. /package/framework/{v0.6.3 → v0.6.4}/lib/archiver/README.md +0 -0
  260. /package/framework/{v0.6.3 → v0.6.4}/lib/archiver/build.json +0 -0
  261. /package/framework/{v0.6.3 → v0.6.4}/lib/archiver/package.json +0 -0
  262. /package/framework/{v0.6.3 → v0.6.4}/lib/archiver/src/dep/jszip.min.js +0 -0
  263. /package/framework/{v0.6.3 → v0.6.4}/lib/archiver/src/main.js +0 -0
  264. /package/framework/{v0.6.3 → v0.6.4}/lib/async/package.json +0 -0
  265. /package/framework/{v0.6.3 → v0.6.4}/lib/async/src/main.js +0 -0
  266. /package/framework/{v0.6.3 → v0.6.4}/lib/audit/package.json +0 -0
  267. /package/framework/{v0.6.3 → v0.6.4}/lib/audit/src/main.js +0 -0
  268. /package/framework/{v0.6.3 → v0.6.4}/lib/audit-store.js +0 -0
  269. /package/framework/{v0.6.3 → v0.6.4}/lib/authn/package.json +0 -0
  270. /package/framework/{v0.6.3 → v0.6.4}/lib/authn/src/lockout.js +0 -0
  271. /package/framework/{v0.6.3 → v0.6.4}/lib/authn/src/main.js +0 -0
  272. /package/framework/{v0.6.3 → v0.6.4}/lib/authn/src/totp.js +0 -0
  273. /package/framework/{v0.6.3 → v0.6.4}/lib/authz-gate/package.json +0 -0
  274. /package/framework/{v0.6.3 → v0.6.4}/lib/authz-gate/src/main.js +0 -0
  275. /package/framework/{v0.6.3 → v0.6.4}/lib/cache/README.md +0 -0
  276. /package/framework/{v0.6.3 → v0.6.4}/lib/cache/build.json +0 -0
  277. /package/framework/{v0.6.3 → v0.6.4}/lib/cache/package.json +0 -0
  278. /package/framework/{v0.6.3 → v0.6.4}/lib/cache/src/main.js +0 -0
  279. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/aliases.json +0 -0
  280. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/audit/arguments.json +0 -0
  281. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/audit/help.txt +0 -0
  282. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/audit/verify.js +0 -0
  283. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/add.js +0 -0
  284. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/arguments.json +0 -0
  285. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/build.js +0 -0
  286. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/copy.js +0 -0
  287. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/cp.js +0 -0
  288. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/help.js +0 -0
  289. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/help.txt +0 -0
  290. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  291. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/list.js +0 -0
  292. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/man.js +0 -0
  293. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/mcp-start.js +0 -0
  294. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/mcp.js +0 -0
  295. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/oas.js +0 -0
  296. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/openapi.js +0 -0
  297. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/remove.js +0 -0
  298. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/rename.js +0 -0
  299. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/restart.js +0 -0
  300. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/rm.js +0 -0
  301. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/start.js +0 -0
  302. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/status.js +0 -0
  303. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/stop.js +0 -0
  304. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/bundle/types.js +0 -0
  305. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/cache/arguments.json +0 -0
  306. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/cache/clear.js +0 -0
  307. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/cache/help.txt +0 -0
  308. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/cache/stats.js +0 -0
  309. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/add.js +0 -0
  310. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/arguments.json +0 -0
  311. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/help.js +0 -0
  312. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/help.txt +0 -0
  313. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/infer.js +0 -0
  314. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/list.js +0 -0
  315. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/migrate.js +0 -0
  316. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/models.js +0 -0
  317. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/remove.js +0 -0
  318. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/rm.js +0 -0
  319. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/connector/test.js +0 -0
  320. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/arguments.json +0 -0
  321. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/help.js +0 -0
  322. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/help.txt +0 -0
  323. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/man.js +0 -0
  324. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/ps.js +0 -0
  325. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/container/stop.js +0 -0
  326. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/add.js +0 -0
  327. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/arguments.json +0 -0
  328. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/help.txt +0 -0
  329. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/inc/args.js +0 -0
  330. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/inc/namespace.js +0 -0
  331. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  332. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/inc/reference-scan.js +0 -0
  333. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/inc/scaffold.js +0 -0
  334. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/remove.js +0 -0
  335. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/rename.js +0 -0
  336. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/controller/rm.js +0 -0
  337. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/add.js +0 -0
  338. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/get.js +0 -0
  339. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/help.js +0 -0
  340. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/help.txt +0 -0
  341. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/link-dev.js +0 -0
  342. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/list.js +0 -0
  343. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/remove.js +0 -0
  344. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/rm.js +0 -0
  345. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/set.js +0 -0
  346. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/unset.js +0 -0
  347. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/env/use.js +0 -0
  348. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/add.js +0 -0
  349. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/arguments.json +0 -0
  350. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/build.js +0 -0
  351. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/dot.js +0 -0
  352. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/get.js +0 -0
  353. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/help.js +0 -0
  354. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/help.txt +0 -0
  355. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/init.js +0 -0
  356. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/link-node-modules.js +0 -0
  357. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/link.js +0 -0
  358. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/list.js +0 -0
  359. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/man.js +0 -0
  360. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/msg.json +0 -0
  361. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/open.js +0 -0
  362. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/remove.js +0 -0
  363. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/reset.js +0 -0
  364. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/restart.js +0 -0
  365. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/set.js +0 -0
  366. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/start.js +0 -0
  367. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/status.js +0 -0
  368. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/stop.js +0 -0
  369. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/tail.js +0 -0
  370. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/update.js +0 -0
  371. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/framework/version.js +0 -0
  372. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/gina-dev.1.md +0 -0
  373. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/gina-framework.1.md +0 -0
  374. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/gina.1.md +0 -0
  375. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/helper.js +0 -0
  376. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/add.js +0 -0
  377. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/arguments.json +0 -0
  378. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/export.js +0 -0
  379. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/help.js +0 -0
  380. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/help.txt +0 -0
  381. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/import.js +0 -0
  382. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/i18n/scan.js +0 -0
  383. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/_host.js +0 -0
  384. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/arguments.json +0 -0
  385. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/build.js +0 -0
  386. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/help.js +0 -0
  387. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/help.txt +0 -0
  388. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/list.js +0 -0
  389. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/man.js +0 -0
  390. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/rm.js +0 -0
  391. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/image/run.js +0 -0
  392. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/index.js +0 -0
  393. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/inspector/help.js +0 -0
  394. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/inspector/help.txt +0 -0
  395. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/inspector/open.js +0 -0
  396. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/man-render.js +0 -0
  397. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/minion/arguments.json +0 -0
  398. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/minion/help.js +0 -0
  399. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/minion/help.txt +0 -0
  400. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/minion/kill.js +0 -0
  401. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/minion/list.js +0 -0
  402. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/msg.json +0 -0
  403. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/help.js +0 -0
  404. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/help.txt +0 -0
  405. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/inc/scan.js +0 -0
  406. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/list.js +0 -0
  407. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/reset.js +0 -0
  408. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/port/set.js +0 -0
  409. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/add.js +0 -0
  410. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/arguments.json +0 -0
  411. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/backup.js +0 -0
  412. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/build.js +0 -0
  413. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/help.js +0 -0
  414. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/help.txt +0 -0
  415. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/import.js +0 -0
  416. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/list.js +0 -0
  417. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/man.js +0 -0
  418. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/move.js +0 -0
  419. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/remove.js +0 -0
  420. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/rename.js +0 -0
  421. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/restart.js +0 -0
  422. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/restore.js +0 -0
  423. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/rm.js +0 -0
  424. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/start.js +0 -0
  425. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/status.js +0 -0
  426. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/project/stop.js +0 -0
  427. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/arguments.json +0 -0
  428. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/help.js +0 -0
  429. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/help.txt +0 -0
  430. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/list.js +0 -0
  431. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/remove.js +0 -0
  432. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/protocol/set.js +0 -0
  433. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/add.js +0 -0
  434. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/help.js +0 -0
  435. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/help.txt +0 -0
  436. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/link-local.js +0 -0
  437. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/link-production.js +0 -0
  438. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/list.js +0 -0
  439. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/remove.js +0 -0
  440. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/rm.js +0 -0
  441. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/scope/use.js +0 -0
  442. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/secrets/help.js +0 -0
  443. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/secrets/scan.js +0 -0
  444. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/service/help.js +0 -0
  445. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/service/help.txt +0 -0
  446. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/service/list.js +0 -0
  447. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/service/man.js +0 -0
  448. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/service/start.js +0 -0
  449. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd/view/add.js +0 -0
  450. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd-status-format/package.json +0 -0
  451. /package/framework/{v0.6.3 → v0.6.4}/lib/cmd-status-format/src/main.js +0 -0
  452. /package/framework/{v0.6.3 → v0.6.4}/lib/collection/README.md +0 -0
  453. /package/framework/{v0.6.3 → v0.6.4}/lib/collection/build.json +0 -0
  454. /package/framework/{v0.6.3 → v0.6.4}/lib/collection/package.json +0 -0
  455. /package/framework/{v0.6.3 → v0.6.4}/lib/collection/src/main.js +0 -0
  456. /package/framework/{v0.6.3 → v0.6.4}/lib/config.js +0 -0
  457. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-config/package.json +0 -0
  458. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-config/src/main.js +0 -0
  459. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-error/package.json +0 -0
  460. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-error/src/main.js +0 -0
  461. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-registry/package.json +0 -0
  462. /package/framework/{v0.6.3 → v0.6.4}/lib/connector-registry/src/main.js +0 -0
  463. /package/framework/{v0.6.3 → v0.6.4}/lib/cron/README.md +0 -0
  464. /package/framework/{v0.6.3 → v0.6.4}/lib/cron/package.json +0 -0
  465. /package/framework/{v0.6.3 → v0.6.4}/lib/cron/src/main.js +0 -0
  466. /package/framework/{v0.6.3 → v0.6.4}/lib/domain/LICENSE +0 -0
  467. /package/framework/{v0.6.3 → v0.6.4}/lib/domain/README.md +0 -0
  468. /package/framework/{v0.6.3 → v0.6.4}/lib/domain/package.json +0 -0
  469. /package/framework/{v0.6.3 → v0.6.4}/lib/domain/src/main.js +0 -0
  470. /package/framework/{v0.6.3 → v0.6.4}/lib/dto/package.json +0 -0
  471. /package/framework/{v0.6.3 → v0.6.4}/lib/dto/src/main.js +0 -0
  472. /package/framework/{v0.6.3 → v0.6.4}/lib/dto-pipe/package.json +0 -0
  473. /package/framework/{v0.6.3 → v0.6.4}/lib/dto-pipe/src/main.js +0 -0
  474. /package/framework/{v0.6.3 → v0.6.4}/lib/dto-types/package.json +0 -0
  475. /package/framework/{v0.6.3 → v0.6.4}/lib/dto-types/src/main.js +0 -0
  476. /package/framework/{v0.6.3 → v0.6.4}/lib/generator/index.js +0 -0
  477. /package/framework/{v0.6.3 → v0.6.4}/lib/i18n/package.json +0 -0
  478. /package/framework/{v0.6.3 → v0.6.4}/lib/i18n/src/main.js +0 -0
  479. /package/framework/{v0.6.3 → v0.6.4}/lib/image-build/package.json +0 -0
  480. /package/framework/{v0.6.3 → v0.6.4}/lib/image-build/src/main.js +0 -0
  481. /package/framework/{v0.6.3 → v0.6.4}/lib/index.js +0 -0
  482. /package/framework/{v0.6.3 → v0.6.4}/lib/inherits/LICENSE +0 -0
  483. /package/framework/{v0.6.3 → v0.6.4}/lib/inherits/README.md +0 -0
  484. /package/framework/{v0.6.3 → v0.6.4}/lib/inherits/package.json +0 -0
  485. /package/framework/{v0.6.3 → v0.6.4}/lib/inherits/src/main.js +0 -0
  486. /package/framework/{v0.6.3 → v0.6.4}/lib/inspector-events/package.json +0 -0
  487. /package/framework/{v0.6.3 → v0.6.4}/lib/inspector-events/src/main.js +0 -0
  488. /package/framework/{v0.6.3 → v0.6.4}/lib/inspector-redact/package.json +0 -0
  489. /package/framework/{v0.6.3 → v0.6.4}/lib/inspector-redact/src/main.js +0 -0
  490. /package/framework/{v0.6.3 → v0.6.4}/lib/instrument/package.json +0 -0
  491. /package/framework/{v0.6.3 → v0.6.4}/lib/instrument/src/main.js +0 -0
  492. /package/framework/{v0.6.3 → v0.6.4}/lib/job/package.json +0 -0
  493. /package/framework/{v0.6.3 → v0.6.4}/lib/job/src/main.js +0 -0
  494. /package/framework/{v0.6.3 → v0.6.4}/lib/job-store.js +0 -0
  495. /package/framework/{v0.6.3 → v0.6.4}/lib/json-config-header/package.json +0 -0
  496. /package/framework/{v0.6.3 → v0.6.4}/lib/json-config-header/src/main.js +0 -0
  497. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/README.md +0 -0
  498. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/package.json +0 -0
  499. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/default/index.js +0 -0
  500. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/file/index.js +0 -0
  501. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  502. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  503. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/containers/mq/index.js +0 -0
  504. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/helper.js +0 -0
  505. /package/framework/{v0.6.3 → v0.6.4}/lib/logger/src/main.js +0 -0
  506. /package/framework/{v0.6.3 → v0.6.4}/lib/math/index.js +0 -0
  507. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-dispatch/package.json +0 -0
  508. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-dispatch/src/main.js +0 -0
  509. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-http/package.json +0 -0
  510. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-http/src/main.js +0 -0
  511. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-server/package.json +0 -0
  512. /package/framework/{v0.6.3 → v0.6.4}/lib/mcp-server/src/main.js +0 -0
  513. /package/framework/{v0.6.3 → v0.6.4}/lib/merge/README.md +0 -0
  514. /package/framework/{v0.6.3 → v0.6.4}/lib/merge/package.json +0 -0
  515. /package/framework/{v0.6.3 → v0.6.4}/lib/merge/src/main.js +0 -0
  516. /package/framework/{v0.6.3 → v0.6.4}/lib/metrics/package.json +0 -0
  517. /package/framework/{v0.6.3 → v0.6.4}/lib/metrics/src/main.js +0 -0
  518. /package/framework/{v0.6.3 → v0.6.4}/lib/model.js +0 -0
  519. /package/framework/{v0.6.3 → v0.6.4}/lib/net-locality/package.json +0 -0
  520. /package/framework/{v0.6.3 → v0.6.4}/lib/net-locality/src/main.js +0 -0
  521. /package/framework/{v0.6.3 → v0.6.4}/lib/nunjucks-filters/README.md +0 -0
  522. /package/framework/{v0.6.3 → v0.6.4}/lib/nunjucks-filters/package.json +0 -0
  523. /package/framework/{v0.6.3 → v0.6.4}/lib/nunjucks-filters/src/main.js +0 -0
  524. /package/framework/{v0.6.3 → v0.6.4}/lib/nunjucks-resolver/package.json +0 -0
  525. /package/framework/{v0.6.3 → v0.6.4}/lib/nunjucks-resolver/src/main.js +0 -0
  526. /package/framework/{v0.6.3 → v0.6.4}/lib/proc.js +0 -0
  527. /package/framework/{v0.6.3 → v0.6.4}/lib/release-watch/package.json +0 -0
  528. /package/framework/{v0.6.3 → v0.6.4}/lib/release-watch/src/main.js +0 -0
  529. /package/framework/{v0.6.3 → v0.6.4}/lib/render-cache/package.json +0 -0
  530. /package/framework/{v0.6.3 → v0.6.4}/lib/render-cache/src/main.js +0 -0
  531. /package/framework/{v0.6.3 → v0.6.4}/lib/render-cache-store.js +0 -0
  532. /package/framework/{v0.6.3 → v0.6.4}/lib/routing/README.md +0 -0
  533. /package/framework/{v0.6.3 → v0.6.4}/lib/routing/build.json +0 -0
  534. /package/framework/{v0.6.3 → v0.6.4}/lib/routing/package.json +0 -0
  535. /package/framework/{v0.6.3 → v0.6.4}/lib/routing/src/main.js +0 -0
  536. /package/framework/{v0.6.3 → v0.6.4}/lib/routing/src/radix.js +0 -0
  537. /package/framework/{v0.6.3 → v0.6.4}/lib/routing-introspect/package.json +0 -0
  538. /package/framework/{v0.6.3 → v0.6.4}/lib/routing-introspect/src/main.js +0 -0
  539. /package/framework/{v0.6.3 → v0.6.4}/lib/secrets/package.json +0 -0
  540. /package/framework/{v0.6.3 → v0.6.4}/lib/secrets/src/backends/env.js +0 -0
  541. /package/framework/{v0.6.3 → v0.6.4}/lib/session-store.js +0 -0
  542. /package/framework/{v0.6.3 → v0.6.4}/lib/shell.js +0 -0
  543. /package/framework/{v0.6.3 → v0.6.4}/lib/sqlite-driver.js +0 -0
  544. /package/framework/{v0.6.3 → v0.6.4}/lib/state.js +0 -0
  545. /package/framework/{v0.6.3 → v0.6.4}/lib/swig-filters/README.md +0 -0
  546. /package/framework/{v0.6.3 → v0.6.4}/lib/swig-filters/package.json +0 -0
  547. /package/framework/{v0.6.3 → v0.6.4}/lib/swig-filters/src/main.js +0 -0
  548. /package/framework/{v0.6.3 → v0.6.4}/lib/swig-resolver/package.json +0 -0
  549. /package/framework/{v0.6.3 → v0.6.4}/lib/swig-resolver/src/main.js +0 -0
  550. /package/framework/{v0.6.3 → v0.6.4}/lib/template-loaders/package.json +0 -0
  551. /package/framework/{v0.6.3 → v0.6.4}/lib/template-loaders/src/loaders/http.js +0 -0
  552. /package/framework/{v0.6.3 → v0.6.4}/lib/template-loaders/src/loaders/memory.js +0 -0
  553. /package/framework/{v0.6.3 → v0.6.4}/lib/template-loaders/src/main.js +0 -0
  554. /package/framework/{v0.6.3 → v0.6.4}/lib/url/README.md +0 -0
  555. /package/framework/{v0.6.3 → v0.6.4}/lib/url/index.js +0 -0
  556. /package/framework/{v0.6.3 → v0.6.4}/lib/url/routing.json +0 -0
  557. /package/framework/{v0.6.3 → v0.6.4}/lib/uuid/package.json +0 -0
  558. /package/framework/{v0.6.3 → v0.6.4}/lib/uuid/src/main.js +0 -0
  559. /package/framework/{v0.6.3 → v0.6.4}/lib/validator.js +0 -0
  560. /package/framework/{v0.6.3 → v0.6.4}/lib/watcher/package.json +0 -0
  561. /package/framework/{v0.6.3 → v0.6.4}/lib/watcher/src/main.js +0 -0
  562. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-framing/package.json +0 -0
  563. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-framing/src/main.js +0 -0
  564. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-query/package.json +0 -0
  565. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-query/src/main.js +0 -0
  566. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-session/package.json +0 -0
  567. /package/framework/{v0.6.3 → v0.6.4}/lib/ws-session/src/main.js +0 -0
@@ -2,8 +2,9 @@
2
2
  Usage: gina secrets:<action> [options]
3
3
 
4
4
  Introspect the ${secret:KEY} placeholders your bundle configs require.
5
- Read-only: these commands never resolve a secret, never read a value,
6
- and never write anything.
5
+ Read-only: these commands never write anything, and never print a secret
6
+ value. `check` reads the sources a bundle would resolve from, in order to
7
+ report presence — it does not resolve a placeholder.
7
8
 
8
9
  Actions:
9
10
 
@@ -34,9 +35,20 @@
34
35
  wins) so the report shows the EFFECTIVE keys
35
36
  that scope's deploy requires. Scope must be
36
37
  registered (see `gina scope:list`).
37
- --env-file=<path> (check) Validate against a `.env`-style file's
38
- vars instead of the live process.env — e.g. a
39
- decrypted SOPS export or a CI-exported env.
38
+ (check) Also supplies ${scope} when resolving a
39
+ `settings.secrets.file` path. That token alone
40
+ falls back to the project's default scope, so a
41
+ scope-templated chain resolves without the flag;
42
+ the config_<scope>/ overlay still needs it
43
+ explicitly and is never applied by default.
44
+ --env=<env> (check) Which env's block to read `homedir`
45
+ from when resolving a `settings.secrets.file`
46
+ path. Defaults to the project's default env.
47
+ --env-file=<path> (check) Stand in for the live process.env —
48
+ e.g. a decrypted SOPS export or a CI-exported
49
+ env. It occupies the ENVIRONMENT tier, which
50
+ outranks the file tier, so it still wins over
51
+ a declared `settings.secrets.file`.
40
52
 
41
53
  Examples:
42
54
 
@@ -67,5 +79,17 @@
67
79
  it cannot introspect an already-running bundle.
68
80
  - A key counts as SET only when it is a non-empty string, the same
69
81
  condition under which the bundle would start without a secret error.
82
+ - `check` looks in the same two tiers the runtime does, in the same
83
+ order: the environment first, then any file the bundle declares in
84
+ `settings.secrets.file`. The report lists that chain per bundle, marks
85
+ each layer `loaded`/`ABSENT`, and names the tier each key came from —
86
+ so a SET sourced from a plaintext file on this disk is never mistaken
87
+ for one your deployment will inject.
88
+ - `${scope}` and `${env}` inside a declared path are LAUNCH-time values:
89
+ the runtime reads NODE_SCOPE / NODE_ENV from whatever starts the
90
+ bundle, which this process cannot see. The report names the values it
91
+ assumed. If a token cannot be resolved at all, the file tier is
92
+ skipped and said so — that can only make this gate stricter than the
93
+ runtime, never laxer.
70
94
 
71
95
  Reference: https://gina.io/docs/guides/secrets
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "gina-lib-loading-state",
3
+ "version": "1.0.0",
4
+ "description": "Framework-owned loading state for submit-like triggers (data-gina-loading)",
5
+ "main": "src/main",
6
+ "license": "MIT"
7
+ }
@@ -0,0 +1,366 @@
1
+ 'use strict';
2
+ /**
3
+ * This file is part of the gina package.
4
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ /**
11
+ * @module lib/loading-state
12
+ * @description Framework-owned loading state for submit-like triggers. Works in
13
+ * Node.js (CommonJS) and browser (AMD / GFF) contexts.
14
+ *
15
+ * A submit-like trigger — `<button type="submit">`, `<input type="submit">` or an
16
+ * `<a data-gina-form-submit>` — carries `data-gina-loading="true"` for exactly as
17
+ * long as the action it started is running, and `"false"` once that action
18
+ * completes OR is interrupted. Consumers style the running state with CSS.
19
+ *
20
+ * The module owns three things and no more: resolving the configured attribute
21
+ * NAME, writing the two values, and walking a click target up to the trigger that
22
+ * actually owns it. It holds NO state — the caller decides which element is armed
23
+ * and where to remember it, so the validator, popin and link plugins can share one
24
+ * implementation without sharing a registry.
25
+ *
26
+ * ## The `"false"` value is deliberate, and it constrains readers
27
+ *
28
+ * `disarm()` writes the STRING `"false"`; it does not remove the attribute. That
29
+ * diverges on purpose from the form-scoped `data-gina-form-loading`, which #B175
30
+ * changed from `setAttribute(..., false)` to `removeAttribute()` precisely because
31
+ * `"false"` is attribute-PRESENT and therefore truthy for a presence check.
32
+ *
33
+ * The consequence is a hard rule for every reader, in the framework and in
34
+ * consumer CSS alike: **match on the VALUE, never on presence**. Use
35
+ * `[data-gina-loading="true"]`, never a bare `[data-gina-loading]`, and in JS use
36
+ * {@link module:lib/loading-state~isArmed} rather than reading the attribute
37
+ * directly. A bare presence selector matches a disarmed trigger and pins the
38
+ * loading style on forever.
39
+ *
40
+ * ## Configuring the attribute name
41
+ *
42
+ * The name is read from `gina.config.loadingAttribute`, lazily, at every call —
43
+ * `gina.config` is populated after the bundle loads (via `setOptions`), so a value
44
+ * captured at module-definition time would be stale. A project already built on
45
+ * `data-loading` opts in with:
46
+ *
47
+ * ```html
48
+ * <script src="/js/vendor/gina/gina.min.js"
49
+ * data-gina-config="{ loadingAttribute: 'data-loading' }"></script>
50
+ * ```
51
+ *
52
+ * or `gina.setOptions({ loadingAttribute: 'data-loading' })`. There is no
53
+ * auto-detection: a DOM probe reads nothing at rest (the attribute only exists
54
+ * while something is loading) and a stylesheet probe races late-loaded sheets and
55
+ * throws on cross-origin ones. Configuration is explicit by design.
56
+ *
57
+ * @example
58
+ * var loadingState = require('lib/loading-state');
59
+ *
60
+ * var $trigger = loadingState.resolveTrigger(event.target, $form);
61
+ * loadingState.arm($trigger); // data-gina-loading="true"
62
+ * // ... the action runs, then settles, errors, times out or is rejected ...
63
+ * loadingState.disarm($trigger); // data-gina-loading="false"
64
+ */
65
+
66
+ /**
67
+ * Loading-state factory — returns the stateless API object.
68
+ * Exported as the module itself via `module.exports = LoadingState()`.
69
+ *
70
+ * @function LoadingState
71
+ * @returns {object} The `{ arm, disarm, isArmed, getAttributeName, resolveTrigger, DEFAULT_ATTRIBUTE }` API
72
+ *
73
+ * @memberof module:lib
74
+ * @author Rhinostone <contact@gina.io>
75
+ * @api Public
76
+ */
77
+ function LoadingState() {
78
+
79
+ /**
80
+ * The attribute written when no `gina.config.loadingAttribute` override is set.
81
+ *
82
+ * @constant {string}
83
+ * @inner
84
+ */
85
+ var DEFAULT_ATTRIBUTE = 'data-gina-loading';
86
+
87
+ /**
88
+ * The value written by `arm()`.
89
+ *
90
+ * @constant {string}
91
+ * @inner
92
+ */
93
+ var ARMED = 'true';
94
+
95
+ /**
96
+ * The value written by `disarm()`. NOT `removeAttribute` — see the module
97
+ * description for why, and for the presence-check rule it imposes on readers.
98
+ *
99
+ * @constant {string}
100
+ * @inner
101
+ */
102
+ var DISARMED = 'false';
103
+
104
+ /**
105
+ * How many ancestors `resolveTrigger()` will climb before giving up. A submit
106
+ * trigger is a direct child of its form in every realistic markup, so this is a
107
+ * runaway guard rather than a real limit — a detached or cyclic node can not
108
+ * spin the loop.
109
+ *
110
+ * @constant {number}
111
+ * @inner
112
+ */
113
+ var MAX_DEPTH = 10;
114
+
115
+ /**
116
+ * isNode
117
+ *
118
+ * True when `$el` can carry attributes. Guards every public entry point so a
119
+ * `null`, a text node, a `window` or a plain object is a silent no-op rather
120
+ * than a thrown TypeError inside an event handler.
121
+ *
122
+ * @param {object} $el - candidate element
123
+ *
124
+ * @returns {boolean} true when `$el` exposes the attribute API
125
+ *
126
+ * @example
127
+ * isNode(document.querySelector('button')); // true
128
+ * isNode(null); // false
129
+ *
130
+ * @inner
131
+ */
132
+ var isNode = function($el) {
133
+ return !!(
134
+ $el
135
+ && typeof($el.setAttribute) == 'function'
136
+ && typeof($el.getAttribute) == 'function'
137
+ );
138
+ };
139
+
140
+ /**
141
+ * isSubmitTrigger
142
+ *
143
+ * True when `$el` is an element a user submits a form WITH. Mirrors the shapes
144
+ * the validator's click proxy already recognises: a `button`/`input` whose type
145
+ * is `submit`, or an anchor carrying `data-gina-form-submit`.
146
+ *
147
+ * @param {object} $el - candidate element
148
+ *
149
+ * @returns {boolean} true when `$el` is a submit-like trigger
150
+ *
151
+ * @example
152
+ * isSubmitTrigger($button); // true for <button type="submit">
153
+ * isSubmitTrigger($span); // false
154
+ *
155
+ * @inner
156
+ */
157
+ var isSubmitTrigger = function($el) {
158
+ if ( !isNode($el) || !$el.tagName ) {
159
+ return false;
160
+ }
161
+ if ( /^(button|input)$/i.test($el.tagName) && /^submit$/i.test($el.type || '') ) {
162
+ return true;
163
+ }
164
+ if ( /^a$/i.test($el.tagName) && $el.getAttribute('data-gina-form-submit') != null ) {
165
+ return true;
166
+ }
167
+ return false;
168
+ };
169
+
170
+ /**
171
+ * getAttributeName
172
+ *
173
+ * Resolves the attribute name to write. Reads `gina.config.loadingAttribute`
174
+ * LAZILY on every call: `gina.config` is populated after the bundle loads, so a
175
+ * value captured once at definition time would always be the default. Falls
176
+ * back to `data-gina-loading` when unset, empty or not a string.
177
+ *
178
+ * @returns {string} the configured attribute name, or `data-gina-loading`
179
+ *
180
+ * @example
181
+ * getAttributeName(); // 'data-gina-loading'
182
+ * gina.setOptions({ loadingAttribute: 'data-loading' });
183
+ * getAttributeName(); // 'data-loading'
184
+ *
185
+ * @api Public
186
+ */
187
+ var getAttributeName = function() {
188
+ if (
189
+ typeof(gina) != 'undefined' && gina && gina.config
190
+ && typeof(gina.config.loadingAttribute) == 'string'
191
+ && gina.config.loadingAttribute !== ''
192
+ ) {
193
+ return gina.config.loadingAttribute;
194
+ }
195
+ return DEFAULT_ATTRIBUTE;
196
+ };
197
+
198
+ /**
199
+ * arm
200
+ *
201
+ * Marks `$el` as running by writing `<attribute>="true"`. Idempotent — arming an
202
+ * already-armed trigger rewrites the same value. A non-element is a no-op.
203
+ *
204
+ * @param {object} $el - the trigger to mark (see `resolveTrigger`)
205
+ *
206
+ * @returns {boolean} true when the attribute was written
207
+ *
208
+ * @example
209
+ * arm($button); // $button now carries data-gina-loading="true"
210
+ *
211
+ * @api Public
212
+ */
213
+ var arm = function($el) {
214
+ if ( !isNode($el) ) {
215
+ return false;
216
+ }
217
+ $el.setAttribute(getAttributeName(), ARMED);
218
+ return true;
219
+ };
220
+
221
+ /**
222
+ * disarm
223
+ *
224
+ * Releases `$el` by writing `<attribute>="false"`. Called on EVERY terminal
225
+ * outcome — settled, errored, timed out, aborted, rate-limited and
226
+ * validation-rejected — so a trigger can not stay visually loading after its
227
+ * action stopped. Idempotent; a non-element is a no-op.
228
+ *
229
+ * Writes `"false"` rather than removing the attribute; see the module
230
+ * description for the reasoning and the presence-check rule it imposes.
231
+ *
232
+ * @param {object} $el - the trigger to release
233
+ *
234
+ * @returns {boolean} true when the attribute was written
235
+ *
236
+ * @example
237
+ * disarm($button); // $button now carries data-gina-loading="false"
238
+ *
239
+ * @api Public
240
+ */
241
+ var disarm = function($el) {
242
+ if ( !isNode($el) ) {
243
+ return false;
244
+ }
245
+ $el.setAttribute(getAttributeName(), DISARMED);
246
+ return true;
247
+ };
248
+
249
+ /**
250
+ * isArmed
251
+ *
252
+ * True only when `$el` is currently marked as running. Compares the VALUE
253
+ * against `"true"` — never tests presence, because a disarmed trigger still
254
+ * carries the attribute with `"false"`. Use this instead of reading the
255
+ * attribute directly.
256
+ *
257
+ * @param {object} $el - the trigger to inspect
258
+ *
259
+ * @returns {boolean} true when `$el` carries `<attribute>="true"`
260
+ *
261
+ * @example
262
+ * arm($button); isArmed($button); // true
263
+ * disarm($button); isArmed($button); // false — attribute present, value "false"
264
+ *
265
+ * @api Public
266
+ */
267
+ var isArmed = function($el) {
268
+ if ( !isNode($el) ) {
269
+ return false;
270
+ }
271
+ return $el.getAttribute(getAttributeName()) === ARMED;
272
+ };
273
+
274
+ /**
275
+ * resolveTrigger
276
+ *
277
+ * Walks `$el` up to the submit trigger that owns it, so the state lands on the
278
+ * control the user perceives as the button rather than on whatever inner node
279
+ * happened to receive the click. `<button type="submit"><span>Save</span></button>`
280
+ * clicked on the label yields the `button`, not the `span`.
281
+ *
282
+ * Returns `$el` itself when no submit-like ancestor is found, so a caller that
283
+ * already knows it is handling a submit still gets a usable element. Stops at
284
+ * the boundary element (typically the form), at `form`/`body`/`html`, or after
285
+ * `MAX_DEPTH` hops.
286
+ *
287
+ * ## Recognising a non-submit trigger (`isTrigger`)
288
+ *
289
+ * The default predicate recognises submit-like controls only — a `button` or
290
+ * `input` of type `submit`, or an `a[data-gina-form-submit]`. That is what the
291
+ * validator needs and nothing else. Other plugins arm elements this module has
292
+ * no business knowing about: link arms `a[data-gina-link]`, popin arms
293
+ * `a[data-gina-dialog]`. Pass `isTrigger` to say what counts as YOUR trigger.
294
+ *
295
+ * Without it the climb finds no match, breaks at `form`/`body`/`html`, and
296
+ * returns the ORIGINAL `$el` — so a click on the `<span>` inside
297
+ * `<a data-gina-link><span>Go</span></a>` would arm the span and leave the
298
+ * anchor unstyled.
299
+ *
300
+ * The predicate lives with the caller deliberately rather than being folded
301
+ * into the default: this module owns the WALK, each plugin owns its own notion
302
+ * of a trigger. Folding plugin attribute names in here would also couple the
303
+ * module to the popin deprecation/alias work, which changes which attributes
304
+ * are honoured over time.
305
+ *
306
+ * @param {object} $el - the clicked element (`event.target`)
307
+ * @param {object} [$boundary] - element to stop at, usually the `<form>`
308
+ * @param {function} [isTrigger] - `($node) => boolean`; defaults to the
309
+ * submit-like predicate. Ignored when not a function. A predicate that
310
+ * THROWS is deliberately not caught: every caller is framework code, so
311
+ * swallowing would hide a framework bug behind a silently unarmed trigger.
312
+ *
313
+ * @returns {object} the owning trigger, or `$el`, or `null` when `$el` is not an element
314
+ *
315
+ * @example
316
+ * // <button type="submit"><span>Save</span></button>
317
+ * resolveTrigger(event.target, $form); // the <button>, even when the <span> was clicked
318
+ *
319
+ * @example
320
+ * // <a data-gina-link><span>Go</span></a> — the span was clicked
321
+ * resolveTrigger(event.target, null, function($n) {
322
+ * return /^a$/i.test($n.tagName) && $n.getAttribute('data-gina-link') != null;
323
+ * }); // the <a>, not the <span>
324
+ *
325
+ * @api Public
326
+ */
327
+ var resolveTrigger = function($el, $boundary, isTrigger) {
328
+ if ( !isNode($el) ) {
329
+ return null;
330
+ }
331
+ var matches = ( typeof(isTrigger) == 'function' ) ? isTrigger : isSubmitTrigger;
332
+ var $node = $el;
333
+ var depth = 0;
334
+ while ( isNode($node) && depth < MAX_DEPTH ) {
335
+ if ( matches($node) ) {
336
+ return $node;
337
+ }
338
+ if ( $boundary && $node === $boundary ) {
339
+ break;
340
+ }
341
+ if ( $node.tagName && /^(form|body|html)$/i.test($node.tagName) ) {
342
+ break;
343
+ }
344
+ $node = $node.parentNode;
345
+ ++depth;
346
+ }
347
+ return $el;
348
+ };
349
+
350
+ return {
351
+ 'DEFAULT_ATTRIBUTE' : DEFAULT_ATTRIBUTE,
352
+ 'getAttributeName' : getAttributeName,
353
+ 'arm' : arm,
354
+ 'disarm' : disarm,
355
+ 'isArmed' : isArmed,
356
+ 'resolveTrigger' : resolveTrigger
357
+ };
358
+ }
359
+
360
+ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
361
+ // Publish as node.js module
362
+ module.exports = LoadingState()
363
+ } else if ( typeof(define) === 'function' && define.amd) {
364
+ // Publish as AMD module
365
+ define('lib/loading-state', function() { return LoadingState() })
366
+ }
@@ -174,6 +174,29 @@ function MQListener(opt, cb) {
174
174
  conn.sessionId = uuid();
175
175
  // conn.request = 'report'; // by default
176
176
  sessions[conn.sessionId] = conn;
177
+
178
+ // #B279 — a speaker that goes away abruptly (a CLI that finished or
179
+ // was killed) leaves this connection socket registered but broken.
180
+ // The next write to it — the handshake below, or `self.report()`'s
181
+ // `sessions[sessionId].write()` — then raises EPIPE/ECONNRESET on the
182
+ // socket, and with no 'error' listener node THROWS it: the whole
183
+ // process dies. That is not theoretical — it is how a `bundle:add`
184
+ // died mid-command on CI, before writing ports.reverse.json, because
185
+ // every `bin/cli` invocation starts this listener on the shared MQ
186
+ // port and parallel test files speak to each other's listener.
187
+ // `server.on('error')` below does NOT cover this: every accepted
188
+ // connection is its own EventEmitter.
189
+ // A departed client is normal TCP lifecycle rather than a listener
190
+ // fault (`lib/proc.js` reaches the same conclusion for the server
191
+ // socket), so drop the session and carry on. Dropping matters: an
192
+ // abruptly-killed peer may never emit 'end', which is what otherwise
193
+ // clears `sessions` — leaving a dead socket for the next write.
194
+ // Registered BEFORE the handshake write, which is itself a site.
195
+ conn.on('error', function(err) {
196
+ delete sessions[this.sessionId];
197
+ console.debug('[MQListener] (error) speaker `'+ this.sessionId +'` dropped: '+ (err.code || err.message));
198
+ });
199
+
177
200
  conn.write(JSON.stringify({ sessionId: conn.sessionId }) +'\r\n' );
178
201
 
179
202
  //feedback.
@@ -82,6 +82,24 @@ function MQSpeaker(opt, loggers, cb) {
82
82
  }
83
83
 
84
84
 
85
+ /**
86
+ * Opens the speaker's connection to the MQ listener.
87
+ *
88
+ * The socket is `unref`'d: a logging transport must never be the reason a
89
+ * process stays alive. Processes that legitimately run long hold the event
90
+ * loop open by their own means — a bundle keeps it alive with its HTTP
91
+ * server (`core/server.js` owns the single `listen()` call for both
92
+ * engines) — so unref'ing costs them nothing while it stops the speaker
93
+ * from outliving its host.
94
+ *
95
+ * @inner
96
+ * @param {object} opt - Logger options; `mqPort`/`hostV4`/`bindHost` are read here.
97
+ * @param {function} [cb] - Called `(false, client)` on connect, `(err)` on error.
98
+ * @returns {object} The connected (unref'd) net.Socket.
99
+ *
100
+ * @example
101
+ * startMQSpeaker({ mqPort: 8125, hostV4: '127.0.0.1' }, function (err, client) { });
102
+ */
85
103
  function startMQSpeaker(opt, cb) {
86
104
  var port = opt.mqPort || 8125;// jshint ignore:line
87
105
  // #B160 — the MQ listener binds `bind_host` (loopback by default):
@@ -103,6 +121,15 @@ function MQSpeaker(opt, loggers, cb) {
103
121
  cb(false, client)
104
122
  }
105
123
  });
124
+ // #B276 — the logger is a load-time singleton (`lib/index.js` requires it
125
+ // eagerly, `main.js` invokes `Logger()` at module scope), so this socket is
126
+ // opened by the mere act of requiring the framework — including on a boot
127
+ // that is about to throw for want of a bundle context. Without unref, that
128
+ // documented throw becomes unrecoverable: the caller catches the error and
129
+ // the process still cannot exit, because the socket keeps the loop alive.
130
+ // Only bites when something is actually listening on the MQ port; with
131
+ // nothing there the connection is refused and the handle closes itself.
132
+ client.unref();
106
133
  client.on('error', (data) => {
107
134
  var err = data.toString();
108
135
  if (cb) {
@@ -0,0 +1,180 @@
1
+ 'use strict';
2
+ /**
3
+ * @module lib/secrets/backends/file
4
+ * @description Backend that layers one or more `.env`-style files *underneath*
5
+ * the environment.
6
+ *
7
+ * **A NON-EMPTY environment value always wins.** A value present in
8
+ * `process.gina` / `process.env` is returned even when a file also defines the
9
+ * key. That ordering is deliberate and is the opposite of what `.env`-file
10
+ * tooling usually does: every production mechanism for delivering a secret to a
11
+ * gina bundle — a Kubernetes `envFrom: secretRef`, an ECS task-definition secret,
12
+ * `sops exec-env`, a CI-exported variable — arrives through the environment.
13
+ * If a file won, a stale plaintext file baked into an image would silently
14
+ * shadow the secret the platform injected, and the bundle would run with the
15
+ * wrong credential while looking perfectly healthy. Making the file the
16
+ * *fallback* means it can only ever fill a gap, never override a deployment.
17
+ *
18
+ * **The "non-empty" qualifier is load-bearing, and deliberately NOT a refusal**
19
+ * (#B268). A variable that is SET but EMPTY is treated as absent, so the file
20
+ * tier fills it. That is what makes the common local shape work: Docker Compose
21
+ * `environment: ["X=${X}"]` with the outer `X` unset puts an empty-but-SET `X`
22
+ * into the container (measured), and refusing there would break setups that are
23
+ * working today. But the same shape also arises when an entrypoint's
24
+ * `export X="$(fetch …)"` FAILS — and there the file silently supplying a stale
25
+ * value is exactly the shadowing this ordering exists to prevent. Since the two
26
+ * are indistinguishable from inside the process, the file tier does not guess:
27
+ * it fills the gap and WARNS (see `resolve`), so the dangerous case is visible
28
+ * without the benign one becoming fatal.
29
+ *
30
+ * Files are layered in declaration order, later entries winning, so a caller
31
+ * can express `["<base>", "<per-scope>"]` and have the scope-specific file
32
+ * override shared defaults. A file that does not exist contributes nothing and
33
+ * is not an error — a project may legitimately ship a base file and add the
34
+ * per-scope one only on some targets. A file that EXISTS but cannot be read is
35
+ * a different matter and is fatal (#B267): silently skipping it would drop that
36
+ * chain onto the shared base file, i.e. run the bundle on the wrong credential
37
+ * with no signal at all.
38
+ *
39
+ * This backend does NOT decrypt. Pointing it at an encrypted file yields
40
+ * ciphertext, silently. For SOPS / Vault / KMS, keep decrypting at the
41
+ * container entrypoint so the values land in the environment, which this
42
+ * backend already prefers.
43
+ */
44
+
45
+ var envBackend = require('./env');
46
+ var envFile = require('../env-file');
47
+
48
+ /**
49
+ * Is `key` present in one of the environment tiers but carrying an EMPTY value?
50
+ *
51
+ * The env backend cannot answer this: it treats empty as unset by contract and
52
+ * throws either way, so a caller that catches its throw knows only "not usable",
53
+ * never "not there". This reads the raw slots to recover the distinction — used
54
+ * solely to decide whether falling back to the file tier deserves a warning
55
+ * (#B268), never to change which value is returned.
56
+ *
57
+ * Both tiers are checked because `getEnvVar()` itself rejects `''`
58
+ * (`utils/helper.js` guards on `process.gina[key] != ''`), so an empty value in
59
+ * the framework environment is invisible through the normal accessor.
60
+ *
61
+ * @inner
62
+ * @private
63
+ * @param {string} key - Placeholder key, e.g. `'DB_PASSWORD'`
64
+ * @returns {boolean} `true` only when a tier holds `key` as an empty string
65
+ */
66
+ function isEnvPresentButEmpty(key) {
67
+ if (
68
+ typeof process.gina === 'object' && process.gina !== null &&
69
+ typeof process.gina[key] === 'string' && process.gina[key] === ''
70
+ ) {
71
+ return true;
72
+ }
73
+ return (typeof process.env[key] === 'string' && process.env[key] === '');
74
+ }
75
+
76
+ /**
77
+ * Build a backend that reads the environment first and the given files second.
78
+ *
79
+ * @memberof module:lib/secrets/backends/file
80
+ * @function build
81
+ * @param {string[]} paths - Absolute, already-substituted file paths, lowest precedence first
82
+ * @returns {{resolve: function(string): string}} A backend honouring the `lib/secrets` contract
83
+ * @throws {Error} When a declared path EXISTS but cannot be read (`EACCES`, `EISDIR`, …).
84
+ * A genuinely absent path (`ENOENT`) is not an error and contributes nothing (#B267).
85
+ *
86
+ * @example
87
+ * var backend = build(['/home/u/.myproject/secrets.env',
88
+ * '/home/u/.myproject/production/secrets.env']);
89
+ * backend.resolve('DB_PASSWORD');
90
+ * // non-empty env value if set; else the production file's; else the base file's;
91
+ * // else throws Error('Secret resolution failed')
92
+ *
93
+ * @example
94
+ * // An unreadable layer refuses at BUILD time rather than degrading silently:
95
+ * // chmod 000 /home/u/.myproject/production/secrets.env
96
+ * build(['/home/u/.myproject/secrets.env',
97
+ * '/home/u/.myproject/production/secrets.env']);
98
+ * // → throws '`settings.secrets.file` names a file that exists but cannot be read: … (EACCES)'
99
+ */
100
+ function build(paths) {
101
+ // Layer eagerly, once per config-load cycle, rather than statting on every
102
+ // key: resolution walks the whole config and would otherwise re-read the
103
+ // same files for each placeholder.
104
+ var merged = Object.create(null);
105
+ for (var i = 0; i < paths.length; i++) {
106
+ var res = envFile.readEnvFile(paths[i]);
107
+
108
+ // #B267 — a path that EXISTS but cannot be read is an operator error, not
109
+ // an absent layer. Skipping it silently drops a `["<base>", "<per-scope>"]`
110
+ // chain onto the base file, so the bundle boots healthily on the SHARED
111
+ // credential. Refuse instead: the caller (core/config.js::loadBundleConfig)
112
+ // reports this as a config error and the boot stops with the path named.
113
+ if (!res.found && res.code !== 'ENOENT') {
114
+ throw new Error('`settings.secrets.file` names a file that exists but cannot be read: '
115
+ + paths[i] + ' (' + res.code + ')');
116
+ }
117
+
118
+ // Name each layer and whether it was found. A misresolved path is
119
+ // otherwise indistinguishable from a file that simply lacks the key:
120
+ // both surface as the same fail-closed error, several frames away.
121
+ try {
122
+ console.debug('[secrets][file] ' + (res.found ? 'loaded ' : 'ABSENT ')
123
+ + paths[i] + (res.found ? ' (' + Object.keys(res.map).length + ' keys)' : ''));
124
+ } catch (noLogger) { /* logger not up yet — diagnostics are best-effort */ }
125
+ if (!res.found) continue; // absent file: contributes nothing, not an error
126
+ for (var key in res.map) {
127
+ merged[key] = res.map[key]; // later path wins
128
+ }
129
+ }
130
+
131
+ return {
132
+ resolve: function (key) {
133
+ // Environment tiers first — delegate to the env backend rather than
134
+ // re-implementing its two-tier `getEnvVar` -> `process.env` read
135
+ // (#B156), so the two can never disagree about what "set" means.
136
+ // It throws on miss, which here means "not in the environment".
137
+ try {
138
+ return envBackend.resolve(key);
139
+ } catch (notInEnv) {
140
+ // fall through to the file layer
141
+ }
142
+
143
+ var value = merged[key];
144
+ if (typeof value === 'string' && value !== '') {
145
+ // #B268 — the env backend reports "set but empty" and "absent"
146
+ // identically, so reaching here does not say which happened. When
147
+ // it was the former, the file is about to override a value the
148
+ // environment DID carry, which is the one case this ordering is
149
+ // meant to make impossible. Warn (never fatal — see the module
150
+ // header for why refusing would break Compose-style passthrough),
151
+ // at `warn` so it survives the default `info` log hierarchy, and
152
+ // name only the KEY: the message reaches user-facing surfaces.
153
+ if (isEnvPresentButEmpty(key)) {
154
+ try {
155
+ console.warn('[secrets][file] `' + key + '` is present but EMPTY in the'
156
+ + ' environment; falling back to the file tier. If the environment was'
157
+ + ' meant to supply it, whatever exports it produced an empty value.');
158
+ } catch (noLogger) { /* logger not up yet — diagnostics are best-effort */ }
159
+ }
160
+ return value;
161
+ }
162
+
163
+ // Same failure shape as the env backend: the message never names
164
+ // the key (it reaches user-facing surfaces), while the key rides
165
+ // on a non-enumerable property for debug logging.
166
+ var err = new Error('Secret resolution failed');
167
+ Object.defineProperty(err, '_ginaSecretKey', {
168
+ value: key,
169
+ enumerable: false,
170
+ configurable: true,
171
+ writable: true
172
+ });
173
+ throw err;
174
+ }
175
+ };
176
+ }
177
+
178
+ module.exports = {
179
+ build: build
180
+ };