gina 0.4.5 → 0.4.6

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 (475) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +10 -8
  4. package/ROADMAP.md +2 -2
  5. package/framework/v0.4.6/VERSION +1 -0
  6. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  7. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  8. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  9. package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +62 -0
  10. package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/js/gina.js +934 -42
  11. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +571 -0
  12. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  13. package/framework/v0.4.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  14. package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.js +62 -6
  15. package/framework/v0.4.6/core/controller/controller.render-nunjucks-async.js +788 -0
  16. package/framework/v0.4.6/core/controller/controller.render-swig-async.js +664 -0
  17. package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.render-swig.js +52 -5
  18. package/framework/{v0.4.5 → v0.4.6}/core/gna.js +24 -0
  19. package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/csp/README.md +35 -0
  20. package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/csp/src/main.js +136 -2
  21. package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/storage/package.json +0 -3
  22. package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/validator/package.json +0 -3
  23. package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/validator/src/main.js +17 -4
  24. package/framework/{v0.4.5 → v0.4.6}/core/server.isaac.js +2 -2
  25. package/framework/{v0.4.5 → v0.4.6}/core/server.js +273 -97
  26. package/framework/{v0.4.5 → v0.4.6}/helpers/data/package.json +0 -3
  27. package/framework/{v0.4.5 → v0.4.6}/helpers/data/src/main.js +58 -3
  28. package/framework/{v0.4.5 → v0.4.6}/helpers/json/package.json +0 -3
  29. package/framework/{v0.4.5 → v0.4.6}/helpers/plugins/package.json +0 -3
  30. package/framework/{v0.4.5 → v0.4.6}/lib/archiver/package.json +0 -3
  31. package/framework/{v0.4.5 → v0.4.6}/lib/cache/package.json +0 -3
  32. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/link.js +16 -5
  33. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/msg.json +1 -1
  34. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/restart.js +11 -3
  35. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/start.js +5 -1
  36. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/version.js +24 -3
  37. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/helper.js +28 -9
  38. package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/add.js +29 -13
  39. package/framework/{v0.4.5 → v0.4.6}/lib/collection/package.json +0 -3
  40. package/framework/{v0.4.5 → v0.4.6}/lib/cron/package.json +0 -3
  41. package/framework/{v0.4.5 → v0.4.6}/lib/domain/package.json +0 -3
  42. package/framework/{v0.4.5 → v0.4.6}/lib/index.js +7 -0
  43. package/framework/{v0.4.5 → v0.4.6}/lib/inherits/package.json +0 -3
  44. package/framework/{v0.4.5 → v0.4.6}/lib/logger/package.json +0 -3
  45. package/framework/{v0.4.5 → v0.4.6}/lib/merge/package.json +0 -3
  46. package/framework/{v0.4.5 → v0.4.6}/lib/model.js +17 -0
  47. package/framework/{v0.4.5 → v0.4.6}/lib/nunjucks-filters/src/main.js +37 -11
  48. package/framework/{v0.4.5 → v0.4.6}/lib/routing/package.json +0 -3
  49. package/framework/{v0.4.5 → v0.4.6}/lib/routing/src/main.js +4 -4
  50. package/framework/{v0.4.5 → v0.4.6}/lib/swig-filters/package.json +0 -3
  51. package/framework/{v0.4.5 → v0.4.6}/lib/swig-filters/src/main.js +45 -6
  52. package/framework/v0.4.6/lib/template-loaders/package.json +17 -0
  53. package/framework/v0.4.6/lib/template-loaders/src/loaders/http.js +272 -0
  54. package/framework/v0.4.6/lib/template-loaders/src/loaders/memory.js +75 -0
  55. package/framework/v0.4.6/lib/template-loaders/src/main.js +134 -0
  56. package/framework/{v0.4.5 → v0.4.6}/package.json +2 -2
  57. package/gna.js +4 -4
  58. package/llms.txt +32 -44
  59. package/package.json +6 -3
  60. package/playwright.config.js +35 -0
  61. package/schema/settings.json +105 -0
  62. package/types/gna.d.ts +1 -1
  63. package/framework/v0.4.5/VERSION +0 -1
  64. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -1
  65. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  66. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  67. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -555
  68. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  69. package/framework/v0.4.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  70. /package/framework/{v0.4.5 → v0.4.6}/AUTHORS +0 -0
  71. /package/framework/{v0.4.5 → v0.4.6}/LICENSE +0 -0
  72. /package/framework/{v0.4.5 → v0.4.6}/core/asset/html/nolayout.html +0 -0
  73. /package/framework/{v0.4.5 → v0.4.6}/core/asset/html/static.html +0 -0
  74. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/android-chrome-192x192.png +0 -0
  75. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/android-chrome-512x512.png +0 -0
  76. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/apple-touch-icon.png +0 -0
  77. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/favicon-16x16.png +0 -0
  78. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/favicon-32x32.png +0 -0
  79. /package/framework/{v0.4.5 → v0.4.6}/core/asset/img/favicon.ico +0 -0
  80. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/README.md +0 -0
  81. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  82. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  83. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  84. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  85. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  86. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  87. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  88. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  89. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  90. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  91. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  92. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  93. /package/framework/{v0.4.5 → v0.4.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  94. /package/framework/{v0.4.5 → v0.4.6}/core/config.js +0 -0
  95. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/ai/index.js +0 -0
  96. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/ai/lib/connector.js +0 -0
  97. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/index.js +0 -0
  98. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/connector.js +0 -0
  99. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  100. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  101. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/n1ql.js +0 -0
  102. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/session-store.js +0 -0
  103. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  104. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  105. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mongodb/index.js +0 -0
  106. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mongodb/lib/connector.js +0 -0
  107. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  108. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mongodb/lib/session-store.js +0 -0
  109. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mysql/index.js +0 -0
  110. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/mysql/lib/connector.js +0 -0
  111. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/postgresql/index.js +0 -0
  112. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/postgresql/lib/connector.js +0 -0
  113. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/redis/index.js +0 -0
  114. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/redis/lib/session-store.js +0 -0
  115. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/scylladb/index.js +0 -0
  116. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/scylladb/lib/connector.js +0 -0
  117. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/scylladb/lib/session-store.js +0 -0
  118. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/sql-parser.js +0 -0
  119. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/sqlite/index.js +0 -0
  120. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/sqlite/lib/connector.js +0 -0
  121. /package/framework/{v0.4.5 → v0.4.6}/core/connectors/sqlite/lib/session-store.js +0 -0
  122. /package/framework/{v0.4.5 → v0.4.6}/core/content.encoding +0 -0
  123. /package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.framework.js +0 -0
  124. /package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.render-json.js +0 -0
  125. /package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.render-nunjucks.js +0 -0
  126. /package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.render-stream.js +0 -0
  127. /package/framework/{v0.4.5 → v0.4.6}/core/controller/controller.render-v1.js +0 -0
  128. /package/framework/{v0.4.5 → v0.4.6}/core/controller/index.js +0 -0
  129. /package/framework/{v0.4.5 → v0.4.6}/core/controller/inspector-window-emit.js +0 -0
  130. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/LICENSE +0 -0
  131. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/README.md +0 -0
  132. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  133. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  134. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  135. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  136. /package/framework/{v0.4.5 → v0.4.6}/core/deps/busboy-1.6.0/package.json +0 -0
  137. /package/framework/{v0.4.5 → v0.4.6}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  138. /package/framework/{v0.4.5 → v0.4.6}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  139. /package/framework/{v0.4.5 → v0.4.6}/core/deps/streamsearch-1.1.0/package.json +0 -0
  140. /package/framework/{v0.4.5 → v0.4.6}/core/dev/index.js +0 -0
  141. /package/framework/{v0.4.5 → v0.4.6}/core/dev/lib/class.js +0 -0
  142. /package/framework/{v0.4.5 → v0.4.6}/core/dev/lib/factory.js +0 -0
  143. /package/framework/{v0.4.5 → v0.4.6}/core/dev/lib/tools.js +0 -0
  144. /package/framework/{v0.4.5 → v0.4.6}/core/locales/README.md +0 -0
  145. /package/framework/{v0.4.5 → v0.4.6}/core/locales/currency.json +0 -0
  146. /package/framework/{v0.4.5 → v0.4.6}/core/locales/dist/language/en.json +0 -0
  147. /package/framework/{v0.4.5 → v0.4.6}/core/locales/dist/language/fr.json +0 -0
  148. /package/framework/{v0.4.5 → v0.4.6}/core/locales/dist/region/en.json +0 -0
  149. /package/framework/{v0.4.5 → v0.4.6}/core/locales/dist/region/fr.json +0 -0
  150. /package/framework/{v0.4.5 → v0.4.6}/core/locales/index.js +0 -0
  151. /package/framework/{v0.4.5 → v0.4.6}/core/mime.types +0 -0
  152. /package/framework/{v0.4.5 → v0.4.6}/core/model/entity.js +0 -0
  153. /package/framework/{v0.4.5 → v0.4.6}/core/model/index.js +0 -0
  154. /package/framework/{v0.4.5 → v0.4.6}/core/model/template/entityFactory.js +0 -0
  155. /package/framework/{v0.4.5 → v0.4.6}/core/model/template/index.js +0 -0
  156. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/README.md +0 -0
  157. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/index.js +0 -0
  158. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/csrf/README.md +0 -0
  159. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/csrf/package.json +0 -0
  160. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/csrf/src/main.js +0 -0
  161. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/README.md +0 -0
  162. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coep/README.md +0 -0
  163. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coep/package.json +0 -0
  164. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  165. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coop/README.md +0 -0
  166. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coop/package.json +0 -0
  167. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  168. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/corp/README.md +0 -0
  169. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/corp/package.json +0 -0
  170. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  171. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/csp/package.json +0 -0
  172. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  173. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  174. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  175. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  176. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  177. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  178. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  179. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  180. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  181. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/package.json +0 -0
  182. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  183. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  184. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  185. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/src/main.js +0 -0
  186. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  187. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  188. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  189. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  190. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  191. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  192. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  193. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  194. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  195. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  196. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  197. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  198. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  199. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  200. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  201. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  202. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  203. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  204. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/session/README.md +0 -0
  205. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/session/package.json +0 -0
  206. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/session/src/main.js +0 -0
  207. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/storage/README.md +0 -0
  208. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/storage/build.json +0 -0
  209. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/storage/src/main.js +0 -0
  210. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/validator/README.md +0 -0
  211. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/validator/build.json +0 -0
  212. /package/framework/{v0.4.5 → v0.4.6}/core/plugins/lib/validator/src/form-validator.js +0 -0
  213. /package/framework/{v0.4.5 → v0.4.6}/core/router.js +0 -0
  214. /package/framework/{v0.4.5 → v0.4.6}/core/server.express.js +0 -0
  215. /package/framework/{v0.4.5 → v0.4.6}/core/status.codes +0 -0
  216. /package/framework/{v0.4.5 → v0.4.6}/core/template/_gitignore +0 -0
  217. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/app.json +0 -0
  218. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  219. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/routing.json +0 -0
  220. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/settings.json +0 -0
  221. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  222. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/templates.json +0 -0
  223. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  224. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  225. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  226. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  227. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/index.js +0 -0
  228. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle/locales/en.json +0 -0
  229. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  230. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  231. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  232. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  233. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  234. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  235. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  236. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/readme.md +0 -0
  237. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_public/sw.js +0 -0
  238. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  239. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  240. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  241. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  242. /package/framework/{v0.4.5 → v0.4.6}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  243. /package/framework/{v0.4.5 → v0.4.6}/core/template/command/gina.bat.tpl +0 -0
  244. /package/framework/{v0.4.5 → v0.4.6}/core/template/command/gina.tpl +0 -0
  245. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/env.json +0 -0
  246. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/manifest.json +0 -0
  247. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/package.json +0 -0
  248. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/settings.json +0 -0
  249. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/statics.json +0 -0
  250. /package/framework/{v0.4.5 → v0.4.6}/core/template/conf/templates.json +0 -0
  251. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/client/json/401.json +0 -0
  252. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/client/json/403.json +0 -0
  253. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/client/json/404.json +0 -0
  254. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/server/html/50x.html +0 -0
  255. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/server/json/500.json +0 -0
  256. /package/framework/{v0.4.5 → v0.4.6}/core/template/error/server/json/503.json +0 -0
  257. /package/framework/{v0.4.5 → v0.4.6}/core/template/extensions/logger/config.json +0 -0
  258. /package/framework/{v0.4.5 → v0.4.6}/helpers/console.js +0 -0
  259. /package/framework/{v0.4.5 → v0.4.6}/helpers/context.js +0 -0
  260. /package/framework/{v0.4.5 → v0.4.6}/helpers/data/LICENSE +0 -0
  261. /package/framework/{v0.4.5 → v0.4.6}/helpers/data/README.md +0 -0
  262. /package/framework/{v0.4.5 → v0.4.6}/helpers/dateFormat.js +0 -0
  263. /package/framework/{v0.4.5 → v0.4.6}/helpers/index.js +0 -0
  264. /package/framework/{v0.4.5 → v0.4.6}/helpers/json/LICENSE +0 -0
  265. /package/framework/{v0.4.5 → v0.4.6}/helpers/json/README.md +0 -0
  266. /package/framework/{v0.4.5 → v0.4.6}/helpers/json/src/main.js +0 -0
  267. /package/framework/{v0.4.5 → v0.4.6}/helpers/path.js +0 -0
  268. /package/framework/{v0.4.5 → v0.4.6}/helpers/plugins/README.md +0 -0
  269. /package/framework/{v0.4.5 → v0.4.6}/helpers/plugins/src/api-error.js +0 -0
  270. /package/framework/{v0.4.5 → v0.4.6}/helpers/plugins/src/main.js +0 -0
  271. /package/framework/{v0.4.5 → v0.4.6}/helpers/prototypes.js +0 -0
  272. /package/framework/{v0.4.5 → v0.4.6}/helpers/task.js +0 -0
  273. /package/framework/{v0.4.5 → v0.4.6}/helpers/text.js +0 -0
  274. /package/framework/{v0.4.5 → v0.4.6}/lib/archiver/README.md +0 -0
  275. /package/framework/{v0.4.5 → v0.4.6}/lib/archiver/build.json +0 -0
  276. /package/framework/{v0.4.5 → v0.4.6}/lib/archiver/src/dep/jszip.min.js +0 -0
  277. /package/framework/{v0.4.5 → v0.4.6}/lib/archiver/src/main.js +0 -0
  278. /package/framework/{v0.4.5 → v0.4.6}/lib/async/package.json +0 -0
  279. /package/framework/{v0.4.5 → v0.4.6}/lib/async/src/main.js +0 -0
  280. /package/framework/{v0.4.5 → v0.4.6}/lib/cache/README.md +0 -0
  281. /package/framework/{v0.4.5 → v0.4.6}/lib/cache/build.json +0 -0
  282. /package/framework/{v0.4.5 → v0.4.6}/lib/cache/src/main.js +0 -0
  283. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/aliases.json +0 -0
  284. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/add.js +0 -0
  285. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/arguments.json +0 -0
  286. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/build.js +0 -0
  287. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/copy.js +0 -0
  288. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/cp.js +0 -0
  289. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/help.js +0 -0
  290. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/help.txt +0 -0
  291. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  292. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/list.js +0 -0
  293. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/mcp-start.js +0 -0
  294. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/mcp.js +0 -0
  295. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/oas.js +0 -0
  296. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/openapi.js +0 -0
  297. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/remove.js +0 -0
  298. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/rename.js +0 -0
  299. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/restart.js +0 -0
  300. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/rm.js +0 -0
  301. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/start.js +0 -0
  302. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/status.js +0 -0
  303. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/bundle/stop.js +0 -0
  304. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/cache/stats.js +0 -0
  305. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/add.js +0 -0
  306. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/arguments.json +0 -0
  307. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/help.js +0 -0
  308. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/help.txt +0 -0
  309. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/list.js +0 -0
  310. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/migrate.js +0 -0
  311. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/remove.js +0 -0
  312. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/connector/rm.js +0 -0
  313. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/add.js +0 -0
  314. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/get.js +0 -0
  315. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/help.js +0 -0
  316. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/help.txt +0 -0
  317. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/link-dev.js +0 -0
  318. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/list.js +0 -0
  319. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/remove.js +0 -0
  320. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/rm.js +0 -0
  321. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/set.js +0 -0
  322. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/unset.js +0 -0
  323. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/env/use.js +0 -0
  324. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/arguments.json +0 -0
  325. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/build.js +0 -0
  326. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/dot.js +0 -0
  327. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/get.js +0 -0
  328. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/help.js +0 -0
  329. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/help.txt +0 -0
  330. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/init.js +0 -0
  331. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/link-node-modules.js +0 -0
  332. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/open.js +0 -0
  333. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/set.js +0 -0
  334. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/status.js +0 -0
  335. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/stop.js +0 -0
  336. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/tail.js +0 -0
  337. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/framework/update.js +0 -0
  338. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/gina-dev.1.md +0 -0
  339. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/gina-framework.1.md +0 -0
  340. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/gina.1.md +0 -0
  341. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/add.js +0 -0
  342. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/arguments.json +0 -0
  343. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/export.js +0 -0
  344. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/help.js +0 -0
  345. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/help.txt +0 -0
  346. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/import.js +0 -0
  347. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/i18n/scan.js +0 -0
  348. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/index.js +0 -0
  349. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/inspector/help.js +0 -0
  350. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/inspector/help.txt +0 -0
  351. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/inspector/open.js +0 -0
  352. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/minion/arguments.json +0 -0
  353. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/minion/help.js +0 -0
  354. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/minion/help.txt +0 -0
  355. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/minion/kill.js +0 -0
  356. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/minion/list.js +0 -0
  357. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/msg.json +0 -0
  358. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/help.js +0 -0
  359. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/help.txt +0 -0
  360. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/inc/scan.js +0 -0
  361. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/list.js +0 -0
  362. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/reset.js +0 -0
  363. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/port/set.js +0 -0
  364. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/arguments.json +0 -0
  365. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/build.js +0 -0
  366. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/help.js +0 -0
  367. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/help.txt +0 -0
  368. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/import.js +0 -0
  369. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/list.js +0 -0
  370. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/move.js +0 -0
  371. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/remove.js +0 -0
  372. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/rename.js +0 -0
  373. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/restart.js +0 -0
  374. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/rm.js +0 -0
  375. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/start.js +0 -0
  376. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/status.js +0 -0
  377. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/project/stop.js +0 -0
  378. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/arguments.json +0 -0
  379. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/help.js +0 -0
  380. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/help.txt +0 -0
  381. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/list.js +0 -0
  382. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/remove.js +0 -0
  383. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/protocol/set.js +0 -0
  384. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/add.js +0 -0
  385. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/help.js +0 -0
  386. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/help.txt +0 -0
  387. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/link-local.js +0 -0
  388. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/link-production.js +0 -0
  389. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/list.js +0 -0
  390. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/remove.js +0 -0
  391. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/rm.js +0 -0
  392. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/scope/use.js +0 -0
  393. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/secrets/arguments.json +0 -0
  394. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/secrets/check.js +0 -0
  395. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/secrets/help.js +0 -0
  396. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/secrets/help.txt +0 -0
  397. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/secrets/scan.js +0 -0
  398. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/service/help.js +0 -0
  399. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/service/help.txt +0 -0
  400. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/service/list.js +0 -0
  401. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/service/start.js +0 -0
  402. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd/view/add.js +0 -0
  403. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd-status-format/package.json +0 -0
  404. /package/framework/{v0.4.5 → v0.4.6}/lib/cmd-status-format/src/main.js +0 -0
  405. /package/framework/{v0.4.5 → v0.4.6}/lib/collection/README.md +0 -0
  406. /package/framework/{v0.4.5 → v0.4.6}/lib/collection/build.json +0 -0
  407. /package/framework/{v0.4.5 → v0.4.6}/lib/collection/src/main.js +0 -0
  408. /package/framework/{v0.4.5 → v0.4.6}/lib/config.js +0 -0
  409. /package/framework/{v0.4.5 → v0.4.6}/lib/connector-registry/package.json +0 -0
  410. /package/framework/{v0.4.5 → v0.4.6}/lib/connector-registry/src/main.js +0 -0
  411. /package/framework/{v0.4.5 → v0.4.6}/lib/cron/README.md +0 -0
  412. /package/framework/{v0.4.5 → v0.4.6}/lib/cron/src/main.js +0 -0
  413. /package/framework/{v0.4.5 → v0.4.6}/lib/domain/LICENSE +0 -0
  414. /package/framework/{v0.4.5 → v0.4.6}/lib/domain/README.md +0 -0
  415. /package/framework/{v0.4.5 → v0.4.6}/lib/domain/src/main.js +0 -0
  416. /package/framework/{v0.4.5 → v0.4.6}/lib/generator/index.js +0 -0
  417. /package/framework/{v0.4.5 → v0.4.6}/lib/i18n/package.json +0 -0
  418. /package/framework/{v0.4.5 → v0.4.6}/lib/i18n/src/main.js +0 -0
  419. /package/framework/{v0.4.5 → v0.4.6}/lib/inherits/LICENSE +0 -0
  420. /package/framework/{v0.4.5 → v0.4.6}/lib/inherits/README.md +0 -0
  421. /package/framework/{v0.4.5 → v0.4.6}/lib/inherits/src/main.js +0 -0
  422. /package/framework/{v0.4.5 → v0.4.6}/lib/inspector-redact/package.json +0 -0
  423. /package/framework/{v0.4.5 → v0.4.6}/lib/inspector-redact/src/main.js +0 -0
  424. /package/framework/{v0.4.5 → v0.4.6}/lib/instrument/package.json +0 -0
  425. /package/framework/{v0.4.5 → v0.4.6}/lib/instrument/src/main.js +0 -0
  426. /package/framework/{v0.4.5 → v0.4.6}/lib/job/package.json +0 -0
  427. /package/framework/{v0.4.5 → v0.4.6}/lib/job/src/main.js +0 -0
  428. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/README.md +0 -0
  429. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/default/index.js +0 -0
  430. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/file/index.js +0 -0
  431. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  432. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  433. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/mq/index.js +0 -0
  434. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/mq/listener.js +0 -0
  435. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/containers/mq/speaker.js +0 -0
  436. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/helper.js +0 -0
  437. /package/framework/{v0.4.5 → v0.4.6}/lib/logger/src/main.js +0 -0
  438. /package/framework/{v0.4.5 → v0.4.6}/lib/math/index.js +0 -0
  439. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-dispatch/package.json +0 -0
  440. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-dispatch/src/main.js +0 -0
  441. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-http/package.json +0 -0
  442. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-http/src/main.js +0 -0
  443. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-server/package.json +0 -0
  444. /package/framework/{v0.4.5 → v0.4.6}/lib/mcp-server/src/main.js +0 -0
  445. /package/framework/{v0.4.5 → v0.4.6}/lib/merge/README.md +0 -0
  446. /package/framework/{v0.4.5 → v0.4.6}/lib/merge/src/main.js +0 -0
  447. /package/framework/{v0.4.5 → v0.4.6}/lib/metrics/package.json +0 -0
  448. /package/framework/{v0.4.5 → v0.4.6}/lib/metrics/src/main.js +0 -0
  449. /package/framework/{v0.4.5 → v0.4.6}/lib/nunjucks-filters/README.md +0 -0
  450. /package/framework/{v0.4.5 → v0.4.6}/lib/nunjucks-filters/package.json +0 -0
  451. /package/framework/{v0.4.5 → v0.4.6}/lib/nunjucks-resolver/package.json +0 -0
  452. /package/framework/{v0.4.5 → v0.4.6}/lib/nunjucks-resolver/src/main.js +0 -0
  453. /package/framework/{v0.4.5 → v0.4.6}/lib/proc.js +0 -0
  454. /package/framework/{v0.4.5 → v0.4.6}/lib/routing/README.md +0 -0
  455. /package/framework/{v0.4.5 → v0.4.6}/lib/routing/build.json +0 -0
  456. /package/framework/{v0.4.5 → v0.4.6}/lib/routing/src/radix.js +0 -0
  457. /package/framework/{v0.4.5 → v0.4.6}/lib/routing-introspect/package.json +0 -0
  458. /package/framework/{v0.4.5 → v0.4.6}/lib/routing-introspect/src/main.js +0 -0
  459. /package/framework/{v0.4.5 → v0.4.6}/lib/secrets/package.json +0 -0
  460. /package/framework/{v0.4.5 → v0.4.6}/lib/secrets/src/backends/env.js +0 -0
  461. /package/framework/{v0.4.5 → v0.4.6}/lib/secrets/src/main.js +0 -0
  462. /package/framework/{v0.4.5 → v0.4.6}/lib/session-store.js +0 -0
  463. /package/framework/{v0.4.5 → v0.4.6}/lib/shell.js +0 -0
  464. /package/framework/{v0.4.5 → v0.4.6}/lib/state.js +0 -0
  465. /package/framework/{v0.4.5 → v0.4.6}/lib/swig-filters/README.md +0 -0
  466. /package/framework/{v0.4.5 → v0.4.6}/lib/swig-resolver/package.json +0 -0
  467. /package/framework/{v0.4.5 → v0.4.6}/lib/swig-resolver/src/main.js +0 -0
  468. /package/framework/{v0.4.5 → v0.4.6}/lib/url/README.md +0 -0
  469. /package/framework/{v0.4.5 → v0.4.6}/lib/url/index.js +0 -0
  470. /package/framework/{v0.4.5 → v0.4.6}/lib/url/routing.json +0 -0
  471. /package/framework/{v0.4.5 → v0.4.6}/lib/uuid/package.json +0 -0
  472. /package/framework/{v0.4.5 → v0.4.6}/lib/uuid/src/main.js +0 -0
  473. /package/framework/{v0.4.5 → v0.4.6}/lib/validator.js +0 -0
  474. /package/framework/{v0.4.5 → v0.4.6}/lib/watcher/package.json +0 -0
  475. /package/framework/{v0.4.5 → v0.4.6}/lib/watcher/src/main.js +0 -0
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -98,11 +98,22 @@ var console = lib.logger;
98
98
  return end(err, 'error')
99
99
  }
