gina 0.5.26 → 0.6.0

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 (560) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +34 -22
  3. package/ROADMAP.md +43 -16
  4. package/bin/cli +12 -1
  5. package/bin/gina-init +15 -1
  6. package/framework/v0.6.0/VERSION +1 -0
  7. package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/js/gina.js +36 -1
  8. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js +601 -0
  9. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  10. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  11. package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/session-store.v3.js +52 -84
  12. package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/session-store.v4.js +58 -84
  13. package/framework/{v0.5.26 → v0.6.0}/core/connectors/mongodb/lib/session-store.js +5 -2
  14. package/framework/{v0.5.26 → v0.6.0}/core/connectors/redis/lib/session-store.js +5 -2
  15. package/framework/{v0.5.26 → v0.6.0}/core/connectors/scylladb/lib/session-store.js +5 -2
  16. package/framework/{v0.5.26 → v0.6.0}/core/connectors/sqlite/lib/session-store.js +17 -3
  17. package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/session/src/main.js +142 -9
  18. package/framework/{v0.5.26 → v0.6.0}/core/router.js +101 -11
  19. package/framework/{v0.5.26 → v0.6.0}/core/server.js +91 -1
  20. package/framework/{v0.5.26 → v0.6.0}/core/template/conf/settings.json +3 -0
  21. package/framework/v0.6.0/lib/audit/src/main.js +916 -0
  22. package/framework/v0.6.0/lib/authn/package.json +7 -0
  23. package/framework/v0.6.0/lib/authn/src/lockout.js +615 -0
  24. package/framework/v0.6.0/lib/authn/src/main.js +899 -0
  25. package/framework/v0.6.0/lib/authn/src/totp.js +418 -0
  26. package/framework/v0.6.0/lib/cmd/audit/arguments.json +5 -0
  27. package/framework/v0.6.0/lib/cmd/audit/help.txt +50 -0
  28. package/framework/v0.6.0/lib/cmd/audit/verify.js +294 -0
  29. package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/init.js +11 -0
  30. package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/tail.js +5 -1
  31. package/framework/{v0.5.26 → v0.6.0}/lib/cmd/gina.1.md +1 -0
  32. package/framework/{v0.5.26 → v0.6.0}/lib/index.js +13 -0
  33. package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/file/index.js +11 -1
  34. package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/mq/speaker.js +8 -1
  35. package/framework/v0.6.0/lib/net-locality/package.json +17 -0
  36. package/framework/v0.6.0/lib/net-locality/src/main.js +174 -0
  37. package/framework/{v0.5.26 → v0.6.0}/lib/nunjucks-filters/src/main.js +13 -0
  38. package/framework/{v0.5.26 → v0.6.0}/lib/routing/src/main.js +36 -1
  39. package/framework/{v0.5.26 → v0.6.0}/lib/swig-filters/src/main.js +13 -0
  40. package/framework/{v0.5.26 → v0.6.0}/package.json +1 -1
  41. package/gna.js +4 -4
  42. package/llms.txt +19 -2
  43. package/package.json +3 -3
  44. package/schema/connectors.json +2 -3
  45. package/schema/settings.json +101 -0
  46. package/types/index.d.ts +4 -0
  47. package/framework/v0.5.26/VERSION +0 -1
  48. package/framework/v0.5.26/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -599
  49. package/framework/v0.5.26/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  50. package/framework/v0.5.26/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  51. package/framework/v0.5.26/lib/audit/src/main.js +0 -456
  52. /package/framework/{v0.5.26 → v0.6.0}/AUTHORS +0 -0
  53. /package/framework/{v0.5.26 → v0.6.0}/LICENSE +0 -0
  54. /package/framework/{v0.5.26 → v0.6.0}/core/asset/html/nolayout.html +0 -0
  55. /package/framework/{v0.5.26 → v0.6.0}/core/asset/html/static.html +0 -0
  56. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/android-chrome-192x192.png +0 -0
  57. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/android-chrome-512x512.png +0 -0
  58. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/apple-touch-icon.png +0 -0
  59. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/favicon-16x16.png +0 -0
  60. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/favicon-32x32.png +0 -0
  61. /package/framework/{v0.5.26 → v0.6.0}/core/asset/img/favicon.ico +0 -0
  62. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/README.md +0 -0
  63. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  64. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  65. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  66. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  67. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  68. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  69. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  70. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  71. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  72. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  73. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  74. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  75. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  76. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  77. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  78. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  79. /package/framework/{v0.5.26 → v0.6.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  80. /package/framework/{v0.5.26 → v0.6.0}/core/config.js +0 -0
  81. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/ai/index.js +0 -0
  82. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/ai/lib/connector.js +0 -0
  83. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/index.js +0 -0
  84. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/connector.js +0 -0
  85. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  86. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  87. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/n1ql.js +0 -0
  88. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/couchbase/lib/session-store.js +0 -0
  89. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mongodb/index.js +0 -0
  90. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mongodb/lib/connector.js +0 -0
  91. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mongodb/lib/job-store.js +0 -0
  92. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  93. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mysql/index.js +0 -0
  94. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/mysql/lib/connector.js +0 -0
  95. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/postgresql/index.js +0 -0
  96. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/postgresql/lib/connector.js +0 -0
  97. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/redis/index.js +0 -0
  98. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/redis/lib/connector.js +0 -0
  99. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/redis/lib/job-store.js +0 -0
  100. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/redis/lib/render-cache-store.js +0 -0
  101. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/scylladb/index.js +0 -0
  102. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/scylladb/lib/connector.js +0 -0
  103. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/sql-parser.js +0 -0
  104. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/sqlite/index.js +0 -0
  105. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/sqlite/lib/connector.js +0 -0
  106. /package/framework/{v0.5.26 → v0.6.0}/core/connectors/sqlite/lib/job-store.js +0 -0
  107. /package/framework/{v0.5.26 → v0.6.0}/core/content.encoding +0 -0
  108. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.framework.js +0 -0
  109. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.js +0 -0
  110. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-json.js +0 -0
  111. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-nunjucks-async.js +0 -0
  112. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-nunjucks.js +0 -0
  113. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-stream.js +0 -0
  114. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-swig-async.js +0 -0
  115. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-swig.js +0 -0
  116. /package/framework/{v0.5.26 → v0.6.0}/core/controller/controller.render-v1.js +0 -0
  117. /package/framework/{v0.5.26 → v0.6.0}/core/controller/index.js +0 -0
  118. /package/framework/{v0.5.26 → v0.6.0}/core/controller/inspector-window-emit.js +0 -0
  119. /package/framework/{v0.5.26 → v0.6.0}/core/controller/release-banner.js +0 -0
  120. /package/framework/{v0.5.26 → v0.6.0}/core/dev/index.js +0 -0
  121. /package/framework/{v0.5.26 → v0.6.0}/core/dev/lib/class.js +0 -0
  122. /package/framework/{v0.5.26 → v0.6.0}/core/dev/lib/factory.js +0 -0
  123. /package/framework/{v0.5.26 → v0.6.0}/core/dev/lib/tools.js +0 -0
  124. /package/framework/{v0.5.26 → v0.6.0}/core/gna.js +0 -0
  125. /package/framework/{v0.5.26 → v0.6.0}/core/locales/README.md +0 -0
  126. /package/framework/{v0.5.26 → v0.6.0}/core/locales/currency.json +0 -0
  127. /package/framework/{v0.5.26 → v0.6.0}/core/locales/dist/language/en.json +0 -0
  128. /package/framework/{v0.5.26 → v0.6.0}/core/locales/dist/language/fr.json +0 -0
  129. /package/framework/{v0.5.26 → v0.6.0}/core/locales/dist/region/en.json +0 -0
  130. /package/framework/{v0.5.26 → v0.6.0}/core/locales/dist/region/fr.json +0 -0
  131. /package/framework/{v0.5.26 → v0.6.0}/core/locales/index.js +0 -0
  132. /package/framework/{v0.5.26 → v0.6.0}/core/mime.types +0 -0
  133. /package/framework/{v0.5.26 → v0.6.0}/core/model/entity.js +0 -0
  134. /package/framework/{v0.5.26 → v0.6.0}/core/model/index.js +0 -0
  135. /package/framework/{v0.5.26 → v0.6.0}/core/model/template/entityFactory.js +0 -0
  136. /package/framework/{v0.5.26 → v0.6.0}/core/model/template/index.js +0 -0
  137. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/README.md +0 -0
  138. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/index.js +0 -0
  139. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/csrf/README.md +0 -0
  140. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/csrf/package.json +0 -0
  141. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/csrf/src/main.js +0 -0
  142. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/README.md +0 -0
  143. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coep/README.md +0 -0
  144. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coep/package.json +0 -0
  145. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  146. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coop/README.md +0 -0
  147. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coop/package.json +0 -0
  148. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  149. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/corp/README.md +0 -0
  150. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/corp/package.json +0 -0
  151. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  152. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/csp/README.md +0 -0
  153. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/csp/package.json +0 -0
  154. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  155. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  156. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  157. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  158. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  159. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  160. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  161. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  162. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  163. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  164. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/package.json +0 -0
  165. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  166. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  167. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  168. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/src/main.js +0 -0
  169. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  170. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  171. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  172. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  173. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  174. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  175. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  176. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  177. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  178. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  179. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  180. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  181. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  182. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  183. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  184. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  185. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  186. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  187. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/session/README.md +0 -0
  188. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/session/package.json +0 -0
  189. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/storage/README.md +0 -0
  190. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/storage/build.json +0 -0
  191. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/storage/package.json +0 -0
  192. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/storage/src/main.js +0 -0
  193. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/validator/README.md +0 -0
  194. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/validator/build.json +0 -0
  195. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/validator/package.json +0 -0
  196. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/validator/src/form-validator.js +0 -0
  197. /package/framework/{v0.5.26 → v0.6.0}/core/plugins/lib/validator/src/main.js +0 -0
  198. /package/framework/{v0.5.26 → v0.6.0}/core/server.express.js +0 -0
  199. /package/framework/{v0.5.26 → v0.6.0}/core/server.isaac.js +0 -0
  200. /package/framework/{v0.5.26 → v0.6.0}/core/status.codes +0 -0
  201. /package/framework/{v0.5.26 → v0.6.0}/core/template/_gitignore +0 -0
  202. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/app.json +0 -0
  203. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  204. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/routing.json +0 -0
  205. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/settings.json +0 -0
  206. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  207. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/templates.json +0 -0
  208. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  209. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  210. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  211. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  212. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/index.js +0 -0
  213. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle/locales/en.json +0 -0
  214. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  215. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  216. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  217. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  218. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  219. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  220. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  221. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  222. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/readme.md +0 -0
  223. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_public/sw.js +0 -0
  224. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  225. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  226. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  227. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  228. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  229. /package/framework/{v0.5.26 → v0.6.0}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  230. /package/framework/{v0.5.26 → v0.6.0}/core/template/command/gina.bat.tpl +0 -0
  231. /package/framework/{v0.5.26 → v0.6.0}/core/template/command/gina.tpl +0 -0
  232. /package/framework/{v0.5.26 → v0.6.0}/core/template/conf/env.json +0 -0
  233. /package/framework/{v0.5.26 → v0.6.0}/core/template/conf/manifest.json +0 -0
  234. /package/framework/{v0.5.26 → v0.6.0}/core/template/conf/package.json +0 -0
  235. /package/framework/{v0.5.26 → v0.6.0}/core/template/conf/statics.json +0 -0
  236. /package/framework/{v0.5.26 → v0.6.0}/core/template/conf/templates.json +0 -0
  237. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/client/json/401.json +0 -0
  238. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/client/json/403.json +0 -0
  239. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/client/json/404.json +0 -0
  240. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/server/html/50x.html +0 -0
  241. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/server/json/500.json +0 -0
  242. /package/framework/{v0.5.26 → v0.6.0}/core/template/error/server/json/503.json +0 -0
  243. /package/framework/{v0.5.26 → v0.6.0}/core/template/extensions/logger/config.json +0 -0
  244. /package/framework/{v0.5.26 → v0.6.0}/helpers/console.js +0 -0
  245. /package/framework/{v0.5.26 → v0.6.0}/helpers/context.js +0 -0
  246. /package/framework/{v0.5.26 → v0.6.0}/helpers/data/LICENSE +0 -0
  247. /package/framework/{v0.5.26 → v0.6.0}/helpers/data/README.md +0 -0
  248. /package/framework/{v0.5.26 → v0.6.0}/helpers/data/package.json +0 -0
  249. /package/framework/{v0.5.26 → v0.6.0}/helpers/data/src/main.js +0 -0
  250. /package/framework/{v0.5.26 → v0.6.0}/helpers/dateFormat.js +0 -0
  251. /package/framework/{v0.5.26 → v0.6.0}/helpers/index.js +0 -0
  252. /package/framework/{v0.5.26 → v0.6.0}/helpers/json/LICENSE +0 -0
  253. /package/framework/{v0.5.26 → v0.6.0}/helpers/json/README.md +0 -0
  254. /package/framework/{v0.5.26 → v0.6.0}/helpers/json/package.json +0 -0
  255. /package/framework/{v0.5.26 → v0.6.0}/helpers/json/src/main.js +0 -0
  256. /package/framework/{v0.5.26 → v0.6.0}/helpers/path.js +0 -0
  257. /package/framework/{v0.5.26 → v0.6.0}/helpers/plugins/README.md +0 -0
  258. /package/framework/{v0.5.26 → v0.6.0}/helpers/plugins/package.json +0 -0
  259. /package/framework/{v0.5.26 → v0.6.0}/helpers/plugins/src/api-error.js +0 -0
  260. /package/framework/{v0.5.26 → v0.6.0}/helpers/plugins/src/main.js +0 -0
  261. /package/framework/{v0.5.26 → v0.6.0}/helpers/prototypes.js +0 -0
  262. /package/framework/{v0.5.26 → v0.6.0}/helpers/task.js +0 -0
  263. /package/framework/{v0.5.26 → v0.6.0}/helpers/text.js +0 -0
  264. /package/framework/{v0.5.26 → v0.6.0}/lib/admin/package.json +0 -0
  265. /package/framework/{v0.5.26 → v0.6.0}/lib/admin/src/main.js +0 -0
  266. /package/framework/{v0.5.26 → v0.6.0}/lib/archiver/README.md +0 -0
  267. /package/framework/{v0.5.26 → v0.6.0}/lib/archiver/build.json +0 -0
  268. /package/framework/{v0.5.26 → v0.6.0}/lib/archiver/package.json +0 -0
  269. /package/framework/{v0.5.26 → v0.6.0}/lib/archiver/src/dep/jszip.min.js +0 -0
  270. /package/framework/{v0.5.26 → v0.6.0}/lib/archiver/src/main.js +0 -0
  271. /package/framework/{v0.5.26 → v0.6.0}/lib/async/package.json +0 -0
  272. /package/framework/{v0.5.26 → v0.6.0}/lib/async/src/main.js +0 -0
  273. /package/framework/{v0.5.26 → v0.6.0}/lib/audit/package.json +0 -0
  274. /package/framework/{v0.5.26 → v0.6.0}/lib/audit-store.js +0 -0
  275. /package/framework/{v0.5.26 → v0.6.0}/lib/authz-gate/package.json +0 -0
  276. /package/framework/{v0.5.26 → v0.6.0}/lib/authz-gate/src/main.js +0 -0
  277. /package/framework/{v0.5.26 → v0.6.0}/lib/cache/README.md +0 -0
  278. /package/framework/{v0.5.26 → v0.6.0}/lib/cache/build.json +0 -0
  279. /package/framework/{v0.5.26 → v0.6.0}/lib/cache/package.json +0 -0
  280. /package/framework/{v0.5.26 → v0.6.0}/lib/cache/src/main.js +0 -0
  281. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/aliases.json +0 -0
  282. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/add.js +0 -0
  283. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/arguments.json +0 -0
  284. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/build.js +0 -0
  285. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/copy.js +0 -0
  286. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/cp.js +0 -0
  287. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/help.js +0 -0
  288. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/help.txt +0 -0
  289. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  290. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/list.js +0 -0
  291. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/man.js +0 -0
  292. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/mcp-start.js +0 -0
  293. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/mcp.js +0 -0
  294. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/oas.js +0 -0
  295. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/openapi.js +0 -0
  296. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/remove.js +0 -0
  297. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/rename.js +0 -0
  298. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/restart.js +0 -0
  299. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/rm.js +0 -0
  300. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/start.js +0 -0
  301. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/status.js +0 -0
  302. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/stop.js +0 -0
  303. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/bundle/types.js +0 -0
  304. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/cache/arguments.json +0 -0
  305. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/cache/clear.js +0 -0
  306. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/cache/help.txt +0 -0
  307. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/cache/stats.js +0 -0
  308. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/add.js +0 -0
  309. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/arguments.json +0 -0
  310. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/help.js +0 -0
  311. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/help.txt +0 -0
  312. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/infer.js +0 -0
  313. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/list.js +0 -0
  314. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/migrate.js +0 -0
  315. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/models.js +0 -0
  316. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/remove.js +0 -0
  317. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/rm.js +0 -0
  318. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/connector/test.js +0 -0
  319. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/arguments.json +0 -0
  320. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/help.js +0 -0
  321. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/help.txt +0 -0
  322. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/man.js +0 -0
  323. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/ps.js +0 -0
  324. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/container/stop.js +0 -0
  325. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/add.js +0 -0
  326. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/arguments.json +0 -0
  327. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/help.txt +0 -0
  328. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/inc/args.js +0 -0
  329. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/inc/namespace.js +0 -0
  330. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  331. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/inc/reference-scan.js +0 -0
  332. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/inc/scaffold.js +0 -0
  333. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/remove.js +0 -0
  334. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/rename.js +0 -0
  335. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/controller/rm.js +0 -0
  336. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/add.js +0 -0
  337. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/get.js +0 -0
  338. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/help.js +0 -0
  339. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/help.txt +0 -0
  340. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/link-dev.js +0 -0
  341. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/list.js +0 -0
  342. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/remove.js +0 -0
  343. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/rm.js +0 -0
  344. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/set.js +0 -0
  345. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/unset.js +0 -0
  346. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/env/use.js +0 -0
  347. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/add.js +0 -0
  348. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/arguments.json +0 -0
  349. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/build.js +0 -0
  350. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/dot.js +0 -0
  351. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/get.js +0 -0
  352. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/help.js +0 -0
  353. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/help.txt +0 -0
  354. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/link-node-modules.js +0 -0
  355. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/link.js +0 -0
  356. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/list.js +0 -0
  357. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/man.js +0 -0
  358. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/msg.json +0 -0
  359. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/open.js +0 -0
  360. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/remove.js +0 -0
  361. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/reset.js +0 -0
  362. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/restart.js +0 -0
  363. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/set.js +0 -0
  364. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/start.js +0 -0
  365. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/status.js +0 -0
  366. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/stop.js +0 -0
  367. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/update.js +0 -0
  368. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/framework/version.js +0 -0
  369. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/gina-dev.1.md +0 -0
  370. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/gina-framework.1.md +0 -0
  371. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/helper.js +0 -0
  372. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/add.js +0 -0
  373. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/arguments.json +0 -0
  374. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/export.js +0 -0
  375. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/help.js +0 -0
  376. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/help.txt +0 -0
  377. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/import.js +0 -0
  378. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/i18n/scan.js +0 -0
  379. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/_host.js +0 -0
  380. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/arguments.json +0 -0
  381. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/build.js +0 -0
  382. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/help.js +0 -0
  383. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/help.txt +0 -0
  384. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/list.js +0 -0
  385. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/man.js +0 -0
  386. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/rm.js +0 -0
  387. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/image/run.js +0 -0
  388. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/index.js +0 -0
  389. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/inspector/help.js +0 -0
  390. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/inspector/help.txt +0 -0
  391. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/inspector/open.js +0 -0
  392. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/man-render.js +0 -0
  393. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/minion/arguments.json +0 -0
  394. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/minion/help.js +0 -0
  395. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/minion/help.txt +0 -0
  396. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/minion/kill.js +0 -0
  397. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/minion/list.js +0 -0
  398. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/msg.json +0 -0
  399. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/help.js +0 -0
  400. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/help.txt +0 -0
  401. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/inc/scan.js +0 -0
  402. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/list.js +0 -0
  403. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/reset.js +0 -0
  404. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/port/set.js +0 -0
  405. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/add.js +0 -0
  406. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/arguments.json +0 -0
  407. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/backup.js +0 -0
  408. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/build.js +0 -0
  409. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/help.js +0 -0
  410. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/help.txt +0 -0
  411. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/import.js +0 -0
  412. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/list.js +0 -0
  413. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/man.js +0 -0
  414. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/move.js +0 -0
  415. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/remove.js +0 -0
  416. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/rename.js +0 -0
  417. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/restart.js +0 -0
  418. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/restore.js +0 -0
  419. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/rm.js +0 -0
  420. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/start.js +0 -0
  421. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/status.js +0 -0
  422. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/project/stop.js +0 -0
  423. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/arguments.json +0 -0
  424. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/help.js +0 -0
  425. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/help.txt +0 -0
  426. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/list.js +0 -0
  427. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/remove.js +0 -0
  428. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/protocol/set.js +0 -0
  429. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/add.js +0 -0
  430. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/help.js +0 -0
  431. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/help.txt +0 -0
  432. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/link-local.js +0 -0
  433. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/link-production.js +0 -0
  434. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/list.js +0 -0
  435. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/remove.js +0 -0
  436. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/rm.js +0 -0
  437. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/scope/use.js +0 -0
  438. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/secrets/arguments.json +0 -0
  439. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/secrets/check.js +0 -0
  440. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/secrets/help.js +0 -0
  441. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/secrets/help.txt +0 -0
  442. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/secrets/scan.js +0 -0
  443. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/service/help.js +0 -0
  444. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/service/help.txt +0 -0
  445. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/service/list.js +0 -0
  446. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/service/man.js +0 -0
  447. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/service/start.js +0 -0
  448. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd/view/add.js +0 -0
  449. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd-status-format/package.json +0 -0
  450. /package/framework/{v0.5.26 → v0.6.0}/lib/cmd-status-format/src/main.js +0 -0
  451. /package/framework/{v0.5.26 → v0.6.0}/lib/collection/README.md +0 -0
  452. /package/framework/{v0.5.26 → v0.6.0}/lib/collection/build.json +0 -0
  453. /package/framework/{v0.5.26 → v0.6.0}/lib/collection/package.json +0 -0
  454. /package/framework/{v0.5.26 → v0.6.0}/lib/collection/src/main.js +0 -0
  455. /package/framework/{v0.5.26 → v0.6.0}/lib/config.js +0 -0
  456. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-config/package.json +0 -0
  457. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-config/src/main.js +0 -0
  458. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-error/package.json +0 -0
  459. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-error/src/main.js +0 -0
  460. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-registry/package.json +0 -0
  461. /package/framework/{v0.5.26 → v0.6.0}/lib/connector-registry/src/main.js +0 -0
  462. /package/framework/{v0.5.26 → v0.6.0}/lib/cron/README.md +0 -0
  463. /package/framework/{v0.5.26 → v0.6.0}/lib/cron/package.json +0 -0
  464. /package/framework/{v0.5.26 → v0.6.0}/lib/cron/src/main.js +0 -0
  465. /package/framework/{v0.5.26 → v0.6.0}/lib/domain/LICENSE +0 -0
  466. /package/framework/{v0.5.26 → v0.6.0}/lib/domain/README.md +0 -0
  467. /package/framework/{v0.5.26 → v0.6.0}/lib/domain/package.json +0 -0
  468. /package/framework/{v0.5.26 → v0.6.0}/lib/domain/src/main.js +0 -0
  469. /package/framework/{v0.5.26 → v0.6.0}/lib/dto/package.json +0 -0
  470. /package/framework/{v0.5.26 → v0.6.0}/lib/dto/src/main.js +0 -0
  471. /package/framework/{v0.5.26 → v0.6.0}/lib/dto-pipe/package.json +0 -0
  472. /package/framework/{v0.5.26 → v0.6.0}/lib/dto-pipe/src/main.js +0 -0
  473. /package/framework/{v0.5.26 → v0.6.0}/lib/dto-types/package.json +0 -0
  474. /package/framework/{v0.5.26 → v0.6.0}/lib/dto-types/src/main.js +0 -0
  475. /package/framework/{v0.5.26 → v0.6.0}/lib/generator/index.js +0 -0
  476. /package/framework/{v0.5.26 → v0.6.0}/lib/i18n/package.json +0 -0
  477. /package/framework/{v0.5.26 → v0.6.0}/lib/i18n/src/main.js +0 -0
  478. /package/framework/{v0.5.26 → v0.6.0}/lib/image-build/package.json +0 -0
  479. /package/framework/{v0.5.26 → v0.6.0}/lib/image-build/src/main.js +0 -0
  480. /package/framework/{v0.5.26 → v0.6.0}/lib/inherits/LICENSE +0 -0
  481. /package/framework/{v0.5.26 → v0.6.0}/lib/inherits/README.md +0 -0
  482. /package/framework/{v0.5.26 → v0.6.0}/lib/inherits/package.json +0 -0
  483. /package/framework/{v0.5.26 → v0.6.0}/lib/inherits/src/main.js +0 -0
  484. /package/framework/{v0.5.26 → v0.6.0}/lib/inspector-events/package.json +0 -0
  485. /package/framework/{v0.5.26 → v0.6.0}/lib/inspector-events/src/main.js +0 -0
  486. /package/framework/{v0.5.26 → v0.6.0}/lib/inspector-redact/package.json +0 -0
  487. /package/framework/{v0.5.26 → v0.6.0}/lib/inspector-redact/src/main.js +0 -0
  488. /package/framework/{v0.5.26 → v0.6.0}/lib/instrument/package.json +0 -0
  489. /package/framework/{v0.5.26 → v0.6.0}/lib/instrument/src/main.js +0 -0
  490. /package/framework/{v0.5.26 → v0.6.0}/lib/job/package.json +0 -0
  491. /package/framework/{v0.5.26 → v0.6.0}/lib/job/src/main.js +0 -0
  492. /package/framework/{v0.5.26 → v0.6.0}/lib/job-store.js +0 -0
  493. /package/framework/{v0.5.26 → v0.6.0}/lib/json-config-header/package.json +0 -0
  494. /package/framework/{v0.5.26 → v0.6.0}/lib/json-config-header/src/main.js +0 -0
  495. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/README.md +0 -0
  496. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/package.json +0 -0
  497. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/default/index.js +0 -0
  498. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  499. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  500. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/mq/index.js +0 -0
  501. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/containers/mq/listener.js +0 -0
  502. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/helper.js +0 -0
  503. /package/framework/{v0.5.26 → v0.6.0}/lib/logger/src/main.js +0 -0
  504. /package/framework/{v0.5.26 → v0.6.0}/lib/math/index.js +0 -0
  505. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-dispatch/package.json +0 -0
  506. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-dispatch/src/main.js +0 -0
  507. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-http/package.json +0 -0
  508. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-http/src/main.js +0 -0
  509. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-server/package.json +0 -0
  510. /package/framework/{v0.5.26 → v0.6.0}/lib/mcp-server/src/main.js +0 -0
  511. /package/framework/{v0.5.26 → v0.6.0}/lib/merge/README.md +0 -0
  512. /package/framework/{v0.5.26 → v0.6.0}/lib/merge/package.json +0 -0
  513. /package/framework/{v0.5.26 → v0.6.0}/lib/merge/src/main.js +0 -0
  514. /package/framework/{v0.5.26 → v0.6.0}/lib/metrics/package.json +0 -0
  515. /package/framework/{v0.5.26 → v0.6.0}/lib/metrics/src/main.js +0 -0
  516. /package/framework/{v0.5.26 → v0.6.0}/lib/model.js +0 -0
  517. /package/framework/{v0.5.26 → v0.6.0}/lib/nunjucks-filters/README.md +0 -0
  518. /package/framework/{v0.5.26 → v0.6.0}/lib/nunjucks-filters/package.json +0 -0
  519. /package/framework/{v0.5.26 → v0.6.0}/lib/nunjucks-resolver/package.json +0 -0
  520. /package/framework/{v0.5.26 → v0.6.0}/lib/nunjucks-resolver/src/main.js +0 -0
  521. /package/framework/{v0.5.26 → v0.6.0}/lib/proc.js +0 -0
  522. /package/framework/{v0.5.26 → v0.6.0}/lib/release-watch/package.json +0 -0
  523. /package/framework/{v0.5.26 → v0.6.0}/lib/release-watch/src/main.js +0 -0
  524. /package/framework/{v0.5.26 → v0.6.0}/lib/render-cache/package.json +0 -0
  525. /package/framework/{v0.5.26 → v0.6.0}/lib/render-cache/src/main.js +0 -0
  526. /package/framework/{v0.5.26 → v0.6.0}/lib/render-cache-store.js +0 -0
  527. /package/framework/{v0.5.26 → v0.6.0}/lib/routing/README.md +0 -0
  528. /package/framework/{v0.5.26 → v0.6.0}/lib/routing/build.json +0 -0
  529. /package/framework/{v0.5.26 → v0.6.0}/lib/routing/package.json +0 -0
  530. /package/framework/{v0.5.26 → v0.6.0}/lib/routing/src/radix.js +0 -0
  531. /package/framework/{v0.5.26 → v0.6.0}/lib/routing-introspect/package.json +0 -0
  532. /package/framework/{v0.5.26 → v0.6.0}/lib/routing-introspect/src/main.js +0 -0
  533. /package/framework/{v0.5.26 → v0.6.0}/lib/secrets/package.json +0 -0
  534. /package/framework/{v0.5.26 → v0.6.0}/lib/secrets/src/backends/env.js +0 -0
  535. /package/framework/{v0.5.26 → v0.6.0}/lib/secrets/src/main.js +0 -0
  536. /package/framework/{v0.5.26 → v0.6.0}/lib/session-store.js +0 -0
  537. /package/framework/{v0.5.26 → v0.6.0}/lib/shell.js +0 -0
  538. /package/framework/{v0.5.26 → v0.6.0}/lib/state.js +0 -0
  539. /package/framework/{v0.5.26 → v0.6.0}/lib/swig-filters/README.md +0 -0
  540. /package/framework/{v0.5.26 → v0.6.0}/lib/swig-filters/package.json +0 -0
  541. /package/framework/{v0.5.26 → v0.6.0}/lib/swig-resolver/package.json +0 -0
  542. /package/framework/{v0.5.26 → v0.6.0}/lib/swig-resolver/src/main.js +0 -0
  543. /package/framework/{v0.5.26 → v0.6.0}/lib/template-loaders/package.json +0 -0
  544. /package/framework/{v0.5.26 → v0.6.0}/lib/template-loaders/src/loaders/http.js +0 -0
  545. /package/framework/{v0.5.26 → v0.6.0}/lib/template-loaders/src/loaders/memory.js +0 -0
  546. /package/framework/{v0.5.26 → v0.6.0}/lib/template-loaders/src/main.js +0 -0
  547. /package/framework/{v0.5.26 → v0.6.0}/lib/url/README.md +0 -0
  548. /package/framework/{v0.5.26 → v0.6.0}/lib/url/index.js +0 -0
  549. /package/framework/{v0.5.26 → v0.6.0}/lib/url/routing.json +0 -0
  550. /package/framework/{v0.5.26 → v0.6.0}/lib/uuid/package.json +0 -0
  551. /package/framework/{v0.5.26 → v0.6.0}/lib/uuid/src/main.js +0 -0
  552. /package/framework/{v0.5.26 → v0.6.0}/lib/validator.js +0 -0
  553. /package/framework/{v0.5.26 → v0.6.0}/lib/watcher/package.json +0 -0
  554. /package/framework/{v0.5.26 → v0.6.0}/lib/watcher/src/main.js +0 -0
  555. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-framing/package.json +0 -0
  556. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-framing/src/main.js +0 -0
  557. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-query/package.json +0 -0
  558. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-query/src/main.js +0 -0
  559. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-session/package.json +0 -0
  560. /package/framework/{v0.5.26 → v0.6.0}/lib/ws-session/src/main.js +0 -0
@@ -8,7 +8,7 @@
8
8
  'use strict';
9
9
 
10
10
  /**
11
- * Session plugin (#CSRF1) — hardened wrapper around `express-session`.
11
+ * Session plugin (#CSRF1, #COMPLY4) — hardened wrapper around `express-session`.
12
12
  *
13
13
  * Bundles adopt it with a one-line swap in their bootstrap:
14
14
  *
@@ -26,6 +26,18 @@
26
26
  * Browser-parity invariant: `SameSite=None` without `Secure` is rejected at
27
27
  * factory call time (matching browser behaviour).
28
28
  *
29
+ * Absolute session timeout (#COMPLY4, opt-in): `session({ absoluteTimeout:
30
+ * <ms> })` — or the `settings.json > session.absoluteTimeout` default, bundle
31
+ * code winning (`false` disables) — caps an AUTHENTICATED session's total
32
+ * lifetime, measured from the `_ginaCreatedAt` anchor `req.login()` stamps at
33
+ * rotation (manual-bind consumers are anchored lazily, one request late). An
34
+ * over-age session is destroyed on its next request and the request proceeds
35
+ * with a fresh anonymous one — indistinguishable from a naturally-expired
36
+ * record. This composes with idle expiry, which already exists: the cookie
37
+ * `maxAge` and the store record TTL both roll with activity; this cap does
38
+ * not. Without the option the factory returns express-session's middleware
39
+ * untouched.
40
+ *
29
41
  * @module plugins/session
30
42
  */
31
43
 
@@ -48,6 +60,7 @@ function resolveSettingsDefaults() {
48
60
  var defaults = { sameSite: 'lax', httpOnly: true, secure: 'auto' };
49
61
  var cookieConf = {};
50
62
 
63
+ var sessionConf = {};
51
64
  try {
52
65
  var ctx = getContext();
53
66
  var bundle = ctx && ctx.bundle;
@@ -56,11 +69,12 @@ function resolveSettingsDefaults() {
56
69
  if (bundle && env && conf && conf[bundle] && conf[bundle][env]) {
57
70
  var content = conf[bundle][env].content || {};
58
71
  var settings = content.settings || {};
59
- var session = settings.session || {};
60
- cookieConf = session.cookie || {};
72
+ sessionConf = settings.session || {};
73
+ cookieConf = sessionConf.cookie || {};
61
74
  }
62
75
  } catch (ignored) {
63
- cookieConf = {};
76
+ sessionConf = {};
77
+ cookieConf = {};
64
78
  }
65
79
 
66
80
  if (typeof cookieConf.sameSite === 'string') {
@@ -92,9 +106,118 @@ function resolveSettingsDefaults() {
92
106
  defaults.secure = cookieConf.secure;
93
107
  }
94
108
 
109
+ // #COMPLY4 — absolute-timeout default (ms). Opt-in: absent means none.
110
+ if (typeof sessionConf.absoluteTimeout !== 'undefined') {
111
+ if (typeof sessionConf.absoluteTimeout !== 'number'
112
+ || !isFinite(sessionConf.absoluteTimeout)
113
+ || sessionConf.absoluteTimeout <= 0
114
+ ) {
115
+ throw new Error(
116
+ '[gina session] settings.json > session.absoluteTimeout must be a positive number of milliseconds'
117
+ + ' — got: ' + JSON.stringify(sessionConf.absoluteTimeout)
118
+ );
119
+ }
120
+ defaults.absoluteTimeout = sessionConf.absoluteTimeout;
121
+ }
122
+
95
123
  return defaults;
96
124
  }
97
125
 
126
+ /**
127
+ * Resolve the effective absolute-timeout value: the bundle option wins over
128
+ * the settings default; `false` / `null` in bundle code disables it outright.
129
+ * The gina-only key is STRIPPED from the options so express-session never
130
+ * sees it.
131
+ *
132
+ * @param {object} options - the (mutated) session factory options
133
+ * @param {object} defaults - `resolveSettingsDefaults()` output
134
+ * @returns {(number|null)} effective cap in ms, or null when disabled
135
+ * @throws {Error} when the bundle-supplied value is not a positive number
136
+ * @inner
137
+ * @private
138
+ */
139
+ function resolveAbsoluteTimeout(options, defaults) {
140
+ if (Object.prototype.hasOwnProperty.call(options, 'absoluteTimeout')) {
141
+ var v = options.absoluteTimeout;
142
+ delete options.absoluteTimeout;
143
+ if (v === false || v === null) {
144
+ return null;
145
+ }
146
+ if (typeof v !== 'number' || !isFinite(v) || v <= 0) {
147
+ throw new Error(
148
+ '[gina session] absoluteTimeout must be a positive number of milliseconds'
149
+ + ' (or false to disable the settings default) — got: ' + JSON.stringify(v)
150
+ );
151
+ }
152
+ return v;
153
+ }
154
+ return (typeof defaults.absoluteTimeout === 'number') ? defaults.absoluteTimeout : null;
155
+ }
156
+
157
+ /**
158
+ * Wrap the express-session middleware with the absolute-timeout enforcement
159
+ * (#COMPLY4).
160
+ *
161
+ * After the session loads: an authenticated session without a numeric
162
+ * `_ginaCreatedAt` anchor is stamped (manual-bind consumers — `req.login()`
163
+ * stamps it at rotation itself; anonymous sessions are never touched, so
164
+ * `saveUninitialized: false` semantics are preserved). A session whose anchor
165
+ * is older than the cap is destroyed via its own `regenerate()` — the request
166
+ * proceeds with a fresh anonymous session, exactly as a naturally-expired
167
+ * record behaves. Fail-closed: when the record cannot be destroyed
168
+ * (regenerate error, or no regenerate on the provider) the authentication is
169
+ * dropped locally at minimum.
170
+ *
171
+ * @param {function} mw - the middleware express-session returned
172
+ * @param {number} absoluteMs - the effective cap in milliseconds
173
+ * @returns {function} wrapping middleware `(req, res, next)`
174
+ * @inner
175
+ * @private
176
+ */
177
+ function makeAbsoluteTimeoutMiddleware(mw, absoluteMs) {
178
+ return function ginaSessionAbsoluteTimeout(req, res, next) {
179
+ mw(req, res, function onSessionReady(err) {
180
+ if (err) {
181
+ return next(err);
182
+ }
183
+ var sess = req.session;
184
+ if (!sess || typeof sess !== 'object') {
185
+ return next();
186
+ }
187
+ if (sess.user && typeof sess._ginaCreatedAt !== 'number') {
188
+ // authenticated without an anchor (manual bind, or a corrupt
189
+ // anchor) — stamp now; enforcement starts from here
190
+ sess._ginaCreatedAt = Date.now();
191
+ return next();
192
+ }
193
+ if (typeof sess._ginaCreatedAt === 'number'
194
+ && (Date.now() - sess._ginaCreatedAt) > absoluteMs
195
+ ) {
196
+ if (typeof sess.regenerate === 'function') {
197
+ return sess.regenerate(function onAbsoluteTimeoutExpired(regenErr) {
198
+ if (regenErr && req.session && typeof req.session === 'object') {
199
+ // fail-closed: the record could not be destroyed —
200
+ // drop the authentication locally at minimum
201
+ req.session.user = null;
202
+ delete req.session._ginaCreatedAt;
203
+ }
204
+ next();
205
+ });
206
+ }
207
+ // no regenerate() on this provider: fail-closed locally,
208
+ // destroying the record when the provider allows it
209
+ sess.user = null;
210
+ delete sess._ginaCreatedAt;
211
+ if (typeof sess.destroy === 'function') {
212
+ return sess.destroy(function onAbsoluteTimeoutDestroyed() { next(); });
213
+ }
214
+ return next();
215
+ }
216
+ next();
217
+ });
218
+ };
219
+ }
220
+
98
221
  /**
99
222
  * Merge caller-supplied cookie options on top of the resolved defaults.
100
223
  * Caller-supplied values always win — `httpOnly: false` passed by a bundle
@@ -166,7 +289,15 @@ function Session(expressSession) {
166
289
  var defaults = resolveSettingsDefaults();
167
290
  options.cookie = mergeCookie(options.cookie, defaults);
168
291
  assertInvariant(options.cookie);
169
- return expressSession(options);
292
+ // #COMPLY4 — resolve (and strip) the absolute-timeout cap before
293
+ // express-session sees the options; no cap means the raw middleware
294
+ // is returned untouched.
295
+ var absoluteMs = resolveAbsoluteTimeout(options, defaults);
296
+ var mw = expressSession(options);
297
+ if (!absoluteMs) {
298
+ return mw;
299
+ }
300
+ return makeAbsoluteTimeoutMiddleware(mw, absoluteMs);
170
301
  }
171
302
 
172
303
  var wrapped = function (options) { return ginaSessionDispatch(options); };
@@ -195,9 +326,11 @@ function Session(expressSession) {
195
326
 
196
327
  // Exposed for unit testing. Do not rely on these in application code — they
197
328
  // may change without notice.
198
- Session._resolveSettingsDefaults = resolveSettingsDefaults;
199
- Session._mergeCookie = mergeCookie;
200
- Session._assertInvariant = assertInvariant;
201
- Session._ALLOWED_SAMESITE = ALLOWED_SAMESITE;
329
+ Session._resolveSettingsDefaults = resolveSettingsDefaults;
330
+ Session._mergeCookie = mergeCookie;
331
+ Session._assertInvariant = assertInvariant;
332
+ Session._ALLOWED_SAMESITE = ALLOWED_SAMESITE;
333
+ Session._resolveAbsoluteTimeout = resolveAbsoluteTimeout;
334
+ Session._makeAbsoluteTimeoutMiddleware = makeAbsoluteTimeoutMiddleware;
202
335
 
203
336
  module.exports = Session;
@@ -389,6 +389,23 @@ function Router(env, scope) {
389
389
  ||
390
390
  typeof(request.login) == 'undefined'
391
391
  ) {
392
+ /**
393
+ * Login shim — authenticates the request AND, on the gina-native
394
+ * branch, rotates the session id before binding the user
395
+ * (session-fixation defense, #COMPLY4).
396
+ *
397
+ * Passport bundles never see this shim in normal operation
398
+ * (passport.initialize() installs its own req.login first); the
399
+ * Passport-flavored branch serves the HTTP2 case where
400
+ * `request._passport` exists without the request extensions.
401
+ *
402
+ * @param {object} user - authenticated principal; bound at
403
+ * `request.session.user` (what the authorization gate reads)
404
+ * @param {object} [options] - `{session: false}` binds `request.user` only
405
+ * (transient — no session work, no rotation)
406
+ * @param {function} done - REQUIRED callback `done(err)` on the session paths;
407
+ * fires after rotation + bind + persist complete
408
+ */
392
409
  request.login =
393
410
  request.logIn = function(user, options, done) {
394
411
  if (typeof options == 'function') {
@@ -412,7 +429,52 @@ function Router(env, scope) {
412
429
 
413
430
 
414
431
  if (!this._passport) {
415
- throw new Error('passport.initialize() middleware not in use');
432
+ // #COMPLY4 — gina-native branch. This path previously ended
433
+ // in a hard passport-required throw, so the framework's own
434
+ // session pattern (authz reads `req.session.user`) had no
435
+ // working login here. Now: rotate the session id BEFORE
436
+ // binding the user (session-fixation defense), bind at
437
+ // `session.user`, stamp the absolute-timeout anchor,
438
+ // persist, then report. Same degrade-gracefully shape as
439
+ // the #B164 logout shim below — typeof-gated, the session
440
+ // provider's capabilities decide.
441
+ if (typeof done != 'function') {
442
+ throw new Error('req#login requires a callback function');
443
+ }
444
+ var req = this;
445
+ if ( !req.session || typeof(req.session) != 'object' ) {
446
+ req[property] = null;
447
+ return done(new Error('req#login requires a session — register the Session plugin (or express-session) before routing'));
448
+ }
449
+ if ( typeof(req.session.regenerate) == 'function' ) {
450
+ req.session.regenerate(function onLoginSessionRegenerated(err) {
451
+ if (err) {
452
+ req[property] = null;
453
+ return done(err);
454
+ }
455
+ req.session.user = user;
456
+ // absolute-timeout anchor — the clock starts at login
457
+ req.session._ginaCreatedAt = Date.now();
458
+ if ( typeof(req.session.save) == 'function' ) {
459
+ return req.session.save(function onLoginSessionSaved(saveErr) {
460
+ done(saveErr || null);
461
+ });
462
+ }
463
+ done(null);
464
+ });
465
+ return;
466
+ }
467
+ // no regenerate() on this session provider — bind without
468
+ // rotation, and say so: the fixation defense is unavailable
469
+ console.warn('[ ROUTER ] login(): session provider exposes no regenerate() — user bound WITHOUT session-id rotation');
470
+ req.session.user = user;
471
+ req.session._ginaCreatedAt = Date.now();
472
+ if ( typeof(req.session.save) == 'function' ) {
473
+ return req.session.save(function onLoginSessionSavedNoRotation(saveErr) {
474
+ done(saveErr || null);
475
+ });
476
+ }
477
+ return done(null);
416
478
  }
417
479
  if (typeof done != 'function') {
418
480
  throw new Error('req#login requires a callback function');
@@ -436,8 +498,22 @@ function Router(env, scope) {
436
498
  typeof(request.session) != 'undefined'
437
499
  && typeof(request.logout) == 'undefined'
438
500
  ) {
501
+ /**
502
+ * Logout shim — de-authenticates the request AND destroys the
503
+ * persisted session record.
504
+ *
505
+ * #B164 — nulling `session.user` alone left the store record, the
506
+ * session id and every other session key alive until TTL. The
507
+ * gina-native branch now also calls the session's own destroy()
508
+ * when it exposes one (express-session), degrading gracefully when
509
+ * it does not. Clearing the session COOKIE stays the consumer's
510
+ * job — the cookie name is not discoverable from the request.
511
+ *
512
+ * @param {function} [done] - Optional callback `done(err)` invoked once
513
+ * record destruction (or the fallback) completes.
514
+ */
439
515
  request.logout =
440
- request.logOut = function() {
516
+ request.logOut = function(done) {
441
517
  var property = 'user';
442
518
 
443
519
  // by default
@@ -445,25 +521,39 @@ function Router(env, scope) {
445
521
  if (sess._passport && sess._passport.instance) {
446
522
  property = sess._passport.instance._userProperty || 'user';
447
523
  }
524
+ var isSessionScope = false;
448
525
  if ( !sess._passport
449
526
  && typeof(sess.session) != 'undefined'
450
527
  ) {
451
528
  sess = sess.session;
529
+ isSessionScope = true;
452
530
  }
453
531
 
454
532
  sess[property] = null;
455
533
  if (sess._passport) {
456
534
  sess._passport.instance._sm.logOut(sess);
535
+ if ( typeof(done) == 'function' ) {
536
+ done(null);
537
+ }
538
+ return;
539
+ }
540
+ // #B164 — destroy the record, not just the `user` key. Gated on the
541
+ // session scope so a call after destruction (no `request.session`
542
+ // left) can never reach `request.destroy()` — the stream method.
543
+ if ( isSessionScope && typeof(sess.destroy) == 'function' ) {
544
+ sess.destroy(function onLogoutSessionDestroyed(err) {
545
+ if (err) {
546
+ console.warn('[ ROUTER ] logout(): session.destroy() failed: ' + (err.stack || err.message || err));
547
+ }
548
+ if ( typeof(done) == 'function' ) {
549
+ done(err || null);
550
+ }
551
+ });
552
+ return;
553
+ }
554
+ if ( typeof(done) == 'function' ) {
555
+ done(null);
457
556
  }
458
-
459
-
460
- // if (this._passport && this._passport.instance) {
461
- // property = this._passport.instance._userProperty || 'user';
462
- // }
463
- // this[property] = null;
464
- // if (this._passport) {
465
- // this._passport.instance._sm.logOut(this);
466
- // }
467
557
  };
468
558
  }
469
559
 
@@ -1341,6 +1341,42 @@ function Server(options) {
1341
1341
  if ( _auditSettings.store && _auditSettings.file ) {
1342
1342
  throw new Error('[ SERVER ] `settings.json > audit`: `store` and `file` are mutually exclusive — pick one backend.');
1343
1343
  }
1344
+ // ── #COMPLY2 slice 3 — tamper-evidence chain: shape lint (unconditional,
1345
+ // like the rest of the audit lint family: a malformed block with the
1346
+ // chain OFF is still an author error better surfaced now).
1347
+ if ( typeof(_auditSettings.chain) != 'undefined' ) {
1348
+ if ( typeof(_auditSettings.chain) != 'object' || _auditSettings.chain === null || Array.isArray(_auditSettings.chain) ) {
1349
+ throw new Error('[ SERVER ] `settings.json > audit.chain` must be an object.');
1350
+ }
1351
+ if ( typeof(_auditSettings.chain.enabled) != 'undefined' && typeof(_auditSettings.chain.enabled) != 'boolean' ) {
1352
+ throw new Error('[ SERVER ] `settings.json > audit.chain.enabled` must be a boolean — got '+ JSON.stringify(_auditSettings.chain.enabled) +'. A truthy string would leave tamper-evidence silently OFF, so the boot refuses instead.');
1353
+ }
1354
+ if ( typeof(_auditSettings.chain.secret) != 'undefined' && ( typeof(_auditSettings.chain.secret) != 'string' || _auditSettings.chain.secret === '' ) ) {
1355
+ throw new Error('[ SERVER ] `settings.json > audit.chain.secret` must be a non-empty string.');
1356
+ }
1357
+ if ( typeof(_auditSettings.chain.secret) == 'string' && /\$\{/.test(_auditSettings.chain.secret) ) {
1358
+ throw new Error('[ SERVER ] `settings.json > audit.chain.secret` carries an unresolved `${...}` placeholder — the named variable is not set at config-load time. Note that `${secret:GINA_*}` names can never resolve (the CLI moves every GINA_* variable out of process.env before config load); use a non-GINA variable name, or set GINA_AUDIT_SECRET.');
1359
+ }
1360
+ }
1361
+ var _auditChainEnabled = !!( _auditSettings.chain && _auditSettings.chain.enabled === true );
1362
+ if ( _auditChainEnabled && !_auditEnabled ) {
1363
+ console.warn('[ SERVER ] `audit.chain.enabled` is true but `audit.enabled` is false — the audit trail (and with it the chain) is OFF for [ '+ self.appName +' ].');
1364
+ }
1365
+ // Merged mode (shared port ⇒ one process) starts ONE trail — the
1366
+ // starting bundle's. A sibling that declares `audit.enabled: true`
1367
+ // is silently ignored otherwise (its block parses into envConf and
1368
+ // nothing ever reads it — runtime-measured 2026-07-26), which is
1369
+ // the quietly-OFF class this lint family exists to prevent: say so.
1370
+ if ( self.isStandalone && Array.isArray(self.bundles) && self.bundles.length > 1 ) {
1371
+ for (let _mb = 0; _mb < self.bundles.length; ++_mb) {
1372
+ if (self.bundles[_mb] === self.appName) continue;
1373
+ var _mbConf = options.conf[self.bundles[_mb]] && options.conf[self.bundles[_mb]][self.env];
1374
+ var _mbAudit = ( _mbConf && _mbConf.content && _mbConf.content.settings && _mbConf.content.settings.audit ) ? _mbConf.content.settings.audit : null;
1375
+ if ( _mbAudit && _mbAudit.enabled === true ) {
1376
+ console.warn('[ SERVER ] [ audit ] bundle `'+ self.bundles[_mb] +'` declares `audit.enabled: true`, but in merged mode (shared port) only the starting bundle\'s audit settings apply — its audit configuration is IGNORED. The process-wide trail is governed by [ '+ self.appName +' ].');
1377
+ }
1378
+ }
1379
+ }
1344
1380
  if ( _auditEnabled ) {
1345
1381
  var _auditStartOpts = {
1346
1382
  bundle : self.appName,
@@ -1379,13 +1415,67 @@ function Server(options) {
1379
1415
  _auditStartOpts.file = _(_auditFile, true);
1380
1416
  _auditDestLabel = _auditStartOpts.file;
1381
1417
  }
1418
+ if ( _auditChainEnabled ) {
1419
+ if ( _auditSettings.store ) {
1420
+ // The store seam carries NO ordering obligation — a
1421
+ // connector backend may persist out of emit order, and
1422
+ // a chain over reordered records forks silently.
1423
+ throw new Error('[ SERVER ] `audit.chain` requires the file backend — a connector `store` cannot guarantee the ordered append a hash chain needs. Remove `audit.store` or disable the chain.');
1424
+ }
1425
+ // Key resolution mirrors the CSRF secret chain, with the
1426
+ // GINA_* read through the framework env reader (the
1427
+ // GINA_MCP_AUTH_TOKEN precedent — the CLI sweeps GINA_*
1428
+ // out of process.env, so a direct read is empty there).
1429
+ var _auditChainSecret = ( typeof(_auditSettings.chain.secret) == 'string' && _auditSettings.chain.secret ) ? _auditSettings.chain.secret : null;
1430
+ if ( !_auditChainSecret ) {
1431
+ _auditChainSecret = ( typeof(getEnvVar) == 'function' && getEnvVar('GINA_AUDIT_SECRET') ) || process.env.GINA_AUDIT_SECRET || null;
1432
+ }
1433
+ if ( !_auditChainSecret || typeof(_auditChainSecret) != 'string' ) {
1434
+ throw new Error('[ SERVER ] `audit.chain.enabled` is true but no signing key is configured — set `settings.json > audit.chain.secret` (e.g. "${secret:MY_AUDIT_KEY}", a non-GINA variable name) or the GINA_AUDIT_SECRET environment variable. Tamper-evidence without a key would be silently OFF, so the boot refuses instead.');
1435
+ }
1436
+ if ( _auditChainSecret.length < 32 ) {
1437
+ console.warn('[ SERVER ] `audit.chain` signing key is shorter than 32 characters — a longer random key (>= 32 bytes) is recommended.');
1438
+ }
1439
+ _auditStartOpts.chain = { secret: _auditChainSecret };
1440
+ }
1441
+ // Cross-PROCESS shared-file refusal: two bundles resolving the
1442
+ // SAME audit file run as separate writers in per-process mode,
1443
+ // and two writers fork a linear hash chain. Boot-detectable in
1444
+ // both modes — options.conf carries every bundle's parsed
1445
+ // settings (runtime-measured 2026-07-26) — so the boot refuses
1446
+ // when EITHER party chains. Without a chain the shared file
1447
+ // stays legal (interleaved JSONL, pre-existing behaviour).
1448
+ // Replicas and cross-project collisions are NOT detectable
1449
+ // from config; the docs state that boundary.
1450
+ if ( _auditStartOpts.file ) {
1451
+ for (var _ab in options.conf) {
1452
+ if (_ab === self.appName) continue;
1453
+ var _sibConf = options.conf[_ab] && options.conf[_ab][self.env];
1454
+ var _sibAudit = ( _sibConf && _sibConf.content && _sibConf.content.settings && _sibConf.content.settings.audit ) ? _sibConf.content.settings.audit : null;
1455
+ if ( !_sibAudit || _sibAudit.enabled !== true || _sibAudit.store ) continue;
1456
+ var _sibChain = !!( _sibAudit.chain && _sibAudit.chain.enabled === true );
1457
+ if ( !_auditChainEnabled && !_sibChain ) continue;
1458
+ // replay the sibling's file derivation
1459
+ var _sibFile = ( typeof(_sibAudit.file) == 'string' && _sibAudit.file ) ? _sibAudit.file : null;
1460
+ if ( !_sibFile || !/^\//.test(_sibFile) ) {
1461
+ var _sibProjectPath = _sibConf.projectPath;
1462
+ if ( typeof(_sibProjectPath) != 'string' || _sibProjectPath === '' || /\$\{/.test(_sibProjectPath) ) continue; // unresolvable — its own boot lints it
1463
+ _sibFile = _sibFile
1464
+ ? _sibProjectPath + '/' + _sibFile
1465
+ : _sibProjectPath + '/logs/audit-'+ _ab +'-'+ self.env +'.jsonl';
1466
+ }
1467
+ if ( _( _sibFile, true) === _auditStartOpts.file ) {
1468
+ throw new Error('[ SERVER ] `audit.chain`: bundle `'+ _ab +'` resolves the SAME audit file ('+ _auditStartOpts.file +') and '+ ( _auditChainEnabled ? 'this bundle chains its trail' : 'that bundle chains its trail' ) +' — two writers fork a linear hash chain, so the boot refuses. Give each bundle its own `audit.file` (the default per-bundle path never collides), or disable the chain on both.');
1469
+ }
1470
+ }
1471
+ }
1382
1472
  // start() mkdirs + opens the O_APPEND fd — an unwritable destination
1383
1473
  // throws HERE, i.e. refuses the boot rather than dropping records later.
1384
1474
  lib.audit.start(_auditStartOpts);
1385
1475
  // console.info, NOT console.debug — the shipped default log_level
1386
1476
  // ("info") filters debug, which would silently defeat the
1387
1477
  // "path logged at boot" contract.
1388
- console.info('[ BUNDLE ][ server ][ init ] Audit trail enabled for [ '+ self.appName +' ] → '+ _auditDestLabel);
1478
+ console.info('[ BUNDLE ][ server ][ init ] Audit trail enabled for [ '+ self.appName +' ] → '+ _auditDestLabel + ( _auditChainEnabled ? ' (tamper-evident chain: ON)' : '' ));
1389
1479
  }
1390
1480
 
1391
1481
  // ── #B144 — upload write-error probe (`simulateWriteError`) boot warn ──
@@ -152,6 +152,9 @@
152
152
  // httpOnly: true | false (default true)
153
153
  // secure: true | false | "auto" (default "auto")
154
154
  // Invariant: sameSite="none" requires secure=true (browser-parity).
155
+ // #COMPLY4 — optional absolute session cap in ms since login (opt-in, none by default);
156
+ // bundle code session({ absoluteTimeout }) wins, false there disables:
157
+ // "absoluteTimeout": 28800000,
155
158
  "session": {
156
159
  "cookie": {
157
160
  "sameSite": "lax",