gina 0.3.6-alpha.3 → 0.3.7-alpha.1

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 (357) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +5 -4
  3. package/framework/v0.3.7-alpha.1/VERSION +1 -0
  4. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +97 -5
  5. package/framework/v0.3.7-alpha.1/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  6. package/framework/v0.3.7-alpha.1/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  7. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +7 -2
  8. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +1 -1
  9. package/framework/v0.3.7-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  10. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  11. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.render-json.js +20 -1
  12. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.render-swig.js +19 -0
  13. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/server.js +13 -0
  14. package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/init.js +9 -9
  15. package/framework/v0.3.7-alpha.1/lib/inspector-redact/package.json +17 -0
  16. package/framework/v0.3.7-alpha.1/lib/inspector-redact/src/main.js +184 -0
  17. package/gna.js +4 -4
  18. package/package.json +2 -2
  19. package/framework/v0.3.6-alpha.3/VERSION +0 -1
  20. package/framework/v0.3.6-alpha.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  21. package/framework/v0.3.6-alpha.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  22. package/framework/v0.3.6-alpha.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  23. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/AUTHORS +0 -0
  24. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/LICENSE +0 -0
  25. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/html/nolayout.html +0 -0
  26. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/html/static.html +0 -0
  27. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/android-chrome-192x192.png +0 -0
  28. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/android-chrome-512x512.png +0 -0
  29. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/apple-touch-icon.png +0 -0
  30. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/favicon-16x16.png +0 -0
  31. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/favicon-32x32.png +0 -0
  32. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/img/favicon.ico +0 -0
  33. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/README.md +0 -0
  34. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  35. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  36. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  37. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  38. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  39. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  40. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
  41. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  42. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  43. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  44. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  45. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  46. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  47. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  48. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  49. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  50. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  51. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/config.js +0 -0
  52. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/ai/index.js +0 -0
  53. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/ai/lib/connector.js +0 -0
  54. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/index.js +0 -0
  55. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/connector.js +0 -0
  56. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  57. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  58. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  59. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
  60. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/session-store.js +0 -0
  61. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  62. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  63. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  64. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/mysql/index.js +0 -0
  65. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/mysql/lib/connector.js +0 -0
  66. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/postgresql/index.js +0 -0
  67. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/postgresql/lib/connector.js +0 -0
  68. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/redis/index.js +0 -0
  69. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/redis/lib/session-store.js +0 -0
  70. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/sql-parser.js +0 -0
  71. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/sqlite/index.js +0 -0
  72. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/sqlite/lib/connector.js +0 -0
  73. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/connectors/sqlite/lib/session-store.js +0 -0
  74. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/content.encoding +0 -0
  75. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.framework.js +0 -0
  76. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.js +0 -0
  77. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.render-stream.js +0 -0
  78. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/controller.render-v1.js +0 -0
  79. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/controller/index.js +0 -0
  80. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/LICENSE +0 -0
  81. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/README.md +0 -0
  82. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  83. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  84. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  85. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  86. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/busboy-1.6.0/package.json +0 -0
  87. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/optimist-0.6.1/LICENSE +0 -0
  88. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/optimist-0.6.1/index.js +0 -0
  89. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/optimist-0.6.1/package.json +0 -0
  90. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/optimist-0.6.1/readme.markdown +0 -0
  91. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  92. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  93. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/streamsearch-1.1.0/package.json +0 -0
  94. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  95. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/deps/swig-client/swig.js +0 -0
  96. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/dev/index.js +0 -0
  97. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/dev/lib/class.js +0 -0
  98. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/dev/lib/factory.js +0 -0
  99. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/dev/lib/tools.js +0 -0
  100. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/gna.js +0 -0
  101. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/README.md +0 -0
  102. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/currency.json +0 -0
  103. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/dist/language/en.json +0 -0
  104. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/dist/language/fr.json +0 -0
  105. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/dist/region/en.json +0 -0
  106. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/dist/region/fr.json +0 -0
  107. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/locales/index.js +0 -0
  108. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/mime.types +0 -0
  109. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/model/entity.js +0 -0
  110. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/model/index.js +0 -0
  111. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/model/template/entityFactory.js +0 -0
  112. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/model/template/index.js +0 -0
  113. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/README.md +0 -0
  114. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/index.js +0 -0
  115. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/file/README.md +0 -0
  116. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/file/build.json +0 -0
  117. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/file/package.json +0 -0
  118. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/intl/README.md +0 -0
  119. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/intl/build.json +0 -0
  120. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/intl/package.json +0 -0
  121. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/intl/src/main.js +0 -0
  122. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/storage/README.md +0 -0
  123. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/storage/build.json +0 -0
  124. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/storage/package.json +0 -0
  125. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/storage/src/main.js +0 -0
  126. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/validator/README.md +0 -0
  127. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/validator/build.json +0 -0
  128. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/validator/package.json +0 -0
  129. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
  130. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/plugins/lib/validator/src/main.js +0 -0
  131. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/router.js +0 -0
  132. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/server.express.js +0 -0
  133. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/server.isaac.js +0 -0
  134. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/status.codes +0 -0
  135. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/_gitignore +0 -0
  136. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/app.json +0 -0
  137. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  138. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
  139. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
  140. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  141. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
  142. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  143. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  144. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  145. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  146. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle/index.js +0 -0
  147. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  148. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  149. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  150. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  151. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  152. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  153. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
  154. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  155. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  156. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  157. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  158. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  159. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/command/gina.bat.tpl +0 -0
  160. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/command/gina.tpl +0 -0
  161. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/env.json +0 -0
  162. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/manifest.json +0 -0
  163. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/package.json +0 -0
  164. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/settings.json +0 -0
  165. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/statics.json +0 -0
  166. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/conf/templates.json +0 -0
  167. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/client/json/401.json +0 -0
  168. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/client/json/403.json +0 -0
  169. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/client/json/404.json +0 -0
  170. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/server/html/50x.html +0 -0
  171. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/server/json/500.json +0 -0
  172. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/error/server/json/503.json +0 -0
  173. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/core/template/extensions/logger/config.json +0 -0
  174. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/console.js +0 -0
  175. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/context.js +0 -0
  176. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/data/LICENSE +0 -0
  177. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/data/README.md +0 -0
  178. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/data/package.json +0 -0
  179. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/data/src/main.js +0 -0
  180. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/dateFormat.js +0 -0
  181. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/index.js +0 -0
  182. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/json/LICENSE +0 -0
  183. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/json/README.md +0 -0
  184. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/json/package.json +0 -0
  185. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/json/src/main.js +0 -0
  186. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/path.js +0 -0
  187. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/plugins/README.md +0 -0
  188. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/plugins/package.json +0 -0
  189. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/plugins/src/api-error.js +0 -0
  190. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/plugins/src/main.js +0 -0
  191. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/prototypes.js +0 -0
  192. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/task.js +0 -0
  193. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/helpers/text.js +0 -0
  194. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/archiver/README.md +0 -0
  195. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/archiver/build.json +0 -0
  196. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/archiver/package.json +0 -0
  197. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/archiver/src/dep/jszip.min.js +0 -0
  198. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/archiver/src/main.js +0 -0
  199. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/async/package.json +0 -0
  200. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/async/src/main.js +0 -0
  201. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cache/README.md +0 -0
  202. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cache/build.json +0 -0
  203. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cache/package.json +0 -0
  204. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cache/src/main.js +0 -0
  205. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/aliases.json +0 -0
  206. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/add.js +0 -0
  207. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/arguments.json +0 -0
  208. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/build.js +0 -0
  209. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/copy.js +0 -0
  210. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/cp.js +0 -0
  211. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/help.js +0 -0
  212. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/help.txt +0 -0
  213. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/list.js +0 -0
  214. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/oas.js +0 -0
  215. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/openapi.js +0 -0
  216. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/remove.js +0 -0
  217. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/rename.js +0 -0
  218. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/restart.js +0 -0
  219. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/rm.js +0 -0
  220. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/start.js +0 -0
  221. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/status.js +0 -0
  222. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/bundle/stop.js +0 -0
  223. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/cache/stats.js +0 -0
  224. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/add.js +0 -0
  225. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/get.js +0 -0
  226. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/help.js +0 -0
  227. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/help.txt +0 -0
  228. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/link-dev.js +0 -0
  229. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/list.js +0 -0
  230. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/remove.js +0 -0
  231. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/rm.js +0 -0
  232. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/set.js +0 -0
  233. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/unset.js +0 -0
  234. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/env/use.js +0 -0
  235. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/arguments.json +0 -0
  236. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/build.js +0 -0
  237. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/dot.js +0 -0
  238. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/get.js +0 -0
  239. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/help.js +0 -0
  240. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/help.txt +0 -0
  241. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/link-node-modules.js +0 -0
  242. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/link.js +0 -0
  243. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/msg.json +0 -0
  244. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/open.js +0 -0
  245. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/restart.js +0 -0
  246. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/set.js +0 -0
  247. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/start.js +0 -0
  248. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/status.js +0 -0
  249. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/stop.js +0 -0
  250. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/tail.js +0 -0
  251. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/update.js +0 -0
  252. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/framework/version.js +0 -0
  253. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/gina-dev.1.md +0 -0
  254. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/gina-framework.1.md +0 -0
  255. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/gina.1.md +0 -0
  256. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/helper.js +0 -0
  257. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/index.js +0 -0
  258. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/inspector/help.js +0 -0
  259. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/inspector/help.txt +0 -0
  260. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/inspector/open.js +0 -0
  261. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/minion/help.js +0 -0
  262. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/minion/help.txt +0 -0
  263. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/msg.json +0 -0
  264. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/help.js +0 -0
  265. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/help.txt +0 -0
  266. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/inc/scan.js +0 -0
  267. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/list.js +0 -0
  268. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/reset.js +0 -0
  269. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/port/set.js +0 -0
  270. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/add.js +0 -0
  271. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/arguments.json +0 -0
  272. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/build.js +0 -0
  273. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/help.js +0 -0
  274. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/help.txt +0 -0
  275. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/import.js +0 -0
  276. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/list.js +0 -0
  277. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/move.js +0 -0
  278. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/remove.js +0 -0
  279. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/rename.js +0 -0
  280. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/restart.js +0 -0
  281. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/rm.js +0 -0
  282. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/start.js +0 -0
  283. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/status.js +0 -0
  284. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/project/stop.js +0 -0
  285. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/protocol/help.js +0 -0
  286. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/protocol/help.txt +0 -0
  287. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/protocol/list.js +0 -0
  288. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/protocol/set.js +0 -0
  289. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/add.js +0 -0
  290. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/help.js +0 -0
  291. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/help.txt +0 -0
  292. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/link-local.js +0 -0
  293. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/link-production.js +0 -0
  294. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/list.js +0 -0
  295. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/remove.js +0 -0
  296. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/rm.js +0 -0
  297. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/scope/use.js +0 -0
  298. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cmd/view/add.js +0 -0
  299. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/collection/README.md +0 -0
  300. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/collection/build.json +0 -0
  301. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/collection/package.json +0 -0
  302. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/collection/src/main.js +0 -0
  303. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/config.js +0 -0
  304. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cron/README.md +0 -0
  305. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cron/package.json +0 -0
  306. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/cron/src/main.js +0 -0
  307. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/LICENSE +0 -0
  308. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/README.md +0 -0
  309. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +0 -0
  310. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/dist/public_suffix_list.dat +0 -0
  311. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/dist/public_suffix_list.dat.br +0 -0
  312. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/dist/public_suffix_list.dat.gz +0 -0
  313. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/package.json +0 -0
  314. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/domain/src/main.js +0 -0
  315. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/generator/index.js +0 -0
  316. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/index.js +0 -0
  317. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/inherits/LICENSE +0 -0
  318. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/inherits/README.md +0 -0
  319. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/inherits/package.json +0 -0
  320. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/inherits/src/main.js +0 -0
  321. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/README.md +0 -0
  322. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/package.json +0 -0
  323. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/default/index.js +0 -0
  324. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/file/index.js +0 -0
  325. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  326. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  327. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/mq/index.js +0 -0
  328. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/mq/listener.js +0 -0
  329. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/containers/mq/speaker.js +0 -0
  330. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/helper.js +0 -0
  331. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/logger/src/main.js +0 -0
  332. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/math/index.js +0 -0
  333. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/merge/README.md +0 -0
  334. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/merge/package.json +0 -0
  335. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/merge/src/main.js +0 -0
  336. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/model.js +0 -0
  337. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/proc.js +0 -0
  338. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/routing/README.md +0 -0
  339. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/routing/build.json +0 -0
  340. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/routing/package.json +0 -0
  341. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/routing/src/main.js +0 -0
  342. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/routing/src/radix.js +0 -0
  343. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/session-store.js +0 -0
  344. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/shell.js +0 -0
  345. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/state.js +0 -0
  346. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/swig-filters/README.md +0 -0
  347. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/swig-filters/package.json +0 -0
  348. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/swig-filters/src/main.js +0 -0
  349. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/url/README.md +0 -0
  350. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/url/index.js +0 -0
  351. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/url/routing.json +0 -0
  352. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/uuid/package.json +0 -0
  353. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/uuid/src/main.js +0 -0
  354. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/validator.js +0 -0
  355. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/watcher/package.json +0 -0
  356. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/lib/watcher/src/main.js +0 -0
  357. /package/framework/{v0.3.6-alpha.3 → v0.3.7-alpha.1}/package.json +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,21 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