100
100
 
101
- console.debug('[link] Running: gina link-node-modules @'+self.projectName);
102
- err = execSync('$(which gina) link-node-modules @'+self.projectName);
103
- if (err instanceof Error) {
104
- console.warn('[link] ', err.stack);
105
- return end(err, 'error')
101
+ // was: err = execSync('$(which gina) link-node-modules @'+self.projectName);
102
+ // A PATH-resolved binary is not guaranteed to exist (repo checkout,
103
+ // non-global install) and may be a different install than the one
104
+ // running this command — invoke the running install's own CLI instead
105
+ // (same rationale as the `source` resolution below). Note execSync
106
+ // THROWS on failure and never returns an Error, so the old
107
+ // `instanceof Error` check was dead code; wrap in try/catch and
108
+ // route the failure through end().
109
+ var cli = require('path').resolve(__dirname, '../../../../..', 'bin/cli');
110
+ console.debug('[link] Running: '+ process.execPath +' '+ cli +' link-node-modules @'+ self.projectName);
111
+ try {
112
+ execSync('"'+ process.execPath +'" "'+ cli +'" link-node-modules @'+ self.projectName);
113
+ } catch (linkErr) {
114
+ var errOutput = (linkErr.stderr) ? linkErr.stderr.toString().trim() : (linkErr.message || linkErr.stack);
115
+ console.warn('[link] '+ errOutput);
116
+ return end(new Error(errOutput), 'error')
106
117
  }
107
118
  }
