gina 0.7.1 → 0.7.2

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 (628) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +39 -44
  3. package/ROADMAP.md +3 -0
  4. package/framework/v0.7.2/VERSION +1 -0
  5. package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/js/gina.js +351 -24
  6. package/framework/v0.7.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +726 -0
  7. package/framework/v0.7.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.7.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.7.1 → v0.7.2}/core/connectors/sqlite/lib/session-store.js +24 -6
  10. package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.js +90 -9
  11. package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-nunjucks.js +12 -5
  12. package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-xml.js +10 -2
  13. package/framework/{v0.7.1 → v0.7.2}/core/gna.js +15 -1
  14. package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/validator/src/main.js +301 -12
  15. package/framework/{v0.7.1 → v0.7.2}/core/server.isaac.js +95 -13
  16. package/framework/{v0.7.1 → v0.7.2}/core/server.js +232 -7
  17. package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/index.js +2 -1
  18. package/framework/{v0.7.1 → v0.7.2}/core/template/conf/templates.json +1 -0
  19. package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/inc/name.js +1 -1
  20. package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/inc/name.js +1 -1
  21. package/framework/v0.7.2/lib/error-ref/package.json +7 -0
  22. package/framework/v0.7.2/lib/error-ref/src/main.js +70 -0
  23. package/framework/{v0.7.1 → v0.7.2}/lib/index.js +12 -0
  24. package/framework/v0.7.2/lib/lane/package.json +7 -0
  25. package/framework/v0.7.2/lib/lane/src/main.js +1440 -0
  26. package/framework/v0.7.2/lib/sri/src/main.js +518 -0
  27. package/framework/{v0.7.1 → v0.7.2}/package.json +1 -1
  28. package/gna.js +4 -4
  29. package/llms.txt +11 -9
  30. package/package.json +6 -6
  31. package/schema/routing.json +7 -1
  32. package/types/index.d.ts +28 -0
  33. package/framework/v0.7.1/VERSION +0 -1
  34. package/framework/v0.7.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -720
  35. package/framework/v0.7.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  36. package/framework/v0.7.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  37. package/framework/v0.7.1/lib/sri/src/main.js +0 -237
  38. /package/framework/{v0.7.1 → v0.7.2}/AUTHORS +0 -0
  39. /package/framework/{v0.7.1 → v0.7.2}/LICENSE +0 -0
  40. /package/framework/{v0.7.1 → v0.7.2}/core/asset/html/nolayout.html +0 -0
  41. /package/framework/{v0.7.1 → v0.7.2}/core/asset/html/static.html +0 -0
  42. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/android-chrome-192x192.png +0 -0
  43. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/android-chrome-512x512.png +0 -0
  44. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/apple-touch-icon.png +0 -0
  45. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/favicon-16x16.png +0 -0
  46. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/favicon-32x32.png +0 -0
  47. /package/framework/{v0.7.1 → v0.7.2}/core/asset/img/favicon.ico +0 -0
  48. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/README.md +0 -0
  49. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  50. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  51. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  52. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  53. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  54. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  55. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  56. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  57. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  58. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  59. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  60. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  61. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  62. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  63. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  64. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  65. /package/framework/{v0.7.1 → v0.7.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  66. /package/framework/{v0.7.1 → v0.7.2}/core/config.js +0 -0
  67. /package/framework/{v0.7.1 → v0.7.2}/core/config.requirements-anchor.js +0 -0
  68. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/ai/index.js +0 -0
  69. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/ai/lib/connector.js +0 -0
  70. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/index.js +0 -0
  71. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/connector.js +0 -0
  72. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  73. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  74. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/n1ql.js +0 -0
  75. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/session-store.js +0 -0
  76. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  77. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  78. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/couchbase/lib/storage-store.js +0 -0
  79. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/duckdb/index.js +0 -0
  80. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/duckdb/lib/connector.js +0 -0
  81. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mongodb/index.js +0 -0
  82. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mongodb/lib/connector.js +0 -0
  83. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mongodb/lib/job-store.js +0 -0
  84. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  85. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mongodb/lib/session-store.js +0 -0
  86. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mysql/index.js +0 -0
  87. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/mysql/lib/connector.js +0 -0
  88. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/param-redact.js +0 -0
  89. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/postgresql/index.js +0 -0
  90. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/postgresql/lib/connector.js +0 -0
  91. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/index.js +0 -0
  92. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/lib/connector.js +0 -0
  93. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/lib/job-store.js +0 -0
  94. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/lib/kv-store.js +0 -0
  95. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/lib/render-cache-store.js +0 -0
  96. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/redis/lib/session-store.js +0 -0
  97. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/scylladb/index.js +0 -0
  98. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/scylladb/lib/connector.js +0 -0
  99. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/scylladb/lib/session-store.js +0 -0
  100. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/settle-once.js +0 -0
  101. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/sql-parser.js +0 -0
  102. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/sqlite/index.js +0 -0
  103. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/sqlite/lib/connector.js +0 -0
  104. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/sqlite/lib/job-store.js +0 -0
  105. /package/framework/{v0.7.1 → v0.7.2}/core/connectors/sqlite/lib/kv-store.js +0 -0
  106. /package/framework/{v0.7.1 → v0.7.2}/core/content.encoding +0 -0
  107. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.framework.js +0 -0
  108. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-json.js +0 -0
  109. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-nunjucks-async.js +0 -0
  110. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-stream.js +0 -0
  111. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-swig-async.js +0 -0
  112. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-swig.js +0 -0
  113. /package/framework/{v0.7.1 → v0.7.2}/core/controller/controller.render-v1.js +0 -0
  114. /package/framework/{v0.7.1 → v0.7.2}/core/controller/index.js +0 -0
  115. /package/framework/{v0.7.1 → v0.7.2}/core/controller/inline-script.js +0 -0
  116. /package/framework/{v0.7.1 → v0.7.2}/core/controller/inspector-window-emit.js +0 -0
  117. /package/framework/{v0.7.1 → v0.7.2}/core/controller/release-banner.js +0 -0
  118. /package/framework/{v0.7.1 → v0.7.2}/core/dev/index.js +0 -0
  119. /package/framework/{v0.7.1 → v0.7.2}/core/dev/lib/class.js +0 -0
  120. /package/framework/{v0.7.1 → v0.7.2}/core/dev/lib/factory.js +0 -0
  121. /package/framework/{v0.7.1 → v0.7.2}/core/dev/lib/tools.js +0 -0
  122. /package/framework/{v0.7.1 → v0.7.2}/core/locales/README.md +0 -0
  123. /package/framework/{v0.7.1 → v0.7.2}/core/locales/currency.json +0 -0
  124. /package/framework/{v0.7.1 → v0.7.2}/core/locales/dist/language/en.json +0 -0
  125. /package/framework/{v0.7.1 → v0.7.2}/core/locales/dist/language/fr.json +0 -0
  126. /package/framework/{v0.7.1 → v0.7.2}/core/locales/dist/region/en.json +0 -0
  127. /package/framework/{v0.7.1 → v0.7.2}/core/locales/dist/region/fr.json +0 -0
  128. /package/framework/{v0.7.1 → v0.7.2}/core/locales/index.js +0 -0
  129. /package/framework/{v0.7.1 → v0.7.2}/core/mime.types +0 -0
  130. /package/framework/{v0.7.1 → v0.7.2}/core/model/entity.js +0 -0
  131. /package/framework/{v0.7.1 → v0.7.2}/core/model/index.js +0 -0
  132. /package/framework/{v0.7.1 → v0.7.2}/core/model/template/entityFactory.js +0 -0
  133. /package/framework/{v0.7.1 → v0.7.2}/core/model/template/index.js +0 -0
  134. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/README.md +0 -0
  135. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/index.js +0 -0
  136. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/csrf/README.md +0 -0
  137. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/csrf/package.json +0 -0
  138. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/csrf/src/main.js +0 -0
  139. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/README.md +0 -0
  140. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coep/README.md +0 -0
  141. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coep/package.json +0 -0
  142. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  143. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coop/README.md +0 -0
  144. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coop/package.json +0 -0
  145. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  146. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/corp/README.md +0 -0
  147. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/corp/package.json +0 -0
  148. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  149. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/csp/README.md +0 -0
  150. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/csp/package.json +0 -0
  151. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  152. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  153. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  154. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  155. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  156. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  157. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  158. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  159. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  160. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  161. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/package.json +0 -0
  162. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  163. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  164. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  165. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/src/main.js +0 -0
  166. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  167. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  168. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  169. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  170. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  171. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  172. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  173. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  174. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  175. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  176. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  177. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  178. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  179. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  180. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  181. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  182. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  183. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  184. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/session/README.md +0 -0
  185. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/session/package.json +0 -0
  186. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/session/src/main.js +0 -0
  187. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/storage/README.md +0 -0
  188. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/storage/build.json +0 -0
  189. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/storage/package.json +0 -0
  190. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/storage/src/main.js +0 -0
  191. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/validator/README.md +0 -0
  192. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/validator/build.json +0 -0
  193. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/validator/package.json +0 -0
  194. /package/framework/{v0.7.1 → v0.7.2}/core/plugins/lib/validator/src/form-validator.js +0 -0
  195. /package/framework/{v0.7.1 → v0.7.2}/core/router.js +0 -0
  196. /package/framework/{v0.7.1 → v0.7.2}/core/server.express.js +0 -0
  197. /package/framework/{v0.7.1 → v0.7.2}/core/server.isaac.rapid-reset.js +0 -0
  198. /package/framework/{v0.7.1 → v0.7.2}/core/server.route-candidates.js +0 -0
  199. /package/framework/{v0.7.1 → v0.7.2}/core/status.codes +0 -0
  200. /package/framework/{v0.7.1 → v0.7.2}/core/template/_gitignore +0 -0
  201. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  202. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  203. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  204. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/settings.json +0 -0
  205. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  206. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/templates.json +0 -0
  207. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  208. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  209. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  210. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  211. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle/locales/en.json +0 -0
  212. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  213. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  214. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  215. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  216. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  217. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  218. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  219. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  220. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  221. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_public/sw.js +0 -0
  222. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  223. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  224. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  225. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  226. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  227. /package/framework/{v0.7.1 → v0.7.2}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  228. /package/framework/{v0.7.1 → v0.7.2}/core/template/command/gina.bat.tpl +0 -0
  229. /package/framework/{v0.7.1 → v0.7.2}/core/template/command/gina.tpl +0 -0
  230. /package/framework/{v0.7.1 → v0.7.2}/core/template/conf/env.json +0 -0
  231. /package/framework/{v0.7.1 → v0.7.2}/core/template/conf/manifest.json +0 -0
  232. /package/framework/{v0.7.1 → v0.7.2}/core/template/conf/package.json +0 -0
  233. /package/framework/{v0.7.1 → v0.7.2}/core/template/conf/settings.json +0 -0
  234. /package/framework/{v0.7.1 → v0.7.2}/core/template/conf/statics.json +0 -0
  235. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/client/json/401.json +0 -0
  236. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/client/json/403.json +0 -0
  237. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/client/json/404.json +0 -0
  238. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/server/html/50x.html +0 -0
  239. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/server/json/500.json +0 -0
  240. /package/framework/{v0.7.1 → v0.7.2}/core/template/error/server/json/503.json +0 -0
  241. /package/framework/{v0.7.1 → v0.7.2}/core/template/extensions/logger/config.json +0 -0
  242. /package/framework/{v0.7.1 → v0.7.2}/helpers/console.js +0 -0
  243. /package/framework/{v0.7.1 → v0.7.2}/helpers/context.js +0 -0
  244. /package/framework/{v0.7.1 → v0.7.2}/helpers/data/LICENSE +0 -0
  245. /package/framework/{v0.7.1 → v0.7.2}/helpers/data/README.md +0 -0
  246. /package/framework/{v0.7.1 → v0.7.2}/helpers/data/package.json +0 -0
  247. /package/framework/{v0.7.1 → v0.7.2}/helpers/data/src/main.js +0 -0
  248. /package/framework/{v0.7.1 → v0.7.2}/helpers/dateFormat.js +0 -0
  249. /package/framework/{v0.7.1 → v0.7.2}/helpers/index.js +0 -0
  250. /package/framework/{v0.7.1 → v0.7.2}/helpers/json/LICENSE +0 -0
  251. /package/framework/{v0.7.1 → v0.7.2}/helpers/json/README.md +0 -0
  252. /package/framework/{v0.7.1 → v0.7.2}/helpers/json/package.json +0 -0
  253. /package/framework/{v0.7.1 → v0.7.2}/helpers/json/src/main.js +0 -0
  254. /package/framework/{v0.7.1 → v0.7.2}/helpers/path.js +0 -0
  255. /package/framework/{v0.7.1 → v0.7.2}/helpers/plugins/README.md +0 -0
  256. /package/framework/{v0.7.1 → v0.7.2}/helpers/plugins/package.json +0 -0
  257. /package/framework/{v0.7.1 → v0.7.2}/helpers/plugins/src/api-error.js +0 -0
  258. /package/framework/{v0.7.1 → v0.7.2}/helpers/plugins/src/main.js +0 -0
  259. /package/framework/{v0.7.1 → v0.7.2}/helpers/prototypes.js +0 -0
  260. /package/framework/{v0.7.1 → v0.7.2}/helpers/task.js +0 -0
  261. /package/framework/{v0.7.1 → v0.7.2}/helpers/text.js +0 -0
  262. /package/framework/{v0.7.1 → v0.7.2}/lib/admin/package.json +0 -0
  263. /package/framework/{v0.7.1 → v0.7.2}/lib/admin/src/main.js +0 -0
  264. /package/framework/{v0.7.1 → v0.7.2}/lib/archiver/README.md +0 -0
  265. /package/framework/{v0.7.1 → v0.7.2}/lib/archiver/build.json +0 -0
  266. /package/framework/{v0.7.1 → v0.7.2}/lib/archiver/package.json +0 -0
  267. /package/framework/{v0.7.1 → v0.7.2}/lib/archiver/src/dep/jszip.min.js +0 -0
  268. /package/framework/{v0.7.1 → v0.7.2}/lib/archiver/src/main.js +0 -0
  269. /package/framework/{v0.7.1 → v0.7.2}/lib/async/package.json +0 -0
  270. /package/framework/{v0.7.1 → v0.7.2}/lib/async/src/main.js +0 -0
  271. /package/framework/{v0.7.1 → v0.7.2}/lib/audit/package.json +0 -0
  272. /package/framework/{v0.7.1 → v0.7.2}/lib/audit/src/main.js +0 -0
  273. /package/framework/{v0.7.1 → v0.7.2}/lib/audit-store.js +0 -0
  274. /package/framework/{v0.7.1 → v0.7.2}/lib/authn/package.json +0 -0
  275. /package/framework/{v0.7.1 → v0.7.2}/lib/authn/src/lockout.js +0 -0
  276. /package/framework/{v0.7.1 → v0.7.2}/lib/authn/src/main.js +0 -0
  277. /package/framework/{v0.7.1 → v0.7.2}/lib/authn/src/totp.js +0 -0
  278. /package/framework/{v0.7.1 → v0.7.2}/lib/authz-gate/package.json +0 -0
  279. /package/framework/{v0.7.1 → v0.7.2}/lib/authz-gate/src/main.js +0 -0
  280. /package/framework/{v0.7.1 → v0.7.2}/lib/cache/README.md +0 -0
  281. /package/framework/{v0.7.1 → v0.7.2}/lib/cache/build.json +0 -0
  282. /package/framework/{v0.7.1 → v0.7.2}/lib/cache/package.json +0 -0
  283. /package/framework/{v0.7.1 → v0.7.2}/lib/cache/src/main.js +0 -0
  284. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/aliases.json +0 -0
  285. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/audit/arguments.json +0 -0
  286. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/audit/help.txt +0 -0
  287. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/audit/verify.js +0 -0
  288. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/add.js +0 -0
  289. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/arguments.json +0 -0
  290. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/build.js +0 -0
  291. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/copy.js +0 -0
  292. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/cp.js +0 -0
  293. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/help.js +0 -0
  294. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/help.txt +0 -0
  295. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/inc/boot-lines.js +0 -0
  296. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  297. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/list.js +0 -0
  298. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/man.js +0 -0
  299. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/mcp-start.js +0 -0
  300. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/mcp.js +0 -0
  301. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/oas.js +0 -0
  302. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/openapi.js +0 -0
  303. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/remove.js +0 -0
  304. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/rename.js +0 -0
  305. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/restart.js +0 -0
  306. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/rm.js +0 -0
  307. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/start.js +0 -0
  308. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/status.js +0 -0
  309. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/stop.js +0 -0
  310. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/bundle/types.js +0 -0
  311. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/cache/arguments.json +0 -0
  312. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/cache/clear.js +0 -0
  313. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/cache/help.txt +0 -0
  314. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/cache/stats.js +0 -0
  315. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/add.js +0 -0
  316. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/arguments.json +0 -0
  317. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/help.js +0 -0
  318. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/help.txt +0 -0
  319. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/infer.js +0 -0
  320. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/list.js +0 -0
  321. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/migrate.js +0 -0
  322. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/models.js +0 -0
  323. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/remove.js +0 -0
  324. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/rm.js +0 -0
  325. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/connector/test.js +0 -0
  326. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/arguments.json +0 -0
  327. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/help.js +0 -0
  328. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/help.txt +0 -0
  329. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/man.js +0 -0
  330. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/ps.js +0 -0
  331. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/container/stop.js +0 -0
  332. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/add.js +0 -0
  333. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/arguments.json +0 -0
  334. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/help.txt +0 -0
  335. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/inc/args.js +0 -0
  336. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/inc/namespace.js +0 -0
  337. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  338. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/inc/reference-scan.js +0 -0
  339. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/inc/scaffold.js +0 -0
  340. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/remove.js +0 -0
  341. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/rename.js +0 -0
  342. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/controller/rm.js +0 -0
  343. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/add.js +0 -0
  344. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/get.js +0 -0
  345. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/help.js +0 -0
  346. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/help.txt +0 -0
  347. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/inc/name.js +0 -0
  348. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/link-dev.js +0 -0
  349. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/list.js +0 -0
  350. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/remove.js +0 -0
  351. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/rm.js +0 -0
  352. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/set.js +0 -0
  353. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/unset.js +0 -0
  354. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/env/use.js +0 -0
  355. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/add.js +0 -0
  356. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/arguments.json +0 -0
  357. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/build.js +0 -0
  358. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/dot.js +0 -0
  359. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/get.js +0 -0
  360. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/help.js +0 -0
  361. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/help.txt +0 -0
  362. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/inc/ps-titles.js +0 -0
  363. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/init.js +0 -0
  364. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/link-node-modules.js +0 -0
  365. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/link.js +0 -0
  366. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/list.js +0 -0
  367. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/man.js +0 -0
  368. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/msg.json +0 -0
  369. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/open.js +0 -0
  370. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/remove.js +0 -0
  371. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/reset.js +0 -0
  372. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/restart.js +0 -0
  373. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/set.js +0 -0
  374. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/start.js +0 -0
  375. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/status.js +0 -0
  376. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/stop.js +0 -0
  377. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/tail.js +0 -0
  378. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/update.js +0 -0
  379. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/framework/version.js +0 -0
  380. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/gina-dev.1.md +0 -0
  381. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/gina-framework.1.md +0 -0
  382. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/gina.1.md +0 -0
  383. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/helper.js +0 -0
  384. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/add.js +0 -0
  385. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/arguments.json +0 -0
  386. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/export.js +0 -0
  387. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/help.js +0 -0
  388. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/help.txt +0 -0
  389. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/import.js +0 -0
  390. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/i18n/scan.js +0 -0
  391. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/_host.js +0 -0
  392. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/arguments.json +0 -0
  393. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/build.js +0 -0
  394. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/help.js +0 -0
  395. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/help.txt +0 -0
  396. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/list.js +0 -0
  397. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/man.js +0 -0
  398. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/rm.js +0 -0
  399. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/image/run.js +0 -0
  400. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/index.js +0 -0
  401. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/inspector/help.js +0 -0
  402. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/inspector/help.txt +0 -0
  403. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/inspector/open.js +0 -0
  404. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/man-render.js +0 -0
  405. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/minion/arguments.json +0 -0
  406. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/minion/help.js +0 -0
  407. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/minion/help.txt +0 -0
  408. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/minion/kill.js +0 -0
  409. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/minion/list.js +0 -0
  410. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/msg.json +0 -0
  411. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/help.js +0 -0
  412. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/help.txt +0 -0
  413. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/inc/scan.js +0 -0
  414. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/list.js +0 -0
  415. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/reset.js +0 -0
  416. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/port/set.js +0 -0
  417. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/add.js +0 -0
  418. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/arguments.json +0 -0
  419. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/backup.js +0 -0
  420. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/build.js +0 -0
  421. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/help.js +0 -0
  422. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/help.txt +0 -0
  423. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/import.js +0 -0
  424. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/list.js +0 -0
  425. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/man.js +0 -0
  426. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/move.js +0 -0
  427. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/remove.js +0 -0
  428. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/rename.js +0 -0
  429. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/restart.js +0 -0
  430. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/restore.js +0 -0
  431. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/rm.js +0 -0
  432. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/start.js +0 -0
  433. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/status.js +0 -0
  434. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/project/stop.js +0 -0
  435. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/arguments.json +0 -0
  436. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/help.js +0 -0
  437. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/help.txt +0 -0
  438. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/list.js +0 -0
  439. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/remove.js +0 -0
  440. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/protocol/set.js +0 -0
  441. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/add.js +0 -0
  442. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/help.js +0 -0
  443. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/help.txt +0 -0
  444. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/inc/name.js +0 -0
  445. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/link-local.js +0 -0
  446. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/link-production.js +0 -0
  447. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/list.js +0 -0
  448. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/remove.js +0 -0
  449. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/rm.js +0 -0
  450. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/scope/use.js +0 -0
  451. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/secrets/arguments.json +0 -0
  452. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/secrets/check.js +0 -0
  453. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/secrets/help.js +0 -0
  454. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/secrets/help.txt +0 -0
  455. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/secrets/scan.js +0 -0
  456. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/service/help.js +0 -0
  457. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/service/help.txt +0 -0
  458. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/service/list.js +0 -0
  459. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/service/man.js +0 -0
  460. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/service/start.js +0 -0
  461. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/storage/arguments.json +0 -0
  462. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/storage/gc.js +0 -0
  463. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/storage/help.txt +0 -0
  464. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/storage/stats.js +0 -0
  465. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/storage/verify.js +0 -0
  466. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd/view/add.js +0 -0
  467. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd-status-format/package.json +0 -0
  468. /package/framework/{v0.7.1 → v0.7.2}/lib/cmd-status-format/src/main.js +0 -0
  469. /package/framework/{v0.7.1 → v0.7.2}/lib/collection/README.md +0 -0
  470. /package/framework/{v0.7.1 → v0.7.2}/lib/collection/build.json +0 -0
  471. /package/framework/{v0.7.1 → v0.7.2}/lib/collection/package.json +0 -0
  472. /package/framework/{v0.7.1 → v0.7.2}/lib/collection/src/main.js +0 -0
  473. /package/framework/{v0.7.1 → v0.7.2}/lib/conf-view/package.json +0 -0
  474. /package/framework/{v0.7.1 → v0.7.2}/lib/conf-view/src/main.js +0 -0
  475. /package/framework/{v0.7.1 → v0.7.2}/lib/config.js +0 -0
  476. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-config/package.json +0 -0
  477. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-config/src/main.js +0 -0
  478. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-error/package.json +0 -0
  479. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-error/src/main.js +0 -0
  480. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-registry/package.json +0 -0
  481. /package/framework/{v0.7.1 → v0.7.2}/lib/connector-registry/src/main.js +0 -0
  482. /package/framework/{v0.7.1 → v0.7.2}/lib/cron/README.md +0 -0
  483. /package/framework/{v0.7.1 → v0.7.2}/lib/cron/package.json +0 -0
  484. /package/framework/{v0.7.1 → v0.7.2}/lib/cron/src/main.js +0 -0
  485. /package/framework/{v0.7.1 → v0.7.2}/lib/domain/LICENSE +0 -0
  486. /package/framework/{v0.7.1 → v0.7.2}/lib/domain/README.md +0 -0
  487. /package/framework/{v0.7.1 → v0.7.2}/lib/domain/package.json +0 -0
  488. /package/framework/{v0.7.1 → v0.7.2}/lib/domain/src/main.js +0 -0
  489. /package/framework/{v0.7.1 → v0.7.2}/lib/dto/package.json +0 -0
  490. /package/framework/{v0.7.1 → v0.7.2}/lib/dto/src/main.js +0 -0
  491. /package/framework/{v0.7.1 → v0.7.2}/lib/dto-pipe/package.json +0 -0
  492. /package/framework/{v0.7.1 → v0.7.2}/lib/dto-pipe/src/main.js +0 -0
  493. /package/framework/{v0.7.1 → v0.7.2}/lib/dto-types/package.json +0 -0
  494. /package/framework/{v0.7.1 → v0.7.2}/lib/dto-types/src/main.js +0 -0
  495. /package/framework/{v0.7.1 → v0.7.2}/lib/duration/package.json +0 -0
  496. /package/framework/{v0.7.1 → v0.7.2}/lib/duration/src/main.js +0 -0
  497. /package/framework/{v0.7.1 → v0.7.2}/lib/generator/index.js +0 -0
  498. /package/framework/{v0.7.1 → v0.7.2}/lib/i18n/package.json +0 -0
  499. /package/framework/{v0.7.1 → v0.7.2}/lib/i18n/src/main.js +0 -0
  500. /package/framework/{v0.7.1 → v0.7.2}/lib/idempotency/package.json +0 -0
  501. /package/framework/{v0.7.1 → v0.7.2}/lib/idempotency/src/main.js +0 -0
  502. /package/framework/{v0.7.1 → v0.7.2}/lib/image-build/package.json +0 -0
  503. /package/framework/{v0.7.1 → v0.7.2}/lib/image-build/src/main.js +0 -0
  504. /package/framework/{v0.7.1 → v0.7.2}/lib/inherits/LICENSE +0 -0
  505. /package/framework/{v0.7.1 → v0.7.2}/lib/inherits/README.md +0 -0
  506. /package/framework/{v0.7.1 → v0.7.2}/lib/inherits/package.json +0 -0
  507. /package/framework/{v0.7.1 → v0.7.2}/lib/inherits/src/main.js +0 -0
  508. /package/framework/{v0.7.1 → v0.7.2}/lib/inspector-events/package.json +0 -0
  509. /package/framework/{v0.7.1 → v0.7.2}/lib/inspector-events/src/main.js +0 -0
  510. /package/framework/{v0.7.1 → v0.7.2}/lib/inspector-redact/package.json +0 -0
  511. /package/framework/{v0.7.1 → v0.7.2}/lib/inspector-redact/src/main.js +0 -0
  512. /package/framework/{v0.7.1 → v0.7.2}/lib/instrument/package.json +0 -0
  513. /package/framework/{v0.7.1 → v0.7.2}/lib/instrument/src/main.js +0 -0
  514. /package/framework/{v0.7.1 → v0.7.2}/lib/job/package.json +0 -0
  515. /package/framework/{v0.7.1 → v0.7.2}/lib/job/src/main.js +0 -0
  516. /package/framework/{v0.7.1 → v0.7.2}/lib/job-store.js +0 -0
  517. /package/framework/{v0.7.1 → v0.7.2}/lib/json-config-header/package.json +0 -0
  518. /package/framework/{v0.7.1 → v0.7.2}/lib/json-config-header/src/main.js +0 -0
  519. /package/framework/{v0.7.1 → v0.7.2}/lib/kv/package.json +0 -0
  520. /package/framework/{v0.7.1 → v0.7.2}/lib/kv/src/main.js +0 -0
  521. /package/framework/{v0.7.1 → v0.7.2}/lib/kv-store.js +0 -0
  522. /package/framework/{v0.7.1 → v0.7.2}/lib/loading-state/package.json +0 -0
  523. /package/framework/{v0.7.1 → v0.7.2}/lib/loading-state/src/main.js +0 -0
  524. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/README.md +0 -0
  525. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/package.json +0 -0
  526. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/containers/default/index.js +0 -0
  527. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/containers/file/index.js +0 -0
  528. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/containers/mq/index.js +0 -0
  529. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/containers/mq/listener.js +0 -0
  530. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/containers/mq/speaker.js +0 -0
  531. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/helper.js +0 -0
  532. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/main.js +0 -0
  533. /package/framework/{v0.7.1 → v0.7.2}/lib/logger/src/redact.js +0 -0
  534. /package/framework/{v0.7.1 → v0.7.2}/lib/maintenance/package.json +0 -0
  535. /package/framework/{v0.7.1 → v0.7.2}/lib/maintenance/src/main.js +0 -0
  536. /package/framework/{v0.7.1 → v0.7.2}/lib/math/index.js +0 -0
  537. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-dispatch/package.json +0 -0
  538. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-dispatch/src/main.js +0 -0
  539. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-http/package.json +0 -0
  540. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-http/src/main.js +0 -0
  541. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-server/package.json +0 -0
  542. /package/framework/{v0.7.1 → v0.7.2}/lib/mcp-server/src/main.js +0 -0
  543. /package/framework/{v0.7.1 → v0.7.2}/lib/merge/README.md +0 -0
  544. /package/framework/{v0.7.1 → v0.7.2}/lib/merge/package.json +0 -0
  545. /package/framework/{v0.7.1 → v0.7.2}/lib/merge/src/main.js +0 -0
  546. /package/framework/{v0.7.1 → v0.7.2}/lib/message-validator/package.json +0 -0
  547. /package/framework/{v0.7.1 → v0.7.2}/lib/message-validator/src/main.js +0 -0
  548. /package/framework/{v0.7.1 → v0.7.2}/lib/metrics/package.json +0 -0
  549. /package/framework/{v0.7.1 → v0.7.2}/lib/metrics/src/main.js +0 -0
  550. /package/framework/{v0.7.1 → v0.7.2}/lib/model.js +0 -0
  551. /package/framework/{v0.7.1 → v0.7.2}/lib/money/package.json +0 -0
  552. /package/framework/{v0.7.1 → v0.7.2}/lib/money/src/main.js +0 -0
  553. /package/framework/{v0.7.1 → v0.7.2}/lib/multipart/package.json +0 -0
  554. /package/framework/{v0.7.1 → v0.7.2}/lib/multipart/src/main.js +0 -0
  555. /package/framework/{v0.7.1 → v0.7.2}/lib/net-locality/package.json +0 -0
  556. /package/framework/{v0.7.1 → v0.7.2}/lib/net-locality/src/main.js +0 -0
  557. /package/framework/{v0.7.1 → v0.7.2}/lib/nunjucks-filters/README.md +0 -0
  558. /package/framework/{v0.7.1 → v0.7.2}/lib/nunjucks-filters/package.json +0 -0
  559. /package/framework/{v0.7.1 → v0.7.2}/lib/nunjucks-filters/src/main.js +0 -0
  560. /package/framework/{v0.7.1 → v0.7.2}/lib/nunjucks-resolver/package.json +0 -0
  561. /package/framework/{v0.7.1 → v0.7.2}/lib/nunjucks-resolver/src/main.js +0 -0
  562. /package/framework/{v0.7.1 → v0.7.2}/lib/priority/package.json +0 -0
  563. /package/framework/{v0.7.1 → v0.7.2}/lib/priority/src/main.js +0 -0
  564. /package/framework/{v0.7.1 → v0.7.2}/lib/proc.js +0 -0
  565. /package/framework/{v0.7.1 → v0.7.2}/lib/push/package.json +0 -0
  566. /package/framework/{v0.7.1 → v0.7.2}/lib/push/src/main.js +0 -0
  567. /package/framework/{v0.7.1 → v0.7.2}/lib/rate-limit/package.json +0 -0
  568. /package/framework/{v0.7.1 → v0.7.2}/lib/rate-limit/src/main.js +0 -0
  569. /package/framework/{v0.7.1 → v0.7.2}/lib/release-watch/package.json +0 -0
  570. /package/framework/{v0.7.1 → v0.7.2}/lib/release-watch/src/main.js +0 -0
  571. /package/framework/{v0.7.1 → v0.7.2}/lib/render-cache/package.json +0 -0
  572. /package/framework/{v0.7.1 → v0.7.2}/lib/render-cache/src/main.js +0 -0
  573. /package/framework/{v0.7.1 → v0.7.2}/lib/render-cache-store.js +0 -0
  574. /package/framework/{v0.7.1 → v0.7.2}/lib/routing/README.md +0 -0
  575. /package/framework/{v0.7.1 → v0.7.2}/lib/routing/build.json +0 -0
  576. /package/framework/{v0.7.1 → v0.7.2}/lib/routing/package.json +0 -0
  577. /package/framework/{v0.7.1 → v0.7.2}/lib/routing/src/main.js +0 -0
  578. /package/framework/{v0.7.1 → v0.7.2}/lib/routing-introspect/package.json +0 -0
  579. /package/framework/{v0.7.1 → v0.7.2}/lib/routing-introspect/src/main.js +0 -0
  580. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/package.json +0 -0
  581. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/backends/env.js +0 -0
  582. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/backends/exec.js +0 -0
  583. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/backends/file.js +0 -0
  584. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/declaration.js +0 -0
  585. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/env-file.js +0 -0
  586. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/main.js +0 -0
  587. /package/framework/{v0.7.1 → v0.7.2}/lib/secrets/src/sources.js +0 -0
  588. /package/framework/{v0.7.1 → v0.7.2}/lib/security-headers-emitter/package.json +0 -0
  589. /package/framework/{v0.7.1 → v0.7.2}/lib/security-headers-emitter/src/main.js +0 -0
  590. /package/framework/{v0.7.1 → v0.7.2}/lib/session-lifetime/package.json +0 -0
  591. /package/framework/{v0.7.1 → v0.7.2}/lib/session-lifetime/src/main.js +0 -0
  592. /package/framework/{v0.7.1 → v0.7.2}/lib/session-store.js +0 -0
  593. /package/framework/{v0.7.1 → v0.7.2}/lib/shell.js +0 -0
  594. /package/framework/{v0.7.1 → v0.7.2}/lib/sqlite-driver.js +0 -0
  595. /package/framework/{v0.7.1 → v0.7.2}/lib/sri/package.json +0 -0
  596. /package/framework/{v0.7.1 → v0.7.2}/lib/state.js +0 -0
  597. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/package.json +0 -0
  598. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/local-cas.js +0 -0
  599. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/local-stream.js +0 -0
  600. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/local.js +0 -0
  601. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/main.js +0 -0
  602. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/meta-store.js +0 -0
  603. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/s3.js +0 -0
  604. /package/framework/{v0.7.1 → v0.7.2}/lib/storage/src/util.js +0 -0
  605. /package/framework/{v0.7.1 → v0.7.2}/lib/storage-store.js +0 -0
  606. /package/framework/{v0.7.1 → v0.7.2}/lib/swig-filters/README.md +0 -0
  607. /package/framework/{v0.7.1 → v0.7.2}/lib/swig-filters/package.json +0 -0
  608. /package/framework/{v0.7.1 → v0.7.2}/lib/swig-filters/src/main.js +0 -0
  609. /package/framework/{v0.7.1 → v0.7.2}/lib/swig-resolver/package.json +0 -0
  610. /package/framework/{v0.7.1 → v0.7.2}/lib/swig-resolver/src/main.js +0 -0
  611. /package/framework/{v0.7.1 → v0.7.2}/lib/template-loaders/package.json +0 -0
  612. /package/framework/{v0.7.1 → v0.7.2}/lib/template-loaders/src/loaders/http.js +0 -0
  613. /package/framework/{v0.7.1 → v0.7.2}/lib/template-loaders/src/loaders/memory.js +0 -0
  614. /package/framework/{v0.7.1 → v0.7.2}/lib/template-loaders/src/main.js +0 -0
  615. /package/framework/{v0.7.1 → v0.7.2}/lib/url/README.md +0 -0
  616. /package/framework/{v0.7.1 → v0.7.2}/lib/url/index.js +0 -0
  617. /package/framework/{v0.7.1 → v0.7.2}/lib/url/routing.json +0 -0
  618. /package/framework/{v0.7.1 → v0.7.2}/lib/uuid/package.json +0 -0
  619. /package/framework/{v0.7.1 → v0.7.2}/lib/uuid/src/main.js +0 -0
  620. /package/framework/{v0.7.1 → v0.7.2}/lib/validator.js +0 -0
  621. /package/framework/{v0.7.1 → v0.7.2}/lib/watcher/package.json +0 -0
  622. /package/framework/{v0.7.1 → v0.7.2}/lib/watcher/src/main.js +0 -0
  623. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-framing/package.json +0 -0
  624. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-framing/src/main.js +0 -0
  625. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-query/package.json +0 -0
  626. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-query/src/main.js +0 -0
  627. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-session/package.json +0 -0
  628. /package/framework/{v0.7.1 → v0.7.2}/lib/ws-session/src/main.js +0 -0
@@ -1412,6 +1412,18 @@ function Server(options) {
1412
1412
  'W/"' + crypto.createHash('sha1').update(self._clientRoutingAssets.stripped).digest('hex').substr(0, 16) + '"';
1413
1413
  serverOpt.clientRoutingAssets.fullEtag = self._clientRoutingAssets.fullEtag;
1414
1414
  serverOpt.clientRoutingAssets.strippedEtag = self._clientRoutingAssets.strippedEtag;
1415
+ // #P48 — per-variant routing-table tokens, the head of the same sha1 as
1416
+ // the ETags: a routing change mints a new one, a restart with the same
1417
+ // routes keeps it. The page names its variant's token on gina's own
1418
+ // script tag; both engines' handlers answer `immutable` only to the
1419
+ // token of the variant they serve (a mis-classified request fails the
1420
+ // check and revalidates).
1421
+ self._clientRoutingAssets.fullVersion =
1422
+ crypto.createHash('sha1').update(self._clientRoutingAssets.full).digest('hex').substring(0, 10);
1423
+ self._clientRoutingAssets.strippedVersion =
1424
+ crypto.createHash('sha1').update(self._clientRoutingAssets.stripped).digest('hex').substring(0, 10);
1425
+ serverOpt.clientRoutingAssets.fullVersion = self._clientRoutingAssets.fullVersion;
1426
+ serverOpt.clientRoutingAssets.strippedVersion = self._clientRoutingAssets.strippedVersion;
1415
1427
 
1416
1428
  Engine = require('./server.' + ((typeof (serverOpt.engine) != 'undefined' && serverOpt.engine != '') ? serverOpt.engine : 'express'));
1417
1429
  var engine = new Engine(serverOpt);
@@ -1615,6 +1627,27 @@ function Server(options) {
1615
1627
  console.debug('[ BUNDLE ][ server ][ init ] Registered '+ _msvCount +' route message validator(s) for [ '+ self.appName +' ]');
1616
1628
  }
1617
1629
 
1630
+ // #P49 — register every routing.json-declared fast-lane route at BOOT.
1631
+ // A route opts into controller-free dispatch with `param.lane`, naming a
1632
+ // `<bundle>/lanes/<name>.js` module whose `param.control` export answers it
1633
+ // (`module.exports.list = function (ctx) { ... };`). lib/lane lints each
1634
+ // route and requires its module HERE, so the request path is an O(1)
1635
+ // registry read, and a route the lane cannot serve faithfully (route
1636
+ // middleware, `cache`, or a gate the lane does not run yet) refuses to
1637
+ // BOOT instead of silently losing that behaviour (the #B57 rule, as for the
1638
+ // registrars above). A lane module edit hot-reloads in dev mode (core/gna.js
1639
+ // watches the lane directories); a routing change needs a bundle restart.
1640
+ var _laneConf = self.conf[self.appName][self.env];
1641
+ var _laneCount = lib.lane.registerRoutes(serverOpt.routing || {}, {
1642
+ bundle : self.appName,
1643
+ bundlesPath : _laneConf.bundlesPath,
1644
+ settings : ( _laneConf.content ) ? _laneConf.content.settings : null,
1645
+ server : _laneConf.server
1646
+ });
1647
+ if ( _laneCount > 0 ) {
1648
+ console.debug('[ BUNDLE ][ server ][ init ] Registered '+ _laneCount +' lane route(s) for [ '+ self.appName +' ]');
1649
+ }
1650
+
1618
1651
  // #COMPLY1 — lint every declared authorization flag and resolve the login
1619
1652
  // bounce target at BOOT. A route gates its access with `param.requireAuth`;
1620
1653
  // `lib/authz-gate` enforces it at both core/router.js dispatch sites.
@@ -2827,6 +2860,17 @@ function Server(options) {
2827
2860
  instance._cacheName = lib.RenderCache.resolveCacheName(self.conf[self.appName][self.env].server.cache);
2828
2861
  }
2829
2862
 
2863
+ // #P48 — the routing table's per-variant tokens (built with the maps in
2864
+ // init, before the engine), stamped where the controller reads them to
2865
+ // render `data-gina-routing-v` on gina's own script tag. Absent maps
2866
+ // leave it unset: the page then fetches the table unversioned.
2867
+ if ( typeof(instance._routingVersion) == 'undefined' && self._clientRoutingAssets ) {
2868
+ instance._routingVersion = {
2869
+ full : self._clientRoutingAssets.fullVersion,
2870
+ stripped : self._clientRoutingAssets.strippedVersion
2871
+ };
2872
+ }
2873
+
2830
2874
  // #MS5 — per-authority query circuit-breaker policy, resolved ONCE
2831
2875
  // from the post-fold `server.query.circuitBreaker` and stamped where
2832
2876
  // `controller.query()` reads it (mirrors the `_cache*` scalars above;
@@ -3744,6 +3788,67 @@ function Server(options) {
3744
3788
  }
3745
3789
  }
3746
3790
 
3791
+ /**
3792
+ * Appends field names to a response's `Vary` header (RFC 9110 § 12.5.5).
3793
+ * `Vary` is a list, so a value already set (by a middleware, by the
3794
+ * configured `server.response.header`, or by the caller) is kept: a name
3795
+ * already listed, in any case, is not added again, and nothing is added
3796
+ * after a `*`, which already varies on everything. Takes one name, a
3797
+ * comma-separated list, or an array of either, so a value read back with
3798
+ * `getHeader('vary')` can be passed straight in to restore it. Does nothing
3799
+ * once the headers are sent. Keep in sync with the twin in
3800
+ * core/server.isaac.js (#B743).
3801
+ *
3802
+ * @inner
3803
+ * @private
3804
+ * @param {object} response - Server response object (HTTP/1.x, or the HTTP/2 compatibility API)
3805
+ * @param {string|string[]|null|undefined} names - Field name(s) to add; an empty value adds nothing
3806
+ * @returns {void}
3807
+ *
3808
+ * @example
3809
+ * // Vary: Origin → Vary: Origin, Accept-Encoding
3810
+ * appendVary(response, 'Accept-Encoding');
3811
+ *
3812
+ * @example
3813
+ * // restore what a later setHeader('vary', …) replaced
3814
+ * var before = response.getHeader('vary'); // 'Origin, Accept-Encoding'
3815
+ * response.setHeader('vary', 'Origin');
3816
+ * appendVary(response, before); // Vary: Origin, Accept-Encoding
3817
+ */
3818
+ var appendVary = function(response, names) {
3819
+ if (
3820
+ !response
3821
+ || typeof(response.getHeader) != 'function'
3822
+ || typeof(response.setHeader) != 'function'
3823
+ || response.headersSent
3824
+ ) {
3825
+ return;
3826
+ }
3827
+ var list = ( Array.isArray(names) ) ? names.join(',') : names;
3828
+ if ( typeof(list) == 'undefined' || list === null || String(list).trim() === '' ) {
3829
+ return;
3830
+ }
3831
+ var current = response.getHeader('vary');
3832
+ if ( Array.isArray(current) ) {
3833
+ current = current.join(', ');
3834
+ }
3835
+ current = ( typeof(current) == 'undefined' || current === null ) ? '' : String(current).trim();
3836
+ var present = ( current === '' ) ? [] : current.toLowerCase().split(',').map(function(n) { return n.trim(); });
3837
+ var added = [];
3838
+ String(list).split(',').forEach(function(n) {
3839
+ n = n.trim();
3840
+ if ( n === '' || present.indexOf('*') > -1 || present.indexOf(n.toLowerCase()) > -1 ) {
3841
+ return;
3842
+ }
3843
+ present.push(n.toLowerCase());
3844
+ added.push(n);
3845
+ });
3846
+ if ( added.length == 0 ) {
3847
+ return;
3848
+ }
3849
+ response.setHeader('vary', ( current === '' ) ? added.join(', ') : current +', '+ added.join(', '));
3850
+ }
3851
+
3747
3852
  /**
3748
3853
  * Returns the negotiated response protocol string (e.g. `'http/1.1'` or
3749
3854
  * `'http/2'`). Upgrades to `'http/2'` when the bundle is configured for
@@ -3824,6 +3929,10 @@ function Server(options) {
3824
3929
  , preferedEncoding = bundleConf.server.preferedCompressionEncodingOrder
3825
3930
  , acceptEncodingArr = (request.headers['accept-encoding']) ? request.headers['accept-encoding'].replace(/\s+/g, '').split(/\,/) : []
3826
3931
  , acceptEncoding = null
3932
+ // #P48 — the content token a request asks for (`?v=`) and whether it
3933
+ // names the bytes served (production only, set below)
3934
+ , versionRequested = null
3935
+ , versionMatched = false
3827
3936
  ;
3828
3937
 
3829
3938
  // catch `statics.json` defined paths
@@ -3965,14 +4074,53 @@ function Server(options) {
3965
4074
  var lastModified = stat.mtime.toUTCString();
3966
4075
  var etag = '"' + stat.size + '-' + stat.mtime.getTime() + '"';
3967
4076
 
4077
+ // #B743 — in production, HTTP/1.x serves a precompressed copy
4078
+ // (`.br`, `.gz`) in place of the file when the request accepts its
4079
+ // coding (below), so the response varies on Accept-Encoding; HTTP/2
4080
+ // always sends the file itself. Set before the conditional-GET
4081
+ // decision so the 304 carries the Vary its 200 would (RFC 9110
4082
+ // § 15.4.5): that includes a configured `vary`, which
4083
+ // completeHeaders() sets on the 200 only, read from the same block.
4084
+ // Appended to any Vary already set.
4085
+ if ( !isCacheless && !/http\/2/.test(protocol) ) {
4086
+ var _varyConfHeader = ( bundleConf.server.response && bundleConf.server.response.header ) ? bundleConf.server.response.header : {};
4087
+ for (let h in _varyConfHeader) {
4088
+ if ( /^vary$/i.test(h) ) {
4089
+ appendVary(response, _varyConfHeader[h]);
4090
+ }
4091
+ }
4092
+ appendVary(response, 'Accept-Encoding');
4093
+ }
4094
+
3968
4095
  // 304 Not Modified — only in production (dev always re-serves for live reload)
3969
4096
  if (!isCacheless) {
4097
+ // #P48 — a gina content token (10 hex: an author's own `v=` is
4098
+ // left alone) is honoured only when it names THIS file's bytes:
4099
+ // `immutable` then, `no-cache` for any other token, today's
4100
+ // headers without one. Read off the original URL (request.url
4101
+ // is query-free here on both engines); over 8 MiB no token
4102
+ // matches (the lib/sri cap).
4103
+ versionRequested = lib.sri.getRequestedVersion(request.originalUrl || request.url);
4104
+ if ( versionRequested !== null && !/^[0-9a-f]{10}$/.test(versionRequested) ) {
4105
+ versionRequested = null;
4106
+ }
4107
+ versionMatched = ( versionRequested !== null && versionRequested === lib.sri.computeVersion(filename) ) ? true : false;
3970
4108
  var ifNoneMatch = request.headers['if-none-match'];
3971
4109
  var ifModifiedSince = request.headers['if-modified-since'];
3972
4110
  var isNotModified = (ifNoneMatch && ifNoneMatch === etag)
3973
4111
  || (!ifNoneMatch && ifModifiedSince && new Date(ifModifiedSince) >= stat.mtime);
3974
4112
  if (isNotModified) {
3975
- if ( /http\/2/.test(protocol) ) {
4113
+ if ( /http\/2/.test(protocol) && versionMatched ) {
4114
+ // #P48 — the Cache-Control its 200 carries (RFC 9110
4115
+ // § 15.4.5): HTTP/2 serves the source file itself. The
4116
+ // other 304s carry no Cache-Control: the HTTP/1.x one is
4117
+ // decided before a precompressed sibling is picked, and a
4118
+ // 304 without it keeps what the browser stored with its
4119
+ // copy. (The HTTP/1.x 304 does carry the Vary set above,
4120
+ // #B743.)
4121
+ stream.respond({ ':status': 304, 'cache-control': 'public, max-age=31536000, immutable' });
4122
+ stream.end();
4123
+ } else if ( /http\/2/.test(protocol) ) {
3976
4124
  stream.respond({ ':status': 304 });
3977
4125
  stream.end();
3978
4126
  } else {
@@ -4058,6 +4206,11 @@ function Server(options) {
4058
4206
  // production: ETag + Last-Modified enable conditional GET (304) (#Next)
4059
4207
  header['last-modified'] = lastModified;
4060
4208
  header['etag'] = etag;
4209
+ // #P48 — a token request: a year when the token names
4210
+ // these bytes, revalidate-before-use otherwise
4211
+ if ( versionRequested !== null ) {
4212
+ header['cache-control'] = ( versionMatched ) ? 'public, max-age=31536000, immutable' : 'no-cache';
4213
+ }
4061
4214
  }
4062
4215
 
4063
4216
  header = completeHeaders(header, request, response);
@@ -4069,7 +4222,14 @@ function Server(options) {
4069
4222
  }
4070
4223
  } else {
4071
4224
 
4225
+ // #B743 — completeHeaders() re-applies the configured response
4226
+ // headers with setHeader, so a configured `vary` replaces the
4227
+ // Vary set above: restore it (the 304 above carried all of it).
4228
+ var _varyBeforeComplete = response.getHeader('vary');
4072
4229
  completeHeaders(null, request, response);
4230
+ if ( !isCacheless ) {
4231
+ appendVary(response, _varyBeforeComplete);
4232
+ }
4073
4233
  response.setHeader('content-type', contentType +'; charset='+ bundleConf.encoding);
4074
4234
  // if (/\.(woff|woff2)$/i.test(filename) ) {
4075
4235
  // response.setHeader("transfer-encoding", 'Identity')
@@ -4081,9 +4241,13 @@ function Server(options) {
4081
4241
 
4082
4242
  // acceptEncodingArr = request.headers['accept-encoding'].replace(/\s+/g, '').split(/\,/);
4083
4243
  // acceptEncoding = null;
4244
+ // #B742 — the coding's NAME (`gzip`), kept beside its file
4245
+ // extension (`acceptEncoding`, `.gz`): Content-Encoding takes the name.
4246
+ var acceptEncodingName = null;
4084
4247
  for (let e=0, eLen=preferedEncoding.length; e<eLen; e++) {
4085
4248
  if ( acceptEncodingArr && acceptEncodingArr.indexOf(preferedEncoding[e]) > -1 ) {
4086
4249
  acceptEncoding = bundleConf.server.coreConfiguration.encoding[ preferedEncoding[e] ] ;
4250
+ acceptEncodingName = preferedEncoding[e];
4087
4251
  break;
4088
4252
  }
4089
4253
  }
@@ -4095,9 +4259,24 @@ function Server(options) {
4095
4259
  ) {
4096
4260
  filename += acceptEncoding;
4097
4261
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Encoding
4098
- response.setHeader('content-encoding', acceptEncoding.replace(/^\./, ''));
4262
+ // was: response.setHeader('content-encoding', acceptEncoding.replace(/^\./, ''));
4263
+ // #B742 — the extension without its dot is not a coding name for
4264
+ // gzip (`gz`), deflate (`zip`), compress (`z`) or zstd (`zst`), and
4265
+ // a browser does not decode such a response.
4266
+ response.setHeader('content-encoding', acceptEncodingName);
4099
4267
  // override content length
4100
- response.setHeader('content-length', fs.statSync(filename).size);
4268
+ var siblingStat = fs.statSync(filename);
4269
+ response.setHeader('content-length', siblingStat.size);
4270
+ // #P48 — the token names the SOURCE's bytes: a sibling
4271
+ // older than its source may be stale, so it is never
4272
+ // served `immutable` (it revalidates instead). Compared in
4273
+ // whole seconds, the resolution of Last-Modified: a
4274
+ // compressor that keeps its source's timestamp truncates
4275
+ // it (brotli to the second, gzip to the microsecond), so a
4276
+ // sibling of the same build lands inside its source's second.
4277
+ if ( versionMatched && Math.floor(siblingStat.mtimeMs / 1000) < Math.floor(stat.mtimeMs / 1000) ) {
4278
+ versionMatched = false;
4279
+ }
4101
4280
  }
4102
4281
  }
4103
4282
 
@@ -4118,6 +4297,10 @@ function Server(options) {
4118
4297
 
4119
4298
  } else {
4120
4299
  // production: ETag + Last-Modified enable conditional GET (304) (#Next)
4300
+ // #P48 — as the HTTP/2 branch (a stale sibling was downgraded above)
4301
+ if ( versionRequested !== null ) {
4302
+ response.setHeader('cache-control', ( versionMatched ) ? 'public, max-age=31536000, immutable' : 'no-cache');
4303
+ }
4121
4304
  response.writeHead(200, {
4122
4305
  'last-modified': lastModified,
4123
4306
  'etag': etag
@@ -4546,9 +4729,8 @@ function Server(options) {
4546
4729
  // onInstance response, so they are inherited, not re-set.
4547
4730
  if (
4548
4731
  request.method.toUpperCase() === 'GET'
4549
- // #B717 — `(?:\?|$)`: a query string no longer misses the handler (on
4550
- // express request.url still carries it here)
4551
- && /\/_gina\/assets\/routing\.json(?:\?|$)/i.test(request.url)
4732
+ // #P48 — the path alone: a versioned fetch carries `?v=<token>`
4733
+ && /\/_gina\/assets\/routing\.json$/i.test(request.url.split('?')[0])
4552
4734
  && self._clientRoutingAssets
4553
4735
  ) {
4554
4736
  // #B65-twin — per-request proxied classification (keep in sync with
@@ -4576,6 +4758,17 @@ function Server(options) {
4576
4758
  // (usually a 304), so a restart's new route table reaches returning
4577
4759
  // browsers immediately instead of after a 24h max-age window.
4578
4760
  response.setHeader('cache-control', ( _croutProxied === true ) ? 'private, no-cache' : 'public, no-cache');
4761
+ // #P48 — a request naming the token of the variant it is served (the
4762
+ // page's `data-gina-routing-v`) may keep the table for a year: a
4763
+ // routing change mints a new token, which the next page names. Read
4764
+ // off the original URL (Express may have query-stripped request.url).
4765
+ var _croutVersion = lib.sri.getRequestedVersion(request.originalUrl || request.url);
4766
+ if (
4767
+ _croutVersion
4768
+ && _croutVersion === ( ( _croutProxied === true ) ? self._clientRoutingAssets.strippedVersion : self._clientRoutingAssets.fullVersion )
4769
+ ) {
4770
+ response.setHeader('cache-control', ( ( _croutProxied === true ) ? 'private' : 'public' ) + ', max-age=31536000, immutable');
4771
+ }
4579
4772
  response.setHeader('x-content-type-options', 'nosniff');
4580
4773
  response.setHeader('x-frame-options', 'DENY');
4581
4774
  response.setHeader('x-xss-protection', '1; mode=block');
@@ -7409,6 +7602,8 @@ function Server(options) {
7409
7602
  if ( nextMiddleware._nextAction == 'route' ) {
7410
7603
  router._server = self.instance;
7411
7604
  router.route(nextMiddleware._request, nextMiddleware._response, nextMiddleware._next, nextMiddleware._request.routing);
7605
+ } else if ( nextMiddleware._nextAction == 'lane' ) { // #P49 — a fast-lane route
7606
+ lib.lane.dispatch(nextMiddleware._laneEntry, nextMiddleware._request, nextMiddleware._response, nextMiddleware._next, self.instance, ( self.conf[nextMiddleware._request.routing.bundle] || self.conf[self.appName] )[self.env]);
7412
7607
  } else { // handle statics
7413
7608
  handleStatics(nextMiddleware._staticProps, nextMiddleware._request, nextMiddleware._response, nextMiddleware._next);
7414
7609
  }
@@ -7575,7 +7770,12 @@ function Server(options) {
7575
7770
  for (var ph in _pending) { _sh[ph] = _pending[ph]; }
7576
7771
  res.stream.respond(_sh);
7577
7772
  res.stream.end(_hitContent);
7578
- res.headersSent = true;
7773
+ // #B750 — `headersSent` is a getter-only accessor on the HTTP/2 compat
7774
+ // response and already reports this send (it reads the stream's state).
7775
+ // Assigning it threw a TypeError in this strict-mode file AFTER the body
7776
+ // went out: on every redis L2 warm served over HTTP/2 the access-log line
7777
+ // below was skipped and an unhandled rejection was logged instead.
7778
+ // was: res.headersSent = true;
7579
7779
  }
7580
7780
  } else {
7581
7781
  if ( !res.headersSent && !res.writableEnded ) {
@@ -8297,6 +8497,12 @@ function Server(options) {
8297
8497
  return;
8298
8498
  }
8299
8499
 
8500
+ // #P49 — a fast-lane route (`param.lane`, registered at boot) skips the
8501
+ // controller: on isaac it becomes the middleware chain's terminal, so the
8502
+ // bundle's session and CSRF middleware still run; on express, whose app
8503
+ // layers ran before this handler, it is dispatched directly below.
8504
+ var _laneEntry = ( req.routing.param && req.routing.param.lane ) ? lib.lane.lookup(req.routing) : null;
8505
+
8300
8506
  if ( /^isaac/.test(self.engine) && self.instance._expressMiddlewares.length > 0) {
8301
8507
  installH2SendShim(res); // #B562
8302
8508
  // FRAMEWORK PATCH: Bug I — per-request dispatcher
@@ -8307,12 +8513,21 @@ function Server(options) {
8307
8513
  nextMiddleware._response = res;
8308
8514
  nextMiddleware._next = next;
8309
8515
  nextMiddleware._nextAction = 'route';
8516
+ if ( _laneEntry ) {
8517
+ nextMiddleware._nextAction = 'lane';
8518
+ nextMiddleware._laneEntry = _laneEntry;
8519
+ }
8310
8520
  // #FI — express middleware start
8311
8521
  nextMiddleware._timelineStart = (req._devTimeline) ? Date.now() : 0;
8312
8522
 
8313
8523
  return nextMiddleware()
8314
8524
  }
8315
8525
 
8526
+ if ( _laneEntry ) {
8527
+ lib.lane.dispatch(_laneEntry, req, res, next, self.instance, ( self.conf[req.routing.bundle] || self.conf[self.appName] )[self.env]);
8528
+ return;
8529
+ }
8530
+
8316
8531
  router._server = self.instance;
8317
8532
 
8318
8533
  return router.route(req, res, next, req.routing);
@@ -8494,6 +8709,13 @@ function Server(options) {
8494
8709
  for (var _ejk in _pendingEJ) {
8495
8710
  if (!(_ejk in header)) header[_ejk] = _pendingEJ[_ejk];
8496
8711
  }
8712
+ // #B749 — the raw respond() below bypasses the compat response, whose
8713
+ // statusCode kept its default 200 (the shim swallows writeHead(code)),
8714
+ // so a 'finish' reader such as the metrics hook counted every HTTP/2
8715
+ // error as a 200. The setter throws on an invalid code, undefined
8716
+ // among them, which respond() still sends as 200: the send must not
8717
+ // depend on it.
8718
+ try { res.statusCode = code; } catch (e) {}
8497
8719
  stream.respond(header);
8498
8720
  stream.end(errBody);
8499
8721
  };
@@ -8655,6 +8877,9 @@ function Server(options) {
8655
8877
  for (var _ehk in _pendingEH) {
8656
8878
  if (!(_ehk in header)) header[_ehk] = _pendingEH[_ehk];
8657
8879
  }
8880
+ // #B749 — as in __ginaSendErrJSON above: the compat response must
8881
+ // carry the code the raw frame sends, or a 'finish' reader sees 200.
8882
+ try { res.statusCode = code; } catch (e) {}
8658
8883
  stream.respond(header);
8659
8884
  stream.end(errBody);
8660
8885
  };
@@ -35,7 +35,8 @@ var ${bundle} = require('gina');
35
35
  // // Configure connectors.json: { "session": { "connector": "redis", "host": "...", "port": 6379, "ttl": 86400 } }
36
36
  // //
37
37
  // // SQLite — dev / staging / single-pod (requires: Node >= 22.5.0, zero npm deps)
38
- // // Configure connectors.json: { "session": { "connector": "sqlite", "database": ":memory:", "ttl": 86400 } }
38
+ // // Configure connectors.json: { "session": { "connector": "sqlite", "file": ":memory:", "ttl": 86400 } }
39
+ // // (a file path, e.g. "/var/lib/myapp/sessions.db", also goes in "file", never in "database")
39
40
  // //
40
41
  // // The store factory keys on express-session's function name — the literal
41
42
  // // "session", which is read-only and cannot be re-pointed — so the
@@ -27,6 +27,7 @@
27
27
  ],
28
28
  "javascriptsDeferEnabled": true, // will place scripts in defer mode in the head by default. If false, will place in the footer
29
29
  "sriEnabled": false, // opt-in Subresource Integrity: adds integrity= + crossorigin= to same-origin <script>/<link> tags whose files resolve on disk; external URLs and unresolvable paths are skipped (fail-open)
30
+ "assetVersioningEnabled": true, // #P48: appends ?v=<10 hex of the file's sha384> to the same-origin asset URLs gina emits (tags + their preload hints) so they can be cached for a year; false keeps today's URLs. Never applied to js external plugins, layoutless renders or dev (fail-open: an unresolvable file keeps its plain URL)
30
31
  "javascripts": [
31
32
  {
32
33
  "name" : "gina",
@@ -31,7 +31,7 @@ var scopeName = require('../../scope/inc/name');
31
31
  *
32
32
  * @example
33
33
  * isValidBundleName('api'); // true
34
- * isValidBundleName('design-system'); // true
34
+ * isValidBundleName('my-app'); // true
35
35
  * isValidBundleName('Admin'); // false — starts with an uppercase letter
36
36
  * isValidBundleName('a$b'); // false — `$` is not allowed
37
37
  * isValidBundleName('constructor'); // false — every object inherits it
@@ -32,7 +32,7 @@ var scopeName = require('../../scope/inc/name');
32
32
  *
33
33
  * @example
34
34
  * isValidProjectName('myproject'); // true
35
- * isValidProjectName('design-system'); // true
35
+ * isValidProjectName('my-app'); // true
36
36
  * isValidProjectName('Myproject'); // false — starts with an uppercase letter
37
37
  * isValidProjectName('..'); // false — its home would be ~/..
38
38
  * isValidProjectName('constructor'); // false — every object inherits it
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "error-ref",
3
+ "description": "#ERRREF incident-ref mint for error responses answered outside a controller: honours a relay-safe caller-supplied ref, else mints 6 uppercase hex characters",
4
+ "version": "0.0.1",
5
+ "private": true,
6
+ "main": "src/main"
7
+ }
@@ -0,0 +1,70 @@
1
+ /*
2
+ * This file is part of the gina package.
3
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+ 'use strict';
9
+
10
+ /**
11
+ * @module gina/lib/error-ref
12
+ *
13
+ * #ERRREF — the incident-ref mint for error responses answered outside a
14
+ * controller (the fast lane, #P49, is its first caller).
15
+ *
16
+ * Every JSON error body carries a top-level `ref`: a short correlation code an
17
+ * end user can relay by voice or typing, paired server-side with the full error
18
+ * detail in ONE log line. A caller-supplied ref is honoured when it is
19
+ * relay-safe — 1 to 32 word characters, dots or dashes, the same bounded-length,
20
+ * restricted-charset discipline as an inbound `X-Request-Id`, which keeps it out
21
+ * of reach of log forging — and anything else gets a fresh mint of 6 uppercase
22
+ * hex characters (`crypto.randomBytes(3)`).
23
+ *
24
+ * The controller (`core/controller/controller.js`) and the server
25
+ * (`core/server.js`) keep their own byte-identical copies of this rule: the
26
+ * controller is evicted per request in dev mode, and both copies are pinned by
27
+ * `test/core/error-ref.test.js`. `test/lib/error-ref.test.js` drives this module
28
+ * against the controller's copy so the three cannot drift apart.
29
+ *
30
+ * Server-side only, stateless; plain-required by the registry (`lib.errorRef`).
31
+ */
32
+
33
+ var crypto = require('crypto');
34
+
35
+ /**
36
+ * The relay-safe shape a caller-supplied ref must match to be honoured.
37
+ *
38
+ * @constant
39
+ * @type {RegExp}
40
+ * @private
41
+ */
42
+ var RELAY_SAFE = /^[\w.\-]{1,32}$/;
43
+
44
+ /**
45
+ * Return the caller's ref when it is relay-safe, else mint a fresh one.
46
+ *
47
+ * Never throws; any non-string `supplied` (undefined, null, a number, an
48
+ * object) mints.
49
+ *
50
+ * @memberof module:gina/lib/error-ref
51
+ * @param {string} [supplied] - A caller- or producer-provided ref candidate
52
+ * @returns {string} `supplied` when relay-safe, else 6 fresh uppercase hex characters
53
+ *
54
+ * @example
55
+ * var errorRef = require('gina').lib.errorRef;
56
+ * errorRef.mint(); // 'A1B2C3' — fresh, random
57
+ * errorRef.mint('ORDER-42'); // 'ORDER-42' — honoured
58
+ * errorRef.mint('bad ref!'); // '9F0E1D' — space and `!` are refused, so a fresh mint
59
+ * errorRef.mint('x'.repeat(33)); // a fresh mint — 33 characters is over the 32 cap
60
+ */
61
+ function mint(supplied) {
62
+ if ( typeof(supplied) == 'string' && RELAY_SAFE.test(supplied) ) {
63
+ return supplied;
64
+ }
65
+ return crypto.randomBytes(3).toString('hex').toUpperCase();
66
+ }
67
+
68
+ module.exports = {
69
+ mint : mint
70
+ };
@@ -260,6 +260,18 @@ function Lib() {
260
260
  // PLAIN require, like rate-limit/idempotency: router-bound, load-once, and
261
261
  // its registry lives on process.gina (survives refreshCore, dies on restart).
262
262
  messageValidator : require('./message-validator'),
263
+ // #P49 — the fast lane: the param.lane boot registry, the handler context and
264
+ // its JSON/error writers, dispatched by core/server.js at the end of the
265
+ // middleware chain. PLAIN require, like the router-bound gates above:
266
+ // core/server.js captures it at load, it performs no per-request require()
267
+ // of a hot-reloaded sibling (#B32-residual), and its registry lives on
268
+ // process.gina (survives refreshCore, dies on restart). Its dev-mode reload of
269
+ // the lane handler modules is its own, gated on the #M6 watcher flag.
270
+ lane : require('./lane'),
271
+ // #ERRREF — the incident-ref mint for errors answered outside a controller
272
+ // (the lane's error writer). Stateless; PLAIN require because the lane, a
273
+ // load-once module, binds it at load.
274
+ errorRef : require('./error-ref'),
263
275
  // Per-bundle login session cookie lifetimes declared in security.json
264
276
  // (`session.expires` / `session.remember`), applied by core/router.js at
265
277
  // req.login(). PLAIN require, like the router-bound gates above: load-once,
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "lane",
3
+ "description": "The fast lane: opt-in, controller-free dispatch for JSON routes (param.lane), with its boot registry, request context and JSON/error writers",
4
+ "version": "0.0.1",
5
+ "private": true,
6
+ "main": "src/main"
7
+ }