gina 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +6 -8
  3. package/ROADMAP.md +2 -2
  4. package/framework/v0.4.7/VERSION +1 -0
  5. package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/csp/README.md +57 -2
  6. package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/csp/src/main.js +192 -27
  7. package/framework/{v0.4.6 → v0.4.7}/core/server.isaac.js +153 -5
  8. package/framework/{v0.4.6 → v0.4.7}/core/server.js +14 -0
  9. package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/settings.server.json +3 -1
  10. package/framework/{v0.4.6 → v0.4.7}/core/template/conf/settings.json +15 -2
  11. package/framework/{v0.4.6 → v0.4.7}/lib/index.js +14 -0
  12. package/framework/v0.4.7/lib/ws-framing/package.json +10 -0
  13. package/framework/v0.4.7/lib/ws-framing/src/main.js +664 -0
  14. package/framework/v0.4.7/lib/ws-session/package.json +10 -0
  15. package/framework/v0.4.7/lib/ws-session/src/main.js +422 -0
  16. package/framework/{v0.4.6 → v0.4.7}/package.json +1 -1
  17. package/gna.js +4 -4
  18. package/llms.txt +9 -3
  19. package/package.json +2 -2
  20. package/playwright.config.js +4 -2
  21. package/framework/v0.4.6/VERSION +0 -1
  22. /package/framework/{v0.4.6 → v0.4.7}/AUTHORS +0 -0
  23. /package/framework/{v0.4.6 → v0.4.7}/LICENSE +0 -0
  24. /package/framework/{v0.4.6 → v0.4.7}/core/asset/html/nolayout.html +0 -0
  25. /package/framework/{v0.4.6 → v0.4.7}/core/asset/html/static.html +0 -0
  26. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/android-chrome-192x192.png +0 -0
  27. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/android-chrome-512x512.png +0 -0
  28. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/apple-touch-icon.png +0 -0
  29. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/favicon-16x16.png +0 -0
  30. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/favicon-32x32.png +0 -0
  31. /package/framework/{v0.4.6 → v0.4.7}/core/asset/img/favicon.ico +0 -0
  32. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/README.md +0 -0
  33. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  34. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  35. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  36. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  37. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  38. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  39. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  40. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  41. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  42. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  43. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  44. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  45. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  46. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  47. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  48. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  49. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  50. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  51. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  52. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  53. /package/framework/{v0.4.6 → v0.4.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  54. /package/framework/{v0.4.6 → v0.4.7}/core/config.js +0 -0
  55. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/ai/index.js +0 -0
  56. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/ai/lib/connector.js +0 -0
  57. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/index.js +0 -0
  58. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/connector.js +0 -0
  59. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  60. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  61. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/n1ql.js +0 -0
  62. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/session-store.js +0 -0
  63. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  64. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  65. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mongodb/index.js +0 -0
  66. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mongodb/lib/connector.js +0 -0
  67. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  68. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mongodb/lib/session-store.js +0 -0
  69. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mysql/index.js +0 -0
  70. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/mysql/lib/connector.js +0 -0
  71. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/postgresql/index.js +0 -0
  72. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/postgresql/lib/connector.js +0 -0
  73. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/redis/index.js +0 -0
  74. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/redis/lib/session-store.js +0 -0
  75. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/scylladb/index.js +0 -0
  76. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/scylladb/lib/connector.js +0 -0
  77. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/scylladb/lib/session-store.js +0 -0
  78. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/sql-parser.js +0 -0
  79. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/sqlite/index.js +0 -0
  80. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/sqlite/lib/connector.js +0 -0
  81. /package/framework/{v0.4.6 → v0.4.7}/core/connectors/sqlite/lib/session-store.js +0 -0
  82. /package/framework/{v0.4.6 → v0.4.7}/core/content.encoding +0 -0
  83. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.framework.js +0 -0
  84. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.js +0 -0
  85. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-json.js +0 -0
  86. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-nunjucks-async.js +0 -0
  87. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-nunjucks.js +0 -0
  88. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-stream.js +0 -0
  89. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-swig-async.js +0 -0
  90. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-swig.js +0 -0
  91. /package/framework/{v0.4.6 → v0.4.7}/core/controller/controller.render-v1.js +0 -0
  92. /package/framework/{v0.4.6 → v0.4.7}/core/controller/index.js +0 -0
  93. /package/framework/{v0.4.6 → v0.4.7}/core/controller/inspector-window-emit.js +0 -0
  94. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/LICENSE +0 -0
  95. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/README.md +0 -0
  96. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  97. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  98. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  99. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  100. /package/framework/{v0.4.6 → v0.4.7}/core/deps/busboy-1.6.0/package.json +0 -0
  101. /package/framework/{v0.4.6 → v0.4.7}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  102. /package/framework/{v0.4.6 → v0.4.7}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  103. /package/framework/{v0.4.6 → v0.4.7}/core/deps/streamsearch-1.1.0/package.json +0 -0
  104. /package/framework/{v0.4.6 → v0.4.7}/core/dev/index.js +0 -0
  105. /package/framework/{v0.4.6 → v0.4.7}/core/dev/lib/class.js +0 -0
  106. /package/framework/{v0.4.6 → v0.4.7}/core/dev/lib/factory.js +0 -0
  107. /package/framework/{v0.4.6 → v0.4.7}/core/dev/lib/tools.js +0 -0
  108. /package/framework/{v0.4.6 → v0.4.7}/core/gna.js +0 -0
  109. /package/framework/{v0.4.6 → v0.4.7}/core/locales/README.md +0 -0
  110. /package/framework/{v0.4.6 → v0.4.7}/core/locales/currency.json +0 -0
  111. /package/framework/{v0.4.6 → v0.4.7}/core/locales/dist/language/en.json +0 -0
  112. /package/framework/{v0.4.6 → v0.4.7}/core/locales/dist/language/fr.json +0 -0
  113. /package/framework/{v0.4.6 → v0.4.7}/core/locales/dist/region/en.json +0 -0
  114. /package/framework/{v0.4.6 → v0.4.7}/core/locales/dist/region/fr.json +0 -0
  115. /package/framework/{v0.4.6 → v0.4.7}/core/locales/index.js +0 -0
  116. /package/framework/{v0.4.6 → v0.4.7}/core/mime.types +0 -0
  117. /package/framework/{v0.4.6 → v0.4.7}/core/model/entity.js +0 -0
  118. /package/framework/{v0.4.6 → v0.4.7}/core/model/index.js +0 -0
  119. /package/framework/{v0.4.6 → v0.4.7}/core/model/template/entityFactory.js +0 -0
  120. /package/framework/{v0.4.6 → v0.4.7}/core/model/template/index.js +0 -0
  121. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/README.md +0 -0
  122. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/index.js +0 -0
  123. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/csrf/README.md +0 -0
  124. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/csrf/package.json +0 -0
  125. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/csrf/src/main.js +0 -0
  126. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/README.md +0 -0
  127. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coep/README.md +0 -0
  128. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coep/package.json +0 -0
  129. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  130. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coop/README.md +0 -0
  131. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coop/package.json +0 -0
  132. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  133. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/corp/README.md +0 -0
  134. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/corp/package.json +0 -0
  135. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  136. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/csp/package.json +0 -0
  137. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  138. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  139. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  140. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  141. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  142. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  143. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  144. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  145. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  146. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/package.json +0 -0
  147. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  148. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  149. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  150. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/src/main.js +0 -0
  151. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  152. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  153. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  154. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  155. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  156. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  157. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  158. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  159. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  160. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  161. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  162. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  163. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  164. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  165. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  166. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  167. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  168. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  169. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/session/README.md +0 -0
  170. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/session/package.json +0 -0
  171. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/session/src/main.js +0 -0
  172. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/storage/README.md +0 -0
  173. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/storage/build.json +0 -0
  174. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/storage/package.json +0 -0
  175. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/storage/src/main.js +0 -0
  176. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/validator/README.md +0 -0
  177. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/validator/build.json +0 -0
  178. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/validator/package.json +0 -0
  179. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/validator/src/form-validator.js +0 -0
  180. /package/framework/{v0.4.6 → v0.4.7}/core/plugins/lib/validator/src/main.js +0 -0
  181. /package/framework/{v0.4.6 → v0.4.7}/core/router.js +0 -0
  182. /package/framework/{v0.4.6 → v0.4.7}/core/server.express.js +0 -0
  183. /package/framework/{v0.4.6 → v0.4.7}/core/status.codes +0 -0
  184. /package/framework/{v0.4.6 → v0.4.7}/core/template/_gitignore +0 -0
  185. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/app.json +0 -0
  186. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  187. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/routing.json +0 -0
  188. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/settings.json +0 -0
  189. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/templates.json +0 -0
  190. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  191. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  192. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  193. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  194. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/index.js +0 -0
  195. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle/locales/en.json +0 -0
  196. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  197. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  198. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  199. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  200. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  201. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  202. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  203. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/readme.md +0 -0
  204. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_public/sw.js +0 -0
  205. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  206. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  207. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  208. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  209. /package/framework/{v0.4.6 → v0.4.7}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  210. /package/framework/{v0.4.6 → v0.4.7}/core/template/command/gina.bat.tpl +0 -0
  211. /package/framework/{v0.4.6 → v0.4.7}/core/template/command/gina.tpl +0 -0
  212. /package/framework/{v0.4.6 → v0.4.7}/core/template/conf/env.json +0 -0
  213. /package/framework/{v0.4.6 → v0.4.7}/core/template/conf/manifest.json +0 -0
  214. /package/framework/{v0.4.6 → v0.4.7}/core/template/conf/package.json +0 -0
  215. /package/framework/{v0.4.6 → v0.4.7}/core/template/conf/statics.json +0 -0
  216. /package/framework/{v0.4.6 → v0.4.7}/core/template/conf/templates.json +0 -0
  217. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/client/json/401.json +0 -0
  218. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/client/json/403.json +0 -0
  219. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/client/json/404.json +0 -0
  220. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/server/html/50x.html +0 -0
  221. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/server/json/500.json +0 -0
  222. /package/framework/{v0.4.6 → v0.4.7}/core/template/error/server/json/503.json +0 -0
  223. /package/framework/{v0.4.6 → v0.4.7}/core/template/extensions/logger/config.json +0 -0
  224. /package/framework/{v0.4.6 → v0.4.7}/helpers/console.js +0 -0
  225. /package/framework/{v0.4.6 → v0.4.7}/helpers/context.js +0 -0
  226. /package/framework/{v0.4.6 → v0.4.7}/helpers/data/LICENSE +0 -0
  227. /package/framework/{v0.4.6 → v0.4.7}/helpers/data/README.md +0 -0
  228. /package/framework/{v0.4.6 → v0.4.7}/helpers/data/package.json +0 -0
  229. /package/framework/{v0.4.6 → v0.4.7}/helpers/data/src/main.js +0 -0
  230. /package/framework/{v0.4.6 → v0.4.7}/helpers/dateFormat.js +0 -0
  231. /package/framework/{v0.4.6 → v0.4.7}/helpers/index.js +0 -0
  232. /package/framework/{v0.4.6 → v0.4.7}/helpers/json/LICENSE +0 -0
  233. /package/framework/{v0.4.6 → v0.4.7}/helpers/json/README.md +0 -0
  234. /package/framework/{v0.4.6 → v0.4.7}/helpers/json/package.json +0 -0
  235. /package/framework/{v0.4.6 → v0.4.7}/helpers/json/src/main.js +0 -0
  236. /package/framework/{v0.4.6 → v0.4.7}/helpers/path.js +0 -0
  237. /package/framework/{v0.4.6 → v0.4.7}/helpers/plugins/README.md +0 -0
  238. /package/framework/{v0.4.6 → v0.4.7}/helpers/plugins/package.json +0 -0
  239. /package/framework/{v0.4.6 → v0.4.7}/helpers/plugins/src/api-error.js +0 -0
  240. /package/framework/{v0.4.6 → v0.4.7}/helpers/plugins/src/main.js +0 -0
  241. /package/framework/{v0.4.6 → v0.4.7}/helpers/prototypes.js +0 -0
  242. /package/framework/{v0.4.6 → v0.4.7}/helpers/task.js +0 -0
  243. /package/framework/{v0.4.6 → v0.4.7}/helpers/text.js +0 -0
  244. /package/framework/{v0.4.6 → v0.4.7}/lib/archiver/README.md +0 -0
  245. /package/framework/{v0.4.6 → v0.4.7}/lib/archiver/build.json +0 -0
  246. /package/framework/{v0.4.6 → v0.4.7}/lib/archiver/package.json +0 -0
  247. /package/framework/{v0.4.6 → v0.4.7}/lib/archiver/src/dep/jszip.min.js +0 -0
  248. /package/framework/{v0.4.6 → v0.4.7}/lib/archiver/src/main.js +0 -0
  249. /package/framework/{v0.4.6 → v0.4.7}/lib/async/package.json +0 -0
  250. /package/framework/{v0.4.6 → v0.4.7}/lib/async/src/main.js +0 -0
  251. /package/framework/{v0.4.6 → v0.4.7}/lib/cache/README.md +0 -0
  252. /package/framework/{v0.4.6 → v0.4.7}/lib/cache/build.json +0 -0
  253. /package/framework/{v0.4.6 → v0.4.7}/lib/cache/package.json +0 -0
  254. /package/framework/{v0.4.6 → v0.4.7}/lib/cache/src/main.js +0 -0
  255. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/aliases.json +0 -0
  256. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/add.js +0 -0
  257. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/arguments.json +0 -0
  258. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/build.js +0 -0
  259. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/copy.js +0 -0
  260. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/cp.js +0 -0
  261. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/help.js +0 -0
  262. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/help.txt +0 -0
  263. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  264. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/list.js +0 -0
  265. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/mcp-start.js +0 -0
  266. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/mcp.js +0 -0
  267. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/oas.js +0 -0
  268. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/openapi.js +0 -0
  269. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/remove.js +0 -0
  270. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/rename.js +0 -0
  271. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/restart.js +0 -0
  272. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/rm.js +0 -0
  273. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/start.js +0 -0
  274. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/status.js +0 -0
  275. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/bundle/stop.js +0 -0
  276. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/cache/stats.js +0 -0
  277. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/add.js +0 -0
  278. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/arguments.json +0 -0
  279. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/help.js +0 -0
  280. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/help.txt +0 -0
  281. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/list.js +0 -0
  282. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/migrate.js +0 -0
  283. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/remove.js +0 -0
  284. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/connector/rm.js +0 -0
  285. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/add.js +0 -0
  286. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/get.js +0 -0
  287. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/help.js +0 -0
  288. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/help.txt +0 -0
  289. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/link-dev.js +0 -0
  290. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/list.js +0 -0
  291. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/remove.js +0 -0
  292. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/rm.js +0 -0
  293. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/set.js +0 -0
  294. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/unset.js +0 -0
  295. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/env/use.js +0 -0
  296. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/arguments.json +0 -0
  297. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/build.js +0 -0
  298. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/dot.js +0 -0
  299. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/get.js +0 -0
  300. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/help.js +0 -0
  301. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/help.txt +0 -0
  302. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/init.js +0 -0
  303. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/link-node-modules.js +0 -0
  304. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/link.js +0 -0
  305. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/msg.json +0 -0
  306. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/open.js +0 -0
  307. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/restart.js +0 -0
  308. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/set.js +0 -0
  309. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/start.js +0 -0
  310. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/status.js +0 -0
  311. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/stop.js +0 -0
  312. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/tail.js +0 -0
  313. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/update.js +0 -0
  314. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/framework/version.js +0 -0
  315. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/gina-dev.1.md +0 -0
  316. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/gina-framework.1.md +0 -0
  317. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/gina.1.md +0 -0
  318. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/helper.js +0 -0
  319. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/add.js +0 -0
  320. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/arguments.json +0 -0
  321. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/export.js +0 -0
  322. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/help.js +0 -0
  323. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/help.txt +0 -0
  324. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/import.js +0 -0
  325. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/i18n/scan.js +0 -0
  326. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/index.js +0 -0
  327. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/inspector/help.js +0 -0
  328. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/inspector/help.txt +0 -0
  329. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/inspector/open.js +0 -0
  330. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/minion/arguments.json +0 -0
  331. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/minion/help.js +0 -0
  332. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/minion/help.txt +0 -0
  333. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/minion/kill.js +0 -0
  334. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/minion/list.js +0 -0
  335. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/msg.json +0 -0
  336. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/help.js +0 -0
  337. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/help.txt +0 -0
  338. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/inc/scan.js +0 -0
  339. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/list.js +0 -0
  340. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/reset.js +0 -0
  341. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/port/set.js +0 -0
  342. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/add.js +0 -0
  343. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/arguments.json +0 -0
  344. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/build.js +0 -0
  345. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/help.js +0 -0
  346. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/help.txt +0 -0
  347. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/import.js +0 -0
  348. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/list.js +0 -0
  349. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/move.js +0 -0
  350. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/remove.js +0 -0
  351. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/rename.js +0 -0
  352. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/restart.js +0 -0
  353. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/rm.js +0 -0
  354. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/start.js +0 -0
  355. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/status.js +0 -0
  356. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/project/stop.js +0 -0
  357. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/arguments.json +0 -0
  358. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/help.js +0 -0
  359. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/help.txt +0 -0
  360. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/list.js +0 -0
  361. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/remove.js +0 -0
  362. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/protocol/set.js +0 -0
  363. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/add.js +0 -0
  364. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/help.js +0 -0
  365. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/help.txt +0 -0
  366. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/link-local.js +0 -0
  367. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/link-production.js +0 -0
  368. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/list.js +0 -0
  369. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/remove.js +0 -0
  370. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/rm.js +0 -0
  371. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/scope/use.js +0 -0
  372. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/secrets/arguments.json +0 -0
  373. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/secrets/check.js +0 -0
  374. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/secrets/help.js +0 -0
  375. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/secrets/help.txt +0 -0
  376. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/secrets/scan.js +0 -0
  377. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/service/help.js +0 -0
  378. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/service/help.txt +0 -0
  379. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/service/list.js +0 -0
  380. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/service/start.js +0 -0
  381. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd/view/add.js +0 -0
  382. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd-status-format/package.json +0 -0
  383. /package/framework/{v0.4.6 → v0.4.7}/lib/cmd-status-format/src/main.js +0 -0
  384. /package/framework/{v0.4.6 → v0.4.7}/lib/collection/README.md +0 -0
  385. /package/framework/{v0.4.6 → v0.4.7}/lib/collection/build.json +0 -0
  386. /package/framework/{v0.4.6 → v0.4.7}/lib/collection/package.json +0 -0
  387. /package/framework/{v0.4.6 → v0.4.7}/lib/collection/src/main.js +0 -0
  388. /package/framework/{v0.4.6 → v0.4.7}/lib/config.js +0 -0
  389. /package/framework/{v0.4.6 → v0.4.7}/lib/connector-registry/package.json +0 -0
  390. /package/framework/{v0.4.6 → v0.4.7}/lib/connector-registry/src/main.js +0 -0
  391. /package/framework/{v0.4.6 → v0.4.7}/lib/cron/README.md +0 -0
  392. /package/framework/{v0.4.6 → v0.4.7}/lib/cron/package.json +0 -0
  393. /package/framework/{v0.4.6 → v0.4.7}/lib/cron/src/main.js +0 -0
  394. /package/framework/{v0.4.6 → v0.4.7}/lib/domain/LICENSE +0 -0
  395. /package/framework/{v0.4.6 → v0.4.7}/lib/domain/README.md +0 -0
  396. /package/framework/{v0.4.6 → v0.4.7}/lib/domain/package.json +0 -0
  397. /package/framework/{v0.4.6 → v0.4.7}/lib/domain/src/main.js +0 -0
  398. /package/framework/{v0.4.6 → v0.4.7}/lib/generator/index.js +0 -0
  399. /package/framework/{v0.4.6 → v0.4.7}/lib/i18n/package.json +0 -0
  400. /package/framework/{v0.4.6 → v0.4.7}/lib/i18n/src/main.js +0 -0
  401. /package/framework/{v0.4.6 → v0.4.7}/lib/inherits/LICENSE +0 -0
  402. /package/framework/{v0.4.6 → v0.4.7}/lib/inherits/README.md +0 -0
  403. /package/framework/{v0.4.6 → v0.4.7}/lib/inherits/package.json +0 -0
  404. /package/framework/{v0.4.6 → v0.4.7}/lib/inherits/src/main.js +0 -0
  405. /package/framework/{v0.4.6 → v0.4.7}/lib/inspector-redact/package.json +0 -0
  406. /package/framework/{v0.4.6 → v0.4.7}/lib/inspector-redact/src/main.js +0 -0
  407. /package/framework/{v0.4.6 → v0.4.7}/lib/instrument/package.json +0 -0
  408. /package/framework/{v0.4.6 → v0.4.7}/lib/instrument/src/main.js +0 -0
  409. /package/framework/{v0.4.6 → v0.4.7}/lib/job/package.json +0 -0
  410. /package/framework/{v0.4.6 → v0.4.7}/lib/job/src/main.js +0 -0
  411. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/README.md +0 -0
  412. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/package.json +0 -0
  413. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/default/index.js +0 -0
  414. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/file/index.js +0 -0
  415. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  416. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  417. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/mq/index.js +0 -0
  418. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/mq/listener.js +0 -0
  419. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/containers/mq/speaker.js +0 -0
  420. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/helper.js +0 -0
  421. /package/framework/{v0.4.6 → v0.4.7}/lib/logger/src/main.js +0 -0
  422. /package/framework/{v0.4.6 → v0.4.7}/lib/math/index.js +0 -0
  423. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-dispatch/package.json +0 -0
  424. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-dispatch/src/main.js +0 -0
  425. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-http/package.json +0 -0
  426. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-http/src/main.js +0 -0
  427. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-server/package.json +0 -0
  428. /package/framework/{v0.4.6 → v0.4.7}/lib/mcp-server/src/main.js +0 -0
  429. /package/framework/{v0.4.6 → v0.4.7}/lib/merge/README.md +0 -0
  430. /package/framework/{v0.4.6 → v0.4.7}/lib/merge/package.json +0 -0
  431. /package/framework/{v0.4.6 → v0.4.7}/lib/merge/src/main.js +0 -0
  432. /package/framework/{v0.4.6 → v0.4.7}/lib/metrics/package.json +0 -0
  433. /package/framework/{v0.4.6 → v0.4.7}/lib/metrics/src/main.js +0 -0
  434. /package/framework/{v0.4.6 → v0.4.7}/lib/model.js +0 -0
  435. /package/framework/{v0.4.6 → v0.4.7}/lib/nunjucks-filters/README.md +0 -0
  436. /package/framework/{v0.4.6 → v0.4.7}/lib/nunjucks-filters/package.json +0 -0
  437. /package/framework/{v0.4.6 → v0.4.7}/lib/nunjucks-filters/src/main.js +0 -0
  438. /package/framework/{v0.4.6 → v0.4.7}/lib/nunjucks-resolver/package.json +0 -0
  439. /package/framework/{v0.4.6 → v0.4.7}/lib/nunjucks-resolver/src/main.js +0 -0
  440. /package/framework/{v0.4.6 → v0.4.7}/lib/proc.js +0 -0
  441. /package/framework/{v0.4.6 → v0.4.7}/lib/routing/README.md +0 -0
  442. /package/framework/{v0.4.6 → v0.4.7}/lib/routing/build.json +0 -0
  443. /package/framework/{v0.4.6 → v0.4.7}/lib/routing/package.json +0 -0
  444. /package/framework/{v0.4.6 → v0.4.7}/lib/routing/src/main.js +0 -0
  445. /package/framework/{v0.4.6 → v0.4.7}/lib/routing/src/radix.js +0 -0
  446. /package/framework/{v0.4.6 → v0.4.7}/lib/routing-introspect/package.json +0 -0
  447. /package/framework/{v0.4.6 → v0.4.7}/lib/routing-introspect/src/main.js +0 -0
  448. /package/framework/{v0.4.6 → v0.4.7}/lib/secrets/package.json +0 -0
  449. /package/framework/{v0.4.6 → v0.4.7}/lib/secrets/src/backends/env.js +0 -0
  450. /package/framework/{v0.4.6 → v0.4.7}/lib/secrets/src/main.js +0 -0
  451. /package/framework/{v0.4.6 → v0.4.7}/lib/session-store.js +0 -0
  452. /package/framework/{v0.4.6 → v0.4.7}/lib/shell.js +0 -0
  453. /package/framework/{v0.4.6 → v0.4.7}/lib/state.js +0 -0
  454. /package/framework/{v0.4.6 → v0.4.7}/lib/swig-filters/README.md +0 -0
  455. /package/framework/{v0.4.6 → v0.4.7}/lib/swig-filters/package.json +0 -0
  456. /package/framework/{v0.4.6 → v0.4.7}/lib/swig-filters/src/main.js +0 -0
  457. /package/framework/{v0.4.6 → v0.4.7}/lib/swig-resolver/package.json +0 -0
  458. /package/framework/{v0.4.6 → v0.4.7}/lib/swig-resolver/src/main.js +0 -0
  459. /package/framework/{v0.4.6 → v0.4.7}/lib/template-loaders/package.json +0 -0
  460. /package/framework/{v0.4.6 → v0.4.7}/lib/template-loaders/src/loaders/http.js +0 -0
  461. /package/framework/{v0.4.6 → v0.4.7}/lib/template-loaders/src/loaders/memory.js +0 -0
  462. /package/framework/{v0.4.6 → v0.4.7}/lib/template-loaders/src/main.js +0 -0
  463. /package/framework/{v0.4.6 → v0.4.7}/lib/url/README.md +0 -0
  464. /package/framework/{v0.4.6 → v0.4.7}/lib/url/index.js +0 -0
  465. /package/framework/{v0.4.6 → v0.4.7}/lib/url/routing.json +0 -0
  466. /package/framework/{v0.4.6 → v0.4.7}/lib/uuid/package.json +0 -0
  467. /package/framework/{v0.4.6 → v0.4.7}/lib/uuid/src/main.js +0 -0
  468. /package/framework/{v0.4.6 → v0.4.7}/lib/validator.js +0 -0
  469. /package/framework/{v0.4.6 → v0.4.7}/lib/watcher/package.json +0 -0
  470. /package/framework/{v0.4.6 → v0.4.7}/lib/watcher/src/main.js +0 -0
@@ -0,0 +1,664 @@
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 gina/lib/ws-framing
11
+ *
12
+ * RFC 6455 WebSocket framing codec — frame encoder + incremental parser.
13
+ *
14
+ * Responsibilities:
15
+ * - Build frames (§5.2 base framing): minimal length encoding across the
16
+ * 7-bit / 16-bit / 64-bit forms, control-frame constraints, optional
17
+ * masking (client direction / tests).
18
+ * - Parse an inbound byte stream incrementally: fragmentation reassembly
19
+ * (§5.4), control frames (§5.5), close-code validation (§7.4), UTF-8
20
+ * validation of text payloads and close reasons (§8.1), client-masking
21
+ * enforcement (§5.1).
22
+ * - Enforce implementation-specific limits (§10.4): `maxPayload` across a
23
+ * reassembled message — rejected at header time from the DECLARED length,
24
+ * before any payload is buffered — and `maxFragments` per message.
25
+ *
26
+ * Out of scope (by design):
27
+ * - Transport I/O — consumers feed received bytes to a parser instance and
28
+ * write encoded buffers to their own stream. Per RFC 8441 §5 an HTTP/2
29
+ * extended-CONNECT stream is used "as if it were the TCP connection"
30
+ * of RFC 6455, so the codec is transport-agnostic.
31
+ * - permessage-deflate / extension negotiation — an inbound non-zero RSV
32
+ * bit is a 1002 protocol error.
33
+ * - The opening handshake (HTTP/1.1 Upgrade or RFC 8441 extended CONNECT)
34
+ * and masking-key unpredictability (a client obligation, §10.3).
35
+ *
36
+ * This module is pure — node builtins only (`buffer`, `crypto`), no lib
37
+ * registry requires, no framework globals — so it is unit-testable by a
38
+ * direct require. Same contract as {@link module:gina/lib/routing-introspect}.
39
+ *
40
+ * @example
41
+ * var wsf = require('lib/ws-framing'); // or lib.wsFraming from the registry
42
+ * var parser = wsf.createParser({
43
+ * onMessage : function(data, isBinary) { ... },
44
+ * onPing : function(payload) { stream.write(wsf.encodePong(payload)); },
45
+ * onClose : function(code, reason) { ... },
46
+ * onError : function(err) { stream.write(wsf.encodeClose(err.closeCode)); }
47
+ * });
48
+ * stream.on('data', function(chunk) { parser.feed(chunk); });
49
+ * stream.write(wsf.encodeText('hello'));
50
+ */
51
+
52
+ var crypto = require('crypto');
53
+ // Core UTF-8 validator — ships with node >= 18.14 (gina's engines floor is higher).
54
+ var isUtf8 = require('buffer').isUtf8;
55
+
56
+ /**
57
+ * RFC 6455 §5.2 opcodes (0x3-0x7 and 0xB-0xF are reserved and rejected).
58
+ *
59
+ * @constant
60
+ * @type {object}
61
+ */
62
+ var OPCODES = {
63
+ CONTINUATION : 0x0,
64
+ TEXT : 0x1,
65
+ BINARY : 0x2,
66
+ CLOSE : 0x8,
67
+ PING : 0x9,
68
+ PONG : 0xA
69
+ };
70
+
71
+ /**
72
+ * Default cap on a reassembled message payload, in bytes (§10.4).
73
+ *
74
+ * @constant
75
+ * @type {number}
76
+ */
77
+ var DEFAULT_MAX_PAYLOAD = 1048576; // 1 MiB
78
+
79
+ /**
80
+ * Default cap on the number of fragments a single message may span (§10.4).
81
+ *
82
+ * @constant
83
+ * @type {number}
84
+ */
85
+ var DEFAULT_MAX_FRAGMENTS = 100;
86
+
87
+ /**
88
+ * §7.4 — is `code` a status code an endpoint may legitimately put on the
89
+ * wire in a Close frame body? 1000-1003 and 1007-1014 are defined or
90
+ * IANA-registered; 1004 is reserved; 1005, 1006 and 1015 are reserved for
91
+ * code-absent / abnormal-closure / TLS-failure reporting and MUST NOT be
92
+ * sent; 3000-4999 are the registered-use and private-use ranges.
93
+ *
94
+ * @function isValidCloseCode
95
+ * @param {number} code - candidate Close status code
96
+ * @returns {boolean} true when the code is valid on the wire
97
+ * @example
98
+ * isValidCloseCode(1000); // true
99
+ * isValidCloseCode(1005); // false — reserved, never on the wire
100
+ * isValidCloseCode(4000); // true — private use
101
+ */
102
+ function isValidCloseCode(code) {
103
+ return (
104
+ (code >= 1000 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006)
105
+ || (code >= 3000 && code <= 4999)
106
+ );
107
+ }
108
+
109
+ /**
110
+ * Builds a single RFC 6455 frame (§5.2) with minimal length encoding.
111
+ *
112
+ * Encode-side constraint violations throw (they are consumer bugs, not wire
113
+ * data): unknown opcode, control frame above 125 bytes, fragmented control
114
+ * frame.
115
+ *
116
+ * @function encodeFrame
117
+ * @param {object} options
118
+ * @param {number} options.opcode - one of the {@link module:gina/lib/ws-framing~OPCODES} values
119
+ * @param {Buffer|string} [options.payload] - frame payload (strings are encoded as UTF-8)
120
+ * @param {boolean} [options.fin=true] - FIN bit
121
+ * @param {boolean} [options.mask=false] - mask the payload (client direction / tests)
122
+ * @param {Buffer} [options.maskKey] - 4-byte masking key; random when omitted
123
+ * @returns {Buffer} the encoded frame
124
+ * @throws {TypeError|RangeError} on encode-side constraint violations
125
+ * @example
126
+ * encodeFrame({ opcode: OPCODES.TEXT, payload: 'abc' });
127
+ * // → <Buffer 81 03 61 62 63>
128
+ */
129
+ function encodeFrame(options) {
130
+ if (!options || typeof options !== 'object') {
131
+ throw new TypeError('encodeFrame(options) requires an options object');
132
+ }
133
+ var opcode = options.opcode;
134
+ if (
135
+ opcode !== OPCODES.CONTINUATION && opcode !== OPCODES.TEXT
136
+ && opcode !== OPCODES.BINARY && opcode !== OPCODES.CLOSE
137
+ && opcode !== OPCODES.PING && opcode !== OPCODES.PONG
138
+ ) {
139
+ throw new TypeError('unknown or reserved opcode: ' + opcode);
140
+ }
141
+
142
+ var payload = options.payload;
143
+ if (payload == null) {
144
+ payload = Buffer.alloc(0);
145
+ } else if (typeof payload === 'string') {
146
+ payload = Buffer.from(payload, 'utf8');
147
+ } else if (!Buffer.isBuffer(payload)) {
148
+ throw new TypeError('payload must be a Buffer or a string');
149
+ }
150
+
151
+ var fin = options.fin !== false;
152
+ var mask = options.mask === true;
153
+ var isControl = (opcode & 0x8) === 0x8;
154
+ if (isControl) {
155
+ if (payload.length > 125) {
156
+ throw new RangeError('control frame payload must be <= 125 bytes (RFC 6455 §5.5)');
157
+ }
158
+ if (!fin) {
159
+ throw new RangeError('control frames must not be fragmented (RFC 6455 §5.5)');
160
+ }
161
+ }
162
+
163
+ var len = payload.length;
164
+ var extLen = (len >= 65536) ? 8 : ((len >= 126) ? 2 : 0);
165
+ var header = Buffer.allocUnsafe(2 + extLen + (mask ? 4 : 0));
166
+ header[0] = (fin ? 0x80 : 0x00) | opcode;
167
+ var offset = 2;
168
+ if (extLen === 0) {
169
+ header[1] = len;
170
+ } else if (extLen === 2) {
171
+ header[1] = 126;
172
+ header.writeUInt16BE(len, 2);
173
+ offset = 4;
174
+ } else {
175
+ header[1] = 127;
176
+ header.writeBigUInt64BE(BigInt(len), 2);
177
+ offset = 10;
178
+ }
179
+
180
+ if (!mask) {
181
+ return Buffer.concat([header, payload]);
182
+ }
183
+
184
+ header[1] |= 0x80;
185
+ var key = (Buffer.isBuffer(options.maskKey) && options.maskKey.length === 4)
186
+ ? options.maskKey
187
+ : crypto.randomBytes(4);
188
+ key.copy(header, offset);
189
+ var masked = Buffer.allocUnsafe(len);
190
+ for (var i = 0; i < len; i++) {
191
+ masked[i] = payload[i] ^ key[i & 3];
192
+ }
193
+ return Buffer.concat([header, masked]);
194
+ }
195
+
196
+ /**
197
+ * Builds a TEXT frame (UTF-8).
198
+ *
199
+ * @function encodeText
200
+ * @param {string|Buffer} text
201
+ * @param {object} [options] - forwarded to {@link module:gina/lib/ws-framing~encodeFrame} (fin/mask/maskKey)
202
+ * @returns {Buffer}
203
+ * @example
204
+ * stream.write(encodeText('hello'));
205
+ */
206
+ function encodeText(text, options) {
207
+ options = options || {};
208
+ return encodeFrame({
209
+ opcode : OPCODES.TEXT,
210
+ payload : text,
211
+ fin : options.fin,
212
+ mask : options.mask,
213
+ maskKey : options.maskKey
214
+ });
215
+ }
216
+
217
+ /**
218
+ * Builds a BINARY frame.
219
+ *
220
+ * @function encodeBinary
221
+ * @param {Buffer} data
222
+ * @param {object} [options] - forwarded to {@link module:gina/lib/ws-framing~encodeFrame} (fin/mask/maskKey)
223
+ * @returns {Buffer}
224
+ * @example
225
+ * stream.write(encodeBinary(Buffer.from([1, 2, 3])));
226
+ */
227
+ function encodeBinary(data, options) {
228
+ options = options || {};
229
+ return encodeFrame({
230
+ opcode : OPCODES.BINARY,
231
+ payload : data,
232
+ fin : options.fin,
233
+ mask : options.mask,
234
+ maskKey : options.maskKey
235
+ });
236
+ }
237
+
238
+ /**
239
+ * Builds a PING frame (§5.5.2). Payload must be <= 125 bytes.
240
+ *
241
+ * @function encodePing
242
+ * @param {Buffer|string} [payload]
243
+ * @param {object} [options] - forwarded to {@link module:gina/lib/ws-framing~encodeFrame} (mask/maskKey)
244
+ * @returns {Buffer}
245
+ * @example
246
+ * stream.write(encodePing());
247
+ */
248
+ function encodePing(payload, options) {
249
+ options = options || {};
250
+ return encodeFrame({
251
+ opcode : OPCODES.PING,
252
+ payload : payload,
253
+ mask : options.mask,
254
+ maskKey : options.maskKey
255
+ });
256
+ }
257
+
258
+ /**
259
+ * Builds a PONG frame (§5.5.3) — echo the ping's application data verbatim.
260
+ *
261
+ * @function encodePong
262
+ * @param {Buffer|string} [payload]
263
+ * @param {object} [options] - forwarded to {@link module:gina/lib/ws-framing~encodeFrame} (mask/maskKey)
264
+ * @returns {Buffer}
265
+ * @example
266
+ * parser = createParser({ onPing: function(p) { stream.write(encodePong(p)); } });
267
+ */
268
+ function encodePong(payload, options) {
269
+ options = options || {};
270
+ return encodeFrame({
271
+ opcode : OPCODES.PONG,
272
+ payload : payload,
273
+ mask : options.mask,
274
+ maskKey : options.maskKey
275
+ });
276
+ }
277
+
278
+ /**
279
+ * Builds a CLOSE frame (§5.5.1): empty body, or a 2-byte status code
280
+ * followed by an optional UTF-8 reason (reason capped at 123 bytes so the
281
+ * control-frame limit holds).
282
+ *
283
+ * @function encodeClose
284
+ * @param {number} [code] - Close status code; omit for an empty body
285
+ * @param {string} [reason] - UTF-8 close reason
286
+ * @param {object} [options] - forwarded to {@link module:gina/lib/ws-framing~encodeFrame} (mask/maskKey)
287
+ * @returns {Buffer}
288
+ * @throws {RangeError} on an invalid/unsendable code (e.g. 1005, 1006, 1015) or an oversized reason
289
+ * @example
290
+ * stream.write(encodeClose(1000, 'bye'));
291
+ */
292
+ function encodeClose(code, reason, options) {
293
+ options = options || {};
294
+ var payload;
295
+ if (typeof code === 'undefined') {
296
+ payload = Buffer.alloc(0);
297
+ } else {
298
+ if (typeof code !== 'number' || !isValidCloseCode(code)) {
299
+ throw new RangeError('invalid Close frame status code: ' + code + ' (RFC 6455 §7.4)');
300
+ }
301
+ var reasonBuf = (typeof reason === 'string' && reason.length > 0)
302
+ ? Buffer.from(reason, 'utf8')
303
+ : Buffer.alloc(0);
304
+ if (reasonBuf.length > 123) {
305
+ throw new RangeError('Close frame reason must be <= 123 bytes (RFC 6455 §5.5)');
306
+ }
307
+ payload = Buffer.allocUnsafe(2 + reasonBuf.length);
308
+ payload.writeUInt16BE(code, 0);
309
+ reasonBuf.copy(payload, 2);
310
+ }
311
+ return encodeFrame({
312
+ opcode : OPCODES.CLOSE,
313
+ payload : payload,
314
+ mask : options.mask,
315
+ maskKey : options.maskKey
316
+ });
317
+ }
318
+
319
+ /** @private no-op default handler */
320
+ function noop() {}
321
+
322
+ /**
323
+ * Parser options.
324
+ *
325
+ * @typedef {object} WsParserOptions
326
+ * @property {number} [maxPayload=1048576] - cap on a reassembled message payload in bytes (§10.4)
327
+ * @property {number} [maxFragments=100] - cap on fragments per message (§10.4)
328
+ * @property {boolean} [isServer=true] - server mode: inbound frames MUST be masked (§5.1); client mode: inbound frames MUST NOT be masked
329
+ * @property {function} [onMessage] - (data, isBinary): text arrives as a validated UTF-8 string, binary as a Buffer
330
+ * @property {function} [onPing] - (payload Buffer) — the consumer answers with a PONG echoing the payload
331
+ * @property {function} [onPong] - (payload Buffer)
332
+ * @property {function} [onClose] - (code, reason): code is 1005 when the Close body was empty (§7.4.1 "no status code was actually present")
333
+ * @property {function} [onError] - (err): err.closeCode carries the §7.4 status code to send back before tearing down
334
+ */
335
+
336
+ /**
337
+ * Incremental RFC 6455 frame parser for one connection.
338
+ *
339
+ * Feed inbound bytes with {@link WsParser#feed}; results surface through the
340
+ * option callbacks. On a protocol violation the parser reports `onError`
341
+ * with `err.closeCode` and goes permanently dead ("Fail the WebSocket
342
+ * Connection", §7.1.7 — no further input is processed). After a valid Close
343
+ * frame it reports `onClose` and likewise stops processing.
344
+ *
345
+ * @class
346
+ * @constructor
347
+ * @param {WsParserOptions} [options]
348
+ */
349
+ function WsParser(options) {
350
+ options = options || {};
351
+ /** @private @type {number} */
352
+ this._maxPayload = (typeof options.maxPayload === 'number' && options.maxPayload > 0)
353
+ ? options.maxPayload
354
+ : DEFAULT_MAX_PAYLOAD;
355
+ /** @private @type {number} */
356
+ this._maxFragments = (typeof options.maxFragments === 'number' && options.maxFragments > 0)
357
+ ? options.maxFragments
358
+ : DEFAULT_MAX_FRAGMENTS;
359
+ /** @private @type {boolean} */
360
+ this._isServer = options.isServer !== false;
361
+ /** @private */
362
+ this._onMessage = (typeof options.onMessage === 'function') ? options.onMessage : noop;
363
+ /** @private */
364
+ this._onPing = (typeof options.onPing === 'function') ? options.onPing : noop;
365
+ /** @private */
366
+ this._onPong = (typeof options.onPong === 'function') ? options.onPong : noop;
367
+ /** @private */
368
+ this._onClose = (typeof options.onClose === 'function') ? options.onClose : noop;
369
+ /** @private */
370
+ this._onError = (typeof options.onError === 'function') ? options.onError : noop;
371
+ /** @private @type {Buffer|null} buffered inbound bytes (bounded by maxPayload + frame header) */
372
+ this._buf = null;
373
+ /** @private @type {object|null} open fragmented message { opcode, chunks, length, count } */
374
+ this._fragments = null;
375
+ /** @private @type {boolean} failed or close-received — all further input is ignored */
376
+ this._dead = false;
377
+ }
378
+
379
+ /**
380
+ * Feeds inbound transport bytes to the parser. Partial frames are buffered;
381
+ * multiple complete frames in one chunk are all processed. Never throws on
382
+ * wire data — protocol violations surface through `onError`.
383
+ *
384
+ * @param {Buffer} chunk
385
+ * @returns {void}
386
+ * @example
387
+ * stream.on('data', function(chunk) { parser.feed(chunk); });
388
+ */
389
+ WsParser.prototype.feed = function(chunk) {
390
+ if (this._dead) {
391
+ return;
392
+ }
393
+ if (!Buffer.isBuffer(chunk)) {
394
+ chunk = Buffer.from(chunk);
395
+ }
396
+ this._buf = this._buf ? Buffer.concat([this._buf, chunk]) : chunk;
397
+ var frame;
398
+ while (!this._dead && (frame = this._readFrame()) !== null) {
399
+ this._processFrame(frame);
400
+ }
401
+ };
402
+
403
+ /**
404
+ * Whether the parser has stopped processing input (protocol failure or a
405
+ * received Close frame).
406
+ *
407
+ * @returns {boolean}
408
+ */
409
+ WsParser.prototype.isDead = function() {
410
+ return this._dead;
411
+ };
412
+
413
+ /**
414
+ * Attempts to read one complete frame off the buffer. Returns null when more
415
+ * bytes are needed OR when the parser failed (callers must re-check state).
416
+ * Header-time validations run before any payload is buffered: RSV bits,
417
+ * control-frame constraints, minimal length encoding, masking direction, and
418
+ * the §10.4 declared-length cap.
419
+ *
420
+ * @private
421
+ * @returns {object|null} `{ fin, opcode, payload }` with the payload unmasked
422
+ */
423
+ WsParser.prototype._readFrame = function() {
424
+ var buf = this._buf;
425
+ if (!buf || buf.length < 2) {
426
+ return null;
427
+ }
428
+ var b0 = buf[0];
429
+ var b1 = buf[1];
430
+ var opcode = b0 & 0x0F;
431
+ var fin = (b0 & 0x80) === 0x80;
432
+ var rsv = b0 & 0x70;
433
+ var masked = (b1 & 0x80) === 0x80;
434
+ var len7 = b1 & 0x7F;
435
+ var isControl = (opcode & 0x8) === 0x8;
436
+
437
+ if (rsv !== 0) {
438
+ return this._fail(1002, 'non-zero RSV bits with no negotiated extension (RFC 6455 §5.2)');
439
+ }
440
+ if (isControl && (len7 > 125 || !fin)) {
441
+ return this._fail(1002, 'control frames must be unfragmented with payload <= 125 bytes (RFC 6455 §5.5)');
442
+ }
443
+ if (this._isServer && !masked) {
444
+ return this._fail(1002, 'unmasked client frame (RFC 6455 §5.1)');
445
+ }
446
+ if (!this._isServer && masked) {
447
+ return this._fail(1002, 'masked server frame (RFC 6455 §5.1)');
448
+ }
449
+
450
+ var headerLen = 2;
451
+ var len = len7;
452
+ if (len7 === 126) {
453
+ if (buf.length < 4) {
454
+ return null;
455
+ }
456
+ len = buf.readUInt16BE(2);
457
+ headerLen = 4;
458
+ if (len < 126) {
459
+ return this._fail(1002, 'non-minimal 16-bit length encoding (RFC 6455 §5.2)');
460
+ }
461
+ } else if (len7 === 127) {
462
+ if (buf.length < 10) {
463
+ return null;
464
+ }
465
+ var hi = buf.readUInt32BE(2);
466
+ var lo = buf.readUInt32BE(6);
467
+ if ((hi & 0x80000000) !== 0) {
468
+ return this._fail(1002, '64-bit length with the most significant bit set (RFC 6455 §5.2)');
469
+ }
470
+ len = hi * 4294967296 + lo;
471
+ headerLen = 10;
472
+ if (len < 65536) {
473
+ return this._fail(1002, 'non-minimal 64-bit length encoding (RFC 6455 §5.2)');
474
+ }
475
+ }
476
+
477
+ // §10.4 — reject an oversized DECLARED length now, before buffering the
478
+ // payload (a 2**60-byte announcement must not cost 2**60 bytes of memory).
479
+ if (!isControl) {
480
+ var already = this._fragments ? this._fragments.length : 0;
481
+ if (len > this._maxPayload - already) {
482
+ return this._fail(1009, 'message exceeds maxPayload (' + this._maxPayload + ' bytes)');
483
+ }
484
+ }
485
+
486
+ var maskLen = masked ? 4 : 0;
487
+ var total = headerLen + maskLen + len;
488
+ if (buf.length < total) {
489
+ return null; // wait for more bytes
490
+ }
491
+
492
+ // Copy the payload out so the retained slice does not pin the whole buffer.
493
+ var payload = Buffer.allocUnsafe(len);
494
+ buf.copy(payload, 0, headerLen + maskLen, total);
495
+ if (masked) {
496
+ for (var i = 0; i < len; i++) {
497
+ payload[i] ^= buf[headerLen + (i & 3)];
498
+ }
499
+ }
500
+ this._buf = (total === buf.length) ? null : buf.slice(total);
501
+ return { fin: fin, opcode: opcode, payload: payload };
502
+ };
503
+
504
+ /**
505
+ * Routes one complete, unmasked frame through the §5.4/§5.5 rules.
506
+ *
507
+ * @private
508
+ * @param {object} frame - `{ fin, opcode, payload }`
509
+ * @returns {void}
510
+ */
511
+ WsParser.prototype._processFrame = function(frame) {
512
+ var opcode = frame.opcode;
513
+
514
+ if (opcode === OPCODES.TEXT || opcode === OPCODES.BINARY) {
515
+ if (this._fragments) {
516
+ return this._fail(1002, 'new data frame interleaved within a fragmented message (RFC 6455 §5.4)');
517
+ }
518
+ if (frame.fin) {
519
+ return this._deliver(opcode, frame.payload);
520
+ }
521
+ this._fragments = {
522
+ opcode : opcode,
523
+ chunks : [frame.payload],
524
+ length : frame.payload.length,
525
+ count : 1
526
+ };
527
+ return;
528
+ }
529
+
530
+ if (opcode === OPCODES.CONTINUATION) {
531
+ if (!this._fragments) {
532
+ return this._fail(1002, 'continuation frame with no message in progress (RFC 6455 §5.4)');
533
+ }
534
+ this._fragments.count++;
535
+ if (this._fragments.count > this._maxFragments) {
536
+ return this._fail(1008, 'message exceeds maxFragments (' + this._maxFragments + ')');
537
+ }
538
+ this._fragments.chunks.push(frame.payload);
539
+ this._fragments.length += frame.payload.length;
540
+ if (frame.fin) {
541
+ var message = Buffer.concat(this._fragments.chunks, this._fragments.length);
542
+ var dataOpcode = this._fragments.opcode;
543
+ this._fragments = null;
544
+ return this._deliver(dataOpcode, message);
545
+ }
546
+ return;
547
+ }
548
+
549
+ // Control frames MAY be injected between fragments (§5.4) — they do not
550
+ // touch this._fragments.
551
+ if (opcode === OPCODES.CLOSE) {
552
+ return this._handleClose(frame.payload);
553
+ }
554
+ if (opcode === OPCODES.PING) {
555
+ this._onPing(frame.payload);
556
+ return;
557
+ }
558
+ if (opcode === OPCODES.PONG) {
559
+ this._onPong(frame.payload);
560
+ return;
561
+ }
562
+
563
+ return this._fail(1002, 'reserved opcode 0x' + opcode.toString(16) + ' (RFC 6455 §5.2)');
564
+ };
565
+
566
+ /**
567
+ * Delivers a complete message: text is UTF-8-validated (§8.1, whole-message
568
+ * validation after reassembly) and handed over as a string; binary as a Buffer.
569
+ *
570
+ * @private
571
+ * @param {number} opcode - TEXT or BINARY
572
+ * @param {Buffer} payload
573
+ * @returns {void}
574
+ */
575
+ WsParser.prototype._deliver = function(opcode, payload) {
576
+ if (opcode === OPCODES.TEXT) {
577
+ if (!isUtf8(payload)) {
578
+ return this._fail(1007, 'text message payload is not valid UTF-8 (RFC 6455 §8.1)');
579
+ }
580
+ this._onMessage(payload.toString('utf8'), false);
581
+ return;
582
+ }
583
+ this._onMessage(payload, true);
584
+ };
585
+
586
+ /**
587
+ * Handles a Close frame body (§5.5.1): empty → code 1005 ("no status code
588
+ * was actually present"); a 1-byte body is malformed; otherwise a 2-byte
589
+ * code validated against §7.4 plus a UTF-8-validated reason.
590
+ *
591
+ * @private
592
+ * @param {Buffer} payload
593
+ * @returns {void}
594
+ */
595
+ WsParser.prototype._handleClose = function(payload) {
596
+ var code = 1005;
597
+ var reason = '';
598
+ if (payload.length === 1) {
599
+ return this._fail(1002, '1-byte Close frame body (RFC 6455 §5.5.1)');
600
+ }
601
+ if (payload.length >= 2) {
602
+ code = payload.readUInt16BE(0);
603
+ if (!isValidCloseCode(code)) {
604
+ return this._fail(1002, 'invalid Close frame status code ' + code + ' (RFC 6455 §7.4)');
605
+ }
606
+ var reasonBuf = payload.slice(2);
607
+ if (!isUtf8(reasonBuf)) {
608
+ return this._fail(1007, 'Close frame reason is not valid UTF-8 (RFC 6455 §8.1)');
609
+ }
610
+ reason = reasonBuf.toString('utf8');
611
+ }
612
+ this._dead = true;
613
+ this._buf = null;
614
+ this._fragments = null;
615
+ this._onClose(code, reason);
616
+ };
617
+
618
+ /**
619
+ * "Fail the WebSocket Connection" (§7.1.7): report the violation with the
620
+ * §7.4 status code the consumer should send back, drop all buffered state,
621
+ * and stop processing input permanently.
622
+ *
623
+ * @private
624
+ * @param {number} closeCode - §7.4 status code (1002, 1007, 1008, 1009, ...)
625
+ * @param {string} message
626
+ * @returns {null} so `_readFrame` callers uniformly stop their read loop
627
+ */
628
+ WsParser.prototype._fail = function(closeCode, message) {
629
+ this._dead = true;
630
+ this._buf = null;
631
+ this._fragments = null;
632
+ var err = new Error(message);
633
+ err.closeCode = closeCode;
634
+ this._onError(err);
635
+ return null;
636
+ };
637
+
638
+ /**
639
+ * Creates an incremental parser for one connection.
640
+ *
641
+ * @function createParser
642
+ * @param {WsParserOptions} [options]
643
+ * @returns {WsParser}
644
+ * @example
645
+ * var parser = createParser({ onMessage: function(data, isBinary) { ... } });
646
+ * parser.feed(chunkFromTheWire);
647
+ */
648
+ function createParser(options) {
649
+ return new WsParser(options);
650
+ }
651
+
652
+ module.exports = {
653
+ OPCODES : OPCODES,
654
+ DEFAULT_MAX_PAYLOAD : DEFAULT_MAX_PAYLOAD,
655
+ DEFAULT_MAX_FRAGMENTS : DEFAULT_MAX_FRAGMENTS,
656
+ isValidCloseCode : isValidCloseCode,
657
+ encodeFrame : encodeFrame,
658
+ encodeText : encodeText,
659
+ encodeBinary : encodeBinary,
660
+ encodePing : encodePing,
661
+ encodePong : encodePong,
662
+ encodeClose : encodeClose,
663
+ createParser : createParser
664
+ };
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "gina-lib-ws-session",
3
+ "version": "1.0.0",
4
+ "description": "WebSocket-over-HTTP/2 session bridge (RFC 8441): accepts an extended-CONNECT request, marries the raw Http2Stream to the lib/ws-framing RFC 6455 codec, and exposes a send/ping/close API with auto-pong, backpressure passthrough, a timed close handshake, full teardown on stream close/error, and graceful-shutdown drain registration.",
5
+ "authors": [ { "name": "Martin-Luther ETOUMAN", "email": "contact@gina.io" } ],
6
+ "copyright": "Copyright (c) 2009-2026 Rhinostone <contact@gina.io>",
7
+ "engines": { "node": ">=18.14.0" },
8
+ "main": "src/main",
9
+ "license": "MIT"
10
+ }