6
  and is generated by [Changie](https://github.com/miniscruff/changie).
7
7
 
8
8
 
9
+ ## 0.3.6 - 2026-04-16
10
+ ### Changed
11
+ * syncDocs now regenerates the docs-site package-lock.json after bumping devDependencies.gina — prevents CI / Vercel / Worker deploy failures on every stable release.
12
+ ### Fixed
13
+ * Prevented spurious Whisper Error on the first CLI command after a fresh install (#B12). `gina --version` and `gina framework:*` commands no longer emit a red error stack trace before their output on a brand-new install.
14
+ * Hardening framework:init against missing or mistyped `def_*` keys in ~/.gina/main.json (#B13 — blast-radius follow-up to #B12). `main['def_prefix']`, `def_global_mode`, `def_arch`, `def_platform`, `def_env`, `def_scope`, `def_log_level` reads now short-circuit to undefined instead of throwing TypeError when the key is entirely absent.
15
+ * Surfacing the real cause when `prepare_version.js` is run against a stale `~/.gina/<release>/settings.json` `dir` field. Publish now fails fast with an actionable message instead of wedging at `pushChangesToGitIfNeeded` with a misleading "No branch selected" error.
16
+ * Preventing CORS preflight failure when a bundle's env.json `access-control-allow-headers` list omits a header the client actually sends. `completeHeaders()` no longer overwrites the echo that `checkPreflightRequest()` sets from the incoming `access-control-request-headers` (#B13).
17
+ ### Security
18
+ * Added pre-commit hook (.githooks/pre-commit) that blocks Claude-related paths (CLAUDE.md, .claude*) from entering git history. post_install.js installs core.hooksPath=.githooks for contributor clones only (gated on .git presence in gina repo root). #S5 follow-up to #S3.
19
+ * Added GitHub Actions workflow (.github/workflows/security.yml) that greps the git index on every push/PR to develop and master for Claude-related paths (CLAUDE.md, .claude*). Fails the build if any are tracked. Backs up the local pre-commit hook (#S5) and publish-boundary gate (#S3). #S6 follow-up to #S3.
20
+ * Added private-token leak gate (script/check_no_claude_leak.js) wired into the npm prepack hook and the prepare_version.js self.* chain before any git add --all. Fails the publish if the tarball listing contains Claude-related paths OR if pack contents contain private-token patterns (phone, private email, private address, private domain, co-author legal name). #G1 follow-up to #S3/#S4.
21
+ * Added opt-in pre-commit hook (resources/git-hooks/pre-commit) that blocks commits authored under a private-domain git identity (.local hostnames, internal domains). Contributors install it once via cp resources/git-hooks/pre-commit .git/hooks/pre-commit. Complements the CI-side Claude-path guard (#S5/#S6). #G5.
22
+ * Redacting secret-looking fields from the dev-mode Inspector feed before any sink (window.__ginaData, localStorage.__ginaData, /_gina/agent SSE, engine.io push, ginaToolbar forms/XHR overlays). New lib/inspector-redact deep-clones the Inspector payload and replaces values whose keys match the default regex (password, pwd, secret, token, apikey, cvv, ssn, authorization, credentials, private_key) with [redacted]. Two complementary carve-outs preserve validation metadata: (1) NON_SECRET_SUFFIX — keys ending in rule/rules/policy/policies/validator/config/configuration/settings/requirements/strength/constraint/options/schema/definition/spec pass through untouched (e.g. passwordRule, passwordPolicy describe form rules, not user input); (2) primitive-only redaction — when a matched secret key holds an object or array, the walker recurses into it instead of replacing it, because such values are always metadata (e.g. rules.account[password] = {isRequired: true, isString: 7} — an HTML form field name under a rules: section). Nested primitive secrets inside preserved objects are still caught on recursion. Client-side shim in statusbar.html mirrors both carve-outs and additionally redacts any DOM input whose type matches configured types (default: password). Configurable via settings.json inspector.redact.{patterns,types,replacement}. Dev-mode only — the actual HTTP response body is never touched. #R7.
23
+
9
24
  ## 0.3.5 - 2026-04-13
10
25
  ### Security
11
26
  * Bumped @rhinostone/swig to 1.5.0 — extends CVE-2023-25345 path-traversal guards to bracket notation, set bracket assignment, for loop variables, macro names, and import aliases.
package/README.md CHANGED
@@ -37,11 +37,12 @@ gina bundle:start api @myproject
37
37
  open https://localhost:3100
38
38
  ```
39
39
 
40
- ## What's in 0.3.5
40
+ ## What's in 0.3.6
41
41
 
42
- - **Security (CVE-2023-25345 extension)** — bumped `@rhinostone/swig` to 1.5.0, extending path-traversal guards to bracket-notation access, set-bracket assignment, for-loop variables, macro names, and import aliases
43
- - **Client-side parity** — updated vendored browser swig (`core/deps/swig-client/`) to the 1.5.0 build; browser-side templating now matches the server-side `__proto__`/`constructor`/`prototype` blocklist
44
- - See 0.3.4 for the `require('gina/gna')` stale-path fix, and 0.3.3 for feature additions (live index introspection, `bundle:openapi`, `framework:get`, `port:set`, swig migration, internal `lib/uuid`, popin performance, validator fix, Docker fixes, requireJSON resilience)
42
+ - **Inspector payload redaction** — passwords, tokens, API keys, and secret-like fields are automatically stripped from all four Inspector data sinks (`window.__ginaData`, `localStorage`, `/_gina/agent` SSE, `ginaToolbar.update`). Configurable patterns via `inspector.redact` in bundle settings. Metadata carve-outs preserve validation rules and object-valued config under secret keys
43
+ - **CORS preflight fix** — `completeHeaders()` no longer overwrites the echoed `access-control-allow-headers` on preflight responses, fixing browser CORS errors when the bundle's static ACAH list didn't include all client-sent headers
44
+ - **Whisper silent-pass** `whisper()` no longer emits a red stack trace on missing dictionary keys (first-install UX fix); `post_install.js` now seeds `def_global_mode` so the key is always present
45
+ - See 0.3.5 for the swig 1.5.0 security extension, and 0.3.4 for the `require('gina/gna')` stale-path fix
45
46
 
46
47
  See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
47
48
 
@@ -0,0 +1 @@
1
+ 0.3.7-alpha.1
@@ -9,6 +9,96 @@
9
9
  var envName = env.env || '?';
10
10
  var dot = data.error ? '#e74c3c' : '#2ecc71';
11
11
 
12
+ // ── Inspector secret redaction (#R7) ──────────────────────────────────
13
+ // Matches the server-side rules in lib/inspector-redact. Strips secret-
14
+ // looking fields from anything passed to ginaToolbar.update() before it
15
+ // touches window.__ginaData or localStorage. Patterns/types/replacement
16
+ // come from window.__ginaData.gina.inspectorRedact (server-injected).
17
+ var _rdc = (d.gina && d.gina.inspectorRedact) || {};
18
+ var _rdcRepl = (typeof _rdc.replacement === 'string') ? _rdc.replacement : '[redacted]';
19
+ var _rdcTypes = {};
20
+ if (Array.isArray(_rdc.types)) {
21
+ for (var _ti = 0; _ti < _rdc.types.length; _ti++) {
22
+ _rdcTypes[String(_rdc.types[_ti]).toLowerCase()] = true;
23
+ }
24
+ } else {
25
+ _rdcTypes['password'] = true;
26
+ }
27
+ var _rdcRe = [];
28
+ var _rdcSrc = Array.isArray(_rdc.patterns) ? _rdc.patterns
29
+ : ['password','passwd','pwd','secret','token','apikey','api[_-]?key','cvv','cvc','ccv','pan','ssn','authorization','credentials','private[_-]?key'];
30
+ for (var _ri = 0; _ri < _rdcSrc.length; _ri++) {
31
+ try { _rdcRe.push(new RegExp(_rdcSrc[_ri], 'i')); } catch (e) { /* skip */ }
32
+ }
33
+ // Keys ending in rule/policy/config/validator suffixes describe validation
34
+ // metadata, not user input — must not be redacted even when the name
35
+ // contains a secret keyword (e.g. `passwordRule`). Mirrors the server-side
36
+ // NON_SECRET_SUFFIX regex in lib/inspector-redact.
37
+ var _rdcNonSecret = /(rule|rules|policy|policies|validator|config|configuration|settings|setting|meta|metadata|format|requirements|strength|constraint|constraints|options|option|schema|definition|definitions|spec|specs)$/i;
38
+ function _rdcKeyHit(k) {
39
+ if (typeof k !== 'string') return false;
40
+ if (_rdcNonSecret.test(k)) return false;
41
+ for (var i = 0; i < _rdcRe.length; i++) {
42
+ if (_rdcRe[i].test(k)) return true;
43
+ }
44
+ return false;
45
+ }
46
+ // Build a Set of secret field names from the form DOM (input[type=password]
47
+ // etc.). Lets us redact by actual input type, not just by field-name regex.
48
+ function _rdcDomSecrets(formId) {
49
+ var hits = {};
50
+ try {
51
+ var doc = (window.opener && window.opener.document) || document;
52
+ var form = formId ? doc.getElementById(formId) : null;
53
+ var els = form ? form.querySelectorAll('input,select,textarea') : doc.querySelectorAll('input');
54
+ for (var i = 0; i < els.length; i++) {
55
+ var t = (els[i].type || '').toLowerCase();
56
+ var n = els[i].name || els[i].id || '';
57
+ if (n && _rdcTypes[t]) hits[n] = true;
58
+ }
59
+ } catch (e) { /* cross-origin or detached opener */ }
60
+ return hits;
61
+ }
62
+ function _rdcWalk(v, depth, seen, domHits) {
63
+ if (depth > 50) return v;
64
+ if (v === null || typeof v !== 'object') return v;
65
+ if (seen.indexOf(v) !== -1) return '[circular]';
66
+ seen.push(v);
67
+ if (Array.isArray(v)) {
68
+ var arr = new Array(v.length);
69
+ for (var i = 0; i < v.length; i++) arr[i] = _rdcWalk(v[i], depth + 1, seen, domHits);
70
+ return arr;
71
+ }
72
+ var out = {};
73
+ var ks = Object.keys(v);
74
+ for (var k = 0; k < ks.length; k++) {
75
+ var key = ks[k];
76
+ var val = v[key];
77
+ if (_rdcKeyHit(key) || (domHits && domHits[key])) {
78
+ // Only primitive leaf values are redacted. Object/array values
79
+ // under a secret-like key are metadata (validation rules, error
80
+ // maps, validator specs keyed by form field name like
81
+ // `account[password]`) — walk into them so nested primitive
82
+ // secrets still get caught, but the rule structure itself
83
+ // passes through.
84
+ if (val === null || typeof val === 'undefined') {
85
+ out[key] = val;
86
+ } else if (typeof val === 'object') {
87
+ out[key] = _rdcWalk(val, depth + 1, seen, domHits);
88
+ } else {
89
+ out[key] = _rdcRepl;
90
+ }
91
+ } else {
92
+ out[key] = _rdcWalk(val, depth + 1, seen, domHits);
93
+ }
94
+ }
95
+ return out;
96
+ }
97
+ function _rdc_redact(value, formId) {
98
+ var domHits = formId ? _rdcDomSecrets(formId) : null;
99
+ return _rdcWalk(value, 0, [], domHits);
100
+ }
101
+
12
102
  // ── ginaToolbar shim ──────────────────────────────────────────────────
13
103
  // gina.min.js is a stale build that creates its own window.ginaToolbar
14
104
  // with a loadData function that accesses removed DOM elements
@@ -29,23 +119,25 @@
29
119
 
30
120
  if (section === 'data-xhr' || section === 'view-xhr') {
31
121
  if (sectionData) {
32
- u[section] = sectionData;
33
- g[section] = sectionData;
122
+ var _safe = _rdc_redact(sectionData, null);
123
+ u[section] = _safe;
124
+ g[section] = _safe;
34
125
  } else {
35
126
  delete u[section];
36
127
  delete g[section];
37
128
  }
38
129
  } else if (section === 'el-xhr') {
39
- u['el-xhr'] = sectionData;
130
+ u['el-xhr'] = _rdc_redact(sectionData, null);
40
131
  } else if (section === 'forms') {
41
132
  if (typeof sectionData === 'object' && sectionData !== null && sectionData.id) {
42
133
  if (!u.forms) u.forms = {};
43
134
  if (!u.forms[sectionData.id]) u.forms[sectionData.id] = {};
44
135
  var fd = u.forms[sectionData.id];
45
- var fk = Object.keys(sectionData);
136
+ var _safeForm = _rdc_redact(sectionData, sectionData.id);
137
+ var fk = Object.keys(_safeForm);
46
138
  for (var i = 0; i < fk.length; i++) {
47
139
  if (fk[i] === 'id') continue;
48
- fd[fk[i]] = sectionData[fk[i]];
140
+ fd[fk[i]] = _safeForm[fk[i]];
49
141
  }
50
142
  }
51
143
  }
@@ -21435,16 +21435,21 @@ function getDependencies(gina, cb) {
21435
21435
  }
21436
21436
 
21437
21437
  // Gina madatory dependencies are handled here
21438
+ // Webroot is resolved at runtime from `gina.config` (populated by gina.onload.min.js,
21439
+ // which IS whispered server-side). `core.js` ships in `gina.min.js`, which is served
21440
+ // as a static asset without a swig pass — so `{{ page.environment.webroot }}` tokens
21441
+ // embedded here would reach the browser un-interpolated and break the fetch.
21442
+ var _webroot = (gina && gina.config && gina.config.webroot) || '/';
21438
21443
  var arr = [
21439
21444
  // Get routing to populate `window.gina.config.routing`
21440
21445
  // Now fetching routing from gina
21441
21446
  {
21442
21447
  func: loadRoutingConf,
21443
- args: [ 'routing', {url: '{{ page.environment.webroot }}_gina/assets/routing.json'} ]
21448
+ args: [ 'routing', {url: _webroot + '_gina/assets/routing.json'} ]
21444
21449
  }
21445
21450
  // {
21446
21451
  // func: loadRoutingConf,
21447
- // args: [ 'reverseRouting', {url: '{{ page.environment.webroot }}_gina/assets/reverse-routing.json'} ]
21452
+ // args: [ 'reverseRouting', {url: _webroot + '_gina/assets/reverse-routing.json'} ]
21448
21453
  // }
21449
21454
  ];
21450
21455
  depsEventBus.addEventListener('deps.loaded', (event) => {
@@ -530,6 +530,6 @@ function readyStateChange(){'complete'===document.readyState&&gina.ready()}
530
530
  if('undefined'==typeof window.gina){var gina={_global:{register:function(r){if('undefined'!=typeof r)for(let I in r)window[I]=r[I]},unregister:function(r){if('undefined'==typeof r||!Array.isArray(r))throw Error('`variables` needs to ba an array');for(let I=0,G=r.length;I<G;I++)delete window[r[I]]},initialized:[]},ready:function(r,I){readyFired?setTimeout(function(){r(I)},1):(readyList.push({name:'anonymous',fn:r,ctx:I}),'complete'===document.readyState||!document.attachEvent&&'interactive'===document.readyState?
531
531
  setTimeout(ready,1):readyEventHandlersInstalled||(document.addEventListener?(document.addEventListener('DOMContentLoaded',ready,!1),window.addEventListener('load',ready,!1)):(document.attachEvent('onreadystatechange',readyStateChange),window.attachEvent('onload',ready)),readyEventHandlersInstalled=!0))}};window.gina=gina}define('core',['require','gina'],function(r){r('gina')(window.gina)});require.config({packages:['gina']});require('vendor/engine.io core helpers/prototypes helpers/binding helpers/dateFormat gina/link gina/validator gina/popin gina/storage utils/dom utils/events utils/data utils/effects utils/polyfill lib/inherits lib/form-validator lib/collection lib/domain lib/routing'.split(' '));
532
532
  function getDependencies(r,I){var G=new EventTarget,O=[{func:async function(C,D){D=D.url;var U=null,B=null,F=null;try{U=await fetch(D),B=await U.text(),'undefined'==typeof r&&(r={}),'undefined'==typeof window.gina.config&&(r.config={}),r.config[C]=JSON.parse(B),G.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:B,error:F,timestamp:new Date}}))}catch(f){F=Error('[ROUTING] Could not load routing\n'+(f.stack||f.message||f)),G.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:null,error:F,
533
- timestamp:new Date}}))}},args:['routing',{url:'{{ page.environment.webroot }}_gina/assets/routing.json'}]}];G.addEventListener('deps.loaded',C=>{O.splice(0,1);O.length||I()});try{for(let C=0,D=O.length;C<D;C++)O[C].func.apply(null,O[C].args)}catch(C){console.error(C.stack|C.message|C)}}
533
+ timestamp:new Date}}))}},args:['routing',{url:(r&&r.config&&r.config.webroot||'/')+'_gina/assets/routing.json'}]}];G.addEventListener('deps.loaded',C=>{O.splice(0,1);O.length||I()});try{for(let C=0,D=O.length;C<D;C++)O[C].func.apply(null,O[C].args)}catch(C){console.error(C.stack|C.message|C)}}
534
534
  for(var tags=document.getElementsByTagName('script'),t=0,len=tags.length;t<len;++t)if(/(gina\.min\.js|gina\.js)/.test(tags[t].getAttribute('src'))){tags[t].onload=function(r){console.debug('Core Gina loaded !');getDependencies(gina,function(){if(window.onGinaLoaded)var I=window.onGinaLoaded;document.addEventListener?document.addEventListener('ginaloaded',function(G){window.gina=G.detail;I(G.detail)}):document.attachEvent&&document.attachEvent('ginaloaded',function(G){window.gina=G.detail;I(G.detail)})})}();
535
535
  break};
@@ -4,6 +4,8 @@ const lib = require('./../../lib') || require.cache[require.resolv
4
4
  const Collection = lib.Collection;
5
5
  const cache = new lib.Cache();
6
6
  var statusCodes = requireJSON( _( getPath('gina').core + '/status.codes') );
7
+ // Inspector secret redaction (dev-mode only — never touches the actual response body)
8
+ var inspectorRedact = require('lib/inspector-redact');
7
9
 
8
10
  // Inherited from controller
9
11
  var self = null
@@ -270,7 +272,24 @@ module.exports = function renderJSON(jsonObj, deps) {
270
272
  entries : local._timeline.entries
271
273
  };
272
274
  }
273
- var __gdPayload = { gina: { environment: _env }, user: _gdUser };
275
+ // #R7 redact secret-looking fields from the Inspector clone before
276
+ // any sink (engine.io push, /_gina/agent SSE). The actual response
277
+ // body `jsonObj` is never touched — `redact()` returns a deep clone.
278
+ // The resolved redact config is exposed under `gina.inspectorRedact`
279
+ // so the standalone Inspector can mirror the same rules client-side.
280
+ var _jsonRedactConf = inspectorRedact.getConfig(local.options.conf);
281
+ var __gdPayload = {
282
+ gina : { environment: _env, inspectorRedact: {
283
+ patterns : _jsonRedactConf.patterns,
284
+ types : _jsonRedactConf.types,
285
+ replacement : _jsonRedactConf.replacement
286
+ }},
287
+ user : _gdUser
288
+ };
289
+ __gdPayload = inspectorRedact.redact(__gdPayload, {
290
+ compiledPatterns : _jsonRedactConf.compiledPatterns,
291
+ replacement : _jsonRedactConf.replacement
292
+ });
274
293
  self.serverInstance._lastGinaData = __gdPayload;
275
294
  process.emit('inspector#data', __gdPayload);
276
295
  }
@@ -5,6 +5,8 @@ const lib = require('./../../lib') || require.cache[require.resolve(
5
5
  const Collection = lib.Collection;
6
6
  const cache = new lib.Cache();
7
7
  var statusCodes = requireJSON( _( getPath('gina').core + '/status.codes') );
8
+ // Inspector secret redaction (dev-mode only — never touches the actual response body)
9
+ var inspectorRedact = require('lib/inspector-redact');
8
10
  // Precompiled regex — avoids per-request RegExp allocation (#P3)
9
11
  var blacklistRe = /[<>]/g;
10
12
 
@@ -1046,7 +1048,24 @@ module.exports = async function render(userData, displayInspector, errOptions, d
1046
1048
  __gdUser.view.stylesheets = 'ignored-by-toolbar';
1047
1049
  __gdUser.view.assets = assets;
1048
1050
 
1051
+ // Inspector secret redaction (#R7) — strip secret-looking fields from
1052
+ // the Inspector clone before any sink (HTML script tag, engine.io push,
1053
+ // /_gina/agent SSE). The actual template `data` is never touched.
1054
+ // Inject the resolved redact config so the statusbar shim can apply
1055
+ // the same rules to validator `ginaToolbar.update()` calls client-side.
1056
+ var _redactConf = inspectorRedact.getConfig(local.options.conf);
1057
+ __gdGina.inspectorRedact = {
1058
+ patterns : _redactConf.patterns,
1059
+ types : _redactConf.types,
1060
+ replacement : _redactConf.replacement
1061
+ };
1062
+
1049
1063
  var __gdPayload = { gina: __gdGina, user: __gdUser };
1064
+ __gdPayload = inspectorRedact.redact(__gdPayload, {
1065
+ compiledPatterns : _redactConf.compiledPatterns,
1066
+ replacement : _redactConf.replacement
1067
+ });
1068
+
1050
1069
  var __gdScript = '<script>window.__ginaData = '
1051
1070
  + JSON.stringify(__gdPayload)
1052
1071
  .replace(/<\/script>/gi, '<\\/script>')
@@ -1454,6 +1454,19 @@ function Server(options) {
1454
1454
  }
1455
1455
  sameOrigin = false;
1456
1456
  } else {
1457
+ // #B13 — preserve preflight echo of access-control-allow-headers.
1458
+ // checkPreflightRequest() echoes back the browser's
1459
+ // access-control-request-headers list so the preflight passes even
1460
+ // when the bundle's static ACAH config does not list every header
1461
+ // the client sends (e.g. Content-Type). Without this guard, the
1462
+ // static value below would overwrite that echo and break CORS.
1463
+ if (
1464
+ /^access\-control\-allow\-headers$/i.test(h)
1465
+ && request.isPreflightRequest
1466
+ && response.getHeader('access-control-allow-headers')
1467
+ ) {
1468
+ continue;
1469
+ }
1457
1470
  headerValue = resHeaders[h];
1458
1471
  try {
1459
1472
  response.setHeader(h, headerValue);
@@ -536,12 +536,12 @@ function Initialize(opt) {
536
536
  var main = require( _(self.opt.homedir + '/main.json', true) )
537
537
  , version = getEnvVar('GINA_VERSION')
538
538
  , defFramework = getEnvVar('GINA_DEF_FRAMEWORK') || main['def_framework']
539
- , prefix = getEnvVar('GINA_PREFIX') || main['def_prefix'][self.release]
540
- , globalMode = getEnvVar('GINA_GLOBAL_MODE') || main['def_global_mode'][self.release]
541
- , arch = getEnvVar('GINA_ARCH') || main['def_arch'][self.release]
542
- , platform = getEnvVar('GINA_PLATFORM') || main['def_platform'][self.release]
543
- , env = getEnvVar('GINA_ENV') || main['def_env'][self.release]
544
- , scope = getEnvVar('GINA_SCOPE') || main['def_scope'][self.release]
539
+ , prefix = getEnvVar('GINA_PREFIX') || (main['def_prefix'] && main['def_prefix'][self.release])
540
+ , globalMode = getEnvVar('GINA_GLOBAL_MODE') || (main['def_global_mode'] && main['def_global_mode'][self.release])
541
+ , arch = getEnvVar('GINA_ARCH') || (main['def_arch'] && main['def_arch'][self.release])
542
+ , platform = getEnvVar('GINA_PLATFORM') || (main['def_platform'] && main['def_platform'][self.release])
543
+ , env = getEnvVar('GINA_ENV') || (main['def_env'] && main['def_env'][self.release])
544
+ , scope = getEnvVar('GINA_SCOPE') || (main['def_scope'] && main['def_scope'][self.release])
545
545
  , settings = requireJSON( _( getPath('gina').root + '/resources/home/settings.json', true ) )
546
546
  , userSettings = {}
547
547
  , target = _(self.opt.homedir +'/'+ self.release +'/settings.json', true)
@@ -690,7 +690,7 @@ function Initialize(opt) {
690
690
  'run_dir' : _( getRunDir(), true ),
691
691
  'tmp_dir' : _( getTmpDir(), true ),
692
692
  'log_dir' : _( getLogDir(), true ),
693
- 'log_level' : getEnvVar('GINA_LOG_LEVEL') || main['def_log_level'][self.release] || 'info'
693
+ 'log_level' : getEnvVar('GINA_LOG_LEVEL') || (main['def_log_level'] && main['def_log_level'][self.release]) || 'info'
694
694
  };
695
695
 
696
696
  settings = whisper(dic, settings);
@@ -803,7 +803,7 @@ function Initialize(opt) {
803
803
  var main = require( self.opt.homedir + '/main.json' );
804
804
  //has registered env ?
805
805
  // dev by default
806
- var env = getEnvVar('GINA_ENV') || main['def_env'][self.release];
806
+ var env = getEnvVar('GINA_ENV') || (main['def_env'] && main['def_env'][self.release]);
807
807
  var readFromMainConf = true;
808
808
  if ( typeof(local.projectData) != 'undefined' && local.env) {
809
809
  readFromMainConf = false;
@@ -871,7 +871,7 @@ function Initialize(opt) {
871
871
  var main = require( self.opt.homedir + '/main.json' );
872
872
  //has registered scope ?
873
873
  // scope by default
874
- var scope = getEnvVar('GINA_SCOPE') || main['def_scope'][self.release];
874
+ var scope = getEnvVar('GINA_SCOPE') || (main['def_scope'] && main['def_scope'][self.release]);
875
875
  var readFromMainConf = true;
876
876
  if ( typeof(local.projectData) != 'undefined' && local.scope) {
877
877
  readFromMainConf = false;
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "gina-lib-inspector-redact",
3
+ "version": "1.0.0",
4
+ "description": "Redacts secret-looking fields from Inspector payloads (dev-mode only).",
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,184 @@
1
+ /**
2
+ * @module inspector-redact
3
+ *
4
+ * Redacts secret-looking keys from Inspector payloads before they are shipped
5
+ * to window.__ginaData, localStorage.__ginaData, or /_gina/agent SSE frames.
6
+ *
7
+ * Dev-mode only. Never applied to the actual HTTP response body — the template
8
+ * still receives the real data object; only the Inspector clone is redacted.
9
+ *
10
+ * Configuration is read from settings.json:
11
+ *
12
+ * "inspector": {
13
+ * "redact": {
14
+ * "patterns": ["password", "pwd", "token", ...], // optional — extends/replaces defaults
15
+ * "types": ["password"], // client-side DOM input types
16
+ * "replacement": "[redacted]" // optional
17
+ * }
18
+ * }
19
+ *
20
+ * When `patterns` or `types` is omitted, the defaults below are used.
21
+ */
22
+
23
+ 'use strict';
24
+
25
+ var DEFAULT_PATTERNS = [
26
+ 'password', 'passwd', 'pwd',
27
+ 'secret',
28
+ 'token', 'apikey', 'api[_-]?key',
29
+ 'cvv', 'cvc', 'ccv',
30
+ 'pan', 'ssn',
31
+ 'authorization', 'credentials',
32
+ 'private[_-]?key'
33
+ ];
34
+
35
+ var DEFAULT_TYPES = ['password'];
36
+ var REPLACEMENT = '[redacted]';
37
+
38
+ // Keys ending with these suffixes describe validation rules, policies, or
39
+ // config metadata — they do not hold user input. A key like `passwordRule`
40
+ // or `passwordPolicy` must pass through untouched even though it contains
41
+ // the substring "password". Matched case-insensitively at the very end of
42
+ // the key name.
43
+ var NON_SECRET_SUFFIX = /(rule|rules|policy|policies|validator|config|configuration|settings|setting|meta|metadata|format|requirements|strength|constraint|constraints|options|option|schema|definition|definitions|spec|specs)$/i;
44
+
45
+ /**
46
+ * Compile an array of regex source strings into RegExp objects. Invalid
47
+ * entries are dropped silently so a bad config key cannot crash a render.
48
+ * @param {string[]} patterns
49
+ * @returns {RegExp[]}
50
+ */
51
+ function compile(patterns) {
52
+ var out = [];
53
+ if (!Array.isArray(patterns)) return out;
54
+ for (var i = 0; i < patterns.length; i++) {
55
+ try { out.push(new RegExp(patterns[i], 'i')); } catch (e) { /* skip */ }
56
+ }
57
+ return out;
58
+ }
59
+
60
+ /**
61
+ * @param {string} key
62
+ * @param {RegExp[]} compiled
63
+ * @returns {boolean}
64
+ */
65
+ function keyMatches(key, compiled) {
66
+ if (typeof key !== 'string') return false;
67
+ // Rule/policy/config keys describe validation, not user input — skip them
68
+ // even when the name contains a secret keyword (e.g. `passwordRule`).
69
+ if (NON_SECRET_SUFFIX.test(key)) return false;
70
+ for (var i = 0; i < compiled.length; i++) {
71
+ if (compiled[i].test(key)) return true;
72
+ }
73
+ return false;
74
+ }
75
+
76
+ function walk(value, compiled, replacement, maxDepth, depth, seen) {
77
+ if (depth > maxDepth) return value;
78
+ if (value === null || typeof value !== 'object') return value;
79
+ if (seen.has(value)) return '[circular]';
80
+ seen.add(value);
81
+
82
+ if (Array.isArray(value)) {
83
+ var arr = new Array(value.length);
84
+ for (var i = 0; i < value.length; i++) {
85
+ arr[i] = walk(value[i], compiled, replacement, maxDepth, depth + 1, seen);
86
+ }
87
+ return arr;
88
+ }
89
+
90
+ var out = {};
91
+ var keys = Object.keys(value);
92
+ for (var k = 0; k < keys.length; k++) {
93
+ var key = keys[k];
94
+ var v = value[key];
95
+ if (keyMatches(key, compiled)) {
96
+ // Only primitive leaf values are redacted. Object/array values under
97
+ // a secret-like key are metadata (validation rules, error maps,
98
+ // validator specs keyed by form field name like `account[password]`)
99
+ // — walk into them so any primitive secrets nested deeper still get
100
+ // caught, but the rule structure itself passes through.
101
+ if (v === null || typeof v === 'undefined') {
102
+ out[key] = v;
103
+ } else if (typeof v === 'object') {
104
+ out[key] = walk(v, compiled, replacement, maxDepth, depth + 1, seen);
105
+ } else {
106
+ out[key] = replacement;
107
+ }
108
+ } else {
109
+ out[key] = walk(v, compiled, replacement, maxDepth, depth + 1, seen);
110
+ }
111
+ }
112
+ return out;
113
+ }
114
+
115
+ /**
116
+ * Walk `obj` and replace values whose key matches any redaction pattern with
117
+ * `replacement` (default `[redacted]`). Returns a deep-cloned copy — the
118
+ * input object is never mutated. Circular references become `'[circular]'`.
119
+ *
120
+ * @param {*} obj
121
+ * @param {object} [options]
122
+ * @param {string[]} [options.patterns] - raw regex source strings (ignored if compiledPatterns is set)
123
+ * @param {RegExp[]} [options.compiledPatterns]
124
+ * @param {string} [options.replacement='[redacted]']
125
+ * @param {number} [options.maxDepth=50]
126
+ * @returns {*}
127
+ */
128
+ function redact(obj, options) {
129
+ options = options || {};
130
+ var compiled = options.compiledPatterns
131
+ || compile(options.patterns || DEFAULT_PATTERNS);
132
+ var replacement = (typeof options.replacement === 'string') ? options.replacement : REPLACEMENT;
133
+ var maxDepth = (typeof options.maxDepth === 'number') ? options.maxDepth : 50;
134
+ return walk(obj, compiled, replacement, maxDepth, 0, new WeakSet());
135
+ }
136
+
137
+ /**
138
+ * Resolve redaction configuration from a bundle's conf object. Accepts either
139
+ * `conf.inspector.redact` or `conf.content.inspector.redact` — whichever
140
+ * exists wins. Unknown/invalid keys fall back to defaults.
141
+ *
142
+ * @param {object} conf
143
+ * @returns {{patterns:string[], types:string[], replacement:string, compiledPatterns:RegExp[]}}
144
+ */
145
+ function getConfig(conf) {
146
+ var redactConf = null;
147
+ if (conf) {
148
+ if (conf.inspector && conf.inspector.redact) {
149
+ redactConf = conf.inspector.redact;
150
+ } else if (conf.content && conf.content.settings && conf.content.settings.inspector && conf.content.settings.inspector.redact) {
151
+ redactConf = conf.content.settings.inspector.redact;
152
+ } else if (conf.content && conf.content.inspector && conf.content.inspector.redact) {
153
+ redactConf = conf.content.inspector.redact;
154
+ } else if (conf.settings && conf.settings.inspector && conf.settings.inspector.redact) {
155
+ redactConf = conf.settings.inspector.redact;
156
+ }
157
+ }
158
+ redactConf = redactConf || {};
159
+
160
+ var patterns = (Array.isArray(redactConf.patterns) && redactConf.patterns.length > 0)
161
+ ? redactConf.patterns : DEFAULT_PATTERNS;
162
+ var types = (Array.isArray(redactConf.types) && redactConf.types.length > 0)
163
+ ? redactConf.types : DEFAULT_TYPES;
164
+ var replacement = (typeof redactConf.replacement === 'string' && redactConf.replacement)
165
+ ? redactConf.replacement : REPLACEMENT;
166
+
167
+ return {
168
+ patterns : patterns,
169
+ types : types,
170
+ replacement : replacement,
171
+ compiledPatterns : compile(patterns)
172
+ };
173
+ }
174
+
175
+ module.exports = {
176
+ DEFAULT_PATTERNS : DEFAULT_PATTERNS,
177
+ DEFAULT_TYPES : DEFAULT_TYPES,
178
+ REPLACEMENT : REPLACEMENT,
179
+ NON_SECRET_SUFFIX : NON_SECRET_SUFFIX,
180
+ compile : compile,
181
+ keyMatches : keyMatches,
182
+ redact : redact,
183
+ getConfig : getConfig
184
+ };
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.3.6-alpha.3/core/gna');
18
+ var _gna = require('./framework/v0.3.7-alpha.1/core/gna');
19
19
 
20
20
  // SuperController and EntitySuper — loaded from their source modules
21
- var SuperController = require('./framework/v0.3.6-alpha.3/core/controller');
22
- var EntitySuper = require('./framework/v0.3.6-alpha.3/core/model/entity');
21
+ var SuperController = require('./framework/v0.3.7-alpha.1/core/controller');
22
+ var EntitySuper = require('./framework/v0.3.7-alpha.1/core/model/entity');
23
23
 
24
24
  // uuid — from the lib registry
25
- var uuid = require('./framework/v0.3.6-alpha.3/lib/uuid');
25
+ var uuid = require('./framework/v0.3.7-alpha.1/lib/uuid');
26
26
 
27
27
  module.exports = {
28
28
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gina",
3
- "version": "0.3.6-alpha.3",
3
+ "version": "0.3.7-alpha.1",
4
4
  "description": "Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency",
5
5
  "keywords": [
6
6
  "nodejs",
@@ -56,7 +56,7 @@
56
56
  "gina-container": "bin/gina-container",
57
57
  "gina-init": "bin/gina-init"
58
58
  },
59
- "main": "./framework/v0.3.6-alpha.3/core/gna",
59
+ "main": "./framework/v0.3.7-alpha.1/core/gna",
60
60
  "types": "./types/index.d.ts",
61
61
  "typesVersions": {
62
62
  "*": {
@@ -1 +0,0 @@
1
- 0.3.6-alpha.3