openportal 0.1.0 → 0.1.2

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 (248) hide show
  1. package/package.json +10 -4
  2. package/web/.next/static/XI6khKkj1If5Kb4-eJQ2z/_buildManifest.js +27 -0
  3. package/web/.next/static/chunks/{d3520c0622de77ff.js → 35cc9dbdc670c73c.js} +4 -4
  4. package/web/.next/static/chunks/4147ffc67a7b837c.css +1 -0
  5. package/web/.next/static/chunks/{21ab2574b84ad2d1.js → 52b90bc1740162c2.js} +2 -2
  6. package/web/.next/static/chunks/{688448a61fbd7d50.js → 8644d68bf325ff24.js} +4 -4
  7. package/web/.next/static/chunks/{c2c14edbf40dd531.js → 8f80b41262ef70b6.js} +1 -1
  8. package/web/.next/static/chunks/{03e1846335a31354.js → 9865709466b09f79.js} +3 -3
  9. package/web/.next/static/chunks/{d091e73f46572c38.js → 9ba9a5774c9421bd.js} +3 -3
  10. package/web/.next/static/chunks/{c617a4c7a78d4946.js → aebf799dac29fe08.js} +2 -2
  11. package/web/.next/static/chunks/{6ed981794a42d949.js → b5caad256518cb33.js} +3 -3
  12. package/web/.next/static/chunks/{turbopack-bc49f2e78bf92fdb.js → turbopack-26af71e419c11487.js} +1 -1
  13. package/web/.next/static/chunks/{turbopack-b3b62a2520d01d7e.js → turbopack-4ad0df7330c00c8d.js} +1 -1
  14. package/web/.next/static/chunks/{turbopack-03c9848eaf268db1.js → turbopack-8e653f3ad3a8ed18.js} +1 -1
  15. package/web/.next/static/chunks/{turbopack-d90c5e114da5fc51.js → turbopack-92c911b9efda2756.js} +1 -1
  16. package/web/.next/static/chunks/{turbopack-ededbd49a3a234ea.js → turbopack-d5098189d63fd7b8.js} +1 -1
  17. package/web/apps/web/.next/BUILD_ID +1 -1
  18. package/web/apps/web/.next/build-manifest.json +18 -28
  19. package/web/apps/web/.next/required-server-files.json +1 -1
  20. package/web/apps/web/.next/routes-manifest.json +0 -12
  21. package/web/apps/web/.next/server/chunks/[root-of-the-server]__f366ca98._.js +358 -0
  22. package/web/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__dfeaf8cf._.js → [root-of-the-server]__1a54ba1e._.js} +3 -3
  23. package/web/apps/web/.next/server/middleware-build-manifest.js +16 -26
  24. package/web/apps/web/.next/server/next-font-manifest.js +1 -1
  25. package/web/apps/web/.next/server/next-font-manifest.json +0 -4
  26. package/web/apps/web/.next/server/pages/404.html +1 -1
  27. package/web/apps/web/.next/server/pages/500.html +1 -1
  28. package/web/apps/web/.next/server/pages/_app/build-manifest.json +4 -4
  29. package/web/apps/web/.next/server/pages/_app/client-build-manifest.json +1 -1
  30. package/web/apps/web/.next/server/pages/_error/build-manifest.json +2 -2
  31. package/web/apps/web/.next/server/pages/_error/client-build-manifest.json +1 -1
  32. package/web/apps/web/.next/server/pages/api/[[...slugs]].js +1 -2
  33. package/web/apps/web/.next/server/pages/api/[[...slugs]].js.nft.json +1 -1
  34. package/web/apps/web/.next/server/pages/index/build-manifest.json +3 -3
  35. package/web/apps/web/.next/server/pages/index/client-build-manifest.json +1 -1
  36. package/web/apps/web/.next/server/pages/index.html +1 -1
  37. package/web/apps/web/.next/server/pages/index.js.nft.json +1 -1
  38. package/web/apps/web/.next/server/pages/session/[id]/build-manifest.json +4 -4
  39. package/web/apps/web/.next/server/pages/session/[id]/client-build-manifest.json +1 -1
  40. package/web/apps/web/.next/server/pages/session/[id].html +1 -1
  41. package/web/apps/web/.next/server/pages/session/[id].js.nft.json +1 -1
  42. package/web/apps/web/.next/server/pages/settings/build-manifest.json +3 -3
  43. package/web/apps/web/.next/server/pages/settings/client-build-manifest.json +1 -1
  44. package/web/apps/web/.next/server/pages/settings.html +1 -1
  45. package/web/apps/web/.next/server/pages/settings.js.nft.json +1 -1
  46. package/web/apps/web/.next/server/pages-manifest.json +0 -2
  47. package/web/apps/web/package.json +1 -9
  48. package/web/apps/web/server.js +1 -1
  49. package/web/.next/static/b-zSCTvx5IzLyCj7s91p4/_buildManifest.js +0 -32
  50. package/web/.next/static/chunks/04d4692d75696297.css +0 -1
  51. package/web/.next/static/chunks/553710f60e2f2b11.js +0 -1
  52. package/web/.next/static/chunks/58acbbb4090e3362.js +0 -3
  53. package/web/.next/static/chunks/6ce1e2f08f961db5.js +0 -2
  54. package/web/.next/static/chunks/e0c97552ba7a9e3d.js +0 -1
  55. package/web/.next/static/chunks/fc9c4f2dabfb4e0e.css +0 -1
  56. package/web/.next/static/chunks/fe47781ce8074a57.js +0 -10
  57. package/web/.next/static/chunks/turbopack-f44fd3803d0d6727.js +0 -3
  58. package/web/apps/web/.next/server/chunks/[root-of-the-server]__0f75905d._.js +0 -3
  59. package/web/apps/web/.next/server/chunks/[root-of-the-server]__89e85365._.js +0 -358
  60. package/web/apps/web/.next/server/chunks/[root-of-the-server]__ae1361d0._.js +0 -3
  61. package/web/apps/web/.next/server/pages/api/terminal/ws/pages-manifest.json +0 -3
  62. package/web/apps/web/.next/server/pages/api/terminal/ws.js +0 -5
  63. package/web/apps/web/.next/server/pages/api/terminal/ws.js.map +0 -5
  64. package/web/apps/web/.next/server/pages/api/terminal/ws.js.nft.json +0 -1
  65. package/web/apps/web/.next/server/pages/terminal/build-manifest.json +0 -20
  66. package/web/apps/web/.next/server/pages/terminal/client-build-manifest.json +0 -5
  67. package/web/apps/web/.next/server/pages/terminal/next-font-manifest.json +0 -11
  68. package/web/apps/web/.next/server/pages/terminal/pages-manifest.json +0 -3
  69. package/web/apps/web/.next/server/pages/terminal/react-loadable-manifest.json +0 -1
  70. package/web/apps/web/.next/server/pages/terminal.html +0 -1
  71. package/web/apps/web/.next/server/pages/terminal.js.map +0 -5
  72. package/web/apps/web/.next/server/pages/terminal.js.nft.json +0 -1
  73. package/web/node_modules/.bun/@img+colour@1.0.0/node_modules/@img/colour/color.cjs +0 -1594
  74. package/web/node_modules/.bun/@img+colour@1.0.0/node_modules/@img/colour/index.cjs +0 -1
  75. package/web/node_modules/.bun/@img+colour@1.0.0/node_modules/@img/colour/package.json +0 -45
  76. package/web/node_modules/.bun/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  77. package/web/node_modules/.bun/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/package.json +0 -40
  78. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/README.md +0 -46
  79. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +0 -220
  80. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
  81. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
  82. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -36
  83. package/web/node_modules/.bun/@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
  84. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/lib/cjs/index.js +0 -176
  85. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/lib/cjs/package.json +0 -4
  86. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/package.json +0 -28
  87. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +0 -6
  88. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +0 -38
  89. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +0 -6
  90. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +0 -6
  91. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +0 -13
  92. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +0 -6
  93. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js +0 -8
  94. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js +0 -7
  95. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js +0 -9
  96. package/web/node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json +0 -471
  97. package/web/node_modules/.bun/accepts@1.3.8/node_modules/accepts/index.js +0 -238
  98. package/web/node_modules/.bun/accepts@1.3.8/node_modules/accepts/package.json +0 -47
  99. package/web/node_modules/.bun/base64id@2.0.0/node_modules/base64id/lib/base64id.js +0 -103
  100. package/web/node_modules/.bun/base64id@2.0.0/node_modules/base64id/package.json +0 -13
  101. package/web/node_modules/.bun/cookie@0.7.2/node_modules/cookie/index.js +0 -335
  102. package/web/node_modules/.bun/cookie@0.7.2/node_modules/cookie/package.json +0 -44
  103. package/web/node_modules/.bun/cookie@1.1.1/node_modules/cookie/package.json +0 -47
  104. package/web/node_modules/.bun/cors@2.8.5/node_modules/cors/lib/index.js +0 -238
  105. package/web/node_modules/.bun/cors@2.8.5/node_modules/cors/package.json +0 -41
  106. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/package.json +0 -60
  107. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/browser.js +0 -271
  108. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/common.js +0 -274
  109. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/index.js +0 -10
  110. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/node.js +0 -263
  111. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/commons.js +0 -19
  112. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/decodePacket.js +0 -59
  113. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/encodePacket.js +0 -38
  114. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/index.js +0 -164
  115. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/package.json +0 -8
  116. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/package.json +0 -46
  117. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/engine.io.js +0 -54
  118. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/parser-v3/index.js +0 -424
  119. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/parser-v3/utf8.js +0 -187
  120. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/server.js +0 -786
  121. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/socket.js +0 -460
  122. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transport.js +0 -117
  123. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/index.js +0 -23
  124. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/polling-jsonp.js +0 -41
  125. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/polling.js +0 -332
  126. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/websocket.js +0 -94
  127. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/webtransport.js +0 -63
  128. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/index.js +0 -8
  129. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/polling.js +0 -364
  130. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/websocket.js +0 -73
  131. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/userver.js +0 -279
  132. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/package.json +0 -70
  133. package/web/node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js +0 -8
  134. package/web/node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/package.json +0 -46
  135. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/db.json +0 -8519
  136. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/index.js +0 -12
  137. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/package.json +0 -60
  138. package/web/node_modules/.bun/mime-types@2.1.35/node_modules/mime-types/index.js +0 -188
  139. package/web/node_modules/.bun/mime-types@2.1.35/node_modules/mime-types/package.json +0 -44
  140. package/web/node_modules/.bun/ms@2.1.3/node_modules/ms/index.js +0 -162
  141. package/web/node_modules/.bun/ms@2.1.3/node_modules/ms/package.json +0 -38
  142. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/index.js +0 -82
  143. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/charset.js +0 -169
  144. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/encoding.js +0 -184
  145. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/language.js +0 -179
  146. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/mediaType.js +0 -294
  147. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/package.json +0 -42
  148. package/web/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/index.js +0 -90
  149. package/web/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/package.json +0 -42
  150. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/channel.js +0 -177
  151. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/colour.js +0 -195
  152. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/composite.js +0 -212
  153. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/constructor.js +0 -499
  154. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/index.js +0 -16
  155. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/input.js +0 -809
  156. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/is.js +0 -143
  157. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/libvips.js +0 -207
  158. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/operation.js +0 -1016
  159. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/output.js +0 -1666
  160. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/resize.js +0 -595
  161. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/sharp.js +0 -121
  162. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/utility.js +0 -291
  163. package/web/node_modules/.bun/sharp@0.34.5/node_modules/sharp/package.json +0 -202
  164. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/cluster-adapter.js +0 -674
  165. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/contrib/yeast.js +0 -55
  166. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/in-memory-adapter.js +0 -394
  167. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/index.js +0 -10
  168. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/package.json +0 -39
  169. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/binary.js +0 -88
  170. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/index.js +0 -321
  171. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/is-binary.js +0 -55
  172. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/package.json +0 -3
  173. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/package.json +0 -58
  174. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.esm.min.js +0 -7
  175. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.js +0 -4908
  176. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.min.js +0 -7
  177. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.msgpack.min.js +0 -7
  178. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/broadcast-operator.js +0 -436
  179. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/client.js +0 -268
  180. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/index.js +0 -804
  181. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/namespace.js +0 -581
  182. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/parent-namespace.js +0 -88
  183. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/socket-types.js +0 -11
  184. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/socket.js +0 -977
  185. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/typed-events.js +0 -81
  186. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/uws.js +0 -136
  187. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/package.json +0 -85
  188. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/wrapper.mjs +0 -3
  189. package/web/node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js +0 -135
  190. package/web/node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/package.json +0 -53
  191. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/_tsc.js +0 -133818
  192. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/_tsserver.js +0 -659
  193. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  194. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  195. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  196. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  197. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  198. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  199. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  200. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  201. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  202. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  203. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  204. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  205. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/tsc.js +0 -8
  206. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/tsserver.js +0 -8
  207. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  208. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/typesMap.json +0 -497
  209. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/typescript.js +0 -200276
  210. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/typingsInstaller.js +0 -8
  211. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/watchGuard.js +0 -53
  212. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  213. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  214. package/web/node_modules/.bun/typescript@5.9.3/node_modules/typescript/package.json +0 -120
  215. package/web/node_modules/.bun/vary@1.1.2/node_modules/vary/index.js +0 -149
  216. package/web/node_modules/.bun/vary@1.1.2/node_modules/vary/package.json +0 -43
  217. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/index.js +0 -13
  218. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/buffer-util.js +0 -131
  219. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/constants.js +0 -12
  220. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/event-target.js +0 -292
  221. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/extension.js +0 -203
  222. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/limiter.js +0 -55
  223. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/permessage-deflate.js +0 -514
  224. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/receiver.js +0 -704
  225. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/sender.js +0 -497
  226. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/stream.js +0 -159
  227. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/subprotocol.js +0 -62
  228. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/validation.js +0 -130
  229. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/websocket-server.js +0 -540
  230. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/websocket.js +0 -1338
  231. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/package.json +0 -69
  232. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/buffer-util.js +0 -131
  233. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/constants.js +0 -18
  234. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/event-target.js +0 -292
  235. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/extension.js +0 -203
  236. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/limiter.js +0 -55
  237. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/permessage-deflate.js +0 -528
  238. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/receiver.js +0 -706
  239. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/sender.js +0 -602
  240. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/stream.js +0 -161
  241. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/subprotocol.js +0 -62
  242. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/validation.js +0 -152
  243. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/websocket-server.js +0 -550
  244. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/websocket.js +0 -1388
  245. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/package.json +0 -69
  246. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/wrapper.mjs +0 -8
  247. /package/web/.next/static/{b-zSCTvx5IzLyCj7s91p4 → XI6khKkj1If5Kb4-eJQ2z}/_clientMiddlewareManifest.json +0 -0
  248. /package/web/.next/static/{b-zSCTvx5IzLyCj7s91p4 → XI6khKkj1If5Kb4-eJQ2z}/_ssgManifest.js +0 -0