108
119
  destination = new _(destination.toString() +'/gina', true);
@@ -8,7 +8,7 @@
8
8
  "0" : "basic.help.txt",
9
9
  "1" : "no argument found",
10
10
  "2" : "illegal option",
11
- "4" : "Gina I/O v%version%\nMiddleware: %middleware%\n%copyright%",
11
+ "4" : "Gina I/O v%version%\nMiddleware: %middleware%\n%engine%%copyright%",
12
12
  "5" : "Gina I/O Framework not found! Please visite https://gina.io/ to get the latest version or try to run : npm install gina"
13
13
  },
14
14
  "app" : {
@@ -6,6 +6,11 @@ const util = require('util');
6
6
  var CmdHelper = require('./../helper');
7
7
  // const { start } = require('repl');
8
8
  var console = lib.logger;
9
+ // Self-resolved daemon wrapper — never PATH-resolve our own binary: the PATH
10
+ // may carry no gina at all (repo checkout, non-global install) or a different
11
+ // install than the one running this command. bin/gina (not bin/cli) is required
12
+ // here so `start` keeps its detached-daemon spawn semantics.
13
+ var ginaBin = require('path').resolve(__dirname, '../../../../..', 'bin/gina');
9
14
  /**
10
15
  * @module gina/lib/cmd/framework/restart
11
16
  */
@@ -95,7 +100,8 @@ function Restart(opt, cmd) {
95
100
  // TODO - retrieve & add `opt`
96
101
  var out = null;
97
102
  try {
98
- out = execSync('$(which gina) start @'+self.version).toString();
103
+ // was: out = execSync('$(which gina) start @'+self.version).toString();
104
+ out = execSync('"'+ process.execPath +'" "'+ ginaBin +'" start @'+self.version).toString();
99
105
  console.debug('out => ', out);
100
106
  // TODO - retrieve running bundles with its options & restart
101
107
  } catch (err) {
@@ -122,7 +128,8 @@ function Restart(opt, cmd) {
122
128
  var stop = function() {
123
129
  var out = null;
124
130
  try {
125
- out = execSync('$(which gina) stop @'+self.version).toString();
131
+ // was: out = execSync('$(which gina) stop @'+self.version).toString();
132
+ out = execSync('"'+ process.execPath +'" "'+ ginaBin +'" stop @'+self.version).toString();
126
133
  console.debug('out => ', out);
127
134
  } catch (err) {
128
135
  throw err;
@@ -187,7 +194,8 @@ function Restart(opt, cmd) {
187
194
  continue;
188
195
  }
189
196
  // process.stdout.write('\ngina bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @') + '\n');
190
- execSync('$(which gina) bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @'));
197
+ // was: execSync('$(which gina) bundle:restart '+ ...) PATH-resolved self-invocation
198
+ execSync('"'+ process.execPath +'" "'+ ginaBin +'" bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @'));
191
199
  }
192
200
  }
193
201
 
@@ -71,7 +71,11 @@ function Start(opt){
71
71
  continue;
72
72
  }
73
73
  // process.stdout.write('\ngina bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @') + '\n');
74
- execSync('$(which gina) bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @'));
74
+ // was: execSync('$(which gina) bundle:restart '+ ...) PATH-resolved self-invocation;
75
+ // bin/gina is resolved from this file's own location instead (the PATH may carry
76
+ // no gina or a different install than the one running this command).
77
+ var ginaBin = require('path').resolve(__dirname, '../../../../..', 'bin/gina');
78
+ execSync('"'+ process.execPath +'" "'+ ginaBin +'" bundle:restart '+ file.replace(/\.pid$/, '').replace(/\@/, ' @'));
75
79
  }
