gina 0.6.1 → 0.6.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 (561) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +15 -25
  3. package/ROADMAP.md +8 -6
  4. package/framework/v0.6.2/VERSION +1 -0
  5. package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/js/gina.js +12 -3
  6. package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +160 -160
  7. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.1 → v0.6.2}/core/config.js +63 -2
  10. package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.js +279 -10
  11. package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-nunjucks.js +5 -1
  12. package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-swig.js +13 -1
  13. package/framework/{v0.6.1 → v0.6.2}/core/gna.js +31 -0
  14. package/framework/{v0.6.1 → v0.6.2}/core/template/conf/env.json +12 -0
  15. package/framework/{v0.6.1 → v0.6.2}/lib/nunjucks-filters/src/main.js +7 -1
  16. package/framework/{v0.6.1 → v0.6.2}/lib/proc.js +15 -1
  17. package/framework/{v0.6.1 → v0.6.2}/lib/swig-filters/src/main.js +12 -1
  18. package/framework/{v0.6.1 → v0.6.2}/lib/uuid/src/main.js +12 -3
  19. package/framework/{v0.6.1 → v0.6.2}/package.json +1 -1
  20. package/gna.js +4 -4
  21. package/llms.txt +5 -3
  22. package/package.json +3 -3
  23. package/schema/settings.json +22 -0
  24. package/script/perf/analyze-cpuprofile.js +187 -0
  25. package/script/perf/profile-baseline.js +811 -0
  26. package/script/perf/ws-codec-server.js +44 -0
  27. package/utils/prototypes.json_clone.js +5 -2
  28. package/framework/v0.6.1/VERSION +0 -1
  29. package/framework/v0.6.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  30. package/framework/v0.6.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  31. /package/framework/{v0.6.1 → v0.6.2}/AUTHORS +0 -0
  32. /package/framework/{v0.6.1 → v0.6.2}/LICENSE +0 -0
  33. /package/framework/{v0.6.1 → v0.6.2}/core/asset/html/nolayout.html +0 -0
  34. /package/framework/{v0.6.1 → v0.6.2}/core/asset/html/static.html +0 -0
  35. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/android-chrome-192x192.png +0 -0
  36. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/android-chrome-512x512.png +0 -0
  37. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/apple-touch-icon.png +0 -0
  38. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/favicon-16x16.png +0 -0
  39. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/favicon-32x32.png +0 -0
  40. /package/framework/{v0.6.1 → v0.6.2}/core/asset/img/favicon.ico +0 -0
  41. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/README.md +0 -0
  42. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  43. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  44. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  45. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  46. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  47. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  48. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  49. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  50. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  51. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  52. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  53. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  54. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  55. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  56. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  57. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  58. /package/framework/{v0.6.1 → v0.6.2}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  59. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/ai/index.js +0 -0
  60. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/ai/lib/connector.js +0 -0
  61. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/index.js +0 -0
  62. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/connector.js +0 -0
  63. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  64. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  65. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/n1ql.js +0 -0
  66. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/session-store.js +0 -0
  67. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  68. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  69. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/duckdb/index.js +0 -0
  70. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/duckdb/lib/connector.js +0 -0
  71. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mongodb/index.js +0 -0
  72. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mongodb/lib/connector.js +0 -0
  73. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mongodb/lib/job-store.js +0 -0
  74. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  75. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mongodb/lib/session-store.js +0 -0
  76. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mysql/index.js +0 -0
  77. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/mysql/lib/connector.js +0 -0
  78. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/postgresql/index.js +0 -0
  79. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/postgresql/lib/connector.js +0 -0
  80. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/redis/index.js +0 -0
  81. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/redis/lib/connector.js +0 -0
  82. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/redis/lib/job-store.js +0 -0
  83. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/redis/lib/render-cache-store.js +0 -0
  84. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/redis/lib/session-store.js +0 -0
  85. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/scylladb/index.js +0 -0
  86. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/scylladb/lib/connector.js +0 -0
  87. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/scylladb/lib/session-store.js +0 -0
  88. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/sql-parser.js +0 -0
  89. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/sqlite/index.js +0 -0
  90. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/sqlite/lib/connector.js +0 -0
  91. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/sqlite/lib/job-store.js +0 -0
  92. /package/framework/{v0.6.1 → v0.6.2}/core/connectors/sqlite/lib/session-store.js +0 -0
  93. /package/framework/{v0.6.1 → v0.6.2}/core/content.encoding +0 -0
  94. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.framework.js +0 -0
  95. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-json.js +0 -0
  96. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-nunjucks-async.js +0 -0
  97. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-stream.js +0 -0
  98. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-swig-async.js +0 -0
  99. /package/framework/{v0.6.1 → v0.6.2}/core/controller/controller.render-v1.js +0 -0
  100. /package/framework/{v0.6.1 → v0.6.2}/core/controller/index.js +0 -0
  101. /package/framework/{v0.6.1 → v0.6.2}/core/controller/inspector-window-emit.js +0 -0
  102. /package/framework/{v0.6.1 → v0.6.2}/core/controller/release-banner.js +0 -0
  103. /package/framework/{v0.6.1 → v0.6.2}/core/dev/index.js +0 -0
  104. /package/framework/{v0.6.1 → v0.6.2}/core/dev/lib/class.js +0 -0
  105. /package/framework/{v0.6.1 → v0.6.2}/core/dev/lib/factory.js +0 -0
  106. /package/framework/{v0.6.1 → v0.6.2}/core/dev/lib/tools.js +0 -0
  107. /package/framework/{v0.6.1 → v0.6.2}/core/locales/README.md +0 -0
  108. /package/framework/{v0.6.1 → v0.6.2}/core/locales/currency.json +0 -0
  109. /package/framework/{v0.6.1 → v0.6.2}/core/locales/dist/language/en.json +0 -0
  110. /package/framework/{v0.6.1 → v0.6.2}/core/locales/dist/language/fr.json +0 -0
  111. /package/framework/{v0.6.1 → v0.6.2}/core/locales/dist/region/en.json +0 -0
  112. /package/framework/{v0.6.1 → v0.6.2}/core/locales/dist/region/fr.json +0 -0
  113. /package/framework/{v0.6.1 → v0.6.2}/core/locales/index.js +0 -0
  114. /package/framework/{v0.6.1 → v0.6.2}/core/mime.types +0 -0
  115. /package/framework/{v0.6.1 → v0.6.2}/core/model/entity.js +0 -0
  116. /package/framework/{v0.6.1 → v0.6.2}/core/model/index.js +0 -0
  117. /package/framework/{v0.6.1 → v0.6.2}/core/model/template/entityFactory.js +0 -0
  118. /package/framework/{v0.6.1 → v0.6.2}/core/model/template/index.js +0 -0
  119. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/README.md +0 -0
  120. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/index.js +0 -0
  121. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/csrf/README.md +0 -0
  122. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/csrf/package.json +0 -0
  123. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/csrf/src/main.js +0 -0
  124. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/README.md +0 -0
  125. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coep/README.md +0 -0
  126. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coep/package.json +0 -0
  127. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  128. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coop/README.md +0 -0
  129. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coop/package.json +0 -0
  130. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  131. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/corp/README.md +0 -0
  132. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/corp/package.json +0 -0
  133. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  134. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/csp/README.md +0 -0
  135. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/csp/package.json +0 -0
  136. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  137. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  138. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  139. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  140. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  141. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  142. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  143. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  144. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  145. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  146. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/package.json +0 -0
  147. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  148. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  149. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  150. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/src/main.js +0 -0
  151. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  152. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  153. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  154. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  155. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  156. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  157. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  158. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  159. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  160. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  161. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  162. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  163. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  164. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  165. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  166. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  167. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  168. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  169. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/session/README.md +0 -0
  170. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/session/package.json +0 -0
  171. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/session/src/main.js +0 -0
  172. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/storage/README.md +0 -0
  173. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/storage/build.json +0 -0
  174. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/storage/package.json +0 -0
  175. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/storage/src/main.js +0 -0
  176. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/validator/README.md +0 -0
  177. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/validator/build.json +0 -0
  178. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/validator/package.json +0 -0
  179. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/validator/src/form-validator.js +0 -0
  180. /package/framework/{v0.6.1 → v0.6.2}/core/plugins/lib/validator/src/main.js +0 -0
  181. /package/framework/{v0.6.1 → v0.6.2}/core/router.js +0 -0
  182. /package/framework/{v0.6.1 → v0.6.2}/core/server.express.js +0 -0
  183. /package/framework/{v0.6.1 → v0.6.2}/core/server.isaac.js +0 -0
  184. /package/framework/{v0.6.1 → v0.6.2}/core/server.js +0 -0
  185. /package/framework/{v0.6.1 → v0.6.2}/core/status.codes +0 -0
  186. /package/framework/{v0.6.1 → v0.6.2}/core/template/_gitignore +0 -0
  187. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  188. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  189. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  190. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/settings.json +0 -0
  191. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  192. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/templates.json +0 -0
  193. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  194. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  195. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  196. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  197. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/index.js +0 -0
  198. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle/locales/en.json +0 -0
  199. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  200. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  201. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  202. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  203. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  204. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  205. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  206. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  207. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  208. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_public/sw.js +0 -0
  209. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  210. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  211. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  212. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  213. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  214. /package/framework/{v0.6.1 → v0.6.2}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  215. /package/framework/{v0.6.1 → v0.6.2}/core/template/command/gina.bat.tpl +0 -0
  216. /package/framework/{v0.6.1 → v0.6.2}/core/template/command/gina.tpl +0 -0
  217. /package/framework/{v0.6.1 → v0.6.2}/core/template/conf/manifest.json +0 -0
  218. /package/framework/{v0.6.1 → v0.6.2}/core/template/conf/package.json +0 -0
  219. /package/framework/{v0.6.1 → v0.6.2}/core/template/conf/settings.json +0 -0
  220. /package/framework/{v0.6.1 → v0.6.2}/core/template/conf/statics.json +0 -0
  221. /package/framework/{v0.6.1 → v0.6.2}/core/template/conf/templates.json +0 -0
  222. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/client/json/401.json +0 -0
  223. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/client/json/403.json +0 -0
  224. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/client/json/404.json +0 -0
  225. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/server/html/50x.html +0 -0
  226. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/server/json/500.json +0 -0
  227. /package/framework/{v0.6.1 → v0.6.2}/core/template/error/server/json/503.json +0 -0
  228. /package/framework/{v0.6.1 → v0.6.2}/core/template/extensions/logger/config.json +0 -0
  229. /package/framework/{v0.6.1 → v0.6.2}/helpers/console.js +0 -0
  230. /package/framework/{v0.6.1 → v0.6.2}/helpers/context.js +0 -0
  231. /package/framework/{v0.6.1 → v0.6.2}/helpers/data/LICENSE +0 -0
  232. /package/framework/{v0.6.1 → v0.6.2}/helpers/data/README.md +0 -0
  233. /package/framework/{v0.6.1 → v0.6.2}/helpers/data/package.json +0 -0
  234. /package/framework/{v0.6.1 → v0.6.2}/helpers/data/src/main.js +0 -0
  235. /package/framework/{v0.6.1 → v0.6.2}/helpers/dateFormat.js +0 -0
  236. /package/framework/{v0.6.1 → v0.6.2}/helpers/index.js +0 -0
  237. /package/framework/{v0.6.1 → v0.6.2}/helpers/json/LICENSE +0 -0
  238. /package/framework/{v0.6.1 → v0.6.2}/helpers/json/README.md +0 -0
  239. /package/framework/{v0.6.1 → v0.6.2}/helpers/json/package.json +0 -0
  240. /package/framework/{v0.6.1 → v0.6.2}/helpers/json/src/main.js +0 -0
  241. /package/framework/{v0.6.1 → v0.6.2}/helpers/path.js +0 -0
  242. /package/framework/{v0.6.1 → v0.6.2}/helpers/plugins/README.md +0 -0
  243. /package/framework/{v0.6.1 → v0.6.2}/helpers/plugins/package.json +0 -0
  244. /package/framework/{v0.6.1 → v0.6.2}/helpers/plugins/src/api-error.js +0 -0
  245. /package/framework/{v0.6.1 → v0.6.2}/helpers/plugins/src/main.js +0 -0
  246. /package/framework/{v0.6.1 → v0.6.2}/helpers/prototypes.js +0 -0
  247. /package/framework/{v0.6.1 → v0.6.2}/helpers/task.js +0 -0
  248. /package/framework/{v0.6.1 → v0.6.2}/helpers/text.js +0 -0
  249. /package/framework/{v0.6.1 → v0.6.2}/lib/admin/package.json +0 -0
  250. /package/framework/{v0.6.1 → v0.6.2}/lib/admin/src/main.js +0 -0
  251. /package/framework/{v0.6.1 → v0.6.2}/lib/archiver/README.md +0 -0
  252. /package/framework/{v0.6.1 → v0.6.2}/lib/archiver/build.json +0 -0
  253. /package/framework/{v0.6.1 → v0.6.2}/lib/archiver/package.json +0 -0
  254. /package/framework/{v0.6.1 → v0.6.2}/lib/archiver/src/dep/jszip.min.js +0 -0
  255. /package/framework/{v0.6.1 → v0.6.2}/lib/archiver/src/main.js +0 -0
  256. /package/framework/{v0.6.1 → v0.6.2}/lib/async/package.json +0 -0
  257. /package/framework/{v0.6.1 → v0.6.2}/lib/async/src/main.js +0 -0
  258. /package/framework/{v0.6.1 → v0.6.2}/lib/audit/package.json +0 -0
  259. /package/framework/{v0.6.1 → v0.6.2}/lib/audit/src/main.js +0 -0
  260. /package/framework/{v0.6.1 → v0.6.2}/lib/audit-store.js +0 -0
  261. /package/framework/{v0.6.1 → v0.6.2}/lib/authn/package.json +0 -0
  262. /package/framework/{v0.6.1 → v0.6.2}/lib/authn/src/lockout.js +0 -0
  263. /package/framework/{v0.6.1 → v0.6.2}/lib/authn/src/main.js +0 -0
  264. /package/framework/{v0.6.1 → v0.6.2}/lib/authn/src/totp.js +0 -0
  265. /package/framework/{v0.6.1 → v0.6.2}/lib/authz-gate/package.json +0 -0
  266. /package/framework/{v0.6.1 → v0.6.2}/lib/authz-gate/src/main.js +0 -0
  267. /package/framework/{v0.6.1 → v0.6.2}/lib/cache/README.md +0 -0
  268. /package/framework/{v0.6.1 → v0.6.2}/lib/cache/build.json +0 -0
  269. /package/framework/{v0.6.1 → v0.6.2}/lib/cache/package.json +0 -0
  270. /package/framework/{v0.6.1 → v0.6.2}/lib/cache/src/main.js +0 -0
  271. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/aliases.json +0 -0
  272. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/audit/arguments.json +0 -0
  273. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/audit/help.txt +0 -0
  274. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/audit/verify.js +0 -0
  275. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/add.js +0 -0
  276. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/arguments.json +0 -0
  277. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/build.js +0 -0
  278. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/copy.js +0 -0
  279. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/cp.js +0 -0
  280. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/help.js +0 -0
  281. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/help.txt +0 -0
  282. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  283. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/list.js +0 -0
  284. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/man.js +0 -0
  285. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/mcp-start.js +0 -0
  286. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/mcp.js +0 -0
  287. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/oas.js +0 -0
  288. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/openapi.js +0 -0
  289. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/remove.js +0 -0
  290. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/rename.js +0 -0
  291. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/restart.js +0 -0
  292. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/rm.js +0 -0
  293. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/start.js +0 -0
  294. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/status.js +0 -0
  295. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/stop.js +0 -0
  296. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/bundle/types.js +0 -0
  297. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/cache/arguments.json +0 -0
  298. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/cache/clear.js +0 -0
  299. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/cache/help.txt +0 -0
  300. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/cache/stats.js +0 -0
  301. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/add.js +0 -0
  302. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/arguments.json +0 -0
  303. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/help.js +0 -0
  304. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/help.txt +0 -0
  305. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/infer.js +0 -0
  306. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/list.js +0 -0
  307. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/migrate.js +0 -0
  308. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/models.js +0 -0
  309. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/remove.js +0 -0
  310. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/rm.js +0 -0
  311. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/connector/test.js +0 -0
  312. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/arguments.json +0 -0
  313. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/help.js +0 -0
  314. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/help.txt +0 -0
  315. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/man.js +0 -0
  316. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/ps.js +0 -0
  317. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/container/stop.js +0 -0
  318. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/add.js +0 -0
  319. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/arguments.json +0 -0
  320. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/help.txt +0 -0
  321. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/inc/args.js +0 -0
  322. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/inc/namespace.js +0 -0
  323. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  324. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/inc/reference-scan.js +0 -0
  325. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/inc/scaffold.js +0 -0
  326. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/remove.js +0 -0
  327. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/rename.js +0 -0
  328. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/controller/rm.js +0 -0
  329. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/add.js +0 -0
  330. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/get.js +0 -0
  331. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/help.js +0 -0
  332. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/help.txt +0 -0
  333. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/link-dev.js +0 -0
  334. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/list.js +0 -0
  335. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/remove.js +0 -0
  336. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/rm.js +0 -0
  337. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/set.js +0 -0
  338. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/unset.js +0 -0
  339. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/env/use.js +0 -0
  340. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/add.js +0 -0
  341. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/arguments.json +0 -0
  342. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/build.js +0 -0
  343. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/dot.js +0 -0
  344. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/get.js +0 -0
  345. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/help.js +0 -0
  346. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/help.txt +0 -0
  347. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/init.js +0 -0
  348. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/link-node-modules.js +0 -0
  349. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/link.js +0 -0
  350. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/list.js +0 -0
  351. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/man.js +0 -0
  352. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/msg.json +0 -0
  353. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/open.js +0 -0
  354. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/remove.js +0 -0
  355. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/reset.js +0 -0
  356. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/restart.js +0 -0
  357. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/set.js +0 -0
  358. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/start.js +0 -0
  359. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/status.js +0 -0
  360. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/stop.js +0 -0
  361. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/tail.js +0 -0
  362. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/update.js +0 -0
  363. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/framework/version.js +0 -0
  364. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/gina-dev.1.md +0 -0
  365. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/gina-framework.1.md +0 -0
  366. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/gina.1.md +0 -0
  367. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/helper.js +0 -0
  368. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/add.js +0 -0
  369. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/arguments.json +0 -0
  370. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/export.js +0 -0
  371. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/help.js +0 -0
  372. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/help.txt +0 -0
  373. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/import.js +0 -0
  374. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/i18n/scan.js +0 -0
  375. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/_host.js +0 -0
  376. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/arguments.json +0 -0
  377. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/build.js +0 -0
  378. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/help.js +0 -0
  379. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/help.txt +0 -0
  380. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/list.js +0 -0
  381. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/man.js +0 -0
  382. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/rm.js +0 -0
  383. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/image/run.js +0 -0
  384. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/index.js +0 -0
  385. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/inspector/help.js +0 -0
  386. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/inspector/help.txt +0 -0
  387. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/inspector/open.js +0 -0
  388. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/man-render.js +0 -0
  389. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/minion/arguments.json +0 -0
  390. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/minion/help.js +0 -0
  391. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/minion/help.txt +0 -0
  392. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/minion/kill.js +0 -0
  393. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/minion/list.js +0 -0
  394. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/msg.json +0 -0
  395. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/help.js +0 -0
  396. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/help.txt +0 -0
  397. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/inc/scan.js +0 -0
  398. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/list.js +0 -0
  399. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/reset.js +0 -0
  400. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/port/set.js +0 -0
  401. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/add.js +0 -0
  402. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/arguments.json +0 -0
  403. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/backup.js +0 -0
  404. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/build.js +0 -0
  405. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/help.js +0 -0
  406. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/help.txt +0 -0
  407. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/import.js +0 -0
  408. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/list.js +0 -0
  409. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/man.js +0 -0
  410. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/move.js +0 -0
  411. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/remove.js +0 -0
  412. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/rename.js +0 -0
  413. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/restart.js +0 -0
  414. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/restore.js +0 -0
  415. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/rm.js +0 -0
  416. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/start.js +0 -0
  417. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/status.js +0 -0
  418. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/project/stop.js +0 -0
  419. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/arguments.json +0 -0
  420. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/help.js +0 -0
  421. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/help.txt +0 -0
  422. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/list.js +0 -0
  423. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/remove.js +0 -0
  424. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/protocol/set.js +0 -0
  425. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/add.js +0 -0
  426. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/help.js +0 -0
  427. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/help.txt +0 -0
  428. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/link-local.js +0 -0
  429. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/link-production.js +0 -0
  430. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/list.js +0 -0
  431. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/remove.js +0 -0
  432. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/rm.js +0 -0
  433. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/scope/use.js +0 -0
  434. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/secrets/arguments.json +0 -0
  435. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/secrets/check.js +0 -0
  436. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/secrets/help.js +0 -0
  437. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/secrets/help.txt +0 -0
  438. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/secrets/scan.js +0 -0
  439. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/service/help.js +0 -0
  440. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/service/help.txt +0 -0
  441. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/service/list.js +0 -0
  442. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/service/man.js +0 -0
  443. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/service/start.js +0 -0
  444. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd/view/add.js +0 -0
  445. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd-status-format/package.json +0 -0
  446. /package/framework/{v0.6.1 → v0.6.2}/lib/cmd-status-format/src/main.js +0 -0
  447. /package/framework/{v0.6.1 → v0.6.2}/lib/collection/README.md +0 -0
  448. /package/framework/{v0.6.1 → v0.6.2}/lib/collection/build.json +0 -0
  449. /package/framework/{v0.6.1 → v0.6.2}/lib/collection/package.json +0 -0
  450. /package/framework/{v0.6.1 → v0.6.2}/lib/collection/src/main.js +0 -0
  451. /package/framework/{v0.6.1 → v0.6.2}/lib/config.js +0 -0
  452. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-config/package.json +0 -0
  453. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-config/src/main.js +0 -0
  454. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-error/package.json +0 -0
  455. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-error/src/main.js +0 -0
  456. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-registry/package.json +0 -0
  457. /package/framework/{v0.6.1 → v0.6.2}/lib/connector-registry/src/main.js +0 -0
  458. /package/framework/{v0.6.1 → v0.6.2}/lib/cron/README.md +0 -0
  459. /package/framework/{v0.6.1 → v0.6.2}/lib/cron/package.json +0 -0
  460. /package/framework/{v0.6.1 → v0.6.2}/lib/cron/src/main.js +0 -0
  461. /package/framework/{v0.6.1 → v0.6.2}/lib/domain/LICENSE +0 -0
  462. /package/framework/{v0.6.1 → v0.6.2}/lib/domain/README.md +0 -0
  463. /package/framework/{v0.6.1 → v0.6.2}/lib/domain/package.json +0 -0
  464. /package/framework/{v0.6.1 → v0.6.2}/lib/domain/src/main.js +0 -0
  465. /package/framework/{v0.6.1 → v0.6.2}/lib/dto/package.json +0 -0
  466. /package/framework/{v0.6.1 → v0.6.2}/lib/dto/src/main.js +0 -0
  467. /package/framework/{v0.6.1 → v0.6.2}/lib/dto-pipe/package.json +0 -0
  468. /package/framework/{v0.6.1 → v0.6.2}/lib/dto-pipe/src/main.js +0 -0
  469. /package/framework/{v0.6.1 → v0.6.2}/lib/dto-types/package.json +0 -0
  470. /package/framework/{v0.6.1 → v0.6.2}/lib/dto-types/src/main.js +0 -0
  471. /package/framework/{v0.6.1 → v0.6.2}/lib/generator/index.js +0 -0
  472. /package/framework/{v0.6.1 → v0.6.2}/lib/i18n/package.json +0 -0
  473. /package/framework/{v0.6.1 → v0.6.2}/lib/i18n/src/main.js +0 -0
  474. /package/framework/{v0.6.1 → v0.6.2}/lib/image-build/package.json +0 -0
  475. /package/framework/{v0.6.1 → v0.6.2}/lib/image-build/src/main.js +0 -0
  476. /package/framework/{v0.6.1 → v0.6.2}/lib/index.js +0 -0
  477. /package/framework/{v0.6.1 → v0.6.2}/lib/inherits/LICENSE +0 -0
  478. /package/framework/{v0.6.1 → v0.6.2}/lib/inherits/README.md +0 -0
  479. /package/framework/{v0.6.1 → v0.6.2}/lib/inherits/package.json +0 -0
  480. /package/framework/{v0.6.1 → v0.6.2}/lib/inherits/src/main.js +0 -0
  481. /package/framework/{v0.6.1 → v0.6.2}/lib/inspector-events/package.json +0 -0
  482. /package/framework/{v0.6.1 → v0.6.2}/lib/inspector-events/src/main.js +0 -0
  483. /package/framework/{v0.6.1 → v0.6.2}/lib/inspector-redact/package.json +0 -0
  484. /package/framework/{v0.6.1 → v0.6.2}/lib/inspector-redact/src/main.js +0 -0
  485. /package/framework/{v0.6.1 → v0.6.2}/lib/instrument/package.json +0 -0
  486. /package/framework/{v0.6.1 → v0.6.2}/lib/instrument/src/main.js +0 -0
  487. /package/framework/{v0.6.1 → v0.6.2}/lib/job/package.json +0 -0
  488. /package/framework/{v0.6.1 → v0.6.2}/lib/job/src/main.js +0 -0
  489. /package/framework/{v0.6.1 → v0.6.2}/lib/job-store.js +0 -0
  490. /package/framework/{v0.6.1 → v0.6.2}/lib/json-config-header/package.json +0 -0
  491. /package/framework/{v0.6.1 → v0.6.2}/lib/json-config-header/src/main.js +0 -0
  492. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/README.md +0 -0
  493. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/package.json +0 -0
  494. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/default/index.js +0 -0
  495. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/file/index.js +0 -0
  496. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  497. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  498. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/mq/index.js +0 -0
  499. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/mq/listener.js +0 -0
  500. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/containers/mq/speaker.js +0 -0
  501. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/helper.js +0 -0
  502. /package/framework/{v0.6.1 → v0.6.2}/lib/logger/src/main.js +0 -0
  503. /package/framework/{v0.6.1 → v0.6.2}/lib/math/index.js +0 -0
  504. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-dispatch/package.json +0 -0
  505. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-dispatch/src/main.js +0 -0
  506. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-http/package.json +0 -0
  507. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-http/src/main.js +0 -0
  508. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-server/package.json +0 -0
  509. /package/framework/{v0.6.1 → v0.6.2}/lib/mcp-server/src/main.js +0 -0
  510. /package/framework/{v0.6.1 → v0.6.2}/lib/merge/README.md +0 -0
  511. /package/framework/{v0.6.1 → v0.6.2}/lib/merge/package.json +0 -0
  512. /package/framework/{v0.6.1 → v0.6.2}/lib/merge/src/main.js +0 -0
  513. /package/framework/{v0.6.1 → v0.6.2}/lib/metrics/package.json +0 -0
  514. /package/framework/{v0.6.1 → v0.6.2}/lib/metrics/src/main.js +0 -0
  515. /package/framework/{v0.6.1 → v0.6.2}/lib/model.js +0 -0
  516. /package/framework/{v0.6.1 → v0.6.2}/lib/net-locality/package.json +0 -0
  517. /package/framework/{v0.6.1 → v0.6.2}/lib/net-locality/src/main.js +0 -0
  518. /package/framework/{v0.6.1 → v0.6.2}/lib/nunjucks-filters/README.md +0 -0
  519. /package/framework/{v0.6.1 → v0.6.2}/lib/nunjucks-filters/package.json +0 -0
  520. /package/framework/{v0.6.1 → v0.6.2}/lib/nunjucks-resolver/package.json +0 -0
  521. /package/framework/{v0.6.1 → v0.6.2}/lib/nunjucks-resolver/src/main.js +0 -0
  522. /package/framework/{v0.6.1 → v0.6.2}/lib/release-watch/package.json +0 -0
  523. /package/framework/{v0.6.1 → v0.6.2}/lib/release-watch/src/main.js +0 -0
  524. /package/framework/{v0.6.1 → v0.6.2}/lib/render-cache/package.json +0 -0
  525. /package/framework/{v0.6.1 → v0.6.2}/lib/render-cache/src/main.js +0 -0
  526. /package/framework/{v0.6.1 → v0.6.2}/lib/render-cache-store.js +0 -0
  527. /package/framework/{v0.6.1 → v0.6.2}/lib/routing/README.md +0 -0
  528. /package/framework/{v0.6.1 → v0.6.2}/lib/routing/build.json +0 -0
  529. /package/framework/{v0.6.1 → v0.6.2}/lib/routing/package.json +0 -0
  530. /package/framework/{v0.6.1 → v0.6.2}/lib/routing/src/main.js +0 -0
  531. /package/framework/{v0.6.1 → v0.6.2}/lib/routing/src/radix.js +0 -0
  532. /package/framework/{v0.6.1 → v0.6.2}/lib/routing-introspect/package.json +0 -0
  533. /package/framework/{v0.6.1 → v0.6.2}/lib/routing-introspect/src/main.js +0 -0
  534. /package/framework/{v0.6.1 → v0.6.2}/lib/secrets/package.json +0 -0
  535. /package/framework/{v0.6.1 → v0.6.2}/lib/secrets/src/backends/env.js +0 -0
  536. /package/framework/{v0.6.1 → v0.6.2}/lib/secrets/src/main.js +0 -0
  537. /package/framework/{v0.6.1 → v0.6.2}/lib/session-store.js +0 -0
  538. /package/framework/{v0.6.1 → v0.6.2}/lib/shell.js +0 -0
  539. /package/framework/{v0.6.1 → v0.6.2}/lib/sqlite-driver.js +0 -0
  540. /package/framework/{v0.6.1 → v0.6.2}/lib/state.js +0 -0
  541. /package/framework/{v0.6.1 → v0.6.2}/lib/swig-filters/README.md +0 -0
  542. /package/framework/{v0.6.1 → v0.6.2}/lib/swig-filters/package.json +0 -0
  543. /package/framework/{v0.6.1 → v0.6.2}/lib/swig-resolver/package.json +0 -0
  544. /package/framework/{v0.6.1 → v0.6.2}/lib/swig-resolver/src/main.js +0 -0
  545. /package/framework/{v0.6.1 → v0.6.2}/lib/template-loaders/package.json +0 -0
  546. /package/framework/{v0.6.1 → v0.6.2}/lib/template-loaders/src/loaders/http.js +0 -0
  547. /package/framework/{v0.6.1 → v0.6.2}/lib/template-loaders/src/loaders/memory.js +0 -0
  548. /package/framework/{v0.6.1 → v0.6.2}/lib/template-loaders/src/main.js +0 -0
  549. /package/framework/{v0.6.1 → v0.6.2}/lib/url/README.md +0 -0
  550. /package/framework/{v0.6.1 → v0.6.2}/lib/url/index.js +0 -0
  551. /package/framework/{v0.6.1 → v0.6.2}/lib/url/routing.json +0 -0
  552. /package/framework/{v0.6.1 → v0.6.2}/lib/uuid/package.json +0 -0
  553. /package/framework/{v0.6.1 → v0.6.2}/lib/validator.js +0 -0
  554. /package/framework/{v0.6.1 → v0.6.2}/lib/watcher/package.json +0 -0
  555. /package/framework/{v0.6.1 → v0.6.2}/lib/watcher/src/main.js +0 -0
  556. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-framing/package.json +0 -0
  557. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-framing/src/main.js +0 -0
  558. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-query/package.json +0 -0
  559. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-query/src/main.js +0 -0
  560. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-session/package.json +0 -0
  561. /package/framework/{v0.6.1 → v0.6.2}/lib/ws-session/src/main.js +0 -0
