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
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "gina-lib-template-loaders",
3
+ "version": "1.0.0",
4
+ "description": "Async template-loader extension point for the swig (and, later, nunjucks) render paths. Builds a built-in loader from its flat settings.template.<engine>.loader config (Slice 1: the in-memory loader) and wraps it with a CVE-2023-25345 segment-safety guard applied on every resolve(). Consumed by initSwigEngine (startup build + validation) and controller.render-swig-async.js (the isolated per-bundle swig engine).",
5
+ "authors": [
6
+ {
7
+ "name": "Martin-Luther ETOUMAN",
8
+ "email": "contact@gina.io"
9
+ }
10
+ ],
11
+ "copyright": "Copyright (c) 2009-2026 Rhinostone <contact@gina.io>",
12
+ "engines": {
13
+ "node": ">=0.10.22"
14
+ },
15
+ "main": "src/main",
16
+ "license": "MIT"
17
+ }
@@ -0,0 +1,272 @@
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
+
9
+ /**
10
+ * @module lib/template-loaders/http
11
+ * @description Built-in HTTP(S)-fetch template loader for the async loader
12
+ * extension point (`settings.template.<engine>.loader.type === "http"`).
13
+ * Resolves each template identifier to an absolute URL under a configured
14
+ * `origin` + `basePath`, fetches the source over node `https`/`http` (no SDK),
15
+ * and caches it via `lib/cache` keyed by the resolved URL — a Tier-1 source
16
+ * cache with an absolute TTL plus opt-in ETag revalidation. Unblocks
17
+ * deployments where templates ship separately from app code (S3 / R2 / GCS /
18
+ * CDN / a CMS endpoint).
19
+ *
20
+ * Loader contract: `resolve(to, from) -> absolute URL`, `load(id, cb)` (arity 2
21
+ * so swig's `getTemplate()` picks the callback load path), `async: true`. The
22
+ * gina CVE-2023-25345 segment-guard (applied by the wrapper in `main.js`)
23
+ * already rejected `..` / absolute identifiers BEFORE `resolve()` runs;
24
+ * `resolve()` adds the origin/basePath CONTAINMENT check — a second,
25
+ * independent boundary that also catches absolute-URL, protocol-relative and
26
+ * host-swap escapes the segment guard cannot see.
27
+ *
28
+ * Identifiers resolve ROOT-relative under `basePath` (a flat namespace: an
29
+ * `{% include "partials/x.html" %}` resolves to `<origin><basePath>/partials/x.html`,
30
+ * not relative to the including template's directory). Parent-relative `../`
31
+ * includes are rejected upstream by the segment guard.
32
+ *
33
+ * @package gina.framework
34
+ */
35
+
36
+ var http = require('http');
37
+ var https = require('https');
38
+
39
+ /**
40
+ * Default source-cache TTL in seconds (absolute, from fetch). 60s bounds
41
+ * staleness even with no revalidation while collapsing per-render fetches to
42
+ * ~once/template/minute under load. Immutable-CDN operators raise it (e.g.
43
+ * `ttl: 86400`); live-CMS operators turn on `revalidate` instead.
44
+ *
45
+ * @constant
46
+ * @inner
47
+ * @type {number}
48
+ */
49
+ var DEFAULT_TTL_S = 60;
50
+
51
+ /**
52
+ * Per-fetch socket timeout (ms). A hung origin must not hang the render.
53
+ *
54
+ * @constant
55
+ * @inner
56
+ * @type {number}
57
+ */
58
+ var FETCH_TIMEOUT_MS = 10000;
59
+
60
+ /**
61
+ * Build an HTTP(S)-fetch loader from its flat config. Validates shape only — it
62
+ * never reaches the backend, so a flaky/unreachable origin at boot is a
63
+ * render-time concern, not a bundle-startup failure (the no-network-probe rule).
64
+ *
65
+ * @param {object} cfg - Loader config (`settings.template.<engine>.loader`)
66
+ * @param {string} cfg.origin - `scheme://host[:port]` of the template origin (no path). http or https.
67
+ * @param {string} [cfg.basePath=""] - Path prefix under origin every identifier resolves against.
68
+ * @param {number} [cfg.ttl=60] - Source-cache TTL in seconds (absolute from fetch). `0` = cache until evicted.
69
+ * @param {boolean} [cfg.revalidate=false] - When true, a cache hit issues a conditional GET (`If-None-Match`).
70
+ * @param {object} [ctx] - Build context (`{ bundle }`) threaded from `initSwigEngine` for cache-key namespacing.
71
+ * @returns {{async: boolean, resolve: function, load: function}} Loader object
72
+ * @throws {Error} When `origin` is missing or not an http(s) URL
73
+ *
74
+ * @example
75
+ * var http = require('lib/template-loaders/http');
76
+ * var loader = http({ type: 'http', origin: 'https://cdn.example.com', basePath: '/templates' }, { bundle: 'site' });
77
+ * loader.load(loader.resolve('pages/home.html'), function (err, source) { ... });
78
+ */
79
+ module.exports = function httpLoader(cfg, ctx) {
80
+ if (!cfg || typeof cfg.origin !== 'string' || cfg.origin === '') {
81
+ throw new Error('[template-loader:http] "origin" (scheme://host[:port]) is required');
82
+ }
83
+
84
+ var parsedOrigin;
85
+ try {
86
+ parsedOrigin = new URL(cfg.origin);
87
+ } catch (e) {
88
+ throw new Error('[template-loader:http] "origin" must be a valid URL: ' + cfg.origin);
89
+ }
90
+ if (parsedOrigin.protocol !== 'http:' && parsedOrigin.protocol !== 'https:') {
91
+ throw new Error('[template-loader:http] "origin" must use http or https: ' + cfg.origin);
92
+ }
93
+
94
+ // Normalise basePath: leading slash, no trailing slash, "" when absent.
95
+ var basePath = (typeof cfg.basePath === 'string') ? cfg.basePath.trim() : '';
96
+ if (basePath.length > 0) {
97
+ if (basePath.charAt(0) !== '/') { basePath = '/' + basePath; }
98
+ basePath = basePath.replace(/\/+$/, '');
99
+ }
100
+
101
+ var originConst = parsedOrigin.origin; // e.g. https://cdn.example.com
102
+ var containPrefix = originConst + basePath + '/'; // every resolved URL must start with this (note trailing /)
103
+ var transport = (parsedOrigin.protocol === 'http:') ? http : https;
104
+ var ttlSeconds = (typeof cfg.ttl === 'number' && cfg.ttl >= 0) ? cfg.ttl : DEFAULT_TTL_S;
105
+ var revalidate = (cfg.revalidate === true);
106
+ var bundle = (ctx && typeof ctx.bundle === 'string' && ctx.bundle) ? ctx.bundle : 'default';
107
+
108
+ /**
109
+ * Resolve a template identifier to an absolute URL under origin+basePath and
110
+ * containment-check it. The CVE segment-guard (main.js wrapper) already ran
111
+ * on `to`. Resolution is root-relative against `containPrefix` (`from` is not
112
+ * used for path construction — the namespace is flat under basePath); the
113
+ * containment check rejects anything escaping the configured origin/basePath.
114
+ *
115
+ * @inner
116
+ * @param {string} to - Template identifier (page, or an extends/include target)
117
+ * @param {string} [from] - Resolving template's id (unused — flat-namespace resolution)
118
+ * @returns {string} Absolute URL string (also the cache key suffix + load() arg)
119
+ * @throws {Error} When the resolved URL escapes the configured origin/basePath
120
+ */
121
+ function resolve(to, from) {
122
+ var url;
123
+ try {
124
+ url = new URL(to, containPrefix);
125
+ } catch (e) {
126
+ throw new Error('[template-loader:http] cannot resolve template identifier: ' + to);
127
+ }
128
+ if (url.origin !== originConst || url.href.indexOf(containPrefix) !== 0) {
129
+ throw new Error('[template-loader:http] resolved URL escapes configured origin/basePath: ' + url.href);
130
+ }
131
+ return url.href;
132
+ }
133
+
134
+ /**
135
+ * Fetch `url` over the configured transport. Single-settle (error / timeout /
136
+ * end race exactly once). A 304 returns no body. Optional `If-None-Match`
137
+ * makes it a conditional GET.
138
+ *
139
+ * @inner
140
+ * @param {string} url - Absolute URL to fetch
141
+ * @param {?string} etag - When set, sent as `If-None-Match` (conditional GET)
142
+ * @param {function} cb - `(err, statusCode, body, responseEtag)`
143
+ * @returns {void}
144
+ */
145
+ function fetchUrl(url, etag, cb) {
146
+ var settled = false;
147
+ function settle(err, status, body, respEtag) {
148
+ if (settled) { return; }
149
+ settled = true;
150
+ cb(err, status, body, respEtag);
151
+ }
152
+
153
+ var opts = {};
154
+ if (etag) { opts.headers = { 'If-None-Match': etag }; }
155
+
156
+ var req = transport.get(url, opts, function (res) {
157
+ var respEtag = (res.headers && res.headers.etag) ? res.headers.etag : null;
158
+ if (res.statusCode === 304) {
159
+ res.resume(); // drain so the socket frees
160
+ return settle(null, 304, null, etag);
161
+ }
162
+ var chunks = [];
163
+ res.on('data', function (chunk) { chunks.push(chunk); });
164
+ res.on('end', function () {
165
+ settle(null, res.statusCode, Buffer.concat(chunks).toString('utf8'), respEtag);
166
+ });
167
+ res.on('error', function (streamErr) { settle(streamErr); });
168
+ });
169
+ req.on('error', function (reqErr) { settle(reqErr); });
170
+ req.setTimeout(FETCH_TIMEOUT_MS, function () {
171
+ req.destroy(new Error('[template-loader:http] timeout (' + FETCH_TIMEOUT_MS + 'ms) fetching ' + url));
172
+ });
173
+ }
174
+
175
+ /**
176
+ * The shared gina cache, resolved LAZILY at load time. It is NOT available
177
+ * at loader-build time — `initSwigEngine` builds the loader before the
178
+ * server's shared Map is created in `start()`, so a build-time capture would
179
+ * grab nothing. The request pipeline points `process.gina._cache` at the
180
+ * server Map before any render-driven `load()`. Returns null when absent
181
+ * (e.g. a unit test with no server) so caching is skipped, not crashed.
182
+ *
183
+ * @inner
184
+ * @returns {?object} A `lib.Cache` instance, or null
185
+ */
186
+ function getCache() {
187
+ return (typeof process.gina === 'object' && process.gina && process.gina._cache) ? process.gina._cache : null;
188
+ }
189
+
190
+ /**
191
+ * Cache key for a resolved URL: `tpl:src:<bundle>:<URL>` (mirrors the
192
+ * `static:<bundle>:<url>` convention of the static-HTML response cache, with
193
+ * a distinct `tpl:src:` prefix so the two never collide).
194
+ *
195
+ * @inner
196
+ * @param {string} url - Resolved absolute URL
197
+ * @returns {string} Cache key
198
+ */
199
+ function cacheKey(url) {
200
+ return 'tpl:src:' + bundle + ':' + url;
201
+ }
202
+
203
+ return {
204
+ // Dispatch flag — routes the bundle to the async swig delegate and tells
205
+ // swig's renderFile to take the async getTemplate path.
206
+ async: true,
207
+
208
+ resolve: resolve,
209
+
210
+ // Arity 2 (id, cb) so swig.getTemplate() uses the callback load path. A
211
+ // network fetch is callback-only — there is no synchronous return path.
212
+ load: function (id, cb) {
213
+ var cache = getCache();
214
+ var key = cacheKey(id);
215
+ var hit = (cache && typeof cache.get === 'function') ? cache.get(key) : undefined;
216
+
217
+ if (hit && typeof hit.source === 'string') {
218
+ if (!revalidate || !hit.etag) {
219
+ // Fresh hit, no revalidation to do → serve cached source.
220
+ return void cb(null, hit.source);
221
+ }
222
+ // Revalidate via a conditional GET.
223
+ return void fetchUrl(id, hit.etag, function (err, status, body, respEtag) {
224
+ if (err) {
225
+ // Flaky origin during revalidation — serve stale rather
226
+ // than 500 a page that is only slightly out of date.
227
+ return void cb(null, hit.source);
228
+ }
229
+ if (status === 304) {
230
+ // Unchanged — refresh the TTL, serve cached source.
231
+ if (cache) { cache.set(key, makeEntry(hit.source, hit.etag)); }
232
+ return void cb(null, hit.source);
233
+ }
234
+ if (status === 200) {
235
+ if (cache) { cache.set(key, makeEntry(body, respEtag)); }
236
+ return void cb(null, body);
237
+ }
238
+ return void cb(new Error('[template-loader:http] ' + status + ' revalidating ' + id));
239
+ });
240
+ }
241
+
242
+ // Miss (or expired, or no cache) → unconditional GET.
243
+ return void fetchUrl(id, null, function (err, status, body, respEtag) {
244
+ if (err) { return void cb(err); }
245
+ if (status === 200) {
246
+ if (cache) { cache.set(key, makeEntry(body, respEtag)); }
247
+ return void cb(null, body);
248
+ }
249
+ return void cb(new Error('[template-loader:http] ' + status + ' fetching ' + id));
250
+ });
251
+ }
252
+ };
253
+
254
+ /**
255
+ * Build a cache-entry value. `ttl` (seconds) drives `lib/cache` expiry;
256
+ * `fromMemory` classifies it under "memory" in `/_gina/cache/stats`.
257
+ *
258
+ * @inner
259
+ * @param {string} source - Template source
260
+ * @param {?string} etag - Origin ETag (for revalidation), or null
261
+ * @returns {object} Cache value
262
+ */
263
+ function makeEntry(source, etag) {
264
+ return {
265
+ source: source,
266
+ etag: etag || null,
267
+ fetchedAt: Date.now(),
268
+ ttl: ttlSeconds,
269
+ fromMemory: true
270
+ };
271
+ }
272
+ };
@@ -0,0 +1,75 @@
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
+
9
+ /**
10
+ * @module lib/template-loaders/memory
11
+ * @description Built-in in-memory template loader for the async loader
12
+ * extension point (`settings.template.<engine>.loader.type === "memory"`).
13
+ * Templates are supplied inline as a flat `identifier -> source` map in the
14
+ * loader config — no filesystem, no network. Useful for tests and small,
15
+ * self-contained template sets.
16
+ *
17
+ * Implements the two-method swig/nunjucks loader contract (`resolve` + `load`)
18
+ * plus the `async: true` dispatch flag. `load` is dual-mode (callback form and
19
+ * synchronous return) with arity 2 so swig's async `getTemplate()` picks the
20
+ * callback load path (it gates on `load.length >= 2`).
21
+ *
22
+ * @package gina.framework
23
+ */
24
+
25
+ /**
26
+ * Build an in-memory loader from a templates map.
27
+ *
28
+ * @param {object} cfg - Loader config (`settings.template.<engine>.loader`)
29
+ * @param {Object.<string,string>} cfg.templates - Flat map of identifier -> source string
30
+ * @returns {{async: boolean, resolve: function, load: function}} Loader object
31
+ * @throws {Error} When `cfg.templates` is not a plain object map
32
+ *
33
+ * @example
34
+ * var memory = require('lib/template-loaders/memory');
35
+ * var loader = memory({ templates: { 'index.html': '<h1>{{ title }}</h1>' } });
36
+ * loader.load('index.html', function (err, source) { ... });
37
+ */
38
+ module.exports = function memory(cfg) {
39
+ if (
40
+ !cfg
41
+ || typeof cfg.templates !== 'object'
42
+ || cfg.templates === null
43
+ || Array.isArray(cfg.templates)
44
+ ) {
45
+ throw new Error('[template-loader:memory] "templates" must be an object map of identifier -> source string');
46
+ }
47
+ var map = cfg.templates;
48
+
49
+ return {
50
+ // Dispatch flag — read by swig's renderFile and by gina's delegate
51
+ // selection (controller.js routes async-loader bundles to the async
52
+ // delegate). Always true for this loader.
53
+ async: true,
54
+
55
+ // Identity resolve — the supplied identifier IS the map key. extends /
56
+ // include targets pass through here too, so the gina CVE segment-guard
57
+ // (applied by the wrapper in main.js) covers the whole transitive chain.
58
+ resolve: function (to, from) {
59
+ return to;
60
+ },
61
+
62
+ // Dual-mode load. Arity 2 (identifier, cb) so swig.getTemplate() uses
63
+ // the callback path; the synchronous return keeps the loader usable by
64
+ // any sync consumer.
65
+ load: function (identifier, cb) {
66
+ if (cb) {
67
+ if (!Object.prototype.hasOwnProperty.call(map, identifier)) {
68
+ return void cb(new Error('[template-loader:memory] template not found: ' + identifier));
69
+ }
70
+ return void cb(null, map[identifier]);
71
+ }
72
+ return map[identifier];
73
+ }
74
+ };
75
+ };
@@ -0,0 +1,134 @@
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
+
9
+ /**
10
+ * @module lib/template-loaders
11
+ * @description Registry + factory for gina's async template-loader extension
12
+ * point (`settings.template.<engine>.loader`). Builds a built-in loader from
13
+ * its flat config — a named `type` plus type-specific keys, mirroring the
14
+ * `connectors.json` convention — and wraps it with a CVE-2023-25345
15
+ * segment-safety guard applied on EVERY `resolve()`, covering the whole
16
+ * transitive extends/include chain (stronger than a first-hop-only guard).
17
+ *
18
+ * Ships two built-ins: `memory` (inline templates, no network) and `http`
19
+ * (HTTP(S)-fetch from a configured origin + basePath, with a TTL'd source cache
20
+ * and opt-in ETag revalidation). A custom project-supplied loader hook lands in
21
+ * a later slice.
22
+ *
23
+ * @package gina.framework
24
+ */
25
+
26
+ /**
27
+ * Built-in loader factories keyed by `type`. Grows one entry per slice.
28
+ *
29
+ * @constant
30
+ * @inner
31
+ * @type {Object.<string, function>}
32
+ */
33
+ var BUILTINS = {
34
+ memory: require('./loaders/memory'),
35
+ http: require('./loaders/http')
36
+ };
37
+
38
+ /**
39
+ * Assert a template identifier is segment-safe: not absolute and free of any
40
+ * parent-traversal (`..`) segment. Runs on every `resolve()` so it guards the
41
+ * full transitive extends/include chain, not just the first hop
42
+ * (CVE-2023-25345).
43
+ *
44
+ * @inner
45
+ * @param {string} id - Template identifier requested by the engine
46
+ * @returns {void}
47
+ * @throws {Error} When `id` is empty/non-string, absolute, or contains a `..` segment
48
+ */
49
+ function assertSafeIdentifier(id) {
50
+ if (typeof id !== 'string' || id === '') {
51
+ throw new Error('[template-loader] invalid template identifier: ' + JSON.stringify(id));
52
+ }
53
+ if (id.charAt(0) === '/' || id.charAt(0) === '\\') {
54
+ throw new Error('[template-loader] absolute template path rejected: ' + id);
55
+ }
56
+ var segs = id.split(/[\\/]/);
57
+ for (var i = 0; i < segs.length; i++) {
58
+ if (segs[i] === '..') {
59
+ throw new Error('[CVE-2023-25345] template path traversal blocked: ' + id);
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Wrap a built-in (or, later, user-supplied) loader with the gina CVE
66
+ * segment-guard. The guard runs inside `resolve()`; `load` is re-exposed via
67
+ * `.bind()` so its `.length` (arity) is preserved — swig's `getTemplate()`
68
+ * uses `load.length >= 2` to choose the callback load path, so a wrapper that
69
+ * dropped the arity would silently break async loading.
70
+ *
71
+ * @inner
72
+ * @param {object} inner - Loader exposing `resolve(to, from)` + `load(id, cb)` [+ `async`]
73
+ * @returns {{async: boolean, resolve: function, load: function}} Guarded loader
74
+ * @throws {Error} When `inner` does not expose both `resolve()` and `load()`
75
+ */
76
+ function wrapWithGuard(inner) {
77
+ if (!inner || typeof inner.resolve !== 'function' || typeof inner.load !== 'function') {
78
+ throw new Error('[template-loader] loader must expose resolve(to, from) and load(identifier, cb)');
79
+ }
80
+ return {
81
+ async: inner.async === true,
82
+ resolve: function (to, from) {
83
+ assertSafeIdentifier(to);
84
+ return inner.resolve(to, from);
85
+ },
86
+ // .bind() preserves load.length (arity) — load-bearing for swig's
87
+ // callback-vs-sync load dispatch.
88
+ load: inner.load.bind(inner)
89
+ };
90
+ }
91
+
92
+ /**
93
+ * Build a guarded async loader from its bundle config, or return `null` when
94
+ * no loader is configured. Throws on a bad config so the caller
95
+ * (`initSwigEngine`) can let it propagate and fail bundle startup fast — the
96
+ * same fail-fast contract as `initNunjucksEngine`/`NUNJUCKS_NOT_INSTALLED`.
97
+ *
98
+ * @param {?object} [cfg] - `settings.template.<engine>.loader` (absent -> null)
99
+ * @param {string} cfg.type - Built-in loader name (`"memory"` | `"http"`)
100
+ * @param {object} [ctx] - Build context (`{ bundle }`) forwarded to the built-in factory for cache-key namespacing
101
+ * @returns {?{async: boolean, resolve: function, load: function}} Guarded loader, or null when `cfg` is absent
102
+ * @throws {Error} On unknown `type`, a loader missing `resolve`/`load`, or a built-in's own config error
103
+ *
104
+ * @example
105
+ * var loader = lib.templateLoaders.build({ type: 'memory', templates: { 'a.html': 'hi' } });
106
+ * // loader.async === true
107
+ * var remote = lib.templateLoaders.build({ type: 'http', origin: 'https://cdn.example.com' }, { bundle: 'site' });
108
+ */
109
+ function build(cfg, ctx) {
110
+ if (cfg === null || typeof cfg !== 'object') {
111
+ return null;
112
+ }
113
+ var type = cfg.type;
114
+ if (typeof type !== 'string' || !Object.prototype.hasOwnProperty.call(BUILTINS, type)) {
115
+ throw new Error(
116
+ '[template-loader] unknown loader type ' + JSON.stringify(type) +
117
+ ' - expected one of: ' + Object.keys(BUILTINS).join(', ')
118
+ );
119
+ }
120
+ // The built-in factory validates its own flat config and throws on a bad
121
+ // shape; we let that propagate (fail-fast at bundle startup). `ctx` (e.g.
122
+ // `{ bundle }`) is forwarded for built-ins that namespace by bundle (the
123
+ // http source cache); built-ins that don't need it (memory) ignore it.
124
+ var inner = BUILTINS[type](cfg, ctx);
125
+ return wrapWithGuard(inner);
126
+ }
127
+
128
+ module.exports = {
129
+ build: build,
130
+ // Exposed for unit tests and future-slice built-in registration.
131
+ BUILTINS: BUILTINS,
132
+ assertSafeIdentifier: assertSafeIdentifier,
133
+ wrapWithGuard: wrapWithGuard
134
+ };
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "gina-framework",
3
- "version": "0.4.5-alpha.2",
3
+ "version": "0.4.6-alpha.2",
4
4
  "dependencies": {
5
- "@rhinostone/swig": "^2.6.0",
5
+ "@rhinostone/swig": "^2.7.2",
6
6
  "intl-messageformat": "^11.2.4",
7
7
  "psl": "^1.15.0",
8
8
  "ws": "^8.20.1"
package/gna.js CHANGED
@@ -15,14 +15,14 @@
15
15
  'use strict';
16
16
 
17
17
  // Framework core — the main gna module (lifecycle hooks, lib, etc.)
18
- var _gna = require('./framework/v0.4.5/core/gna');
18
+ var _gna = require('./framework/v0.4.6/core/gna');
19
19
 
20
20
  // SuperController and EntitySuper — loaded from their source modules
21
- var SuperController = require('./framework/v0.4.5/core/controller');
22
- var EntitySuper = require('./framework/v0.4.5/core/model/entity');
21
+ var SuperController = require('./framework/v0.4.6/core/controller');
22
+ var EntitySuper = require('./framework/v0.4.6/core/model/entity');
23
23
 
24
24
  // uuid — from the lib registry
25
- var uuid = require('./framework/v0.4.5/lib/uuid');
25
+ var uuid = require('./framework/v0.4.6/lib/uuid');
26
26
 
27
27
  module.exports = {
28
28