76
80
  }
77
81
 
@@ -5,17 +5,21 @@ var console = lib.logger;
5
5
  * @module gina/lib/cmd/framework/version
6
6
  */
7
7
  /**
8
- * Prints the installed Gina framework version, platform, architecture, and middleware.
8
+ * Prints the installed Gina framework version, platform, architecture, middleware,
9
+ * and — when the engine package is resolvable — the bundled template engine name and
10
+ * version (swig by default). The template-engine line is omitted when the engine
11
+ * package cannot be read (e.g. a framework directory not yet `npm install`-ed),
12
+ * satisfying the "when available" contract.
9
13
  *
10
14
  * Usage:
11
15
  * gina framework:version
12
16
  * gina version
13
- * gina version --short=true (prints version number only)
17
+ * gina version --short=true (prints version number only; no template-engine line)
14
18
  *
15
19
  * @class Version
16
20
  * @constructor
17
21
  * @param {object} opt - Parsed command-line options
18
- * @param {string} [opt.frameworkPath] - Absolute path to the framework directory
22
+ * @param {string} [opt.frameworkPath] - Absolute path to the framework directory (used to read MIDDLEWARE and the bundled template engine's package.json)
19
23
  * @param {string} [opt.pack] - Path to package.json for reading the copyright field
20
24
  */