@@ -348,10 +348,21 @@ function Config(opt, contextResetNeeded) {
348
348
  * @param {string} env - Environment name
349
349
  * @param {string} scope - Scope name
350
350
  * @param {object} conf - Core server configuration object
351
+ * @throws {Error} When `envConf` carries no block for `bundle`/`env` — i.e.
352
+ * the project's `env.json` never declared it (#B181(b)).
353
+ * The boot path guards this at the `loadBundleConfig` call
354
+ * site, which can refuse through its callback; this throw
355
+ * is the defense-in-depth for any other caller.
351
356
  */
352
357
  this.setServerCoreConf = function(bundle, env, scope, conf) {
353
358
  self.env = env;
354
359
  self.scope = scope;
360
+ // #B181(b) — a NAMED failure beats the opaque
361
+ // `Cannot read properties of undefined (reading '<env>')` deref that
362
+ // this line produced when env.json declared no block for the bundle.
363
+ if ( !self.envConf[bundle] || !self.envConf[bundle][env] ) {
364
+ throw new Error('setServerCoreConf(`'+ bundle +'`, `'+ env +'`): no env.json configuration block for this bundle/env');
365
+ }
355
366
  self.envConf[bundle][env].server['coreConfiguration'] = conf;
356
367
  }
357
368
 
@@ -772,9 +783,19 @@ function Config(opt, contextResetNeeded) {
772
783
  // newContent[app][env].bundlesPath = newContent[app][env].sources;
773
784
  // }
774
785
  tmpSettings = {};
775
- newContent[app][env].bundlesPath = bundlesPath;
776
786
 
777
787
  if ( typeof(content[app][env]) != "undefined" ) {
788
+ // #B183 — this assignment MUST stay inside the guard. `newContent`
789
+ // is a deep clone of `content` (see its declaration at the top of
790
+ // this function), so `newContent[app][env]` is undefined for
791
+ // exactly the apps this guard rejects: an app declared in the
792
+ // project env.json but NOT for the env being started. Assigning it
793
+ // one line earlier — outside the guard meant to protect it — threw
794
+ // an opaque `TypeError: Cannot set properties of undefined (setting
795
+ // 'bundlesPath')` and killed the boot at exit 143, ~750 lines before
796
+ // the #B181(b) refusal that names the bundle, the env and the
797
+ // env.json path could ever fire.
798
+ newContent[app][env].bundlesPath = bundlesPath;
778
799
  try {
779
800
  // reverted: async readdir (#P33) breaks synchronous Config init contract
780
801
  configFiles = fs.readdirSync(_(appPath + '/config'));
@@ -1147,6 +1168,18 @@ function Config(opt, contextResetNeeded) {
1147
1168
  newContent[app][env].projectName = self.projectName;
1148
1169
  }
1149
1170
 
1171
+ // #B181(a) — `host` is the one key the substitution dictionary below
1172
+ // reads off this block that a project can only supply from its own
1173
+ // env.json; the framework template now carries the same `localhost`
1174
+ // default the CLI writes, so a partial block resolves instead of
1175
+ // leaving `${host}` unsubstituted inside the credentials paths.
1176
+ // Report the omission rather than defaulting silently — and test the
1177
+ // RAW `content` block, since the merged one always carries the
1178
+ // default by this point and could never satisfy the condition.
1179
+ if ( typeof(content[app][env].host) == 'undefined' ) {
1180
+ console.warn('[CONFIG]['+ app +']['+ env +'] no `host` declared in the project env.json — defaulting to `'+ newContent[app][env].host +'`');
1181
+ }
1182
+
1150
1183
 
1151
1184
 
1152
1185
  // replacement for {bundle}@{project}
@@ -1211,8 +1244,15 @@ function Config(opt, contextResetNeeded) {
1211
1244
  return;
1212
1245
  }
1213
1246
 
1247
+ } else {
1248
+ //Else not in the scenario.
1249
+ // #B183 — the app IS declared in the project env.json, but not for
1250
+ // the env being started, so it is skipped here. Say so: without it
1251
+ // the bundle would simply never load, with nothing explaining why.
1252
+ // The STARTING bundle additionally refuses the boot further down,
1253
+ // in loadBundleConfig (#B181(b)).
1254
+ console.warn('[CONFIG]['+ app +']['+ env +'] no `'+ env +'` block in the project env.json — skipping this bundle for this environment');
1214
1255
  }
1215
- //Else not in the scenario.
1216
1256
 
1217
1257
  }//EO for.
1218
1258
 
@@ -1510,6 +1550,27 @@ function Config(opt, contextResetNeeded) {
1510
1550
  console.debug('[CONFIG][loadBundleConfig] Loading `'+ bundle +'/'+ env +':'+ scope +'` configuration, please wait ...');
1511
1551
 
1512
1552
 
1553
+ // #B181(b) — the bundle list is built inside the env.json template-merge
1554
+ // loop, so an env.json that is empty, ABSENT (userConf stays false), or
1555
+ // that declares only bundles missing from manifest.json yields an EMPTY
1556
+ // list; `bundles[b]` is then undefined and `bundle` falls back to
1557
+ // startingApp above — a bundle `envConf` was never populated for. The
1558
+ // setServerCoreConf call below would deref `envConf[bundle][env]` and
1559
+ // die as an uncaughtException naming neither env.json nor the bundle.
1560
+ // Refuse here instead, matching the #B132 routing.json refusal further
1561
+ // down this same function (callback(err) leads to process.exit(1)), so
1562
+ // an external supervisor retries while a release tree settles. This
1563
+ // predicate can only be true in a configuration that ALREADY crashed,
1564
+ // so it cannot refuse a boot that works today.
1565
+ if ( !conf[bundle] || !conf[bundle][env] ) {
1566
+ var _envBlockMsg = '[ ' + bundle + ' ][ ' + env + ' ] no configuration block for this bundle/env in '
1567
+ + self.executionPath + '/env.json ('
1568
+ + ( self.userConf ? 'the file declares no `'+ bundle +'.'+ env +'` block' : 'file NOT FOUND' )
1569
+ + ') — every bundle must be declared there for the env it starts in; refusing to start';
1570
+ console.error(_envBlockMsg);
1571
+ return callback(new Error(_envBlockMsg));
1572
+ }
1573
+
1513
1574
  self.setServerCoreConf(bundle, env, scope, conf.core);
1514
1575
 
1515
1576
  // bundle paths, ports, protocols
@@ -102,6 +102,154 @@ var _mintErrorRef = function(supplied) {
102
102
  }
103
103
  return crypto.randomBytes(3).toString('hex').toUpperCase();
104
104
  };
105
+
106
+ /**
107
+ * #CE1 — resolves the bundle's `server.transientErrors` block into its
108
+ * effective values. Total: never throws, and tolerates any malformed shape
109
+ * by falling back to the documented defaults (the boot-time warn pass in
110
+ * `core/gna.js` names each ignored key once at startup — keep both sites'
111
+ * rules in sync). Strictness rules:
112
+ * - `enabled` must be strictly boolean `true` — any other type or value
113
+ * leaves the feature off (an error-rendering opt-in must never turn on
114
+ * by accident);
115
+ * - `retryAfter` must be an integer within 1..86400 seconds, else 30;
116
+ * - `message` must be a non-empty string, else null (the caller falls
117
+ * back to the standard status text).
118
+ *
119
+ * @private
120
+ * @param {object} bundleConf - the per-request bundle configuration
121
+ * @returns {{enabled: boolean, retryAfter: number, message: (string|null)}} effective values
122
+ */
123
+ var _getTransientErrorsConf = function(bundleConf) {
124
+ var out = { enabled: false, retryAfter: 30, message: null };
125
+ try {
126
+ var block = bundleConf && bundleConf.server && bundleConf.server.transientErrors;
127
+ if ( !block || typeof(block) != 'object' ) {
128
+ return out;
129
+ }
130
+ out.enabled = ( block.enabled === true );
131
+ if (
132
+ typeof(block.retryAfter) == 'number'
133
+ && isFinite(block.retryAfter)
134
+ && Math.floor(block.retryAfter) === block.retryAfter
135
+ && block.retryAfter >= 1
136
+ && block.retryAfter <= 86400
137
+ ) {
138
+ out.retryAfter = block.retryAfter;
139
+ }
140
+ if ( typeof(block.message) == 'string' && block.message.length > 0 ) {
141
+ out.message = block.message;
142
+ }
143
+ } catch (confReadErr) {
144
+ // hostile getters on a user-supplied config object — keep the
145
+ // defaults; rendering of the request error must not be derailed
146
+ // by a config-read failure (same total-function bar as
147
+ // lib/connector-error.classify()).
148
+ }
149
+ return out;
150
+ };
151
+
152
+ // #P39 — per-culture locale-resolution memo. setOptions used to build TWO
153
+ // Collections per request over the boot-loaded region sets (a full deep copy
154
+ // of ~500 nested records each time, plus one 16-char id minted per record —
155
+ // ~750 webcrypto calls) to answer two lookups: language → region set, and
156
+ // country → one row. The lookups are pure functions of boot-static data
157
+ // (`getContext('gina').locales` is set once at bundle start), so they are
158
+ // memoized at module level. The memo holds only references into that
159
+ // process-global context — no request state — and rebuilds whenever the
160
+ // context array's identity changes (or when dev-mode eviction re-requires
161
+ // this module, where a rebuild costs one pass over the language rows).
162
+ var _localesIdxSrc = null;
163
+ var _localesIdx = null;
164
+ var _localeRowMemo = null;
165
+
166
+ /**
167
+ * Language index over the boot-loaded locales context.
168
+ * Maps a language code to its `{ lang, content }` row — first row wins on a
169
+ * duplicate language, matching the historical first-match lookup semantics.
170
+ *
171
+ * @private
172
+ * @returns {object} lang → locales row (shared, pristine — callers must not mutate)
173
+ */
174
+ var _resolveLocalesIndex = function() {
175
+ var src = getContext('gina').locales;
176
+ if (_localesIdxSrc !== src || !_localesIdx) {
177
+ _localesIdxSrc = src;
178
+ _localesIdx = {};
179
+ _localeRowMemo = {};
180
+ for (var i = 0, len = src.length; i < len; ++i) {
181
+ if ( typeof(_localesIdx[src[i].lang]) == 'undefined' ) {
182
+ _localesIdx[src[i].lang] = src[i];
183
+ }
184
+ }
185
+ }
186
+ return _localesIdx;
187
+ };
188
+
189
+ /**
190
+ * Country-row lookup within a language's region set, memoized per
191
+ * `<lang>|<ISO>` culture pair (misses are memoized too).
192
+ *
193
+ * Region rows key countries by UPPERCASE `isoShort` (ISO 3166-1 alpha-2 —
194
+ * #B101), so a strict compare after `toUpperCase()` matches what the former
195
+ * case-insensitive whole-string lookup resolved on this data.
196
+ *
197
+ * @private
198
+ * @param {array} contentRows - a language's region set (the index row's `.content`)
199
+ * @param {string} langCode - the language the rows were resolved FOR (fallback-resolved lang keys consistently)
200
+ * @param {string} countryCode - ISO 3166-1 alpha-2 country code, any case
201
+ * @returns {object|null} the shared pristine row, or null when the country is not in the set
202
+ */
203
+ var _resolveLocaleRow = function(contentRows, langCode, countryCode) {
204
+ var iso = countryCode.toUpperCase();
205
+ var key = langCode + '|' + iso;
206
+ if ( typeof(_localeRowMemo[key]) != 'undefined' ) {
207
+ return _localeRowMemo[key];
208
+ }
209
+ var row = null;
210
+ for (var i = 0, len = contentRows.length; i < len; ++i) {
211
+ if ( contentRows[i] && contentRows[i].isoShort === iso ) {
212
+ row = contentRows[i];
213
+ break;
214
+ }
215
+ }
216
+ _localeRowMemo[key] = row;
217
+ return row;
218
+ };
219
+
220
+ /**
221
+ * Defines `conf.locales` as a LAZY, self-replacing accessor: the request's
222
+ * own deep copy of the region set is materialized on first read and cached
223
+ * on the request's conf object from then on.
224
+ *
225
+ * The render path itself never reads `conf.locales` — its only framework
226
+ * reader is `self.getLocales()` — so the common request pays nothing, while
227
+ * a request that does read it gets exactly the isolation the former eager
228
+ * per-request copy provided (a fresh deep copy, safe to mutate). Whole-conf
229
+ * consumers (`self.getConfig()`, serializers) materialize it through the
230
+ * accessor transparently. The accessor is enumerable and writable-through
231
+ * (assignment replaces it with a plain value), and configurable so a second
232
+ * `setOptions()` on the same request re-defines it cleanly.
233
+ *
234
+ * @private
235
+ * @param {object} conf - the request's conf (the router's per-request shallow copy)
236
+ * @param {array} srcRows - the resolved language's region set (shared, pristine)
237
+ * @returns {void}
238
+ */
239
+ var _defineLazyLocales = function(conf, srcRows) {
240
+ Object.defineProperty(conf, 'locales', {
241
+ configurable: true,
242
+ enumerable: true,
243
+ get: function() {
244
+ var rows = JSON.clone(srcRows);
245
+ Object.defineProperty(this, 'locales', { configurable: true, enumerable: true, writable: true, value: rows });
246
+ return rows;
247
+ },
248
+ set: function(v) {
249
+ Object.defineProperty(this, 'locales', { configurable: true, enumerable: true, writable: true, value: v });
250
+ }
251
+ });
252
+ };
105
253
  var _isProdScope = process.env.NODE_SCOPE_IS_PRODUCTION && process.env.NODE_SCOPE_IS_PRODUCTION.toLowerCase() === 'true';
106
254
 
107
255
 
@@ -835,24 +983,32 @@ function SuperController(options) {
835
983
  var userLangCode = userCultureCode[0];
836
984
  var userCountryCode = userCultureCode[1];
837
985
 
838
- var locales = new Collection( getContext('gina').locales );
986
+ // #P39 — memoized language index over the boot-static locales
987
+ // context (was: a per-request Collection deep-copying every region
988
+ // set and minting an id per record, twice, to answer two lookups).
989
+ var localesIdx = _resolveLocalesIndex();
990
+ var userLangRow = localesIdx[userLangCode];
839
991
  var userLocales = null;
840
992
 
841
993
  try {
842
- userLocales = locales.findOne({ lang: userLangCode }).content;
994
+ userLocales = userLangRow.content;
843
995
  } catch (err) {
844
996
  // #B100 — guarded fallback: the old blind `region.shortCode` deref
845
997
  // threw here when the `region` block was absent, and the unguarded
846
- // fallback `findOne().content` threw when the resolved language
847
- // was not in the loaded region set.
998
+ // fallback lookup threw when the resolved language was not in the
999
+ // loaded region set.
848
1000
  var _fallbackLang = getLocaleFallbackLang(local.options.conf);
849
1001
  console.warn('language code `'+ userLangCode +'` not handled by current locales setup: replacing by default: `'+ _fallbackLang +'`');
850
- var _fallbackLocales = locales.findOne({ lang: _fallbackLang }) || locales.findOne({ lang: 'en' });
1002
+ var _fallbackLocales = localesIdx[_fallbackLang] || localesIdx['en'];
851
1003
  userLocales = ( _fallbackLocales && _fallbackLocales.content ) ? _fallbackLocales.content : [];
852
1004
  }
853
1005
 
854
1006
  // user locales list
855
- local.options.conf.locales = userLocales;
1007
+ // #P39 — materialized lazily: the request's own deep copy is built
1008
+ // on first read (see _defineLazyLocales), so a request that never
1009
+ // reads `conf.locales` — the common case — no longer pays a copy
1010
+ // of the whole region set.
1011
+ _defineLazyLocales(local.options.conf, userLocales);
856
1012
 
857
1013
  // user locale
858
1014
  // #B101 — region rows key countries by `isoShort` (uppercase ISO
@@ -862,8 +1018,12 @@ function SuperController(options) {
862
1018
  // a filter whose only key is undefined-valued serializes to `{}`
863
1019
  // and matches everything. A country-less culture (bare `en`) now
864
1020
  // resolves to an explicit `{}` instead.
1021
+ // #P39 — the row comes from the culture memo (shared, pristine) and
1022
+ // is deep-copied per request: the `.date` write a few lines below —
1023
+ // and anything a template or an action does to `page.view.locale` —
1024
+ // must never reach a sibling request.
865
1025
  options.conf.locale = ( typeof(userCountryCode) == 'string' && userCountryCode.length > 0 )
866
- ? ( new Collection(userLocales).findOne({ isoShort: userCountryCode.toUpperCase() }) || {} )
1026
+ ? ( JSON.clone( _resolveLocaleRow(userLocales, userLangCode, userCountryCode) || {} ) )
867
1027
  : {};
868
1028
 
869
1029
  // current date
@@ -5337,15 +5497,19 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
5337
5497
 
5338
5498
  if ( typeof(shortCountryCode) != 'undefined' ) {
5339
5499
  shortCountryCode = shortCountryCode.toLowerCase();
5340
- var locales = new Collection( getContext('gina').locales );
5500
+ // #P39 — memoized language index (was: a per-call Collection deep-
5501
+ // copying every region set). The rows handed on are shared and
5502
+ // pristine; the only consumer below is the getCountries projection,
5503
+ // which builds fresh output rows and never writes into its input.
5504
+ var localesIdx = _resolveLocalesIndex();
5341
5505
 
5342
5506
  try {
5343
- userLocales = locales.findOne({ lang: shortCountryCode }).content
5507
+ userLocales = localesIdx[shortCountryCode].content
5344
5508
  } catch (err) {
5345
5509
  // #B100 — same guarded fallback as the setOptions locale bridge.
5346
5510
  var _fallbackLang = getLocaleFallbackLang(local.options.conf);
5347
5511
  console.warn('language code `'+ shortCountryCode +'` not handled to setup locales: replacing by `'+ _fallbackLang +'`');
5348
- var _fallbackLocales = locales.findOne({ lang: _fallbackLang }) || locales.findOne({ lang: 'en' });
5512
+ var _fallbackLocales = localesIdx[_fallbackLang] || localesIdx['en'];
5349
5513
  userLocales = ( _fallbackLocales && _fallbackLocales.content ) ? _fallbackLocales.content : [];
5350
5514
  }
5351
5515
  }
@@ -6051,6 +6215,19 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6051
6215
  * - `throwError(code, err)` — 2-arg form: HTTP status + Error|string
6052
6216
  * - `throwError(res, code, msg)` — internal 3-arg form used by the router
6053
6217
  *
6218
+ * #CE1 — transient upgrade (opt-in): when the bundle sets
6219
+ * `server.transientErrors.enabled: true` and any call argument carries
6220
+ * `isTransient === true` (a `lib/connector-error`-stamped datastore
6221
+ * error), a resolution that would render 500 renders 503 instead, with
6222
+ * a `Retry-After: <server.transientErrors.retryAfter>` header (default
6223
+ * 30s) and the user-facing `error` field set to
6224
+ * `server.transientErrors.message` (default: the standard 503 status
6225
+ * text). Explicit non-500 statuses are never upgraded; `message` and
6226
+ * `stack` keep their existing scope semantics, and the #ERRREF pairing
6227
+ * line below keeps the full pre-strip detail server-side. Deliberately
6228
+ * NOT mirrored in the server-side throwError twin (core/server.js):
6229
+ * stamped connector errors surface through controller actions only.
6230
+ *
6054
6231
  * Late calls: when throwError fires after a response terminal exit has
6055
6232
  * already released the per-request refs (`local.res` is null — e.g. an
6056
6233
  * entity/query callback resuming after a redirect() sent its 301), the
@@ -6070,6 +6247,68 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6070
6247
  * */
6071
6248
  this.throwError = function(res, code, msg) {
6072
6249
 
6250
+ // #CE1 — capture the transient-classified error source (if any)
6251
+ // BEFORE the call-shape normalizations below reassign res/code/msg.
6252
+ // Only `lib/connector-error.stamp()`ed datastore errors carry
6253
+ // `isTransient === true`, so scanning the raw call arguments is an
6254
+ // unambiguous, total probe (guarded against hostile getters).
6255
+ var _transientSrc = null;
6256
+ var _teConf = null; // resolved lazily, only when a 500 would upgrade
6257
+ var _transient503Applied = false;
6258
+ try {
6259
+ for (var _ti = 0; _ti < arguments.length && _ti < 3; _ti++) {
6260
+ if ( arguments[_ti] && typeof(arguments[_ti]) == 'object' && arguments[_ti].isTransient === true ) {
6261
+ _transientSrc = arguments[_ti];
6262
+ break;
6263
+ }
6264
+ }
6265
+ } catch (_teScanErr) {}
6266
+
6267
+ /**
6268
+ * #CE1 — opt-in transient upgrade: with `server.transientErrors.enabled`,
6269
+ * a transient connector failure that would render as 500 renders as
6270
+ * 503 + `Retry-After` instead; any explicit non-500 status is
6271
+ * respected. Applied at BOTH status-resolution sites below.
6272
+ *
6273
+ * @inner
6274
+ * @param {number|string} resolvedCode - the status the resolution chain settled on
6275
+ * @returns {number|string} 503 when the upgrade applies, else `resolvedCode` unchanged
6276
+ */
6277
+ var _maybeUpgradeTransient503 = function(resolvedCode) {
6278
+ if ( _transientSrc && resolvedCode == 500 ) {
6279
+ if (_teConf === null) {
6280
+ _teConf = _getTransientErrorsConf(local.options.conf);
6281
+ }
6282
+ if (_teConf.enabled) {
6283
+ _transient503Applied = true;
6284
+ return 503;
6285
+ }
6286
+ }
6287
+ return resolvedCode;
6288
+ };
6289
+
6290
+ /**
6291
+ * #CE1 — an upgraded 503 advertises when to retry. A single early
6292
+ * setHeader survives every downstream egress: the JSON writeHead
6293
+ * calls merge per-key (Retry-After is never overwritten), the HTML
6294
+ * fallback writeHead does the same, and the renderCustomError →
6295
+ * render pipeline forwards res.getHeaders() into the HTTP/2 frame
6296
+ * (#H8). Idempotent — safe to call at both upgrade sites; no-ops
6297
+ * unless the upgrade fired.
6298
+ *
6299
+ * @inner
6300
+ * @param {object} targetRes - the normalized live response
6301
+ * @returns {void}
6302
+ */
6303
+ var _setTransientRetryAfterHeader = function(targetRes) {
6304
+ if ( !_transient503Applied || !targetRes || typeof(targetRes.setHeader) != 'function' ) {
6305
+ return;
6306
+ }
6307
+ try {
6308
+ targetRes.setHeader('Retry-After', String(_teConf.retryAfter));
6309
+ } catch (_teHdrErr) {}
6310
+ };
6311
+
6073
6312
  // 2-arg form (statusCode, Error|string) — without this shift, the
6074
6313
  // downstream Error/string branch coerces code via /^\d{3}$/.test(String(code))
6075
6314
  // and falls back to 500 because `code` holds the Error or string, not
@@ -6139,6 +6378,9 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6139
6378
  msg = ( !/^\d+$/.test(code) && typeof(msg) == 'undefined' ) ? code : msg;
6140
6379
  // Preserve an explicitly passed 3-digit HTTP status code; fall back to res.status or 500
6141
6380
  code = ( /^\d{3}$/.test(String(code)) ) ? code : ( res && typeof(res.status) != 'undefined' ) ? res.status : 500;
6381
+ // #CE1 — a transient datastore failure resolving to 500 upgrades
6382
+ // to 503 when the bundle opted in (explicit non-500 preserved above)
6383
+ code = _maybeUpgradeTransient503(code);
6142
6384
 
6143
6385
  if ( typeof(statusCodes[code]) != 'undefined' ) {
6144
6386
  standardErrorMessage = statusCodes[code];
@@ -6242,6 +6484,10 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6242
6484
  responseHeaders = res.getHeaders() || local.res.getHeaders();
6243
6485
  }
6244
6486
  // var responseHeaders = res.getHeaders() || local.res.getHeaders();
6487
+ // #CE1 — first upgrade site fired above: `res` is the normalized live
6488
+ // response by this point, so the Retry-After header lands here, ahead
6489
+ // of every branch (JSON writeHead trio, HTML fallback, custom pages).
6490
+ _setTransientRetryAfterHeader(res);
6245
6491
  var req = local.req;
6246
6492
  var next = local.next;
6247
6493
  if (!headersSent()) {
@@ -6274,6 +6520,12 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6274
6520
  if ( typeof(code) == 'object' && !msg && typeof(code.status) != 'undefined' && typeof(code.error) != 'undefined' ) {
6275
6521
  msg = code.error || code.message;
6276
6522
  code = code.status || 500;
6523
+ // #CE1 — second upgrade site: the 2-arg errorObj shape
6524
+ // resolves its status only here, after the early header
6525
+ // point above — so this site sets its own header too
6526
+ // (idempotent with the first call).
6527
+ code = _maybeUpgradeTransient503(code);
6528
+ _setTransientRetryAfterHeader(res);
6277
6529
  }
6278
6530
  if ( typeof(statusCodes[code]) != 'undefined' ) {
6279
6531
  standardErrorMessage = statusCodes[code];
@@ -6319,6 +6571,15 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6319
6571
  }
6320
6572
  }
6321
6573
 
6574
+ // #CE1 — on an upgraded 503 the user-facing `error` field
6575
+ // carries the configured (or standard) service-unavailable
6576
+ // text instead of the raw datastore error; `message`/`stack`
6577
+ // keep their existing scope semantics, and the full detail
6578
+ // stays in the #ERRREF pairing line below.
6579
+ if ( _transient503Applied && errorObject ) {
6580
+ errorObject.error = _teConf.message || standardErrorMessage || statusCodes['503'];
6581
+ }
6582
+
6322
6583
  // #ERRREF — mint/honour the incident ref + the ONE full-detail
6323
6584
  // pairing line, emitted BEFORE the egress strip below: outside
6324
6585
  // local scope this is the only server-side capture of the full
@@ -6382,6 +6643,14 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
6382
6643
  errorObject.ref = _errRef;
6383
6644
  }
6384
6645
 
6646
+ // #CE1 — custom error pages (eData) get the clean
6647
+ // service-unavailable text on an upgraded 503; the eData
6648
+ // merge below carries it. The inline fallback page keeps
6649
+ // rendering the thrown error's own fields, as before.
6650
+ if ( _transient503Applied && errorObject ) {
6651
+ errorObject.error = _teConf.message || standardErrorMessage || statusCodes['503'];
6652
+ }
6653
+
6385
6654
  if ( errorObject && errorObject != 'null' && /object/i.test(typeof(errorObject)) ) {
6386
6655
  // replaced: (errorObject.stack||errorObject.message) — both may be undefined for plain
6387
6656
  // object errors forwarded from query() (e.g. an upstream non-2xx). Fall back to serializing
@@ -661,8 +661,12 @@ function registerGinaFilters(env, self, local, localOptions, req, res) {
661
661
  typeof(process.gina) != 'undefined' && typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
662
662
  ) ? true : false;
663
663
 
664
+ // #P39 — `options` passed by REFERENCE, mirroring render-swig: the filter
665
+ // singleton only READS the stash, and the former per-render deep copy of
666
+ // the whole `local.options` (routing tables + templates + settings + forms
667
+ // + locales) was one of the heaviest CPU sites in the render profile.
664
668
  var filters = nunjucksFilters({
665
- options: JSON.clone(localOptions),
669
+ options: localOptions,
666
670
  isProxyHost: isProxyHost,
667
671
  throwError: self.throwError,
668
672
  req: req,
@@ -780,8 +780,20 @@ module.exports = async function render(userData, displayInspector, errOptions, d
780
780
 
781
781
 
782
782
  // Setup swig default filters
783
+ // #P39 — `options` is passed by REFERENCE. The former per-render deep
784
+ // copy here was one of the two heaviest CPU sites in the whole render
785
+ // path (the payload carries the all-bundle routing tables, the full
786
+ // templates conf, settings, forms and locales), and it bought nothing:
787
+ // SwigFilters' `_options` write-set is empty beyond the stash itself —
788
+ // every filter only READS it — and the request path already shares
789
+ // `conf.routing` / `conf.reverseRouting` / `conf.forms` by reference
790
+ // (setOptions grafts the shared per-worker objects), so the filters see
791
+ // the same objects the controller itself uses. The stash-then-await
792
+ // interleave window is unchanged: with the copy, an interleaved render
793
+ // overwrote the singleton with ITS copy; by reference it overwrites it
794
+ // with ITS options — same wrongness class, zero new exposure.
783
795
  var filters = SwigFilters({
784
- options : JSON.clone(localOptions),
796
+ options : localOptions,
785
797
  isProxyHost : isProxyHost,
786
798
  throwError : self.throwError,
787
799
  req : req,
@@ -1525,6 +1525,37 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1525
1525
  console.warn('[render-cache] config validation skipped: ' + (rcErr.message || rcErr));
1526
1526
  }
1527
1527
 
1528
+ // #CE1 — `server.transientErrors` boot-time shape check
1529
+ // (warn-only, NEVER fatal: the opt-in governs how a
1530
+ // transient datastore error RENDERS — a bad value must
1531
+ // not refuse a boot, and the controller-side reader
1532
+ // (`controller.js` `_getTransientErrorsConf()`, kept in
1533
+ // sync with these rules) independently falls back to
1534
+ // the same defaults at request time).
1535
+ try {
1536
+ var _teBlock = null;
1537
+ try {
1538
+ _teBlock = config.getInstance()[gna.core.startingApp][env].server.transientErrors;
1539
+ } catch (teConfErr) { _teBlock = null; }
1540
+ if ( typeof(_teBlock) != 'undefined' && _teBlock !== null ) {
1541
+ if ( typeof(_teBlock) != 'object' || Array.isArray(_teBlock) ) {
1542
+ console.warn('[transient-errors] `server.transientErrors` must be an object — ignoring the whole block (feature off)');
1543
+ } else {
1544
+ if ( typeof(_teBlock.enabled) != 'undefined' && _teBlock.enabled !== true && _teBlock.enabled !== false ) {
1545
+ console.warn('[transient-errors] `server.transientErrors.enabled` must be a strict boolean — treating as disabled');
1546
+ }
1547
+ if ( typeof(_teBlock.retryAfter) != 'undefined' && !( typeof(_teBlock.retryAfter) == 'number' && isFinite(_teBlock.retryAfter) && Math.floor(_teBlock.retryAfter) === _teBlock.retryAfter && _teBlock.retryAfter >= 1 && _teBlock.retryAfter <= 86400 ) ) {
1548
+ console.warn('[transient-errors] `server.transientErrors.retryAfter` must be an integer between 1 and 86400 seconds — using the default (30)');
1549
+ }
1550
+ if ( typeof(_teBlock.message) != 'undefined' && ( typeof(_teBlock.message) != 'string' || _teBlock.message.length === 0 ) ) {
1551
+ console.warn('[transient-errors] `server.transientErrors.message` must be a non-empty string — falling back to the standard status text');
1552
+ }
1553
+ }
1554
+ }
1555
+ } catch (teErr) {
1556
+ console.warn('[transient-errors] config validation skipped: ' + (teErr.message || teErr));
1557
+ }
1558
+
1528
1559
  // setting default global middlewares
1529
1560
  if ( typeof(instance.use) == 'function' ) {
1530
1561
 
@@ -28,6 +28,18 @@
28
28
  // - the `rootDomain` defined in your bundle/config/settings.server.json
29
29
  // Since overrides are possible, last defined value will be the one taken in consideration by gina
30
30
  "rootDomain": "",
31
+ // This is the FQDN the bundle answers on, and the value substituted into
32
+ // every `${host}` token — notably the `server.credentials` paths declared
33
+ // in `core/template/conf/settings.json`.
34
+ // It is normally written per bundle/env into the project's own `env.json`
35
+ // by the CLI, which seeds exactly this value. The default lives here too
36
+ // so that a hand-written or partial block (one that sets, say, only
37
+ // `server.cache`) still resolves: without it `host` was the single key the
38
+ // configuration reads off this block with no framework-side default, and
39
+ // an unset one left `${host}` unsubstituted inside a filesystem path
40
+ // (#B181(a) — unknown tokens are preserved verbatim and silently, by
41
+ // design since #B12). Override it in your project `env.json`.
42
+ "host": "localhost",
31
43
  "projectPath": "${executionPath}",
32
44
  "projectVersion": "${projectVersion}",
33
45
  "projectVersionMajor": "${projectVersionMajor}",
@@ -110,7 +110,13 @@ function NunjucksFilters(conf) {
110
110
 
111
111
  var getInstance = function() {
112
112
  if (conf) {
113
- self.options = NunjucksFilters.instance._options = JSON.clone(conf);
113
+ // #P39 — stash by REFERENCE, mirroring lib/swig-filters: `_options`
114
+ // has no writer beyond this assignment (the getUrl/getWebroot merge
115
+ // fills a fresh `{}` target), the wrapper's `.options` is the
116
+ // render's per-request `local.options` (#M1), and `req`/`res` were
117
+ // by-reference through the former deep copy anyway. The per-call
118
+ // copy was pure CPU waste on every render.
119
+ self.options = NunjucksFilters.instance._options = conf;
114
120
  }
115
121
  return NunjucksFilters.instance;
116
122
  };
@@ -527,6 +527,16 @@ function Proc(bundle, proc, usePidFile){
527
527
  generator.createFileFromDataSync( JSON.stringify(runningProcs, null, 2), runningProcsPath);
528
528
  }
529
529
 
530
+ /**
531
+ * Remove the running-process record matching `pid` from the
532
+ * `~/.gina/procs.json` registry. Entries are keyed by bundle name and
533
+ * matched here by their `pid` field; the matched entry is removed under
534
+ * its own key, whatever bundle this instance was constructed for.
535
+ *
536
+ * @param {number} pid - PID of the process whose record must be dropped
537
+ *
538
+ * @private
539
+ * */
530
540
  var removeRunningProc = function(pid) {
531
541
  var runningProcsPath = _(GINA_HOMEDIR + '/procs.json', true)
532
542
  , runningProcsPathObj = new _(runningProcsPath)
@@ -536,7 +546,11 @@ function Proc(bundle, proc, usePidFile){
536
546
  runningProcs = requireJSON(runningProcsPath);
537
547
  for (let name in runningProcs) {
538
548
  if (runningProcs[name].pid == pid) {
539
- delete runningProcs[bundle];
549
+ // Fixed #B180: was `delete runningProcs[bundle]` — the constructor's
550
+ // closure-captured parameter, so the delete targeted the constructing
551
+ // instance's own key instead of the entry matched by pid: dead records
552
+ // survived (and a live one was destroyed when the keys differed).
553
+ delete runningProcs[name];
540
554
  generator.createFileFromDataSync( JSON.stringify(runningProcs, null, 2), runningProcsPath);
541
555
  break;
542
556
  }