gina 0.5.6 → 0.5.7

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 (499) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +9 -6
  3. package/ROADMAP.md +1 -0
  4. package/framework/v0.5.7/VERSION +1 -0
  5. package/framework/v0.5.7/core/connectors/mongodb/lib/job-store.js +334 -0
  6. package/framework/v0.5.7/core/connectors/redis/index.js +36 -0
  7. package/framework/v0.5.7/core/connectors/redis/lib/connector.js +66 -0
  8. package/framework/v0.5.7/core/connectors/redis/lib/job-store.js +454 -0
  9. package/framework/v0.5.7/core/connectors/sqlite/lib/job-store.js +263 -0
  10. package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-json.js +41 -31
  11. package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-stream.js +10 -5
  12. package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-swig.js +37 -31
  13. package/framework/{v0.5.6 → v0.5.7}/core/gna.js +22 -2
  14. package/framework/{v0.5.6 → v0.5.7}/core/server.js +68 -0
  15. package/framework/{v0.5.6 → v0.5.7}/lib/index.js +4 -0
  16. package/framework/{v0.5.6 → v0.5.7}/lib/job/src/main.js +147 -29
  17. package/framework/v0.5.7/lib/job-store.js +84 -0
  18. package/framework/{v0.5.6 → v0.5.7}/package.json +1 -1
  19. package/gna.js +4 -4
  20. package/llms.txt +7 -4
  21. package/package.json +4 -4
  22. package/script/check_no_local_leak.js +22 -2
  23. package/script/smoke_in_container.js +8 -2
  24. package/script/smoke_test_tarball.js +8 -1
  25. package/framework/v0.5.6/VERSION +0 -1
  26. package/framework/v0.5.6/core/connectors/redis/index.js +0 -30
  27. /package/framework/{v0.5.6 → v0.5.7}/AUTHORS +0 -0
  28. /package/framework/{v0.5.6 → v0.5.7}/LICENSE +0 -0
  29. /package/framework/{v0.5.6 → v0.5.7}/core/asset/html/nolayout.html +0 -0
  30. /package/framework/{v0.5.6 → v0.5.7}/core/asset/html/static.html +0 -0
  31. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/android-chrome-192x192.png +0 -0
  32. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/android-chrome-512x512.png +0 -0
  33. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/apple-touch-icon.png +0 -0
  34. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/favicon-16x16.png +0 -0
  35. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/favicon-32x32.png +0 -0
  36. /package/framework/{v0.5.6 → v0.5.7}/core/asset/img/favicon.ico +0 -0
  37. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/README.md +0 -0
  38. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  39. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  40. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  41. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  42. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  43. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  44. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  45. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  46. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  47. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  48. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  49. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  50. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  51. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  52. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  53. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  54. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  55. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  56. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  57. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  58. /package/framework/{v0.5.6 → v0.5.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  59. /package/framework/{v0.5.6 → v0.5.7}/core/config.js +0 -0
  60. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/ai/index.js +0 -0
  61. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/ai/lib/connector.js +0 -0
  62. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/index.js +0 -0
  63. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/connector.js +0 -0
  64. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  65. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  66. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/n1ql.js +0 -0
  67. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/session-store.js +0 -0
  68. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  69. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  70. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mongodb/index.js +0 -0
  71. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mongodb/lib/connector.js +0 -0
  72. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  73. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mongodb/lib/session-store.js +0 -0
  74. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mysql/index.js +0 -0
  75. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/mysql/lib/connector.js +0 -0
  76. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/postgresql/index.js +0 -0
  77. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/postgresql/lib/connector.js +0 -0
  78. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/redis/lib/session-store.js +0 -0
  79. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/scylladb/index.js +0 -0
  80. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/scylladb/lib/connector.js +0 -0
  81. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/scylladb/lib/session-store.js +0 -0
  82. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/sql-parser.js +0 -0
  83. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/sqlite/index.js +0 -0
  84. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/sqlite/lib/connector.js +0 -0
  85. /package/framework/{v0.5.6 → v0.5.7}/core/connectors/sqlite/lib/session-store.js +0 -0
  86. /package/framework/{v0.5.6 → v0.5.7}/core/content.encoding +0 -0
  87. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.framework.js +0 -0
  88. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.js +0 -0
  89. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-nunjucks-async.js +0 -0
  90. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-nunjucks.js +0 -0
  91. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-swig-async.js +0 -0
  92. /package/framework/{v0.5.6 → v0.5.7}/core/controller/controller.render-v1.js +0 -0
  93. /package/framework/{v0.5.6 → v0.5.7}/core/controller/index.js +0 -0
  94. /package/framework/{v0.5.6 → v0.5.7}/core/controller/inspector-window-emit.js +0 -0
  95. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/LICENSE +0 -0
  96. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/README.md +0 -0
  97. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  98. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  99. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  100. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  101. /package/framework/{v0.5.6 → v0.5.7}/core/deps/busboy-1.6.0/package.json +0 -0
  102. /package/framework/{v0.5.6 → v0.5.7}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  103. /package/framework/{v0.5.6 → v0.5.7}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  104. /package/framework/{v0.5.6 → v0.5.7}/core/deps/streamsearch-1.1.0/package.json +0 -0
  105. /package/framework/{v0.5.6 → v0.5.7}/core/dev/index.js +0 -0
  106. /package/framework/{v0.5.6 → v0.5.7}/core/dev/lib/class.js +0 -0
  107. /package/framework/{v0.5.6 → v0.5.7}/core/dev/lib/factory.js +0 -0
  108. /package/framework/{v0.5.6 → v0.5.7}/core/dev/lib/tools.js +0 -0
  109. /package/framework/{v0.5.6 → v0.5.7}/core/locales/README.md +0 -0
  110. /package/framework/{v0.5.6 → v0.5.7}/core/locales/currency.json +0 -0
  111. /package/framework/{v0.5.6 → v0.5.7}/core/locales/dist/language/en.json +0 -0
  112. /package/framework/{v0.5.6 → v0.5.7}/core/locales/dist/language/fr.json +0 -0
  113. /package/framework/{v0.5.6 → v0.5.7}/core/locales/dist/region/en.json +0 -0
  114. /package/framework/{v0.5.6 → v0.5.7}/core/locales/dist/region/fr.json +0 -0
  115. /package/framework/{v0.5.6 → v0.5.7}/core/locales/index.js +0 -0
  116. /package/framework/{v0.5.6 → v0.5.7}/core/mime.types +0 -0
  117. /package/framework/{v0.5.6 → v0.5.7}/core/model/entity.js +0 -0
  118. /package/framework/{v0.5.6 → v0.5.7}/core/model/index.js +0 -0
  119. /package/framework/{v0.5.6 → v0.5.7}/core/model/template/entityFactory.js +0 -0
  120. /package/framework/{v0.5.6 → v0.5.7}/core/model/template/index.js +0 -0
  121. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/README.md +0 -0
  122. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/index.js +0 -0
  123. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/csrf/README.md +0 -0
  124. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/csrf/package.json +0 -0
  125. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/csrf/src/main.js +0 -0
  126. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/README.md +0 -0
  127. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coep/README.md +0 -0
  128. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coep/package.json +0 -0
  129. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  130. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coop/README.md +0 -0
  131. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coop/package.json +0 -0
  132. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  133. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/corp/README.md +0 -0
  134. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/corp/package.json +0 -0
  135. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  136. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/csp/README.md +0 -0
  137. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/csp/package.json +0 -0
  138. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  139. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  140. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  141. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  142. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  143. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  144. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  145. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  146. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  147. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  148. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/package.json +0 -0
  149. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  150. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  151. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  152. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/src/main.js +0 -0
  153. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  154. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  155. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  156. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  157. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  158. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  159. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  160. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  161. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  162. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  163. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  164. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  165. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  166. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  167. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  168. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  169. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  170. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  171. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/session/README.md +0 -0
  172. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/session/package.json +0 -0
  173. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/session/src/main.js +0 -0
  174. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/storage/README.md +0 -0
  175. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/storage/build.json +0 -0
  176. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/storage/package.json +0 -0
  177. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/storage/src/main.js +0 -0
  178. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/validator/README.md +0 -0
  179. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/validator/build.json +0 -0
  180. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/validator/package.json +0 -0
  181. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/validator/src/form-validator.js +0 -0
  182. /package/framework/{v0.5.6 → v0.5.7}/core/plugins/lib/validator/src/main.js +0 -0
  183. /package/framework/{v0.5.6 → v0.5.7}/core/router.js +0 -0
  184. /package/framework/{v0.5.6 → v0.5.7}/core/server.express.js +0 -0
  185. /package/framework/{v0.5.6 → v0.5.7}/core/server.isaac.js +0 -0
  186. /package/framework/{v0.5.6 → v0.5.7}/core/status.codes +0 -0
  187. /package/framework/{v0.5.6 → v0.5.7}/core/template/_gitignore +0 -0
  188. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/app.json +0 -0
  189. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  190. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/routing.json +0 -0
  191. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/settings.json +0 -0
  192. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  193. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/templates.json +0 -0
  194. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  195. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  196. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  197. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  198. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/index.js +0 -0
  199. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle/locales/en.json +0 -0
  200. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  201. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  202. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  203. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  204. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  205. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  206. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  207. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/readme.md +0 -0
  208. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_public/sw.js +0 -0
  209. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  210. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  211. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  212. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  213. /package/framework/{v0.5.6 → v0.5.7}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  214. /package/framework/{v0.5.6 → v0.5.7}/core/template/command/gina.bat.tpl +0 -0
  215. /package/framework/{v0.5.6 → v0.5.7}/core/template/command/gina.tpl +0 -0
  216. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/env.json +0 -0
  217. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/manifest.json +0 -0
  218. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/package.json +0 -0
  219. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/settings.json +0 -0
  220. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/statics.json +0 -0
  221. /package/framework/{v0.5.6 → v0.5.7}/core/template/conf/templates.json +0 -0
  222. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/client/json/401.json +0 -0
  223. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/client/json/403.json +0 -0
  224. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/client/json/404.json +0 -0
  225. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/server/html/50x.html +0 -0
  226. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/server/json/500.json +0 -0
  227. /package/framework/{v0.5.6 → v0.5.7}/core/template/error/server/json/503.json +0 -0
  228. /package/framework/{v0.5.6 → v0.5.7}/core/template/extensions/logger/config.json +0 -0
  229. /package/framework/{v0.5.6 → v0.5.7}/helpers/console.js +0 -0
  230. /package/framework/{v0.5.6 → v0.5.7}/helpers/context.js +0 -0
  231. /package/framework/{v0.5.6 → v0.5.7}/helpers/data/LICENSE +0 -0
  232. /package/framework/{v0.5.6 → v0.5.7}/helpers/data/README.md +0 -0
  233. /package/framework/{v0.5.6 → v0.5.7}/helpers/data/package.json +0 -0
  234. /package/framework/{v0.5.6 → v0.5.7}/helpers/data/src/main.js +0 -0
  235. /package/framework/{v0.5.6 → v0.5.7}/helpers/dateFormat.js +0 -0
  236. /package/framework/{v0.5.6 → v0.5.7}/helpers/index.js +0 -0
  237. /package/framework/{v0.5.6 → v0.5.7}/helpers/json/LICENSE +0 -0
  238. /package/framework/{v0.5.6 → v0.5.7}/helpers/json/README.md +0 -0
  239. /package/framework/{v0.5.6 → v0.5.7}/helpers/json/package.json +0 -0
  240. /package/framework/{v0.5.6 → v0.5.7}/helpers/json/src/main.js +0 -0
  241. /package/framework/{v0.5.6 → v0.5.7}/helpers/path.js +0 -0
  242. /package/framework/{v0.5.6 → v0.5.7}/helpers/plugins/README.md +0 -0
  243. /package/framework/{v0.5.6 → v0.5.7}/helpers/plugins/package.json +0 -0
  244. /package/framework/{v0.5.6 → v0.5.7}/helpers/plugins/src/api-error.js +0 -0
  245. /package/framework/{v0.5.6 → v0.5.7}/helpers/plugins/src/main.js +0 -0
  246. /package/framework/{v0.5.6 → v0.5.7}/helpers/prototypes.js +0 -0
  247. /package/framework/{v0.5.6 → v0.5.7}/helpers/task.js +0 -0
  248. /package/framework/{v0.5.6 → v0.5.7}/helpers/text.js +0 -0
  249. /package/framework/{v0.5.6 → v0.5.7}/lib/admin/package.json +0 -0
  250. /package/framework/{v0.5.6 → v0.5.7}/lib/admin/src/main.js +0 -0
  251. /package/framework/{v0.5.6 → v0.5.7}/lib/archiver/README.md +0 -0
  252. /package/framework/{v0.5.6 → v0.5.7}/lib/archiver/build.json +0 -0
  253. /package/framework/{v0.5.6 → v0.5.7}/lib/archiver/package.json +0 -0
  254. /package/framework/{v0.5.6 → v0.5.7}/lib/archiver/src/dep/jszip.min.js +0 -0
  255. /package/framework/{v0.5.6 → v0.5.7}/lib/archiver/src/main.js +0 -0
  256. /package/framework/{v0.5.6 → v0.5.7}/lib/async/package.json +0 -0
  257. /package/framework/{v0.5.6 → v0.5.7}/lib/async/src/main.js +0 -0
  258. /package/framework/{v0.5.6 → v0.5.7}/lib/cache/README.md +0 -0
  259. /package/framework/{v0.5.6 → v0.5.7}/lib/cache/build.json +0 -0
  260. /package/framework/{v0.5.6 → v0.5.7}/lib/cache/package.json +0 -0
  261. /package/framework/{v0.5.6 → v0.5.7}/lib/cache/src/main.js +0 -0
  262. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/aliases.json +0 -0
  263. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/add.js +0 -0
  264. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/arguments.json +0 -0
  265. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/build.js +0 -0
  266. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/copy.js +0 -0
  267. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/cp.js +0 -0
  268. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/help.js +0 -0
  269. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/help.txt +0 -0
  270. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  271. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/list.js +0 -0
  272. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/man.js +0 -0
  273. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/mcp-start.js +0 -0
  274. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/mcp.js +0 -0
  275. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/oas.js +0 -0
  276. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/openapi.js +0 -0
  277. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/remove.js +0 -0
  278. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/rename.js +0 -0
  279. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/restart.js +0 -0
  280. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/rm.js +0 -0
  281. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/start.js +0 -0
  282. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/status.js +0 -0
  283. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/bundle/stop.js +0 -0
  284. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/cache/stats.js +0 -0
  285. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/add.js +0 -0
  286. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/arguments.json +0 -0
  287. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/help.js +0 -0
  288. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/help.txt +0 -0
  289. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/infer.js +0 -0
  290. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/list.js +0 -0
  291. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/migrate.js +0 -0
  292. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/remove.js +0 -0
  293. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/rm.js +0 -0
  294. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/connector/test.js +0 -0
  295. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/add.js +0 -0
  296. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/get.js +0 -0
  297. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/help.js +0 -0
  298. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/help.txt +0 -0
  299. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/link-dev.js +0 -0
  300. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/list.js +0 -0
  301. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/remove.js +0 -0
  302. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/rm.js +0 -0
  303. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/set.js +0 -0
  304. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/unset.js +0 -0
  305. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/env/use.js +0 -0
  306. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/add.js +0 -0
  307. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/arguments.json +0 -0
  308. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/build.js +0 -0
  309. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/dot.js +0 -0
  310. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/get.js +0 -0
  311. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/help.js +0 -0
  312. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/help.txt +0 -0
  313. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/init.js +0 -0
  314. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/link-node-modules.js +0 -0
  315. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/link.js +0 -0
  316. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/list.js +0 -0
  317. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/man.js +0 -0
  318. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/msg.json +0 -0
  319. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/open.js +0 -0
  320. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/remove.js +0 -0
  321. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/reset.js +0 -0
  322. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/restart.js +0 -0
  323. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/set.js +0 -0
  324. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/start.js +0 -0
  325. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/status.js +0 -0
  326. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/stop.js +0 -0
  327. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/tail.js +0 -0
  328. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/update.js +0 -0
  329. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/framework/version.js +0 -0
  330. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/gina-dev.1.md +0 -0
  331. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/gina-framework.1.md +0 -0
  332. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/gina.1.md +0 -0
  333. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/helper.js +0 -0
  334. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/add.js +0 -0
  335. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/arguments.json +0 -0
  336. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/export.js +0 -0
  337. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/help.js +0 -0
  338. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/help.txt +0 -0
  339. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/import.js +0 -0
  340. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/i18n/scan.js +0 -0
  341. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/index.js +0 -0
  342. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/inspector/help.js +0 -0
  343. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/inspector/help.txt +0 -0
  344. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/inspector/open.js +0 -0
  345. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/man-render.js +0 -0
  346. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/minion/arguments.json +0 -0
  347. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/minion/help.js +0 -0
  348. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/minion/help.txt +0 -0
  349. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/minion/kill.js +0 -0
  350. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/minion/list.js +0 -0
  351. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/msg.json +0 -0
  352. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/help.js +0 -0
  353. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/help.txt +0 -0
  354. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/inc/scan.js +0 -0
  355. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/list.js +0 -0
  356. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/reset.js +0 -0
  357. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/port/set.js +0 -0
  358. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/add.js +0 -0
  359. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/arguments.json +0 -0
  360. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/backup.js +0 -0
  361. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/build.js +0 -0
  362. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/help.js +0 -0
  363. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/help.txt +0 -0
  364. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/import.js +0 -0
  365. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/list.js +0 -0
  366. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/man.js +0 -0
  367. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/move.js +0 -0
  368. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/remove.js +0 -0
  369. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/rename.js +0 -0
  370. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/restart.js +0 -0
  371. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/restore.js +0 -0
  372. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/rm.js +0 -0
  373. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/start.js +0 -0
  374. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/status.js +0 -0
  375. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/project/stop.js +0 -0
  376. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/arguments.json +0 -0
  377. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/help.js +0 -0
  378. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/help.txt +0 -0
  379. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/list.js +0 -0
  380. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/remove.js +0 -0
  381. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/protocol/set.js +0 -0
  382. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/add.js +0 -0
  383. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/help.js +0 -0
  384. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/help.txt +0 -0
  385. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/link-local.js +0 -0
  386. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/link-production.js +0 -0
  387. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/list.js +0 -0
  388. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/remove.js +0 -0
  389. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/rm.js +0 -0
  390. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/scope/use.js +0 -0
  391. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/secrets/arguments.json +0 -0
  392. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/secrets/check.js +0 -0
  393. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/secrets/help.js +0 -0
  394. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/secrets/help.txt +0 -0
  395. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/secrets/scan.js +0 -0
  396. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/service/help.js +0 -0
  397. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/service/help.txt +0 -0
  398. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/service/list.js +0 -0
  399. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/service/man.js +0 -0
  400. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/service/start.js +0 -0
  401. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd/view/add.js +0 -0
  402. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd-status-format/package.json +0 -0
  403. /package/framework/{v0.5.6 → v0.5.7}/lib/cmd-status-format/src/main.js +0 -0
  404. /package/framework/{v0.5.6 → v0.5.7}/lib/collection/README.md +0 -0
  405. /package/framework/{v0.5.6 → v0.5.7}/lib/collection/build.json +0 -0
  406. /package/framework/{v0.5.6 → v0.5.7}/lib/collection/package.json +0 -0
  407. /package/framework/{v0.5.6 → v0.5.7}/lib/collection/src/main.js +0 -0
  408. /package/framework/{v0.5.6 → v0.5.7}/lib/config.js +0 -0
  409. /package/framework/{v0.5.6 → v0.5.7}/lib/connector-config/package.json +0 -0
  410. /package/framework/{v0.5.6 → v0.5.7}/lib/connector-config/src/main.js +0 -0
  411. /package/framework/{v0.5.6 → v0.5.7}/lib/connector-registry/package.json +0 -0
  412. /package/framework/{v0.5.6 → v0.5.7}/lib/connector-registry/src/main.js +0 -0
  413. /package/framework/{v0.5.6 → v0.5.7}/lib/cron/README.md +0 -0
  414. /package/framework/{v0.5.6 → v0.5.7}/lib/cron/package.json +0 -0
  415. /package/framework/{v0.5.6 → v0.5.7}/lib/cron/src/main.js +0 -0
  416. /package/framework/{v0.5.6 → v0.5.7}/lib/domain/LICENSE +0 -0
  417. /package/framework/{v0.5.6 → v0.5.7}/lib/domain/README.md +0 -0
  418. /package/framework/{v0.5.6 → v0.5.7}/lib/domain/package.json +0 -0
  419. /package/framework/{v0.5.6 → v0.5.7}/lib/domain/src/main.js +0 -0
  420. /package/framework/{v0.5.6 → v0.5.7}/lib/generator/index.js +0 -0
  421. /package/framework/{v0.5.6 → v0.5.7}/lib/i18n/package.json +0 -0
  422. /package/framework/{v0.5.6 → v0.5.7}/lib/i18n/src/main.js +0 -0
  423. /package/framework/{v0.5.6 → v0.5.7}/lib/inherits/LICENSE +0 -0
  424. /package/framework/{v0.5.6 → v0.5.7}/lib/inherits/README.md +0 -0
  425. /package/framework/{v0.5.6 → v0.5.7}/lib/inherits/package.json +0 -0
  426. /package/framework/{v0.5.6 → v0.5.7}/lib/inherits/src/main.js +0 -0
  427. /package/framework/{v0.5.6 → v0.5.7}/lib/inspector-events/package.json +0 -0
  428. /package/framework/{v0.5.6 → v0.5.7}/lib/inspector-events/src/main.js +0 -0
  429. /package/framework/{v0.5.6 → v0.5.7}/lib/inspector-redact/package.json +0 -0
  430. /package/framework/{v0.5.6 → v0.5.7}/lib/inspector-redact/src/main.js +0 -0
  431. /package/framework/{v0.5.6 → v0.5.7}/lib/instrument/package.json +0 -0
  432. /package/framework/{v0.5.6 → v0.5.7}/lib/instrument/src/main.js +0 -0
  433. /package/framework/{v0.5.6 → v0.5.7}/lib/job/package.json +0 -0
  434. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/README.md +0 -0
  435. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/package.json +0 -0
  436. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/default/index.js +0 -0
  437. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/file/index.js +0 -0
  438. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  439. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  440. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/mq/index.js +0 -0
  441. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/mq/listener.js +0 -0
  442. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/containers/mq/speaker.js +0 -0
  443. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/helper.js +0 -0
  444. /package/framework/{v0.5.6 → v0.5.7}/lib/logger/src/main.js +0 -0
  445. /package/framework/{v0.5.6 → v0.5.7}/lib/math/index.js +0 -0
  446. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-dispatch/package.json +0 -0
  447. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-dispatch/src/main.js +0 -0
  448. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-http/package.json +0 -0
  449. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-http/src/main.js +0 -0
  450. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-server/package.json +0 -0
  451. /package/framework/{v0.5.6 → v0.5.7}/lib/mcp-server/src/main.js +0 -0
  452. /package/framework/{v0.5.6 → v0.5.7}/lib/merge/README.md +0 -0
  453. /package/framework/{v0.5.6 → v0.5.7}/lib/merge/package.json +0 -0
  454. /package/framework/{v0.5.6 → v0.5.7}/lib/merge/src/main.js +0 -0
  455. /package/framework/{v0.5.6 → v0.5.7}/lib/metrics/package.json +0 -0
  456. /package/framework/{v0.5.6 → v0.5.7}/lib/metrics/src/main.js +0 -0
  457. /package/framework/{v0.5.6 → v0.5.7}/lib/model.js +0 -0
  458. /package/framework/{v0.5.6 → v0.5.7}/lib/nunjucks-filters/README.md +0 -0
  459. /package/framework/{v0.5.6 → v0.5.7}/lib/nunjucks-filters/package.json +0 -0
  460. /package/framework/{v0.5.6 → v0.5.7}/lib/nunjucks-filters/src/main.js +0 -0
  461. /package/framework/{v0.5.6 → v0.5.7}/lib/nunjucks-resolver/package.json +0 -0
  462. /package/framework/{v0.5.6 → v0.5.7}/lib/nunjucks-resolver/src/main.js +0 -0
  463. /package/framework/{v0.5.6 → v0.5.7}/lib/proc.js +0 -0
  464. /package/framework/{v0.5.6 → v0.5.7}/lib/routing/README.md +0 -0
  465. /package/framework/{v0.5.6 → v0.5.7}/lib/routing/build.json +0 -0
  466. /package/framework/{v0.5.6 → v0.5.7}/lib/routing/package.json +0 -0
  467. /package/framework/{v0.5.6 → v0.5.7}/lib/routing/src/main.js +0 -0
  468. /package/framework/{v0.5.6 → v0.5.7}/lib/routing/src/radix.js +0 -0
  469. /package/framework/{v0.5.6 → v0.5.7}/lib/routing-introspect/package.json +0 -0
  470. /package/framework/{v0.5.6 → v0.5.7}/lib/routing-introspect/src/main.js +0 -0
  471. /package/framework/{v0.5.6 → v0.5.7}/lib/secrets/package.json +0 -0
  472. /package/framework/{v0.5.6 → v0.5.7}/lib/secrets/src/backends/env.js +0 -0
  473. /package/framework/{v0.5.6 → v0.5.7}/lib/secrets/src/main.js +0 -0
  474. /package/framework/{v0.5.6 → v0.5.7}/lib/session-store.js +0 -0
  475. /package/framework/{v0.5.6 → v0.5.7}/lib/shell.js +0 -0
  476. /package/framework/{v0.5.6 → v0.5.7}/lib/state.js +0 -0
  477. /package/framework/{v0.5.6 → v0.5.7}/lib/swig-filters/README.md +0 -0
  478. /package/framework/{v0.5.6 → v0.5.7}/lib/swig-filters/package.json +0 -0
  479. /package/framework/{v0.5.6 → v0.5.7}/lib/swig-filters/src/main.js +0 -0
  480. /package/framework/{v0.5.6 → v0.5.7}/lib/swig-resolver/package.json +0 -0
  481. /package/framework/{v0.5.6 → v0.5.7}/lib/swig-resolver/src/main.js +0 -0
  482. /package/framework/{v0.5.6 → v0.5.7}/lib/template-loaders/package.json +0 -0
  483. /package/framework/{v0.5.6 → v0.5.7}/lib/template-loaders/src/loaders/http.js +0 -0
  484. /package/framework/{v0.5.6 → v0.5.7}/lib/template-loaders/src/loaders/memory.js +0 -0
  485. /package/framework/{v0.5.6 → v0.5.7}/lib/template-loaders/src/main.js +0 -0
  486. /package/framework/{v0.5.6 → v0.5.7}/lib/url/README.md +0 -0
  487. /package/framework/{v0.5.6 → v0.5.7}/lib/url/index.js +0 -0
  488. /package/framework/{v0.5.6 → v0.5.7}/lib/url/routing.json +0 -0
  489. /package/framework/{v0.5.6 → v0.5.7}/lib/uuid/package.json +0 -0
  490. /package/framework/{v0.5.6 → v0.5.7}/lib/uuid/src/main.js +0 -0
  491. /package/framework/{v0.5.6 → v0.5.7}/lib/validator.js +0 -0
  492. /package/framework/{v0.5.6 → v0.5.7}/lib/watcher/package.json +0 -0
  493. /package/framework/{v0.5.6 → v0.5.7}/lib/watcher/src/main.js +0 -0
  494. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-framing/package.json +0 -0
  495. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-framing/src/main.js +0 -0
  496. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-query/package.json +0 -0
  497. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-query/src/main.js +0 -0
  498. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-session/package.json +0 -0
  499. /package/framework/{v0.5.6 → v0.5.7}/lib/ws-session/src/main.js +0 -0
@@ -0,0 +1,263 @@
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/core/connectors/sqlite/job-store
12
+ *
13
+ * SQLite-backed `JobStore` for the async-job primitive (`lib/job`) — the
14
+ * connector-backed store follow-up of #AI6. Backed by `node:sqlite` (Node.js
15
+ * built-in since 22.5.0 — zero npm deps), the same substrate as the framework
16
+ * state store (`lib/state`) and the SQLite session store.
17
+ *
18
+ * What it buys over the default memory store: job records survive a bundle
19
+ * restart (a client polling `/_gina/jobs/:id` keeps resolving across a
20
+ * deploy), and are visible to any process that opens the same file. The
21
+ * deferred *function* still runs only in the process that created the job —
22
+ * the store shares the record, never the closure (see `lib/job`).
23
+ *
24
+ * Deliberate divergences from the SQLite SESSION store (same file family,
25
+ * different contract):
26
+ * - `get` / `list` do NOT filter on expiry. The memory store returns
27
+ * terminal records until `sweep` purges them, and behavioral parity with
28
+ * the memory store is the contract here — expiry acts only at sweep time.
29
+ * - No internal cleanup timer. `lib/job` owns the sweep cadence and calls
30
+ * `sweep(now, fn)` itself.
31
+ *
32
+ * Constructed by the `lib/job-store` dispatcher at boot; not meant to be
33
+ * instantiated from application code.
34
+ */
35
+
36
+ /**
37
+ * Job lifecycle states — imported so the sweep predicate can never drift from
38
+ * the memory store's (`lib/job` is a plain-required module-singleton; there is
39
+ * no load-time cycle because `lib/job` never requires this file — the
40
+ * `lib/job-store` dispatcher requires it lazily at boot).
41
+ *
42
+ * @inner
43
+ * @type {{PENDING:string, RUNNING:string, COMPLETED:string, FAILED:string}}
44
+ */
45
+ var STATES = require('../../../../lib/job/src/main').STATES;
46
+
47
+ /**
48
+ * No-op callback used when a caller omits one.
49
+ * @inner
50
+ * @returns {void}
51
+ */
52
+ function noop() {}
53
+
54
+ /**
55
+ * Build a SQLite-backed job store implementing the `lib/job` `JobStore` seam
56
+ * (`set / get / remove / list / sweep`, all Node-callback-shaped). Callbacks
57
+ * fire synchronously (`node:sqlite`'s `DatabaseSync` is a synchronous driver),
58
+ * so the store has the same timing semantics class as the memory store.
59
+ *
60
+ * @param {object} connConf - Resolved `connectors.json` entry for this store.
61
+ * @param {string} [connConf.file] - Path to the SQLite file, or `':memory:'` (volatile —
62
+ * only useful in tests). Defaults to
63
+ * `~/.gina/{version}/jobs-{bundle}.db`.
64
+ * `file` is the PATH key by the sqlite DB-connector
65
+ * convention — the model layer scans every
66
+ * connectors.json entry at boot and treats `database`
67
+ * as a NAME (`~/.gina/{version}/{database}.sqlite`),
68
+ * so a path in `database` fails the boot before this
69
+ * store is even built.
70
+ * @param {string} bundle - Bundle name — used for the default file name.
71
+ * @returns {object} - A `JobStore` instance, plus a `close()` convenience
72
+ * (not part of the seam; releases the file handle).
73
+ * @throws {Error} - On Node < 22.5.0 (no `node:sqlite`) or when the
74
+ * database file cannot be opened.
75
+ *
76
+ * @example
77
+ * // connectors.json: { "jobsDb": { "connector": "sqlite", "file": "/data/jobs.db" } }
78
+ * // app.json: { "jobs": { "store": "jobsDb" } }
79
+ * // (wired automatically at boot by gna.js via lib/job-store)
80
+ */
81
+ module.exports = function SqliteJobStore(connConf, bundle) {
82
+ connConf = connConf || {};
83
+
84
+ // Require node:sqlite — available as a built-in since Node 22.5.0, zero npm deps.
85
+ var DatabaseSync;
86
+ try {
87
+ DatabaseSync = require('node:sqlite').DatabaseSync;
88
+ } catch (e) {
89
+ throw new Error(
90
+ '[SqliteJobStore] node:sqlite requires Node.js >= 22.5.0. '
91
+ + 'Current: ' + process.version + '\n'
92
+ + e.message
93
+ );
94
+ }
95
+
96
+ // Resolve DB path: connectors.json `file` > default per-bundle file. The
97
+ // default branch is the only place the injected `_` / `getPath` globals
98
+ // are read, so a test passing an explicit `file` stays standalone.
99
+ var dbPath = connConf.file
100
+ || _(getPath('gina').home + '/jobs-' + (bundle || 'bundle') + '.db', true);
101
+
102
+ var db = new DatabaseSync(dbPath);
103
+
104
+ // WAL + synchronous=NORMAL: same trade-off as the SQLite session store —
105
+ // concurrent readers never block the writer; a crash can lose the last
106
+ // committed transaction but never corrupts the database.
107
+ db.exec('PRAGMA journal_mode=WAL');
108
+ db.exec('PRAGMA synchronous=NORMAL');
109
+
110
+ // Schema bootstrap — idempotent. Thin indexed columns for the two query
111
+ // shapes (list-by-state, sweep-by-expiry); the full record rides as JSON
112
+ // because it legitimately gains keys after creation (webhookDeliveredAt,
113
+ // webhookFailed, ...). All timestamps are epoch MILLISECONDS — the seam's
114
+ // unit (`sweep(now)` receives `Date.now()`).
115
+ db.exec(
116
+ 'CREATE TABLE IF NOT EXISTS jobs ('
117
+ + ' id TEXT PRIMARY KEY,'
118
+ + ' state TEXT NOT NULL,'
119
+ + ' expires_at INTEGER,'
120
+ + ' updated_at INTEGER NOT NULL,'
121
+ + ' record TEXT NOT NULL'
122
+ + ')'
123
+ );
124
+ db.exec('CREATE INDEX IF NOT EXISTS jobs_state ON jobs (state)');
125
+ db.exec('CREATE INDEX IF NOT EXISTS jobs_expires ON jobs (expires_at)');
126
+
127
+ // Prepare reusable statements once — avoids re-parsing SQL on every call.
128
+ var stmtUpsert = db.prepare('INSERT OR REPLACE INTO jobs (id, state, expires_at, updated_at, record) VALUES (?, ?, ?, ?, ?)');
129
+ var stmtGet = db.prepare('SELECT record FROM jobs WHERE id = ?');
130
+ var stmtDel = db.prepare('DELETE FROM jobs WHERE id = ?');
131
+ var stmtListAll = db.prepare('SELECT record FROM jobs');
132
+ var stmtListState = db.prepare('SELECT record FROM jobs WHERE state = ?');
133
+ var stmtSweep = db.prepare(
134
+ 'DELETE FROM jobs WHERE expires_at IS NOT NULL AND expires_at <= ?'
135
+ + ' AND state IN (\'' + STATES.COMPLETED + '\', \'' + STATES.FAILED + '\')'
136
+ );
137
+
138
+ return {
139
+
140
+ /**
141
+ * Upsert `record` under `id`. The record is serialised whole; `state`
142
+ * and `expiresAt` are additionally mirrored into their indexed columns.
143
+ *
144
+ * @param {string} id
145
+ * @param {JobRecord} record
146
+ * @param {function} [fn] - `fn(err, record)`.
147
+ * @returns {void}
148
+ */
149
+ set: function(id, record, fn) {
150
+ if (typeof fn !== 'function') fn = noop;
151
+ var json;
152
+ try {
153
+ json = JSON.stringify(record);
154
+ } catch (err) {
155
+ return fn(err);
156
+ }
157
+ try {
158
+ stmtUpsert.run(
159
+ id,
160
+ String(record.state || ''),
161
+ (typeof record.expiresAt === 'number') ? record.expiresAt : null,
162
+ (typeof record.updatedAt === 'number') ? record.updatedAt : Date.now(),
163
+ json
164
+ );
165
+ fn(null, record);
166
+ } catch (err) {
167
+ fn(err);
168
+ }
169
+ },
170
+
171
+ /**
172
+ * Fetch a record by `id`. No expiry filter — a terminal record past its
173
+ * `expiresAt` stays readable until `sweep` purges it (memory-store parity).
174
+ *
175
+ * @param {string} id
176
+ * @param {function} fn - `fn(err, record|null)`.
177
+ * @returns {void}
178
+ */
179
+ get: function(id, fn) {
180
+ if (typeof fn !== 'function') fn = noop;
181
+ var row;
182
+ try {
183
+ row = stmtGet.get(id);
184
+ } catch (err) {
185
+ return fn(err);
186
+ }
187
+ if (!row) return fn(null, null);
188
+ try {
189
+ return fn(null, JSON.parse(row.record));
190
+ } catch (parseErr) {
191
+ return fn(new Error('[SqliteJobStore] could not parse job record `' + id + '`: ' + parseErr.message));
192
+ }
193
+ },
194
+
195
+ /**
196
+ * Delete a record by `id`.
197
+ *
198
+ * @param {string} id
199
+ * @param {function} [fn] - `fn(err, existed)`.
200
+ * @returns {void}
201
+ */
202
+ remove: function(id, fn) {
203
+ if (typeof fn !== 'function') fn = noop;
204
+ try {
205
+ var res = stmtDel.run(id);
206
+ fn(null, res.changes > 0);
207
+ } catch (err) {
208
+ fn(err);
209
+ }
210
+ },
211
+
212
+ /**
213
+ * List records, optionally filtered by `{ state }`. No expiry filter
214
+ * (memory-store parity). A record that fails to parse fails the whole
215
+ * list loudly — silent skipping would hide corruption.
216
+ *
217
+ * @param {?Object} filter - e.g. `{ state: 'failed' }`; `null` for all.
218
+ * @param {function} fn - `fn(err, records)`.
219
+ * @returns {void}
220
+ */
221
+ list: function(filter, fn) {
222
+ if (typeof fn !== 'function') fn = noop;
223
+ try {
224
+ var rows = (filter && filter.state) ? stmtListState.all(String(filter.state)) : stmtListAll.all();
225
+ var out = [];
226
+ for (var i = 0; i < rows.length; i++) {
227
+ out.push(JSON.parse(rows[i].record));
228
+ }
229
+ fn(null, out);
230
+ } catch (err) {
231
+ fn(err);
232
+ }
233
+ },
234
+
235
+ /**
236
+ * Purge terminal (`completed` / `failed`) records whose `expiresAt` has
237
+ * elapsed — the exact memory-store predicate, expressed as one DELETE.
238
+ *
239
+ * @param {number} now - Epoch ms (passed in by `lib/job`).
240
+ * @param {function} fn - `fn(err, removedCount)`.
241
+ * @returns {void}
242
+ */
243
+ sweep: function(now, fn) {
244
+ if (typeof fn !== 'function') fn = noop;
245
+ try {
246
+ var res = stmtSweep.run(now);
247
+ fn(null, res.changes);
248
+ } catch (err) {
249
+ fn(err);
250
+ }
251
+ },
252
+
253
+ /**
254
+ * Release the underlying file handle. NOT part of the `JobStore` seam —
255
+ * `lib/job` never calls it; provided for tests and explicit teardown.
256
+ *
257
+ * @returns {void}
258
+ */
259
+ close: function() {
260
+ try { db.close(); } catch (e) { /* already closed */ }
261
+ }
262
+ };
263
+ };
@@ -7,12 +7,15 @@ var statusCodes = requireJSON( _( getPath('gina').core + '/status.codes'
7
7
  // Inspector secret redaction (dev-mode only — never touches the actual response body)
8
8
  var inspectorRedact = require('lib/inspector-redact');
9
9
 
10
- // Inherited from controller
11
- var self = null
12
- , local = null
13
- , headersSent = null
14
- , cachePath = null
15
- ;
10
+ // Inherited from controller.
11
+ // #B63 (sibling of the render-swig #B61 / render-stream #B62 race fixes):
12
+ // the per-request deps are FUNCTION-scoped inside renderJSON() and threaded
13
+ // into the module-level writeCache() as parameters — nothing per-request
14
+ // lives at module scope. In prod this module is a shared singleton across
15
+ // concurrent requests; a module-scoped capture is reassigned by every
16
+ // incoming renderJSON, so writeCache resumed after its writeFile await
17
+ // reading a CONCURRENT request's controller (measured: the cache-config
18
+ // error path reported through the other request's throwError).
16
19
 
17
20
 
18
21
  /**
@@ -24,29 +27,35 @@ var self = null
24
27
  * @param {string} bundle - Bundle name (used as cache-key namespace)
25
28
  * @param {object} opt - Server cache configuration (`opt.path`, `opt.ttl`)
26
29
  * @param {string} jsonContent - Serialised JSON string to cache
30
+ * @param {object} req - Per-request request captured by renderJSON (race-safe)
31
+ * @param {object} res - Per-request response captured by renderJSON (race-safe)
32
+ * @param {boolean|string} cacheIsEnabled - Server-level cache flag threaded by renderJSON
33
+ * @param {function} throwError - Render-scoped controller `throwError` (closure-bound), threaded
34
+ * for the `invalidateOnEvents` validation branch
27
35
  * @returns {Promise<void>}
28
36
  */
29
- // `res` (the captured response from renderJSON) is passed in so the post-
30
- // await throwError below does not dereference a nulled `local.res`. Pre-
31
- // await reads of `local.req`/`local.res` (lines 31-86) are part of
32
- // renderJSON's synchronous call (it is not async), so they are safe — the
33
- // race window opens only after `await fs.promises.writeFile` at line 100.
34
- async function writeCache(bundle, opt, jsonContent, res) {
37
+ // Every render-scoped value is threaded as a parameter writeCache is
38
+ // module-level and must not read the per-request bindings, which are
39
+ // function-scoped inside renderJSON (#B63). The post-await throwError uses
40
+ // the captured `res` so it never dereferences a nulled `local.res`, and the
41
+ // captured `throwError` so a concurrent renderJSON entering during the
42
+ // writeFile await can never re-route this request's error reporting.
43
+ async function writeCache(bundle, opt, jsonContent, req, res, cacheIsEnabled, throwError) {
35
44
  if (
36
- typeof(local.req.routing.cache) == 'undefined'
45
+ typeof(req.routing.cache) == 'undefined'
37
46
  ||
38
- ! local.req.routing.cache
47
+ ! req.routing.cache
39
48
  ||
40
- ! /^true$/i.test(self.serverInstance._cacheIsEnabled)
49
+ ! /^true$/i.test(cacheIsEnabled)
41
50
  ) {
42
51
  return;
43
52
  }
44
- // before: "data:" + local.req.originalUrl (#C3 — added bundle namespace to prevent silent collisions when two bundles serve the same URL path)
45
- var cacheKey = "data:" + bundle + ":" + local.req.originalUrl;
46
- var responseHeaders = local.res.getHeaders() || {};
53
+ // before: "data:" + originalUrl only (#C3 — added bundle namespace to prevent silent collisions when two bundles serve the same URL path)
54
+ var cacheKey = "data:" + bundle + ":" + req.originalUrl;
55
+ var responseHeaders = res.getHeaders() || {};
47
56
 
48
57
  // Caching kinds are: `memory` & `fs`
49
- var cachingOption = ( typeof(local.req.routing.cache) == 'string' ) ? { type: local.req.routing.cache } : JSON.clone(local.req.routing.cache);
58
+ var cachingOption = ( typeof(req.routing.cache) == 'string' ) ? { type: req.routing.cache } : JSON.clone(req.routing.cache);
50
59
  if ( typeof(cachingOption.ttl) == 'undefined' ) {
51
60
  cachingOption.ttl = opt.ttl
52
61
  }
@@ -88,7 +97,7 @@ async function writeCache(bundle, opt, jsonContent, res) {
88
97
  // - prioritize content linked to sessions
89
98
  // - default ttl is 3600 sec
90
99
  if ( /^fs$/i.test(cachingOption.type) ) {
91
- var url = local.req.originalUrl;
100
+ var url = req.originalUrl;
92
101
  if ( /\/$/.test(url) ) {
93
102
  url += 'index'
94
103
  }
@@ -116,11 +125,11 @@ async function writeCache(bundle, opt, jsonContent, res) {
116
125
  // Invalidation
117
126
  if ( typeof(cachingOption.invalidateOnEvents) != 'undefined' ) {
118
127
  if ( !Array.isArray(cachingOption.invalidateOnEvents) ) {
119
- // #M1 — post-await read goes through the captured `res` (passed
120
- // from renderJSON) rather than `local.res`, which renderJSON may
121
- // have nulled at its terminal exit between the writeFile await
122
- // and this resume point.
123
- return self.throwError(res, 500, new Error('cache.invalidateOn must be an array'));
128
+ // #M1/#B63this resume point sits after the writeFile await:
129
+ // both the response AND the reporting controller come from the
130
+ // threaded parameters (renderJSON's captures), never from the
131
+ // module scope a concurrent request may have moved on from.
132
+ return throwError(res, 500, new Error('cache.invalidateOn must be an array'));
124
133
  }
125
134
  // Placing event listeners
126
135
  cache.setEvents(cacheKey, cachingOption.invalidateOnEvents);
@@ -141,10 +150,12 @@ async function writeCache(bundle, opt, jsonContent, res) {
141
150
  * @returns {void}
142
151
  */
143
152
  module.exports = function renderJSON(jsonObj, deps) {
144
- // Inherited from controller
145
- self = deps.self;
146
- local = deps.local;
147
- headersSent = deps.headersSent;
153
+ // Inherited from controller — function-scoped (#B63): a concurrent
154
+ // renderJSON must not reassign this render's captures while its
155
+ // fire-and-forget writeCache is suspended at the writeFile await.
156
+ var self = deps.self;
157
+ var local = deps.local;
158
+ var headersSent = deps.headersSent;
148
159
 
149
160
  // preventing multiple call of self.renderJSON() when controller is rendering from another required controller
150
161
  if (local.options.renderingStack.length > 1) {
@@ -165,7 +176,6 @@ module.exports = function renderJSON(jsonObj, deps) {
165
176
 
166
177
  // Using server cache to cache compiledTemplates
167
178
  cache.from(self.serverInstance._cached);
168
- cachePath = self.serverInstance._cachePath;
169
179
 
170
180
  var request = local.req;
171
181
  var response = local.res;
@@ -441,7 +451,7 @@ module.exports = function renderJSON(jsonObj, deps) {
441
451
  && typeof(request.routing.cache) != 'undefined'
442
452
  && /^GET$/i.test(request.method)
443
453
  ) {
444
- writeCache(self._options.bundle, local.options.conf.server.cache, data, response).catch(function(err) {
454
+ writeCache(self._options.bundle, local.options.conf.server.cache, data, request, response, self.serverInstance._cacheIsEnabled, self.throwError).catch(function(err) {
445
455
  console.error('[render-json] writeCache failed:', err);
446
456
  });
447
457
  }
@@ -30,13 +30,18 @@
30
30
  * @param {object} deps Injected by controller: { self, local, headersSent }
31
31
  */
32
32
 
33
- var self, local, headersSent;
34
-
35
33
  module.exports = function renderStream(asyncIterable, contentType, deps) {
36
34
 
37
- self = deps.self;
38
- local = deps.local;
39
- headersSent = deps.headersSent;
35
+ // #B62 (sibling of the render-swig #B61 race fix): the per-request deps
36
+ // are FUNCTION-scoped. In prod this module is a shared singleton across
37
+ // concurrent requests; with module-scoped captures, the fire-and-forget
38
+ // _doStream IIFE below resumed after its `for await` reading a CONCURRENT
39
+ // request's refs — its catch reported errors through the other request's
40
+ // controller, and its finally nulled the OTHER request's live
41
+ // local.req/res/next mid-stream (measured) while never releasing its own.
42
+ var self = deps.self;
43
+ var local = deps.local;
44
+ var headersSent = deps.headersSent;
40
45
 
41
46
  // Prevent double-render (same guard used by renderJSON / renderTEXT)
42
47
  if (local.options.renderingStack.length > 1) return false;
@@ -13,17 +13,13 @@ var emitInspectorWindowData = require('./inspector-window-emit');
13
13
  var blacklistRe = /[<>]/g;
14
14
 
15
15
  // Inherited from controller.
16
- // #INS10 race fix: `self` / `local` are NOT declared module-scoped — they are
17
- // captured FUNCTION-scoped inside render() (see the deps unpack) so concurrent
18
- // renders never share them. The refs below stay module-scoped (read pre-await).
19
- var getData = null
20
- , hasViews = null
21
- , setResources = null
22
- // Default filters
23
- , SwigFilters = null
24
- , headersSent = null
25
- , cachePath = null
26
- ;
16
+ // #B61 (completes the #INS10 race fix): ALL per-request deps are captured
17
+ // FUNCTION-scoped inside render() nothing per-request lives at module scope.
18
+ // In prod this module is a shared singleton across concurrent requests, and a
19
+ // module-scoped capture is reassigned by every incoming render; a render
20
+ // suspended at an await would resume reading a CONCURRENT request's closures
21
+ // (measured: the post-await setResources / getData calls executed the other
22
+ // request's functions, gap-filling its page data into this render's context).
27
23
 
28
24
  /**
29
25
  * Write the rendered HTML to the cache store (memory or file system).
@@ -35,16 +31,21 @@ var getData = null
35
31
  * @param {string} htmlContent - Compiled HTML string to cache
36
32
  * @param {object} req - Per-request request captured by render() (function-scoped, race-safe)
37
33
  * @param {object} res - Per-request response captured by render() (function-scoped, race-safe)
34
+ * @param {boolean|string} cacheIsEnabled - Server-level cache flag threaded by render(); writeCache
35
+ * is module-level and has no access to render()-scoped bindings
36
+ * @param {function} throwError - Render-scoped controller `throwError` (closure-bound), threaded
37
+ * for the `invalidateOnEvents` validation branch
38
38
  * @returns {Promise<void>}
39
39
  */
40
- async function writeCache(bundle, opt, htmlContent, req, res) {
40
+ async function writeCache(bundle, opt, htmlContent, req, res, cacheIsEnabled, throwError) {
41
41
  if (
42
42
  typeof(req.routing.cache) == 'undefined'
43
43
  ||
44
44
  ! req.routing.cache
45
45
  ||
46
- // replaced: /^true$/i.test() (#P6)
47
- String(self.serverInstance._cacheIsEnabled).toLowerCase() !== 'true'
46
+ // replaced: /^true$/i.test() (#P6); flag threaded as a param — module scope
47
+ // has no render()-scoped bindings (see the #INS10 note at the top of this file)
48
+ String(cacheIsEnabled).toLowerCase() !== 'true'
48
49
  ) {
49
50
  return;
50
51
  }
@@ -124,7 +125,7 @@ async function writeCache(bundle, opt, htmlContent, req, res) {
124
125
  // Invalidation
125
126
  if ( typeof(cachingOption.invalidateOnEvents) != 'undefined' ) {
126
127
  if ( !Array.isArray(cachingOption.invalidateOnEvents) ) {
127
- return self.throwError(res, 500, new Error('cache.invalidateOn must be an array'));
128
+ return throwError(res, 500, new Error('cache.invalidateOn must be an array'));
128
129
  }
129
130
  // Placing event listeners
130
131
  cache.setEvents(cacheKey, cachingOption.invalidateOnEvents);
@@ -162,23 +163,28 @@ async function writeCache(bundle, opt, htmlContent, req, res) {
162
163
  module.exports = async function render(userData, displayInspector, errOptions, deps) {
163
164
 
164
165
  // Inherited from controller.
165
- // #INS10 race fix — `self` / `local` are FUNCTION-scoped (`var`), not module-
166
- // scoped: render() is async, so a render suspended at an await must not have
167
- // its `self` / `local` overwritten by a concurrent render otherwise the
168
- // post-await Inspector emit (prod-window egress + dev `inspector#data`) would
169
- // carry the other request's `_queryLog` / `_timeline`. Mirrors render-nunjucks.js.
170
- // (getData / hasViews / SwigFilters / headersSent stay module-scoped: read
171
- // before the first await, so they are not the documented race vector.)
166
+ // #INS10 / #B61 race fix — EVERY per-request dep is FUNCTION-scoped (`var`):
167
+ // render() is async, so a render suspended at an await must not have its
168
+ // captures overwritten by a concurrent render. #INS10 (8674c514) scoped
169
+ // `self` / `local` for the post-await Inspector emit; #B61 completes the
170
+ // sweep getData / setResources were still module-scoped yet are read
171
+ // AFTER the template-read await (the setResources call and the
172
+ // `merge(data, getData())` restore further down), so a concurrent render's
173
+ // reassignment executed the OTHER request's closures and gap-filled its
174
+ // page data into this render. cachePath is likewise read post-await on the
175
+ // layout-cache path, and the engine ref was assigned as an implicit global.
172
176
  var self = deps.self;
173
177
  var local = deps.local;
174
- getData = deps.getData;
175
- hasViews = deps.hasViews;
176
- setResources = deps.setResources;
178
+ var getData = deps.getData;
179
+ var hasViews = deps.hasViews;
180
+ var setResources = deps.setResources;
177
181
  // Default filters
178
- swig = deps.swig;
179
- SwigFilters = deps.SwigFilters;
180
- headersSent = deps.headersSent;
181
- ;
182
+ var swig = deps.swig;
183
+ var SwigFilters = deps.SwigFilters;
184
+ var headersSent = deps.headersSent;
185
+ // Assigned on the layout-cache path once localOptions is resolved; read
186
+ // post-await there (.gitignore drop + the {% extends %} rewrite).
187
+ var cachePath = null;
182
188
  // Function-scoped captures of per-request refs. The exported render()
183
189
  // is async with multiple await boundaries (template + layout reads,
184
190
  // cache writes). Between yields, `local.req` / `local.res` / `local.next`
@@ -977,7 +983,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
977
983
  && typeof(req.routing.cache) != 'undefined'
978
984
  && req.method.toUpperCase() === 'GET'
979
985
  ) {
980
- await writeCache(localOptions.bundle, localOptions.conf.server.cache, htmlContent, req, res);
986
+ await writeCache(localOptions.bundle, localOptions.conf.server.cache, htmlContent, req, res, self.serverInstance._cacheIsEnabled, self.throwError);
981
987
  }
982
988
 
983
989
  // Cache-Control: miss path — inform browsers/CDNs of the response lifetime (#C6)
@@ -1742,7 +1748,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
1742
1748
  && req.method.toUpperCase() === 'GET'
1743
1749
  )
1744
1750
  ) {
1745
- await writeCache(localOptions.bundle, localOptions.conf.server.cache, htmlContent, req, res);
1751
+ await writeCache(localOptions.bundle, localOptions.conf.server.cache, htmlContent, req, res, self.serverInstance._cacheIsEnabled, self.throwError);
1746
1752
  }
1747
1753
 
1748
1754
  // Cache-Control: miss path — inform browsers/CDNs of the response lifetime (#C6)
@@ -1421,16 +1421,36 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1421
1421
  var _jobsConf = (_jobsAppConf && _jobsAppConf.jobs && typeof _jobsAppConf.jobs === 'object')
1422
1422
  ? _jobsAppConf.jobs
1423
1423
  : {};
1424
- lib.job.start({
1424
+ var _jobsStartOpts = {
1425
1425
  maxConcurrency: _jobsConf.maxConcurrency,
1426
1426
  ttl: _jobsConf.ttl,
1427
1427
  sweepInterval: _jobsConf.sweepInterval,
1428
1428
  idSize: _jobsConf.idSize,
1429
+ retryBackoffMs: _jobsConf.retryBackoffMs,
1429
1430
  webhookMaxAttempts: _jobsConf.webhookMaxAttempts,
1430
1431
  webhookBackoffMs: _jobsConf.webhookBackoffMs,
1431
1432
  webhookTimeoutMs: _jobsConf.webhookTimeoutMs,
1432
1433
  webhookSecret: _jobsConf.webhookSecret
1433
- });
1434
+ };
1435
+ // #AI6 connector-backed store — `jobs.store` names a
1436
+ // connectors.json entry, resolved through lib/job-store.
1437
+ // Fail-fast when the configured store cannot be built
1438
+ // (#B57 shape): the config explicitly asked for durable
1439
+ // records, so a silent memory fallback would hide the
1440
+ // misconfig and lose the durability it asked for. An
1441
+ // ABSENT `jobs.store` key still means the memory store.
1442
+ if (typeof _jobsConf.store === 'string' && _jobsConf.store.length > 0) {
1443
+ try {
1444
+ _jobsStartOpts.store = lib.JobStore(_jobsConf.store);
1445
+ } catch (jobsStoreErr) {
1446
+ var _jobsStoreMsg = '[lib.job] jobs.store `' + _jobsConf.store + '` could not be built — aborting boot: ' + (jobsStoreErr.message || jobsStoreErr);
1447
+ console.emerg(_jobsStoreMsg + '\n' + (jobsStoreErr.stack || ''));
1448
+ // process.exit() truncates async stdio on a pipe — flush synchronously first.
1449
+ fs.writeSync(2, _jobsStoreMsg + '\n');
1450
+ process.exit(1);
1451
+ }
1452
+ }
1453
+ lib.job.start(_jobsStartOpts);
1434
1454
  } catch (jobsErr) {
1435
1455
  console.warn('[lib.job] init skipped: ' + (jobsErr.message || jobsErr));
1436
1456
  }