21
25
  function Version(opt){
@@ -41,6 +45,21 @@ function Version(opt){
41
45
  default:
42
46
  break;
43
47
  }
48
+ // Template engine in use — read the framework-bundled engine package (swig by
49
+ // default, declared in framework/v<version>/package.json). Read defensively so a
50
+ // framework directory without the engine package installed (e.g. a fresh clone
51
+ // before `npm install`) simply omits the line, satisfying the "when available"
52
+ // contract rather than crashing the banner.
53
+ var engine = '';
54
+ try {
55
+ var enginePack = JSON.parse( fs.readFileSync(_( opt.frameworkPath + '/node_modules/@rhinostone/swig/package.json')).toString() );
56
+ if ( enginePack && enginePack.name && enginePack.version ) {
57
+ engine = enginePack.name + '@' + enginePack.version;
58
+ }
59
+ } catch (engineErr) {
60
+ engine = '';
61
+ }
62
+
44
63
  var vers = "",
45
64
  short = ( typeof(process.argv[3]) != 'undefined') ? process.argv[3]: false,
46
65
  msg = require('./msg.json'),
@@ -49,12 +68,14 @@ function Version(opt){
49
68
  "platform" : process.platform,
50
69
  "arch" : arch,
51
70
  "middleware" : fs.readFileSync(_( opt.frameworkPath + '/MIDDLEWARE')).toString() || 'none',
71
+ "engine" : engine,
52
72
  "copyright" : require(opt.pack).copyright
53
73
  };
54
74
 
55
75
  vers = msg.basic[4]
56
76
  .replace(/%version%/, version.number +' '+ version.platform +' '+ version.arch + ' (MIT)')
57
77
  .replace(/%middleware%/, version.middleware)
78
+ .replace(/%engine%/, version.engine ? ('Template engine: ' + version.engine + '\n') : '')
58
79
  .replace(/%copyright%/, version.copyright);
59
80
 
60
81
  if (typeof(GINA_VERSION) != "undefined") {
@@ -613,6 +613,9 @@ function CmdHelper(cmd, client, debug) {
613
613
  * Reads all framework config files (main.json, projects.json, manifest.json,
614
614
  * env.json, ports.json, ports.reverse.json) fresh from disk (no require cache).
615
615
  * Populates cmd with scopes, envs, protocols, schemes, port maps, and bundle lists.
616
+ * A registered project whose directory exists but whose manifest.json is missing
617
+ * (a stale ~/.gina/projects.json entry) is warned and skipped (#B24) rather than
618
+ * aborting the whole command.
616
619
  * Also links node_modules and gina when running start/stop/restart tasks in global mode.
617
620
  * Assigns itself to the global `loadAssets`.
618
621
  *
@@ -1109,17 +1112,24 @@ function CmdHelper(cmd, client, debug) {
1109
1112
  ||
1110
1113
  /bundle\:(restart|start|stop)$/.test(cmd.task)
1111
1114
  ) {
1112
- console.info('[helper] Running: gina link-node-modules @'+cmd.projectName +cmd.paramsStringified);
1113
- err = execSync('$(which gina) link-node-modules @'+cmd.projectName +cmd.paramsStringified);// +' --inspect-gina'
1114
- if (err instanceof Error) {
1115
- console.error(err.message || err.stack);
1116
- return exit(err.message || err.stack);
1115
+ // was: err = execSync('$(which gina) link-node-modules @'+cmd.projectName +cmd.paramsStringified);
1116
+ // A PATH-resolved binary is not guaranteed to exist (repo checkout,
1117
+ // non-global install) and execSync THROWS on failure rather than
1118
+ // returning an Error (the old `instanceof Error` check was dead
1119
+ // code) invoke the running install's own CLI instead.
1120
+ var selfCli = require('path').resolve(__dirname, '../../../..', 'bin/cli');
1121
+ console.info('[helper] Running: '+ process.execPath +' '+ selfCli +' link-node-modules @'+cmd.projectName +cmd.paramsStringified);
1122
+ try {
1123
+ execSync('"'+ process.execPath +'" "'+ selfCli +'" link-node-modules @'+cmd.projectName +cmd.paramsStringified);// +' --inspect-gina'
1124
+ } catch (linkErr) {
1125
+ var linkErrOutput = (linkErr.stderr) ? linkErr.stderr.toString().trim() : (linkErr.message || linkErr.stack);
1126
+ console.error(linkErrOutput);
1127
+ return exit(linkErrOutput);
1117
1128
  }
1118
1129
 
1119
- console.info('[helper] Running: $(which gina) link @'+cmd.projectName +cmd.paramsStringified);
1120
- // let ginaBin = execSync('echo $(which gina)').toString().trim();
1130
+ console.info('[helper] Running: '+ process.execPath +' '+ selfCli +' link @'+cmd.projectName +cmd.paramsStringified);
1121
1131
  try {
1122
- console.debug(execSync('$(which gina) link @'+cmd.projectName +cmd.paramsStringified).toString().trim());// +' --inspect-gina'
1132
+ console.debug(execSync('"'+ process.execPath +'" "'+ selfCli +'" link @'+cmd.projectName +cmd.paramsStringified).toString().trim());// +' --inspect-gina'
1123
1133
  } catch (err) {
1124
1134
  var errOutput = (err.stderr) ? err.stderr.toString().trim() : (err.message || err.stack);
1125
1135
  console.emerg(errOutput);
@@ -1257,6 +1267,11 @@ function CmdHelper(cmd, client, debug) {
1257
1267
  cmd.projects[project].exists = true;
1258
1268
  if ( !new _(projectPropertiesPath).existsSync() ) {
1259
1269
  console.error('`'+ projectPropertiesPath +'` not found ! Maybe, you can try to remove the project reference by hand by editing: `'+ _(GINA_HOMEDIR + '/projects.json') +'`')
1270
+ // #B24: skip this stale project (dir present, manifest.json gone) instead of
1271
+ // falling through to the requireJSON(...).bundles below, which process-exits on
1272
+ // ENOENT — aborting every offline asset command when ANY one registered project
1273
+ // is stale. bundlesByProject[project] stays {} (pre-set above); exists stays true.
1274
+ continue;
1260
1275
  }
1261
1276
 
1262
1277
  cmd.bundlesByProject[project] = (cmd.bundlesByProject[project].count() > 0) ? cmd.bundlesByProject[project] : requireJSON(projectPropertiesPath).bundles;
@@ -1377,7 +1392,11 @@ function CmdHelper(cmd, client, debug) {
1377
1392
  }
1378
1393
  }
1379
1394
 
1380
- cmd.bundlesByProject[cmd.projectName][bundle].def_env = (cmd.params.env) ? cmd.params.env : cmd.defaultEnv; // by default
1395
+ // #B27: index by the loop variable `project` every other write in this
1396
+ // double-loop does. With the old cmd.projectName index, the loop reaching a
1397
+ // project other than the freshly-added @alias (which has no bundlesByProject
1398
+ // entry yet) dereferenced undefined and hard-crashed `gina project:add`.
1399
+ cmd.bundlesByProject[project][bundle].def_env = (cmd.params.env) ? cmd.params.env : cmd.defaultEnv; // by default
1381
1400
 
1382
1401
 
1383
1402
  } else {
@@ -887,12 +887,22 @@ function Add(opt, cmd) {
887
887
  }
888
888
 
889
889
  /**
890
- * Runs `gina link @<project>` via Shell to create the node_modules/gina symlink
891
- * inside the project directory.
890
+ * Creates the project's `node_modules/gina` symlink by invoking the running
891
+ * install's own CLI: `<node> <gina root>/bin/cli link @<project>`.
892
+ *
893
+ * The CLI path is resolved from this file's location — NOT from a PATH-resolved
894
+ * `gina` binary: the PATH may carry no gina at all (a repo checkout where
895
+ * `npm install --ignore-scripts` skipped the bin linking) or a different install
896
+ * than the one executing `project:add`. Same rationale as framework/link.js,
897
+ * which resolves the symlink source from its own location.
898
+ *
899
+ * Success is verified on the actual postcondition — the symlink exists — because
900
+ * the Shell helper reports any stderr output as an error even when the command
901
+ * succeeded.
892
902
  *
893
903
  * @inner
894
904
  * @private
895
- * @param {function} onError - Called with an Error when the link command fails
905
+ * @param {function} onError - Called with an Error when the gina symlink is still missing after the link attempt
896
906
  * @param {function} onSuccess - Called with no arguments on success
897
907
  */
898
908
  var linkGina = function ( onError, onSuccess ) {
@@ -902,19 +912,25 @@ function Add(opt, cmd) {
902
912
  npm.setOptions({ chdir: self.projectLocation });
903
913
  npm
904
914
  // .run('npm link gina', true)
905
- .run('gina link @'+ self.projectName, true)
915
+ // was: .run('gina link @'+ self.projectName, true)
916
+ // A PATH-resolved binary is not guaranteed to exist (repo checkout,
917
+ // non-global install) and its failure was silently swallowed — the
918
+ // scaffolded bundle then crashed at boot with MODULE_NOT_FOUND on its
919
+ // framework require. Invoke the running install's own CLI instead.
920
+ .run([ process.execPath, require('path').resolve(__dirname, '../../../../..', 'bin/cli'), 'link', '@'+ self.projectName ], true)
906
921
  .onComplete(function (err, data) {
907
- if (err) {
908
- if ( typeof(onSuccess) != 'undefined' ) {
909
- onSuccess(err);
910
- } else {
911
- console.error(err.stack);
912
- }
913
922
 
914
- } else {
915
- if ( typeof(onSuccess) != 'undefined' )
916
- onSuccess()
923
+ var ginaModule = _(self.projectLocation + '/node_modules/gina', true);
924
+ if ( !fs.existsSync(ginaModule) ) {
925
+ err = new Error('Could not create the gina symlink in [ '+ self.projectLocation +'/node_modules ]'+ ( err ? '\n'+ ( err.stack || err ) : '' ));
926
+ if ( typeof(onError) != 'undefined' ) {
927
+ return onError(err);
928
+ }
929
+ return console.error(err.stack);
917
930
  }
931
+
932
+ if ( typeof(onSuccess) != 'undefined' )
933
+ onSuccess()
918
934
  })
919
935
  }
920
936
 
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -138,6 +138,13 @@ function Lib() {
138
138
  // (getUrl, getWebroot, length, nl2br, addHours, addDays, addYears).
139
139
  // Registered via env.addFilter() in render-nunjucks.js per request.
140
140
  nunjucksFilters: _require('./nunjucks-filters'),
141
+ // #TPL1 — Async template-loader extension point. Builds a built-in
142
+ // loader (memory; http in a later slice) from its flat
143
+ // settings.template.<engine>.loader config and wraps it with a
144
+ // CVE-2023-25345 segment-guard. Consumed by initSwigEngine (startup
145
+ // build + validation) and controller.render-swig-async.js. Pure factory
146
+ // (no singleton state), so _require (hot-reloadable) is safe.
147
+ templateLoaders : _require('./template-loaders'),
141
148
  // #AI8b — MCP server primitives (JSON-RPC 2.0 framing, lifecycle,
142
149
  // method handlers). Transport-agnostic; wired to stdio by bundle:mcp-start.
143
150
  mcpServer : _require('./mcp-server'),
@@ -21,9 +21,6 @@
21
21
  },
22
22
  "copyright" : "Copyright (c) 2009-2026 Rhinostone <contact@gina.io>",
23
23
  "main": "src/main",
24
- "scripts": {
25
- "test": "nodeunit test"
26
- },
27
24
  "license": "MIT",
28
25
  "readmeFilename": "README.md"
29
26
  }
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -13,9 +13,6 @@
13
13
  "node": ">=0.10.22"
14
14
  },
15
15
  "main": "src/main",
16
- "scripts": {
17
- "test": "nodeunit test"
18
- },
19
16
  "license": "MIT",
20
17
  "readmeFilename": "README.md"
21
18
  }
@@ -253,6 +253,23 @@ function ModelUtil() {
253
253
  }
254
254
  }
255
255
 
256
+ // #B29 — a connectors.json with no actual connector entries (only a
257
+ // `$schema` annotation — the `bundle:add` scaffold default — or an empty
258
+ // `{}`) leaves `models` a truthy object with zero object-valued keys, so
259
+ // the guard above entered this connector branch. The connector loop below
260
+ // `continue`s past every non-object key, so `done()` (the sole `cb()`
261
+ // caller) is never reached and the boot stalls before `.listen()`. Treat a
262
+ // zero-connector config like the no-connectors `else` branch: advance to
263
+ // the next bundle (or finish), firing the completion callback.
264
+ if (_connectorCount === 0) {
265
+ if (b < bundles.length-1) {
266
+ loadModel(b+1, bundles, configuration, env, cb)
267
+ } else {
268
+ cb()
269
+ }
270
+ return;
271
+ }
272
+
256
273
  var t = 0;
257
274
 
258
275
  var done = function(connector, modelConnectors) {
@@ -127,17 +127,36 @@ function NunjucksFilters(conf) {
127
127
  return JSON.clone(self.options);
128
128
  };
129
129
 
130
+ // #TPL1 Tier-2 — per-request filter context. The async render delegates
131
+ // register the context-bearing filters ONCE on a shared per-bundle env and
132
+ // pass each request's { options, isProxyHost, throwError, req, res } through
133
+ // process.gina._renderALS (an AsyncLocalStorage .run() wrap around the
134
+ // awaited render). getUrl / getWebroot / t / tIcu read that store at CALL
135
+ // time, so a single shared filter table cannot bleed one request's context
136
+ // into another's interleaved async render (#B25). On the sync render path
137
+ // the delegate never enters .run() -> getStore() is undefined -> the
138
+ // per-request singleton (set by the per-request NunjucksFilters() call)
139
+ // applies, byte-identical to pre-#TPL1.
140
+ var getRenderCtx = function () {
141
+ var _store = ( typeof(process) != 'undefined' && process.gina && process.gina._renderALS )
142
+ ? process.gina._renderALS.getStore()
143
+ : null;
144
+ return _store || NunjucksFilters.instance._options || self.options;
145
+ };
146
+
130
147
  /**
131
- * Resolve the bundle's web root URL.
148
+ * Resolve the bundle's web root URL (scheme + host[:port] + webroot).
132
149
  *
133
- * Mirror of `SwigFilters.getWebroot`. Uses `ctx.options.envObj.getConf`
134
- * to look up bundle config; intended for templates that need the
135
- * absolute origin (scheme + host[:port] + webroot) for rendering links
136
- * to other bundles.
150
+ * Mirror of `SwigFilters.getWebroot`. Resolves the target bundle's env
151
+ * config via the global Config registry
152
+ * (`getContext('gina').Config.instance.Env.getConf`) the same lookup the
153
+ * sibling `getUrl` filter uses — for templates that need the absolute origin
154
+ * for rendering links to other bundles. When `obj` is omitted, `Env.getConf`
155
+ * defaults to the current bundle.
137
156
  *
138
157
  * @memberof NunjucksFilters
139
158
  * @param {string} input - Pipe input (typically a path string)
140
- * @param {object} obj - Bundle name passed to `envObj.getConf`
159
+ * @param {string} [obj] - Bundle name; defaults to the current bundle
141
160
  * @returns {string} Absolute URL: `scheme://host[:port]/webroot`
142
161
  *
143
162
  * @example
@@ -145,10 +164,17 @@ function NunjucksFilters(conf) {
145
164
  */
146
165
  self.getWebroot = function (input, obj) {
147
166
 
148
- var ctx = NunjucksFilters.instance._options || self.options;
167
+ var ctx = getRenderCtx();
149
168
 
169
+ // #B26 fix: the original line below threw on every invocation — `self.options`
170
+ // is the per-request wrapper ({ options, isProxyHost, throwError, req, res }), so
171
+ // `self.options.envObj` is undefined; and bare `options` was undeclared in this
172
+ // scope. Resolve the bundle env config the same way the sibling getUrl filter
173
+ // does, via the global Config registry.
174
+ // , prop = self.options.envObj.getConf(obj, options.conf.env)
175
+ var mainConf = getContext('gina').Config.instance;
150
176
  var url = null
151
- , prop = self.options.envObj.getConf(obj, options.conf.env)
177
+ , prop = mainConf.Env.getConf(obj, mainConf.env)
152
178
  , isProxyHost = ( ctx.isProxyHost && String(ctx.isProxyHost).toLowerCase() === 'true' ) ? true : (( typeof(process.gina.PROXY_HOSTNAME) != 'undefined' ) ? true : false)
153
179
  ;
154
180
  if ( isProxyHost ) {
@@ -189,7 +215,7 @@ function NunjucksFilters(conf) {
189
215
  if (typeof(params) == 'undefined') {
190
216
  params = {};
191
217
  }
192
- var ctx = NunjucksFilters.instance._options || self.options;
218
+ var ctx = getRenderCtx();
193
219
 
194
220
  var config = null
195
221
  , scheme = null
@@ -452,7 +478,7 @@ function NunjucksFilters(conf) {
452
478
  * {{ "common.items" | t({ count: 5 }) }}
453
479
  */
454
480
  self.t = function(key, params) {
455
- var ctx = NunjucksFilters.instance._options || self.options;
481
+ var ctx = getRenderCtx();
456
482
  var culture = (ctx && ctx.req && ctx.req.culture)
457
483
  ? ctx.req.culture
458
484
  : (process.env.GINA_CULTURE || null);
@@ -485,7 +511,7 @@ function NunjucksFilters(conf) {
485
511
  * {{ "user.greeting" | tIcu({ gender: 'female', name: user.name }) }}
486
512
  */
487
513
  self.tIcu = function(key, params) {
488
- var ctx = NunjucksFilters.instance._options || self.options;
514
+ var ctx = getRenderCtx();
489
515
  var culture = (ctx && ctx.req && ctx.req.culture)
490
516
  ? ctx.req.culture
491
517
  : (process.env.GINA_CULTURE || null);
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -201,7 +201,7 @@ function Routing() {
201
201
  method : method,
202
202
  requirements : routeObject.requirements,
203
203
  namespace : routeObject.namespace || undefined,
204
- url : decodeURI(req.url), /// avoid %20
204
+ url : safeDecodeURI(req.url), /// avoid %20 — #B30 malformed-%-safe
205
205
  rule : routeObject.originalRule || cachedRoute.name,
206
206
 
207
207
  param : routeObject.param,
@@ -1474,7 +1474,7 @@ function Routing() {
1474
1474
 
1475
1475
  pathname = url.replace( new RegExp('^('+ hostname +'|'+hostname.replace(/\:\d+/, '') +')' ), '');
1476
1476
  if ( typeof(request.routing.path) == 'undefined' )
1477
- request.routing.path = decodeURI(pathname);
1477
+ request.routing.path = safeDecodeURI(pathname); // #B30 malformed-%-safe
1478
1478
  method = ( typeof(method) != 'undefined' ) ? method.toLowerCase() : 'get';
1479
1479
 
1480
1480
  if (isMethodProvidedByDefault) {
@@ -1482,7 +1482,7 @@ function Routing() {
1482
1482
  request.originalMethod = request.method;
1483
1483
 
1484
1484
  request.method = method;
1485
- request.routing.path = decodeURI(pathname)
1485
+ request.routing.path = safeDecodeURI(pathname) // #B30 malformed-%-safe
1486
1486
  }
1487
1487
  // last method check
1488
1488
  if ( !request.method)
@@ -1517,7 +1517,7 @@ function Routing() {
1517
1517
  method : localMethod,
1518
1518
  requirements : routing[name].requirements,
1519
1519
  namespace : routing[name].namespace || undefined,
1520
- url : decodeURI(pathname), /// avoid %20
1520
+ url : safeDecodeURI(pathname), /// avoid %20 — #B30 malformed-%-safe
1521
1521
  rule : routing[name].originalRule || name,
1522
1522
  param : routing[name].param,
1523
1523
  //middleware: routing[name].middleware,
@@ -12,9 +12,6 @@
12
12
  "node": ">=0.10.22"
13
13
  },
14
14
  "main": "src/main",
15
- "scripts": {
16
- "test": "nodeunit test"
17
- },
18
15
  "license": "MIT",
19
16
  "readmeFilename": "README.md"
20
17
  }
@@ -104,13 +104,52 @@ function SwigFilters(conf) {
104
104
  return JSON.clone(self.options)
105
105
  }
106
106
 
107
- // Allows you to get a bundle web root
107
+ // #TPL1 Tier-2 per-request filter context. The async render delegates
108
+ // register the context-bearing filters ONCE on a shared per-bundle engine
109
+ // and pass each request's { options, isProxyHost, throwError, req, res }
110
+ // through process.gina._renderALS (an AsyncLocalStorage .run() wrap around
111
+ // the awaited render). getUrl / getWebroot / t / tIcu read that store at
112
+ // CALL time, so a single shared filter table cannot bleed one request's
113
+ // context into another's interleaved async render (#B25). On the sync
114
+ // render path the delegate never enters .run() -> getStore() is undefined
115
+ // -> the per-request singleton (set by the per-request SwigFilters() call)
116
+ // applies, byte-identical to pre-#TPL1.
117
+ var getRenderCtx = function () {
118
+ var _store = ( typeof(process) != 'undefined' && process.gina && process.gina._renderALS )
119
+ ? process.gina._renderALS.getStore()
120
+ : null;
121
+ return _store || SwigFilters.instance._options || self.options;
122
+ };
123
+
124
+ /**
125
+ * Resolve a bundle's absolute web root URL (scheme + host[:port] + webroot).
126
+ *
127
+ * Resolves the target bundle's env config via the global Config registry
128
+ * (`getContext('gina').Config.instance.Env.getConf`) — the same lookup the
129
+ * sibling `getUrl` filter uses. When `obj` is omitted, `Env.getConf` defaults
130
+ * to the current bundle.
131
+ *
132
+ * @memberof SwigFilters
133
+ * @param {string} input - Pipe input (unused; templates pipe a placeholder)
134
+ * @param {string} [obj] - Bundle name; defaults to the current bundle
135
+ * @returns {string} Absolute URL: `scheme://host[:port]/webroot`
136
+ *
137
+ * @example
138
+ * {{ '' | getWebroot() }}
139
+ */
108
140
  self.getWebroot = function (input, obj) {
109
141
 
110
- var ctx = SwigFilters.instance._options || self.options;
142
+ var ctx = getRenderCtx();
111
143
 
144
+ // #B26 fix: the original line below threw on every invocation — `self.options`
145
+ // is the per-request wrapper ({ options, isProxyHost, throwError, req, res }), so
146
+ // `self.options.envObj` is undefined; and bare `options` was undeclared in this
147
+ // scope. Resolve the bundle env config the same way the sibling getUrl filter
148
+ // does, via the global Config registry.
149
+ // , prop = self.options.envObj.getConf(obj, options.conf.env)
150
+ var mainConf = getContext('gina').Config.instance;
112
151
  var url = null
113
- , prop = self.options.envObj.getConf(obj, options.conf.env)
152
+ , prop = mainConf.Env.getConf(obj, mainConf.env)
114
153
  , isProxyHost = ( ctx.isProxyHost && String(ctx.isProxyHost).toLowerCase() === 'true' ) ? true : (( typeof(process.gina.PROXY_HOSTNAME) != 'undefined' ) ? true : false)
115
154
  ;
116
155
  if ( isProxyHost ) {
@@ -166,7 +205,7 @@ function SwigFilters(conf) {
166
205
  if (typeof(params) == 'undefined') {
167
206
  params = {}
168
207
  }
169
- var ctx = SwigFilters.instance._options || self.options;
208
+ var ctx = getRenderCtx();
170
209
 
171
210
  var config = null
172
211
  , scheme = null
@@ -421,7 +460,7 @@ function SwigFilters(conf) {
421
460
  * {{ "common.items" | t({ count: 5 }) }}
422
461
  */
423
462
  self.t = function(key, params) {
424
- var ctx = SwigFilters.instance._options || self.options;
463
+ var ctx = getRenderCtx();
425
464
  var culture = (ctx && ctx.req && ctx.req.culture)
426
465
  ? ctx.req.culture
427
466
  : (process.env.GINA_CULTURE || null);
@@ -454,7 +493,7 @@ function SwigFilters(conf) {
454
493
  * {{ "user.greeting" | tIcu({ gender: 'female', name: user.name }) }}
455
494
  */
456
495
  self.tIcu = function(key, params) {
457
- var ctx = SwigFilters.instance._options || self.options;
496
+ var ctx = getRenderCtx();
458
497
  var culture = (ctx && ctx.req && ctx.req.culture)
459
498
  ? ctx.req.culture
460
499
  : (process.env.GINA_CULTURE || null);