@@ -1,786 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Server = exports.BaseServer = void 0;
4
- const qs = require("querystring");
5
- const url_1 = require("url");
6
- const base64id = require("base64id");
7
- const transports_1 = require("./transports");
8
- const events_1 = require("events");
9
- const socket_1 = require("./socket");
10
- const debug_1 = require("debug");
11
- const cookie_1 = require("cookie");
12
- const ws_1 = require("ws");
13
- const webtransport_1 = require("./transports/webtransport");
14
- const engine_io_parser_1 = require("engine.io-parser");
15
- const debug = (0, debug_1.default)("engine");
16
- const kResponseHeaders = Symbol("responseHeaders");
17
- function parseSessionId(data) {
18
- try {
19
- const parsed = JSON.parse(data);
20
- if (typeof parsed.sid === "string") {
21
- return parsed.sid;
22
- }
23
- }
24
- catch (e) { }
25
- }
26
- class BaseServer extends events_1.EventEmitter {
27
- /**
28
- * Server constructor.
29
- *
30
- * @param {Object} opts - options
31
- */
32
- constructor(opts = {}) {
33
- super();
34
- this.middlewares = [];
35
- this.clients = {};
36
- this.clientsCount = 0;
37
- this.opts = Object.assign({
38
- wsEngine: ws_1.Server,
39
- pingTimeout: 20000,
40
- pingInterval: 25000,
41
- upgradeTimeout: 10000,
42
- maxHttpBufferSize: 1e6,
43
- transports: ["polling", "websocket"], // WebTransport is disabled by default
44
- allowUpgrades: true,
45
- httpCompression: {
46
- threshold: 1024,
47
- },
48
- cors: false,
49
- allowEIO3: false,
50
- }, opts);
51
- if (opts.cookie) {
52
- this.opts.cookie = Object.assign({
53
- name: "io",
54
- path: "/",
55
- // @ts-ignore
56
- httpOnly: opts.cookie.path !== false,
57
- sameSite: "lax",
58
- }, opts.cookie);
59
- }
60
- if (this.opts.cors) {
61
- this.use(require("cors")(this.opts.cors));
62
- }
63
- if (opts.perMessageDeflate) {
64
- this.opts.perMessageDeflate = Object.assign({
65
- threshold: 1024,
66
- }, opts.perMessageDeflate);
67
- }
68
- this.init();
69
- }
70
- /**
71
- * Compute the pathname of the requests that are handled by the server
72
- * @param options
73
- * @protected
74
- */
75
- _computePath(options) {
76
- let path = (options.path || "/engine.io").replace(/\/$/, "");
77
- if (options.addTrailingSlash !== false) {
78
- // normalize path
79
- path += "/";
80
- }
81
- return path;
82
- }
83
- /**
84
- * Returns a list of available transports for upgrade given a certain transport.
85
- *
86
- * @return {Array}
87
- */
88
- upgrades(transport) {
89
- if (!this.opts.allowUpgrades)
90
- return [];
91
- return transports_1.default[transport].upgradesTo || [];
92
- }
93
- /**
94
- * Verifies a request.
95
- *
96
- * @param {EngineRequest} req
97
- * @param upgrade - whether it's an upgrade request
98
- * @param fn
99
- * @protected
100
- */
101
- verify(req, upgrade, fn) {
102
- // transport check
103
- const transport = req._query.transport;
104
- // WebTransport does not go through the verify() method, see the onWebTransportSession() method
105
- if (!~this.opts.transports.indexOf(transport) ||
106
- transport === "webtransport") {
107
- debug('unknown transport "%s"', transport);
108
- return fn(Server.errors.UNKNOWN_TRANSPORT, { transport });
109
- }
110
- // 'Origin' header check
111
- const isOriginInvalid = checkInvalidHeaderChar(req.headers.origin);
112
- if (isOriginInvalid) {
113
- const origin = req.headers.origin;
114
- req.headers.origin = null;
115
- debug("origin header invalid");
116
- return fn(Server.errors.BAD_REQUEST, {
117
- name: "INVALID_ORIGIN",
118
- origin,
119
- });
120
- }
121
- // sid check
122
- const sid = req._query.sid;
123
- if (sid) {
124
- if (!this.clients.hasOwnProperty(sid)) {
125
- debug('unknown sid "%s"', sid);
126
- return fn(Server.errors.UNKNOWN_SID, {
127
- sid,
128
- });
129
- }
130
- const previousTransport = this.clients[sid].transport.name;
131
- if (!upgrade && previousTransport !== transport) {
132
- debug("bad request: unexpected transport without upgrade");
133
- return fn(Server.errors.BAD_REQUEST, {
134
- name: "TRANSPORT_MISMATCH",
135
- transport,
136
- previousTransport,
137
- });
138
- }
139
- }
140
- else {
141
- // handshake is GET only
142
- if ("GET" !== req.method) {
143
- return fn(Server.errors.BAD_HANDSHAKE_METHOD, {
144
- method: req.method,
145
- });
146
- }
147
- if (transport === "websocket" && !upgrade) {
148
- debug("invalid transport upgrade");
149
- return fn(Server.errors.BAD_REQUEST, {
150
- name: "TRANSPORT_HANDSHAKE_ERROR",
151
- });
152
- }
153
- if (!this.opts.allowRequest)
154
- return fn();
155
- return this.opts.allowRequest(req, (message, success) => {
156
- if (!success) {
157
- return fn(Server.errors.FORBIDDEN, {
158
- message,
159
- });
160
- }
161
- fn();
162
- });
163
- }
164
- fn();
165
- }
166
- /**
167
- * Adds a new middleware.
168
- *
169
- * @example
170
- * import helmet from "helmet";
171
- *
172
- * engine.use(helmet());
173
- *
174
- * @param fn
175
- */
176
- use(fn) {
177
- this.middlewares.push(fn);
178
- }
179
- /**
180
- * Apply the middlewares to the request.
181
- *
182
- * @param req
183
- * @param res
184
- * @param callback
185
- * @protected
186
- */
187
- _applyMiddlewares(req, res, callback) {
188
- if (this.middlewares.length === 0) {
189
- debug("no middleware to apply, skipping");
190
- return callback();
191
- }
192
- const apply = (i) => {
193
- debug("applying middleware n°%d", i + 1);
194
- this.middlewares[i](req, res, (err) => {
195
- if (err) {
196
- return callback(err);
197
- }
198
- if (i + 1 < this.middlewares.length) {
199
- apply(i + 1);
200
- }
201
- else {
202
- callback();
203
- }
204
- });
205
- };
206
- apply(0);
207
- }
208
- /**
209
- * Closes all clients.
210
- */
211
- close() {
212
- debug("closing all open clients");
213
- for (let i in this.clients) {
214
- if (this.clients.hasOwnProperty(i)) {
215
- this.clients[i].close(true);
216
- }
217
- }
218
- this.cleanup();
219
- return this;
220
- }
221
- /**
222
- * generate a socket id.
223
- * Overwrite this method to generate your custom socket id
224
- *
225
- * @param {IncomingMessage} req - the request object
226
- */
227
- generateId(req) {
228
- return base64id.generateId();
229
- }
230
- /**
231
- * Handshakes a new client.
232
- *
233
- * @param {String} transportName
234
- * @param {Object} req - the request object
235
- * @param {Function} closeConnection
236
- *
237
- * @protected
238
- */
239
- async handshake(transportName, req, closeConnection) {
240
- const protocol = req._query.EIO === "4" ? 4 : 3; // 3rd revision by default
241
- if (protocol === 3 && !this.opts.allowEIO3) {
242
- debug("unsupported protocol version");
243
- this.emit("connection_error", {
244
- req,
245
- code: Server.errors.UNSUPPORTED_PROTOCOL_VERSION,
246
- message: Server.errorMessages[Server.errors.UNSUPPORTED_PROTOCOL_VERSION],
247
- context: {
248
- protocol,
249
- },
250
- });
251
- closeConnection(Server.errors.UNSUPPORTED_PROTOCOL_VERSION);
252
- return;
253
- }
254
- let id;
255
- try {
256
- id = await this.generateId(req);
257
- }
258
- catch (e) {
259
- debug("error while generating an id");
260
- this.emit("connection_error", {
261
- req,
262
- code: Server.errors.BAD_REQUEST,
263
- message: Server.errorMessages[Server.errors.BAD_REQUEST],
264
- context: {
265
- name: "ID_GENERATION_ERROR",
266
- error: e,
267
- },
268
- });
269
- closeConnection(Server.errors.BAD_REQUEST);
270
- return;
271
- }
272
- debug('handshaking client "%s"', id);
273
- try {
274
- var transport = this.createTransport(transportName, req);
275
- if ("polling" === transportName) {
276
- transport.maxHttpBufferSize = this.opts.maxHttpBufferSize;
277
- transport.httpCompression = this.opts.httpCompression;
278
- }
279
- else if ("websocket" === transportName) {
280
- transport.perMessageDeflate = this.opts.perMessageDeflate;
281
- }
282
- }
283
- catch (e) {
284
- debug('error handshaking to transport "%s"', transportName);
285
- this.emit("connection_error", {
286
- req,
287
- code: Server.errors.BAD_REQUEST,
288
- message: Server.errorMessages[Server.errors.BAD_REQUEST],
289
- context: {
290
- name: "TRANSPORT_HANDSHAKE_ERROR",
291
- error: e,
292
- },
293
- });
294
- closeConnection(Server.errors.BAD_REQUEST);
295
- return;
296
- }
297
- const socket = new socket_1.Socket(id, this, transport, req, protocol);
298
- transport.on("headers", (headers, req) => {
299
- const isInitialRequest = !req._query.sid;
300
- if (isInitialRequest) {
301
- if (this.opts.cookie) {
302
- headers["Set-Cookie"] = [
303
- // @ts-ignore
304
- (0, cookie_1.serialize)(this.opts.cookie.name, id, this.opts.cookie),
305
- ];
306
- }
307
- this.emit("initial_headers", headers, req);
308
- }
309
- this.emit("headers", headers, req);
310
- });
311
- transport.onRequest(req);
312
- this.clients[id] = socket;
313
- this.clientsCount++;
314
- socket.once("close", () => {
315
- delete this.clients[id];
316
- this.clientsCount--;
317
- });
318
- this.emit("connection", socket);
319
- return transport;
320
- }
321
- async onWebTransportSession(session) {
322
- const timeout = setTimeout(() => {
323
- debug("the client failed to establish a bidirectional stream in the given period");
324
- session.close();
325
- }, this.opts.upgradeTimeout);
326
- const streamReader = session.incomingBidirectionalStreams.getReader();
327
- const result = await streamReader.read();
328
- if (result.done) {
329
- debug("session is closed");
330
- return;
331
- }
332
- const stream = result.value;
333
- const transformStream = (0, engine_io_parser_1.createPacketDecoderStream)(this.opts.maxHttpBufferSize, "nodebuffer");
334
- const reader = stream.readable.pipeThrough(transformStream).getReader();
335
- // reading the first packet of the stream
336
- const { value, done } = await reader.read();
337
- if (done) {
338
- debug("stream is closed");
339
- return;
340
- }
341
- clearTimeout(timeout);
342
- if (value.type !== "open") {
343
- debug("invalid WebTransport handshake");
344
- return session.close();
345
- }
346
- if (value.data === undefined) {
347
- const transport = new webtransport_1.WebTransport(session, stream, reader);
348
- // note: we cannot use "this.generateId()", because there is no "req" argument
349
- const id = base64id.generateId();
350
- debug('handshaking client "%s" (WebTransport)', id);
351
- const socket = new socket_1.Socket(id, this, transport, null, 4);
352
- this.clients[id] = socket;
353
- this.clientsCount++;
354
- socket.once("close", () => {
355
- delete this.clients[id];
356
- this.clientsCount--;
357
- });
358
- this.emit("connection", socket);
359
- return;
360
- }
361
- const sid = parseSessionId(value.data);
362
- if (!sid) {
363
- debug("invalid WebTransport handshake");
364
- return session.close();
365
- }
366
- const client = this.clients[sid];
367
- if (!client) {
368
- debug("upgrade attempt for closed client");
369
- session.close();
370
- }
371
- else if (client.upgrading) {
372
- debug("transport has already been trying to upgrade");
373
- session.close();
374
- }
375
- else if (client.upgraded) {
376
- debug("transport had already been upgraded");
377
- session.close();
378
- }
379
- else {
380
- debug("upgrading existing transport");
381
- const transport = new webtransport_1.WebTransport(session, stream, reader);
382
- client._maybeUpgrade(transport);
383
- }
384
- }
385
- }
386
- exports.BaseServer = BaseServer;
387
- /**
388
- * Protocol errors mappings.
389
- */
390
- BaseServer.errors = {
391
- UNKNOWN_TRANSPORT: 0,
392
- UNKNOWN_SID: 1,
393
- BAD_HANDSHAKE_METHOD: 2,
394
- BAD_REQUEST: 3,
395
- FORBIDDEN: 4,
396
- UNSUPPORTED_PROTOCOL_VERSION: 5,
397
- };
398
- BaseServer.errorMessages = {
399
- 0: "Transport unknown",
400
- 1: "Session ID unknown",
401
- 2: "Bad handshake method",
402
- 3: "Bad request",
403
- 4: "Forbidden",
404
- 5: "Unsupported protocol version",
405
- };
406
- /**
407
- * Exposes a subset of the http.ServerResponse interface, in order to be able to apply the middlewares to an upgrade
408
- * request.
409
- *
410
- * @see https://nodejs.org/api/http.html#class-httpserverresponse
411
- */
412
- class WebSocketResponse {
413
- constructor(req, socket) {
414
- this.req = req;
415
- this.socket = socket;
416
- // temporarily store the response headers on the req object (see the "headers" event)
417
- req[kResponseHeaders] = {};
418
- }
419
- setHeader(name, value) {
420
- this.req[kResponseHeaders][name] = value;
421
- }
422
- getHeader(name) {
423
- return this.req[kResponseHeaders][name];
424
- }
425
- removeHeader(name) {
426
- delete this.req[kResponseHeaders][name];
427
- }
428
- write() { }
429
- writeHead() { }
430
- end() {
431
- // we could return a proper error code, but the WebSocket client will emit an "error" event anyway.
432
- this.socket.destroy();
433
- }
434
- }
435
- /**
436
- * An Engine.IO server based on Node.js built-in HTTP server and the `ws` package for WebSocket connections.
437
- */
438
- class Server extends BaseServer {
439
- /**
440
- * Initialize websocket server
441
- *
442
- * @protected
443
- */
444
- init() {
445
- if (!~this.opts.transports.indexOf("websocket"))
446
- return;
447
- if (this.ws)
448
- this.ws.close();
449
- this.ws = new this.opts.wsEngine({
450
- noServer: true,
451
- clientTracking: false,
452
- perMessageDeflate: this.opts.perMessageDeflate,
453
- maxPayload: this.opts.maxHttpBufferSize,
454
- });
455
- if (typeof this.ws.on === "function") {
456
- this.ws.on("headers", (headersArray, req) => {
457
- // note: 'ws' uses an array of headers, while Engine.IO uses an object (response.writeHead() accepts both formats)
458
- // we could also try to parse the array and then sync the values, but that will be error-prone
459
- const additionalHeaders = req[kResponseHeaders] || {};
460
- delete req[kResponseHeaders];
461
- const isInitialRequest = !req._query.sid;
462
- if (isInitialRequest) {
463
- this.emit("initial_headers", additionalHeaders, req);
464
- }
465
- this.emit("headers", additionalHeaders, req);
466
- debug("writing headers: %j", additionalHeaders);
467
- Object.keys(additionalHeaders).forEach((key) => {
468
- headersArray.push(`${key}: ${additionalHeaders[key]}`);
469
- });
470
- });
471
- }
472
- }
473
- cleanup() {
474
- if (this.ws) {
475
- debug("closing webSocketServer");
476
- this.ws.close();
477
- // don't delete this.ws because it can be used again if the http server starts listening again
478
- }
479
- }
480
- /**
481
- * Prepares a request by processing the query string.
482
- *
483
- * @private
484
- */
485
- prepare(req) {
486
- // try to leverage pre-existing `req._query` (e.g: from connect)
487
- if (!req._query) {
488
- req._query = (~req.url.indexOf("?") ? qs.parse((0, url_1.parse)(req.url).query) : {});
489
- }
490
- }
491
- createTransport(transportName, req) {
492
- return new transports_1.default[transportName](req);
493
- }
494
- /**
495
- * Handles an Engine.IO HTTP request.
496
- *
497
- * @param {EngineRequest} req
498
- * @param {ServerResponse} res
499
- */
500
- handleRequest(req, res) {
501
- debug('handling "%s" http request "%s"', req.method, req.url);
502
- this.prepare(req);
503
- req.res = res;
504
- const callback = (errorCode, errorContext) => {
505
- if (errorCode !== undefined) {
506
- this.emit("connection_error", {
507
- req,
508
- code: errorCode,
509
- message: Server.errorMessages[errorCode],
510
- context: errorContext,
511
- });
512
- abortRequest(res, errorCode, errorContext);
513
- return;
514
- }
515
- if (req._query.sid) {
516
- debug("setting new request for existing client");
517
- this.clients[req._query.sid].transport.onRequest(req);
518
- }
519
- else {
520
- const closeConnection = (errorCode, errorContext) => abortRequest(res, errorCode, errorContext);
521
- this.handshake(req._query.transport, req, closeConnection);
522
- }
523
- };
524
- this._applyMiddlewares(req, res, (err) => {
525
- if (err) {
526
- callback(Server.errors.BAD_REQUEST, { name: "MIDDLEWARE_FAILURE" });
527
- }
528
- else {
529
- this.verify(req, false, callback);
530
- }
531
- });
532
- }
533
- /**
534
- * Handles an Engine.IO HTTP Upgrade.
535
- */
536
- handleUpgrade(req, socket, upgradeHead) {
537
- this.prepare(req);
538
- const res = new WebSocketResponse(req, socket);
539
- const callback = (errorCode, errorContext) => {
540
- if (errorCode !== undefined) {
541
- this.emit("connection_error", {
542
- req,
543
- code: errorCode,
544
- message: Server.errorMessages[errorCode],
545
- context: errorContext,
546
- });
547
- abortUpgrade(socket, errorCode, errorContext);
548
- return;
549
- }
550
- const head = Buffer.from(upgradeHead);
551
- upgradeHead = null;
552
- // some middlewares (like express-session) wait for the writeHead() call to flush their headers
553
- // see https://github.com/expressjs/session/blob/1010fadc2f071ddf2add94235d72224cf65159c6/index.js#L220-L244
554
- res.writeHead();
555
- // delegate to ws
556
- this.ws.handleUpgrade(req, socket, head, (websocket) => {
557
- this.onWebSocket(req, socket, websocket);
558
- });
559
- };
560
- this._applyMiddlewares(req, res, (err) => {
561
- if (err) {
562
- callback(Server.errors.BAD_REQUEST, { name: "MIDDLEWARE_FAILURE" });
563
- }
564
- else {
565
- this.verify(req, true, callback);
566
- }
567
- });
568
- }
569
- /**
570
- * Called upon a ws.io connection.
571
- *
572
- * @param {ws.Socket} websocket
573
- * @private
574
- */
575
- onWebSocket(req, socket, websocket) {
576
- websocket.on("error", onUpgradeError);
577
- if (transports_1.default[req._query.transport] !== undefined &&
578
- !transports_1.default[req._query.transport].prototype.handlesUpgrades) {
579
- debug("transport doesnt handle upgraded requests");
580
- websocket.close();
581
- return;
582
- }
583
- // get client id
584
- const id = req._query.sid;
585
- // keep a reference to the ws.Socket
586
- req.websocket = websocket;
587
- if (id) {
588
- const client = this.clients[id];
589
- if (!client) {
590
- debug("upgrade attempt for closed client");
591
- websocket.close();
592
- }
593
- else if (client.upgrading) {
594
- debug("transport has already been trying to upgrade");
595
- websocket.close();
596
- }
597
- else if (client.upgraded) {
598
- debug("transport had already been upgraded");
599
- websocket.close();
600
- }
601
- else {
602
- debug("upgrading existing transport");
603
- // transport error handling takes over
604
- websocket.removeListener("error", onUpgradeError);
605
- const transport = this.createTransport(req._query.transport, req);
606
- transport.perMessageDeflate = this.opts.perMessageDeflate;
607
- client._maybeUpgrade(transport);
608
- }
609
- }
610
- else {
611
- const closeConnection = (errorCode, errorContext) => abortUpgrade(socket, errorCode, errorContext);
612
- this.handshake(req._query.transport, req, closeConnection);
613
- }
614
- function onUpgradeError() {
615
- debug("websocket error before upgrade");
616
- // websocket.close() not needed
617
- }
618
- }
619
- /**
620
- * Captures upgrade requests for a http.Server.
621
- *
622
- * @param {http.Server} server
623
- * @param {Object} options
624
- */
625
- attach(server, options = {}) {
626
- const path = this._computePath(options);
627
- const destroyUpgradeTimeout = options.destroyUpgradeTimeout || 1000;
628
- function check(req) {
629
- // TODO use `path === new URL(...).pathname` in the next major release (ref: https://nodejs.org/api/url.html)
630
- return path === req.url.slice(0, path.length);
631
- }
632
- // cache and clean up listeners
633
- const listeners = server.listeners("request").slice(0);
634
- server.removeAllListeners("request");
635
- server.on("close", this.close.bind(this));
636
- server.on("listening", this.init.bind(this));
637
- // add request handler
638
- server.on("request", (req, res) => {
639
- if (check(req)) {
640
- debug('intercepting request for path "%s"', path);
641
- this.handleRequest(req, res);
642
- }
643
- else {
644
- let i = 0;
645
- const l = listeners.length;
646
- for (; i < l; i++) {
647
- listeners[i].call(server, req, res);
648
- }
649
- }
650
- });
651
- if (~this.opts.transports.indexOf("websocket")) {
652
- server.on("upgrade", (req, socket, head) => {
653
- if (check(req)) {
654
- this.handleUpgrade(req, socket, head);
655
- }
656
- else if (false !== options.destroyUpgrade) {
657
- // default node behavior is to disconnect when no handlers
658
- // but by adding a handler, we prevent that
659
- // and if no eio thing handles the upgrade
660
- // then the socket needs to die!
661
- setTimeout(function () {
662
- // @ts-ignore
663
- if (socket.writable && socket.bytesWritten <= 0) {
664
- socket.on("error", (e) => {
665
- debug("error while destroying upgrade: %s", e.message);
666
- });
667
- return socket.end();
668
- }
669
- }, destroyUpgradeTimeout);
670
- }
671
- });
672
- }
673
- }
674
- }
675
- exports.Server = Server;
676
- /**
677
- * Close the HTTP long-polling request
678
- *
679
- * @param res - the response object
680
- * @param errorCode - the error code
681
- * @param errorContext - additional error context
682
- *
683
- * @private
684
- */
685
- function abortRequest(res, errorCode, errorContext) {
686
- const statusCode = errorCode === Server.errors.FORBIDDEN ? 403 : 400;
687
- const message = errorContext && errorContext.message
688
- ? errorContext.message
689
- : Server.errorMessages[errorCode];
690
- res.writeHead(statusCode, { "Content-Type": "application/json" });
691
- res.end(JSON.stringify({
692
- code: errorCode,
693
- message,
694
- }));
695
- }
696
- /**
697
- * Close the WebSocket connection
698
- *
699
- * @param {net.Socket} socket
700
- * @param {string} errorCode - the error code
701
- * @param {object} errorContext - additional error context
702
- */
703
- function abortUpgrade(socket, errorCode, errorContext = {}) {
704
- socket.on("error", () => {
705
- debug("ignoring error from closed connection");
706
- });
707
- if (socket.writable) {
708
- const message = errorContext.message || Server.errorMessages[errorCode];
709
- const length = Buffer.byteLength(message);
710
- socket.write("HTTP/1.1 400 Bad Request\r\n" +
711
- "Connection: close\r\n" +
712
- "Content-type: text/html\r\n" +
713
- "Content-Length: " +
714
- length +
715
- "\r\n" +
716
- "\r\n" +
717
- message);
718
- }
719
- socket.destroy();
720
- }
721
- /* eslint-disable */
722
- /**
723
- * From https://github.com/nodejs/node/blob/v8.4.0/lib/_http_common.js#L303-L354
724
- *
725
- * True if val contains an invalid field-vchar
726
- * field-value = *( field-content / obs-fold )
727
- * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
728
- * field-vchar = VCHAR / obs-text
729
- *
730
- * checkInvalidHeaderChar() is currently designed to be inlinable by v8,
731
- * so take care when making changes to the implementation so that the source
732
- * code size does not exceed v8's default max_inlined_source_size setting.
733
- **/
734
- // prettier-ignore
735
- const validHdrChars = [
736
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, // 0 - 15
737
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31
738
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 32 - 47
739
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 48 - 63
740
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79
741
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 80 - 95
742
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111
743
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 112 - 127
744
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 128 ...
745
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
746
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
747
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
748
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
749
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
750
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
751
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // ... 255
752
- ];
753
- function checkInvalidHeaderChar(val) {
754
- val += "";
755
- if (val.length < 1)
756
- return false;
757
- if (!validHdrChars[val.charCodeAt(0)]) {
758
- debug('invalid header, index 0, char "%s"', val.charCodeAt(0));
759
- return true;
760
- }
761
- if (val.length < 2)
762
- return false;
763
- if (!validHdrChars[val.charCodeAt(1)]) {
764
- debug('invalid header, index 1, char "%s"', val.charCodeAt(1));
765
- return true;
766
- }
767
- if (val.length < 3)
768
- return false;
769
- if (!validHdrChars[val.charCodeAt(2)]) {
770
- debug('invalid header, index 2, char "%s"', val.charCodeAt(2));
771
- return true;
772
- }
773
- if (val.length < 4)
774
- return false;
775
- if (!validHdrChars[val.charCodeAt(3)]) {
776
- debug('invalid header, index 3, char "%s"', val.charCodeAt(3));
777
- return true;
778
- }
779
- for (let i = 4; i < val.length; ++i) {
780
- if (!validHdrChars[val.charCodeAt(i)]) {
781
- debug('invalid header, index "%i", char "%s"', i, val.charCodeAt(i));
782
- return true;
783
- }
784
- }
785
- return false;
786
- }