@ibgib/node-gib 0.0.9 → 0.0.13

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 (329) hide show
  1. package/dist/assumptions.respec.mjs.map +1 -1
  2. package/dist/email/aws/aws-sigv4-helper.d.mts +26 -0
  3. package/dist/email/aws/aws-sigv4-helper.d.mts.map +1 -0
  4. package/dist/email/aws/aws-sigv4-helper.mjs +94 -0
  5. package/dist/email/aws/aws-sigv4-helper.mjs.map +1 -0
  6. package/dist/email/aws/email-receiver-aws.d.mts +13 -0
  7. package/dist/email/aws/email-receiver-aws.d.mts.map +1 -0
  8. package/dist/email/aws/email-receiver-aws.mjs +97 -0
  9. package/dist/email/aws/email-receiver-aws.mjs.map +1 -0
  10. package/dist/email/aws/email-sender-aws.d.mts +23 -0
  11. package/dist/email/aws/email-sender-aws.d.mts.map +1 -0
  12. package/dist/email/aws/email-sender-aws.mjs +106 -0
  13. package/dist/email/aws/email-sender-aws.mjs.map +1 -0
  14. package/dist/email/aws/index.d.mts +7 -0
  15. package/dist/email/aws/index.d.mts.map +1 -0
  16. package/dist/email/aws/index.mjs +7 -0
  17. package/dist/email/aws/index.mjs.map +1 -0
  18. package/dist/email/email-constants.d.mts +15 -0
  19. package/dist/email/email-constants.d.mts.map +1 -0
  20. package/dist/email/email-constants.mjs +15 -0
  21. package/dist/email/email-constants.mjs.map +1 -0
  22. package/dist/email/email-helpers.d.mts +35 -0
  23. package/dist/email/email-helpers.d.mts.map +1 -0
  24. package/dist/email/email-helpers.mjs +144 -0
  25. package/dist/email/email-helpers.mjs.map +1 -0
  26. package/dist/email/email-receiver.d.mts +12 -0
  27. package/dist/email/email-receiver.d.mts.map +1 -0
  28. package/dist/email/email-receiver.mjs +23 -0
  29. package/dist/email/email-receiver.mjs.map +1 -0
  30. package/dist/email/email-sender.d.mts +13 -0
  31. package/dist/email/email-sender.d.mts.map +1 -0
  32. package/dist/email/email-sender.mjs +35 -0
  33. package/dist/email/email-sender.mjs.map +1 -0
  34. package/dist/email/email-service.respec.d.mts +2 -0
  35. package/dist/email/email-service.respec.d.mts.map +1 -0
  36. package/dist/email/email-service.respec.mjs +115 -0
  37. package/dist/email/email-service.respec.mjs.map +1 -0
  38. package/dist/email/email-types.d.mts +53 -0
  39. package/dist/email/email-types.d.mts.map +1 -0
  40. package/dist/email/email-types.mjs +5 -0
  41. package/dist/email/email-types.mjs.map +1 -0
  42. package/dist/email/index.d.mts +11 -0
  43. package/dist/email/index.d.mts.map +1 -0
  44. package/dist/email/index.mjs +11 -0
  45. package/dist/email/index.mjs.map +1 -0
  46. package/dist/email/mock/email-sender-mock.d.mts +20 -0
  47. package/dist/email/mock/email-sender-mock.d.mts.map +1 -0
  48. package/dist/email/mock/email-sender-mock.mjs +47 -0
  49. package/dist/email/mock/email-sender-mock.mjs.map +1 -0
  50. package/dist/email/mock/index.d.mts +5 -0
  51. package/dist/email/mock/index.d.mts.map +1 -0
  52. package/dist/email/mock/index.mjs +5 -0
  53. package/dist/email/mock/index.mjs.map +1 -0
  54. package/dist/index.d.mts +13 -0
  55. package/dist/index.d.mts.map +1 -0
  56. package/dist/index.mjs +14 -0
  57. package/dist/index.mjs.map +1 -0
  58. package/dist/respec-gib.node.mjs +3 -4
  59. package/dist/respec-gib.node.mjs.map +1 -1
  60. package/dist/serve-gib/bootstrap-helper.d.mts +27 -0
  61. package/dist/serve-gib/bootstrap-helper.d.mts.map +1 -0
  62. package/dist/serve-gib/bootstrap-helper.mjs +116 -0
  63. package/dist/serve-gib/bootstrap-helper.mjs.map +1 -0
  64. package/dist/serve-gib/bootstrap-helper.respec.d.mts +2 -0
  65. package/dist/serve-gib/bootstrap-helper.respec.d.mts.map +1 -0
  66. package/dist/serve-gib/bootstrap-helper.respec.mjs +85 -0
  67. package/dist/serve-gib/bootstrap-helper.respec.mjs.map +1 -0
  68. package/dist/serve-gib/constants.d.mts +2 -0
  69. package/dist/serve-gib/constants.d.mts.map +1 -0
  70. package/dist/serve-gib/constants.mjs +2 -0
  71. package/dist/serve-gib/constants.mjs.map +1 -0
  72. package/dist/serve-gib/handlers/api/debug/ws-echo.handler.d.mts +39 -0
  73. package/dist/serve-gib/handlers/api/debug/ws-echo.handler.d.mts.map +1 -0
  74. package/dist/serve-gib/handlers/api/debug/ws-echo.handler.mjs +99 -0
  75. package/dist/serve-gib/handlers/api/debug/ws-echo.handler.mjs.map +1 -0
  76. package/dist/serve-gib/handlers/api/email/email-inbound.handler.d.mts +25 -0
  77. package/dist/serve-gib/handlers/api/email/email-inbound.handler.d.mts.map +1 -0
  78. package/dist/serve-gib/handlers/api/email/email-inbound.handler.mjs +54 -0
  79. package/dist/serve-gib/handlers/api/email/email-inbound.handler.mjs.map +1 -0
  80. package/dist/serve-gib/handlers/api/email/email-outbound.handler.d.mts +24 -0
  81. package/dist/serve-gib/handlers/api/email/email-outbound.handler.d.mts.map +1 -0
  82. package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs +72 -0
  83. package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs.map +1 -0
  84. package/dist/serve-gib/handlers/api/health.handler.d.mts +14 -0
  85. package/dist/serve-gib/handlers/api/health.handler.d.mts.map +1 -0
  86. package/dist/serve-gib/handlers/api/health.handler.mjs +21 -0
  87. package/dist/serve-gib/handlers/api/health.handler.mjs.map +1 -0
  88. package/dist/serve-gib/handlers/api/health.respec.d.mts +2 -0
  89. package/dist/serve-gib/handlers/api/health.respec.d.mts.map +1 -0
  90. package/dist/serve-gib/handlers/api/health.respec.mjs +47 -0
  91. package/dist/serve-gib/handlers/api/health.respec.mjs.map +1 -0
  92. package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts +41 -0
  93. package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts.map +1 -0
  94. package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs +34 -0
  95. package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs.map +1 -0
  96. package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts +26 -0
  97. package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts.map +1 -0
  98. package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs +179 -0
  99. package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs.map +1 -0
  100. package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.d.mts +23 -0
  101. package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.d.mts.map +1 -0
  102. package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs +52 -0
  103. package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs.map +1 -0
  104. package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.d.mts +44 -0
  105. package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.d.mts.map +1 -0
  106. package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs +127 -0
  107. package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs.map +1 -0
  108. package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.d.mts +45 -0
  109. package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.d.mts.map +1 -0
  110. package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs +159 -0
  111. package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs.map +1 -0
  112. package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.d.mts +25 -0
  113. package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.d.mts.map +1 -0
  114. package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.mjs +183 -0
  115. package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.mjs.map +1 -0
  116. package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts +2 -0
  117. package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts.map +1 -0
  118. package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs +98 -0
  119. package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs.map +1 -0
  120. package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.d.mts +22 -0
  121. package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.d.mts.map +1 -0
  122. package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.mjs +19 -0
  123. package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.mjs.map +1 -0
  124. package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.d.mts +19 -0
  125. package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.d.mts.map +1 -0
  126. package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs +82 -0
  127. package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs.map +1 -0
  128. package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.d.mts +20 -0
  129. package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.d.mts.map +1 -0
  130. package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs +77 -0
  131. package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs.map +1 -0
  132. package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts +2 -0
  133. package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts.map +1 -0
  134. package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs +131 -0
  135. package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs.map +1 -0
  136. package/dist/serve-gib/handlers/api/keystone/sso-config.handler.d.mts +23 -0
  137. package/dist/serve-gib/handlers/api/keystone/sso-config.handler.d.mts.map +1 -0
  138. package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs +62 -0
  139. package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs.map +1 -0
  140. package/dist/serve-gib/handlers/api/keystone/sso-link.handler.d.mts +23 -0
  141. package/dist/serve-gib/handlers/api/keystone/sso-link.handler.d.mts.map +1 -0
  142. package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs +118 -0
  143. package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs.map +1 -0
  144. package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts +24 -0
  145. package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts.map +1 -0
  146. package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs +160 -0
  147. package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs.map +1 -0
  148. package/dist/serve-gib/handlers/error-handler.d.mts +14 -0
  149. package/dist/serve-gib/handlers/error-handler.d.mts.map +1 -0
  150. package/dist/serve-gib/handlers/error-handler.mjs +35 -0
  151. package/dist/serve-gib/handlers/error-handler.mjs.map +1 -0
  152. package/dist/serve-gib/handlers/handler-base.d.mts +129 -0
  153. package/dist/serve-gib/handlers/handler-base.d.mts.map +1 -0
  154. package/dist/serve-gib/handlers/handler-base.mjs +402 -0
  155. package/dist/serve-gib/handlers/handler-base.mjs.map +1 -0
  156. package/dist/serve-gib/handlers/static-handler.d.mts +17 -0
  157. package/dist/serve-gib/handlers/static-handler.d.mts.map +1 -0
  158. package/dist/serve-gib/handlers/static-handler.mjs +85 -0
  159. package/dist/serve-gib/handlers/static-handler.mjs.map +1 -0
  160. package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.d.mts +35 -0
  161. package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.d.mts.map +1 -0
  162. package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.mjs +219 -0
  163. package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.mjs.map +1 -0
  164. package/dist/serve-gib/handlers/ws/sync-upgrade.handler.d.mts +21 -0
  165. package/dist/serve-gib/handlers/ws/sync-upgrade.handler.d.mts.map +1 -0
  166. package/dist/serve-gib/handlers/ws/sync-upgrade.handler.mjs +21 -0
  167. package/dist/serve-gib/handlers/ws/sync-upgrade.handler.mjs.map +1 -0
  168. package/dist/serve-gib/handlers/ws/ws-helper.d.mts +29 -0
  169. package/dist/serve-gib/handlers/ws/ws-helper.d.mts.map +1 -0
  170. package/dist/serve-gib/handlers/ws/ws-helper.mjs +195 -0
  171. package/dist/serve-gib/handlers/ws/ws-helper.mjs.map +1 -0
  172. package/dist/serve-gib/handlers/ws/ws-types.d.mts +32 -0
  173. package/dist/serve-gib/handlers/ws/ws-types.d.mts.map +1 -0
  174. package/dist/serve-gib/handlers/ws/ws-types.mjs +2 -0
  175. package/dist/serve-gib/handlers/ws/ws-types.mjs.map +1 -0
  176. package/dist/serve-gib/identity-index/identity-index-constants.d.mts +4 -0
  177. package/dist/serve-gib/identity-index/identity-index-constants.d.mts.map +1 -0
  178. package/dist/serve-gib/identity-index/identity-index-constants.mjs +4 -0
  179. package/dist/serve-gib/identity-index/identity-index-constants.mjs.map +1 -0
  180. package/dist/serve-gib/identity-index/identity-index-helpers.d.mts +35 -0
  181. package/dist/serve-gib/identity-index/identity-index-helpers.d.mts.map +1 -0
  182. package/dist/serve-gib/identity-index/identity-index-helpers.mjs +69 -0
  183. package/dist/serve-gib/identity-index/identity-index-helpers.mjs.map +1 -0
  184. package/dist/serve-gib/identity-index/identity-index-service.d.mts +41 -0
  185. package/dist/serve-gib/identity-index/identity-index-service.d.mts.map +1 -0
  186. package/dist/serve-gib/identity-index/identity-index-service.mjs +86 -0
  187. package/dist/serve-gib/identity-index/identity-index-service.mjs.map +1 -0
  188. package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts +2 -0
  189. package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts.map +1 -0
  190. package/dist/serve-gib/identity-index/identity-index-service.respec.mjs +109 -0
  191. package/dist/serve-gib/identity-index/identity-index-service.respec.mjs.map +1 -0
  192. package/dist/serve-gib/identity-index/identity-index-types.d.mts +31 -0
  193. package/dist/serve-gib/identity-index/identity-index-types.d.mts.map +1 -0
  194. package/dist/serve-gib/identity-index/identity-index-types.mjs +2 -0
  195. package/dist/serve-gib/identity-index/identity-index-types.mjs.map +1 -0
  196. package/dist/serve-gib/index.d.mts +50 -0
  197. package/dist/serve-gib/index.d.mts.map +1 -0
  198. package/dist/serve-gib/index.mjs +80 -0
  199. package/dist/serve-gib/index.mjs.map +1 -0
  200. package/dist/serve-gib/keystone-schema-helpers.d.mts +50 -0
  201. package/dist/serve-gib/keystone-schema-helpers.d.mts.map +1 -0
  202. package/dist/serve-gib/keystone-schema-helpers.mjs +99 -0
  203. package/dist/serve-gib/keystone-schema-helpers.mjs.map +1 -0
  204. package/dist/serve-gib/keystone-schema-helpers.respec.d.mts +2 -0
  205. package/dist/serve-gib/keystone-schema-helpers.respec.d.mts.map +1 -0
  206. package/dist/serve-gib/keystone-schema-helpers.respec.mjs +68 -0
  207. package/dist/serve-gib/keystone-schema-helpers.respec.mjs.map +1 -0
  208. package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.d.mts +38 -0
  209. package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.d.mts.map +1 -0
  210. package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mjs +85 -0
  211. package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mjs.map +1 -0
  212. package/dist/serve-gib/path-constants.d.mts +102 -0
  213. package/dist/serve-gib/path-constants.d.mts.map +1 -0
  214. package/dist/serve-gib/path-constants.mjs +107 -0
  215. package/dist/serve-gib/path-constants.mjs.map +1 -0
  216. package/dist/serve-gib/path-helper.d.mts +23 -0
  217. package/dist/serve-gib/path-helper.d.mts.map +1 -0
  218. package/dist/serve-gib/path-helper.mjs +107 -0
  219. package/dist/serve-gib/path-helper.mjs.map +1 -0
  220. package/dist/serve-gib/path-helper.respec.d.mts +2 -0
  221. package/dist/serve-gib/path-helper.respec.d.mts.map +1 -0
  222. package/dist/serve-gib/path-helper.respec.mjs +83 -0
  223. package/dist/serve-gib/path-helper.respec.mjs.map +1 -0
  224. package/dist/serve-gib/serve-gib-helpers.d.mts +14 -0
  225. package/dist/serve-gib/serve-gib-helpers.d.mts.map +1 -0
  226. package/dist/serve-gib/serve-gib-helpers.mjs +30 -0
  227. package/dist/serve-gib/serve-gib-helpers.mjs.map +1 -0
  228. package/dist/serve-gib/serve-gib-v1.d.mts +40 -0
  229. package/dist/serve-gib/serve-gib-v1.d.mts.map +1 -0
  230. package/dist/serve-gib/serve-gib-v1.mjs +157 -0
  231. package/dist/serve-gib/serve-gib-v1.mjs.map +1 -0
  232. package/dist/serve-gib/serve-gib.respec.d.mts +2 -0
  233. package/dist/serve-gib/serve-gib.respec.d.mts.map +1 -0
  234. package/dist/serve-gib/serve-gib.respec.mjs +85 -0
  235. package/dist/serve-gib/serve-gib.respec.mjs.map +1 -0
  236. package/dist/serve-gib/server-constants.d.mts +3 -0
  237. package/dist/serve-gib/server-constants.d.mts.map +1 -0
  238. package/dist/serve-gib/server-constants.mjs +3 -0
  239. package/dist/serve-gib/server-constants.mjs.map +1 -0
  240. package/dist/serve-gib/types.d.mts +94 -0
  241. package/dist/serve-gib/types.d.mts.map +1 -0
  242. package/dist/serve-gib/types.mjs +7 -0
  243. package/dist/serve-gib/types.mjs.map +1 -0
  244. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mjs.map +1 -1
  245. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts +5 -0
  246. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts.map +1 -1
  247. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs +37 -0
  248. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs.map +1 -1
  249. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs +1 -1
  250. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs.map +1 -1
  251. package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.d.mts.map +1 -1
  252. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.d.mts.map +1 -1
  253. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.mjs.map +1 -1
  254. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.d.mts.map +1 -1
  255. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
  256. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
  257. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
  258. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
  259. package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +1 -1
  260. package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +1 -1
  261. package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +1 -1
  262. package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +1 -1
  263. package/package.json +2 -2
  264. package/src/email/aws/aws-sigv4-helper.mts +139 -0
  265. package/src/email/aws/email-receiver-aws.mts +107 -0
  266. package/src/email/aws/email-sender-aws.mts +130 -0
  267. package/src/email/aws/index.mts +7 -0
  268. package/src/email/email-constants.mts +18 -0
  269. package/src/email/email-helpers.mts +160 -0
  270. package/src/email/email-receiver.mts +29 -0
  271. package/src/email/email-sender.mts +44 -0
  272. package/src/email/email-service.respec.mts +134 -0
  273. package/src/email/email-types.mts +59 -0
  274. package/src/email/index.mts +11 -0
  275. package/src/email/mock/email-sender-mock.mts +54 -0
  276. package/src/email/mock/index.mts +5 -0
  277. package/src/index.mts +41 -0
  278. package/src/respec-gib.node.mts +4 -5
  279. package/src/serve-gib/CHANGELOG.md +34 -0
  280. package/src/serve-gib/README.md +77 -0
  281. package/src/serve-gib/SERVE_REFACTOR_IMPLEMENTATION.md +112 -0
  282. package/src/serve-gib/bootstrap-helper.mts +141 -0
  283. package/src/serve-gib/bootstrap-helper.respec.mts +100 -0
  284. package/src/serve-gib/constants.mts +1 -0
  285. package/src/serve-gib/handlers/api/debug/ws-echo.handler.mts +105 -0
  286. package/src/serve-gib/handlers/api/email/email-inbound.handler.mts +67 -0
  287. package/src/serve-gib/handlers/api/email/email-outbound.handler.mts +82 -0
  288. package/src/serve-gib/handlers/api/health.handler.mts +23 -0
  289. package/src/serve-gib/handlers/api/health.respec.mts +51 -0
  290. package/src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts +49 -0
  291. package/src/serve-gib/handlers/api/ibgib/ibgib.handler.mts +176 -0
  292. package/src/serve-gib/handlers/api/keystone/keystone-check-email.handler.mts +60 -0
  293. package/src/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts +150 -0
  294. package/src/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts +171 -0
  295. package/src/serve-gib/handlers/api/keystone/keystone-get.handler.mts +198 -0
  296. package/src/serve-gib/handlers/api/keystone/keystone-get.respec.mts +106 -0
  297. package/src/serve-gib/handlers/api/keystone/keystone-handler-types.mts +29 -0
  298. package/src/serve-gib/handlers/api/keystone/keystone-lookup.handler.mts +95 -0
  299. package/src/serve-gib/handlers/api/keystone/keystone-post.handler.mts +75 -0
  300. package/src/serve-gib/handlers/api/keystone/keystone-post.respec.mts +130 -0
  301. package/src/serve-gib/handlers/api/keystone/sso-config.handler.mts +66 -0
  302. package/src/serve-gib/handlers/api/keystone/sso-link.handler.mts +140 -0
  303. package/src/serve-gib/handlers/api/keystone/sso-login.handler.mts +190 -0
  304. package/src/serve-gib/handlers/error-handler.mts +36 -0
  305. package/src/serve-gib/handlers/handler-base.mts +383 -0
  306. package/src/serve-gib/handlers/static-handler.mts +83 -0
  307. package/src/serve-gib/handlers/ws/sync-upgrade-handler-base.mts +233 -0
  308. package/src/serve-gib/handlers/ws/sync-upgrade.handler.mts +24 -0
  309. package/src/serve-gib/handlers/ws/ws-helper.mts +216 -0
  310. package/src/serve-gib/handlers/ws/ws-types.mts +53 -0
  311. package/src/serve-gib/identity-index/identity-index-constants.mts +3 -0
  312. package/src/serve-gib/identity-index/identity-index-helpers.mts +85 -0
  313. package/src/serve-gib/identity-index/identity-index-service.mts +109 -0
  314. package/src/serve-gib/identity-index/identity-index-service.respec.mts +135 -0
  315. package/src/serve-gib/identity-index/identity-index-types.mts +33 -0
  316. package/src/serve-gib/index.mts +92 -0
  317. package/src/serve-gib/keystone-schema-helpers.mts +120 -0
  318. package/src/serve-gib/keystone-schema-helpers.respec.mts +85 -0
  319. package/src/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mts +109 -0
  320. package/src/serve-gib/path-constants.mts +119 -0
  321. package/src/serve-gib/path-helper.mts +101 -0
  322. package/src/serve-gib/path-helper.respec.mts +99 -0
  323. package/src/serve-gib/serve-gib-helpers.mts +32 -0
  324. package/src/serve-gib/serve-gib-v1.mts +172 -0
  325. package/src/serve-gib/serve-gib.respec.mts +90 -0
  326. package/src/serve-gib/server-constants.mts +2 -0
  327. package/src/serve-gib/types.mts +102 -0
  328. package/src/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mts +41 -0
  329. package/src/witness/space/node-filesystem-space/node-filesystem-space-helper.mts +1 -1
@@ -0,0 +1,219 @@
1
+ /**
2
+ * @module handlers/ws/sync-upgrade-handler-base
3
+ *
4
+ * Highly generic, reusable base class in serve-gib for handling WebSocket upgrades,
5
+ * mapping socket streams to isomorphic SyncPeers, and checking upfront connect handshakes.
6
+ */
7
+ import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
8
+ import { getIbGibAddr, getIbAndGib } from '@ibgib/ts-gib/dist/helper.mjs';
9
+ import { validateIbGibAddr } from '@ibgib/ts-gib/dist/V1/validate-helper.mjs';
10
+ import { parseKeystoneIb } from '@ibgib/core-gib/dist/keystone/keystone-helpers.mjs';
11
+ import { SyncPeerWebSocketReceiver_V1 } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs';
12
+ import { validateUpfrontConnect } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs';
13
+ import { SyncSagaCoordinator } from '@ibgib/core-gib/dist/sync/sync-saga-coordinator.mjs';
14
+ import { GLOBAL_LOG_A_LOT } from '../../constants.mjs';
15
+ import { encodeTextFrame, encodeCloseFrame, performConnect, WebSocketFrameDecoder } from './ws-helper.mjs';
16
+ import { ServeGibHandlerWithMetaspaceBase } from '../handler-base.mjs';
17
+ const logalot = GLOBAL_LOG_A_LOT;
18
+ /**
19
+ * Reusable server-side upgrade handler plumbing.
20
+ * Binds raw node socket streams to platform-agnostic receiver peers.
21
+ */
22
+ export class SyncUpgradeHandlerBase extends ServeGibHandlerWithMetaspaceBase {
23
+ lc = `[${SyncUpgradeHandlerBase.name}]`;
24
+ method = 'GET';
25
+ /**
26
+ * Entry point for WebSocket upgrades.
27
+ * Orchestrates the upgrade, upfront validation, and registers the Receiver peer.
28
+ */
29
+ async handleUpgrade(reqCtx, socket, head) {
30
+ const lc_fn = `${this.lc}[handleUpgrade]`;
31
+ try {
32
+ if (logalot) {
33
+ console.log(`${lc_fn} starting...`);
34
+ }
35
+ // 1. Initial routing checks
36
+ if (!this.canHandleRoute(reqCtx)) {
37
+ return false;
38
+ }
39
+ const ctx = reqCtx;
40
+ // Extract route parameters & query parameters
41
+ ctx.params = await this.parseParams(ctx);
42
+ ctx.queryParams = await this.parseQueryParams(ctx);
43
+ // 2. Bootstrap multi-tenant domain metaspace context
44
+ await this.initConcreteContext(ctx);
45
+ const metaspace = ctx.metaspace;
46
+ const space = await metaspace.getLocalUserSpace({ lock: false });
47
+ if (!space) {
48
+ throw new Error("No default local user space found.");
49
+ }
50
+ // 3. Upfront picket-fence pre-filter validation
51
+ const queryParams = ctx.queryParams;
52
+ await validateUpfrontConnect({
53
+ sAddr: queryParams.sAddr,
54
+ solution: queryParams.solution,
55
+ space,
56
+ metaspace
57
+ });
58
+ // 4. Perform standard RFC 6455 Connect H andshake Upgrade
59
+ const ok = performConnect(ctx, socket);
60
+ if (!ok) {
61
+ return true;
62
+ }
63
+ // 5. Instantiate and initialize isomorphic WebSocket Receiver Peer
64
+ const receiverPeer = new SyncPeerWebSocketReceiver_V1({
65
+ classname: 'SyncPeerWebSocketReceiver_V1'
66
+ });
67
+ const localCoordinator = new SyncSagaCoordinator();
68
+ await receiverPeer.initializeOpts({
69
+ localCoordinator,
70
+ localMetaspace: metaspace,
71
+ localSpace: space,
72
+ sagaId: undefined, // Resolved dynamically inside runtime turns
73
+ });
74
+ // Handle raw socket errors to prevent unhandled 'error' crash (e.g. ECONNRESET)
75
+ socket.on('error', (err) => {
76
+ if (logalot) {
77
+ console.warn(`[SyncUpgradeHandlerBase] Socket error: ${extractErrorMsg(err)}`);
78
+ }
79
+ try {
80
+ socket.destroy();
81
+ }
82
+ catch (e) {
83
+ // ignore
84
+ }
85
+ });
86
+ // 6. Map standard Node.js Socket to platform-agnostic IWebSocketWrapper
87
+ const socketWrapper = {
88
+ send(data) {
89
+ if (socket.writable) {
90
+ try {
91
+ socket.write(encodeTextFrame(data));
92
+ }
93
+ catch (e) {
94
+ if (logalot) {
95
+ console.warn(`[SyncUpgradeHandlerBase] failed to write message frame: ${extractErrorMsg(e)}`);
96
+ }
97
+ }
98
+ }
99
+ },
100
+ onMessage(callback) {
101
+ const decoder = new WebSocketFrameDecoder();
102
+ socket.on('data', (buf) => {
103
+ try {
104
+ decoder.addChunk(buf);
105
+ let frameText = decoder.nextFrame();
106
+ while (frameText !== null) {
107
+ callback(frameText);
108
+ frameText = decoder.nextFrame();
109
+ }
110
+ }
111
+ catch (error) {
112
+ if (logalot) {
113
+ console.warn(`[SyncUpgradeHandlerBase] closing connection due to decoder error: ${extractErrorMsg(error)}`);
114
+ }
115
+ if (socket.writable) {
116
+ try {
117
+ socket.write(encodeCloseFrame());
118
+ }
119
+ catch (e) {
120
+ // ignore
121
+ }
122
+ }
123
+ socket.end();
124
+ }
125
+ });
126
+ },
127
+ onClose(callback) {
128
+ socket.on('close', callback);
129
+ },
130
+ close() {
131
+ if (socket.writable) {
132
+ try {
133
+ socket.write(encodeCloseFrame());
134
+ }
135
+ catch (e) {
136
+ // ignore
137
+ }
138
+ }
139
+ socket.end();
140
+ }
141
+ };
142
+ // Bind peer receiver to handle all socket messages (connect & runtime)
143
+ await receiverPeer.bindSocket(socketWrapper);
144
+ return true;
145
+ }
146
+ catch (error) {
147
+ console.error(`${lc_fn} upgrade failure: ${extractErrorMsg(error)}`);
148
+ socket.destroy();
149
+ return true;
150
+ }
151
+ }
152
+ async parseParamsImpl(reqCtx) {
153
+ const match = reqCtx.pathname.match(this.regex);
154
+ if (!match) {
155
+ return undefined;
156
+ }
157
+ const domainIb = decodeURIComponent(match[1]);
158
+ const domainGib = decodeURIComponent(match[2]);
159
+ const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
160
+ return {
161
+ domainInfo: this.getDomainInfo({ domainAddr })
162
+ };
163
+ }
164
+ async parseQueryParams(reqCtx) {
165
+ const sAddrRaw = reqCtx.url.searchParams.get('sAddr');
166
+ const sAddr = sAddrRaw ? decodeURIComponent(sAddrRaw) : undefined;
167
+ const solution = reqCtx.url.searchParams.get('solution') ?? undefined;
168
+ const queryParams = {};
169
+ if (sAddr !== undefined) {
170
+ queryParams.sAddr = sAddr;
171
+ }
172
+ if (solution !== undefined) {
173
+ queryParams.solution = solution;
174
+ }
175
+ if (Object.keys(queryParams).length > 0) {
176
+ const validationErrors = await this.validateQueryParams({ queryParams });
177
+ if (validationErrors.length === 0) {
178
+ return queryParams;
179
+ }
180
+ else {
181
+ throw new Error(`invalid query params: ${validationErrors.join(', ')}`);
182
+ }
183
+ }
184
+ return undefined;
185
+ }
186
+ async validateQueryParams({ queryParams }) {
187
+ const errors = [];
188
+ if (!queryParams) {
189
+ return ["Missing query parameters: sAddr, solution"];
190
+ }
191
+ if (!queryParams.sAddr) {
192
+ errors.push("Missing sAddr");
193
+ }
194
+ else {
195
+ try {
196
+ const decodedSAddr = queryParams.sAddr;
197
+ const addrErrors = validateIbGibAddr({ addr: decodedSAddr }) ?? [];
198
+ if (addrErrors.length > 0) {
199
+ errors.push(`Invalid sAddr: ${addrErrors.join(', ')}`);
200
+ }
201
+ else {
202
+ const { ib } = getIbAndGib({ ibGibAddr: decodedSAddr });
203
+ parseKeystoneIb({ ib });
204
+ }
205
+ }
206
+ catch (error) {
207
+ errors.push(`Invalid sAddr: ${extractErrorMsg(error)}`);
208
+ }
209
+ }
210
+ if (!queryParams.solution) {
211
+ errors.push("Missing solution");
212
+ }
213
+ return errors;
214
+ }
215
+ async handleRouteImpl(reqCtx) {
216
+ return this.error(400, 'WS endpoint requires upgrade');
217
+ }
218
+ }
219
+ //# sourceMappingURL=sync-upgrade-handler-base.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-upgrade-handler-base.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/sync-upgrade-handler-base.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module handlers/ws/sync-upgrade.handler
3
+ *
4
+ * Concrete implementation of the serve-gib WebSocket Sync Peer wrapper.
5
+ * Decoupled from core protocols by extending SyncUpgradeHandlerBase.
6
+ */
7
+ import { SyncUpgradeHandlerBase } from './sync-upgrade-handler-base.mjs';
8
+ import { ServeGibHttpMethod } from '../../types.mjs';
9
+ /**
10
+ * SyncChannelHandler manages the WebSocket Connect and Transport channel.
11
+ * Delegates 100% of connect handshake, signature verify, and sync turns to
12
+ * SyncPeerWebSocketReceiver_V1.
13
+ */
14
+ export declare class SyncChannelHandler extends SyncUpgradeHandlerBase {
15
+ protected lc: string;
16
+ protected method: ServeGibHttpMethod;
17
+ protected regex: RegExp;
18
+ }
19
+ /** Keep naming backward-compatible for server registrations */
20
+ export declare const SyncUpgradeHandler: typeof SyncChannelHandler;
21
+ //# sourceMappingURL=sync-upgrade.handler.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-upgrade.handler.d.mts","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/sync-upgrade.handler.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,sBAAsB;IAC1D,UAAmB,EAAE,EAAE,MAAM,CAAkC;IAC/D,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,EAAE,MAAM,CAA4B;CAC/D;AAED,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,2BAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module handlers/ws/sync-upgrade.handler
3
+ *
4
+ * Concrete implementation of the serve-gib WebSocket Sync Peer wrapper.
5
+ * Decoupled from core protocols by extending SyncUpgradeHandlerBase.
6
+ */
7
+ import { SyncUpgradeHandlerBase } from './sync-upgrade-handler-base.mjs';
8
+ import { API_PATH_REGEXES } from '../../path-constants.mjs';
9
+ /**
10
+ * SyncChannelHandler manages the WebSocket Connect and Transport channel.
11
+ * Delegates 100% of connect handshake, signature verify, and sync turns to
12
+ * SyncPeerWebSocketReceiver_V1.
13
+ */
14
+ export class SyncChannelHandler extends SyncUpgradeHandlerBase {
15
+ lc = `[${SyncChannelHandler.name}]`;
16
+ method = 'GET';
17
+ regex = API_PATH_REGEXES.SYNC_WS;
18
+ }
19
+ /** Keep naming backward-compatible for server registrations */
20
+ export const SyncUpgradeHandler = SyncChannelHandler;
21
+ //# sourceMappingURL=sync-upgrade.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-upgrade.handler.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/sync-upgrade.handler.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,sBAAsB;IACvC,EAAE,GAAW,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC;IAC5C,MAAM,GAAuB,KAAK,CAAC;IACnC,KAAK,GAAW,gBAAgB,CAAC,OAAO,CAAC;CAC/D;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { IncomingMessage } from 'node:http';
2
+ import { Socket } from 'node:net';
3
+ /** Encodes a UTF-8 string as a minimal unmasked WebSocket text frame. */
4
+ export declare function encodeTextFrame(text: string): Buffer;
5
+ /** Decodes a masked client WebSocket text frame. Returns null for non-text or incomplete frames. */
6
+ export declare function decodeTextFrame(data: Buffer): string | null;
7
+ /** Encodes a WebSocket close frame (opcode 0x8) with optional status code. */
8
+ export declare function encodeCloseFrame(code?: number): Buffer;
9
+ /** Performs the RFC 6455 opening connect handshake. */
10
+ export declare function performConnect(req: IncomingMessage, socket: Socket): boolean;
11
+ /**
12
+ * Stateful WebSocket text frame decoder that aggregates incoming TCP chunks
13
+ * and decodes full RFC 6455 frames.
14
+ */
15
+ export declare class WebSocketFrameDecoder {
16
+ private buffer;
17
+ private fragments;
18
+ /** Adds new data chunk from TCP socket. */
19
+ addChunk(chunk: Buffer): void;
20
+ /**
21
+ * Parses the next complete text message, assembling fragments if necessary.
22
+ * Returns:
23
+ * - `string` if a complete text message was assembled/decoded (and consumes those bytes).
24
+ * - `null` if the buffer is incomplete or we need more data.
25
+ * - `throws Error` on protocol errors or close frames.
26
+ */
27
+ nextFrame(): string | null;
28
+ }
29
+ //# sourceMappingURL=ws-helper.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-helper.d.mts","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/ws-helper.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlC,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoC3D;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,SAAO,GAAG,MAAM,CAMpD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CA4B5E;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,SAAS,CAAgB;IAEjC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED;;;;;;OAMG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI,CAkFzB;CACJ"}
@@ -0,0 +1,195 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
3
+ const WS_MAGIC = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
4
+ /** Encodes a UTF-8 string as a minimal unmasked WebSocket text frame. */
5
+ export function encodeTextFrame(text) {
6
+ const payload = Buffer.from(text, 'utf-8');
7
+ const payloadLen = payload.length;
8
+ let header;
9
+ if (payloadLen < 126) {
10
+ header = Buffer.alloc(2);
11
+ header[0] = 0x81; // FIN + opcode 1 (text)
12
+ header[1] = payloadLen;
13
+ }
14
+ else if (payloadLen < 65536) {
15
+ header = Buffer.alloc(4);
16
+ header[0] = 0x81;
17
+ header[1] = 126;
18
+ header.writeUInt16BE(payloadLen, 2);
19
+ }
20
+ else {
21
+ header = Buffer.alloc(10);
22
+ header[0] = 0x81;
23
+ header[1] = 127;
24
+ header.writeBigUInt64BE(BigInt(payloadLen), 2);
25
+ }
26
+ return Buffer.concat([header, payload]);
27
+ }
28
+ /** Decodes a masked client WebSocket text frame. Returns null for non-text or incomplete frames. */
29
+ export function decodeTextFrame(data) {
30
+ try {
31
+ if (data.length < 2) {
32
+ return null;
33
+ }
34
+ const opcode = data[0] & 0x0f;
35
+ if (opcode === 0x8) {
36
+ return null;
37
+ } // Close
38
+ if (opcode !== 0x1) {
39
+ return null;
40
+ } // Text only
41
+ const masked = (data[1] & 0x80) !== 0;
42
+ let payloadStart = 2;
43
+ let payloadLen = data[1] & 0x7f;
44
+ if (payloadLen === 126) {
45
+ payloadLen = data.readUInt16BE(2);
46
+ payloadStart = 4;
47
+ }
48
+ else if (payloadLen === 127) {
49
+ payloadLen = Number(data.readBigUInt64BE(2));
50
+ payloadStart = 10;
51
+ }
52
+ if (masked) {
53
+ const maskStart = payloadStart;
54
+ payloadStart += 4;
55
+ const mask = data.slice(maskStart, maskStart + 4);
56
+ const payload = data.slice(payloadStart, payloadStart + payloadLen);
57
+ for (let i = 0; i < payload.length; i++) {
58
+ payload[i] ^= mask[i % 4];
59
+ }
60
+ return payload.toString('utf-8');
61
+ }
62
+ return data.slice(payloadStart, payloadStart + payloadLen).toString('utf-8');
63
+ }
64
+ catch (error) {
65
+ console.error(`[ws-helper] decode error: ${extractErrorMsg(error)}`);
66
+ return null;
67
+ }
68
+ }
69
+ /** Encodes a WebSocket close frame (opcode 0x8) with optional status code. */
70
+ export function encodeCloseFrame(code = 1000) {
71
+ const frame = Buffer.alloc(4);
72
+ frame[0] = 0x88;
73
+ frame[1] = 2;
74
+ frame.writeUInt16BE(code, 2);
75
+ return frame;
76
+ }
77
+ /** Performs the RFC 6455 opening connect handshake. */
78
+ export function performConnect(req, socket) {
79
+ try {
80
+ const key = req.headers['sec-websocket-key'];
81
+ if (!key) {
82
+ socket.write('HTTP/1.1 400 Bad Request\r\n\r\nMissing Sec-WebSocket-Key');
83
+ socket.destroy();
84
+ return false;
85
+ }
86
+ const acceptKey = createHash('sha1')
87
+ .update(key + WS_MAGIC)
88
+ .digest('base64');
89
+ const response = [
90
+ 'HTTP/1.1 101 Switching Protocols',
91
+ 'Upgrade: websocket',
92
+ 'Connection: Upgrade',
93
+ `Sec-WebSocket-Accept: ${acceptKey}`,
94
+ '\r\n',
95
+ ].join('\r\n');
96
+ socket.write(response);
97
+ return true;
98
+ }
99
+ catch (error) {
100
+ console.error(`[ws-helper] connect error: ${extractErrorMsg(error)}`);
101
+ socket.destroy();
102
+ return false;
103
+ }
104
+ }
105
+ /**
106
+ * Stateful WebSocket text frame decoder that aggregates incoming TCP chunks
107
+ * and decodes full RFC 6455 frames.
108
+ */
109
+ export class WebSocketFrameDecoder {
110
+ buffer = Buffer.alloc(0);
111
+ fragments = [];
112
+ /** Adds new data chunk from TCP socket. */
113
+ addChunk(chunk) {
114
+ this.buffer = Buffer.concat([this.buffer, chunk]);
115
+ }
116
+ /**
117
+ * Parses the next complete text message, assembling fragments if necessary.
118
+ * Returns:
119
+ * - `string` if a complete text message was assembled/decoded (and consumes those bytes).
120
+ * - `null` if the buffer is incomplete or we need more data.
121
+ * - `throws Error` on protocol errors or close frames.
122
+ */
123
+ nextFrame() {
124
+ while (true) {
125
+ if (this.buffer.length < 2) {
126
+ return null;
127
+ }
128
+ const firstByte = this.buffer[0];
129
+ const fin = (firstByte & 0x80) !== 0;
130
+ const opcode = firstByte & 0x0f;
131
+ if (opcode === 0x8) {
132
+ throw new Error('Close frame received');
133
+ }
134
+ const isContinuation = opcode === 0x0;
135
+ const isText = opcode === 0x1;
136
+ if (!isContinuation && !isText) {
137
+ throw new Error(`Unsupported WebSocket opcode: 0x${opcode.toString(16)}`);
138
+ }
139
+ // Protocol checks
140
+ if (isContinuation && this.fragments.length === 0) {
141
+ throw new Error('Continuation frame received without an active message.');
142
+ }
143
+ if (isText && this.fragments.length > 0) {
144
+ throw new Error('New message frame received before previous one completed.');
145
+ }
146
+ const secondByte = this.buffer[1];
147
+ const masked = (secondByte & 0x80) !== 0;
148
+ let payloadLen = secondByte & 0x7f;
149
+ let headerLen = 2;
150
+ if (payloadLen === 126) {
151
+ if (this.buffer.length < 4) {
152
+ return null;
153
+ }
154
+ payloadLen = this.buffer.readUInt16BE(2);
155
+ headerLen = 4;
156
+ }
157
+ else if (payloadLen === 127) {
158
+ if (this.buffer.length < 10) {
159
+ return null;
160
+ }
161
+ payloadLen = Number(this.buffer.readBigUInt64BE(2));
162
+ headerLen = 10;
163
+ }
164
+ const maskLen = masked ? 4 : 0;
165
+ const totalFrameLen = headerLen + maskLen + payloadLen;
166
+ if (this.buffer.length < totalFrameLen) {
167
+ return null;
168
+ }
169
+ // Consume frame from buffer
170
+ const frameData = this.buffer.subarray(0, totalFrameLen);
171
+ this.buffer = this.buffer.subarray(totalFrameLen);
172
+ let payloadStart = headerLen;
173
+ let payload;
174
+ if (masked) {
175
+ const mask = frameData.subarray(payloadStart, payloadStart + 4);
176
+ payloadStart += 4;
177
+ payload = Buffer.from(frameData.subarray(payloadStart));
178
+ for (let i = 0; i < payload.length; i++) {
179
+ payload[i] ^= mask[i % 4];
180
+ }
181
+ }
182
+ else {
183
+ payload = Buffer.from(frameData.subarray(payloadStart));
184
+ }
185
+ this.fragments.push(payload);
186
+ if (fin) {
187
+ const completePayload = Buffer.concat(this.fragments);
188
+ this.fragments = [];
189
+ return completePayload.toString('utf-8');
190
+ }
191
+ // Loop again to process any subsequent frames already inside the TCP buffer
192
+ }
193
+ }
194
+ }
195
+ //# sourceMappingURL=ws-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-helper.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/ws-helper.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { KeystoneIbGib_V1 } from "@ibgib/core-gib/dist/keystone/keystone-types.mjs";
2
+ export type HandshakeMessageType = 'auth-challenge-init' | 'auth-init' | 'auth-challenge' | 'auth-proof' | 'auth-ok' | 'auth-fail';
3
+ export interface HandshakeMessageBase {
4
+ type: HandshakeMessageType;
5
+ }
6
+ export interface AuthChallengeInitMessage extends HandshakeMessageBase {
7
+ type: 'auth-challenge-init';
8
+ challengeUuid: string;
9
+ }
10
+ export interface AuthInitMessage extends HandshakeMessageBase {
11
+ type: 'auth-init';
12
+ sAddr: string;
13
+ }
14
+ export interface AuthChallengeMessage extends HandshakeMessageBase {
15
+ type: 'auth-challenge';
16
+ challengeUuid: string;
17
+ demandedIds: string[];
18
+ }
19
+ export interface AuthProofMessage extends HandshakeMessageBase {
20
+ type: 'auth-proof';
21
+ proofFrame: KeystoneIbGib_V1;
22
+ }
23
+ export interface AuthOkMessage extends HandshakeMessageBase {
24
+ type: 'auth-ok';
25
+ }
26
+ export interface AuthFailMessage extends HandshakeMessageBase {
27
+ type: 'auth-fail';
28
+ message: string;
29
+ errors?: string[];
30
+ }
31
+ export type HandshakeMessage = AuthChallengeInitMessage | AuthInitMessage | AuthChallengeMessage | AuthProofMessage | AuthOkMessage | AuthFailMessage;
32
+ //# sourceMappingURL=ws-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-types.d.mts","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/ws-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAEpF,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IAClE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IACzD,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D,IAAI,EAAE,gBAAgB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC1D,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,aAAc,SAAQ,oBAAoB;IACvD,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IACzD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,GACb,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ws-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-types.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/ws/ws-types.mts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare const DEFAULT_IDENTITY_INDEX_DIR_NAME = "identity_index";
2
+ export declare const DEFAULT_EMAIL_HASHES_SUBDIR = "email_hashes";
3
+ export declare const DEFAULT_IDENTITY_INDEX_SALT = "ibgib_identity_salt_default_v1";
4
+ //# sourceMappingURL=identity-index-constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-index-constants.d.mts","sourceRoot":"","sources":["../../../src/serve-gib/identity-index/identity-index-constants.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAC1D,eAAO,MAAM,2BAA2B,mCAAmC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const DEFAULT_IDENTITY_INDEX_DIR_NAME = 'identity_index';
2
+ export const DEFAULT_EMAIL_HASHES_SUBDIR = 'email_hashes';
3
+ export const DEFAULT_IDENTITY_INDEX_SALT = 'ibgib_identity_salt_default_v1';
4
+ //# sourceMappingURL=identity-index-constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-index-constants.mjs","sourceRoot":"","sources":["../../../src/serve-gib/identity-index/identity-index-constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,gCAAgC,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Validates an email address against length constraints and KEYSTONE_EMAIL_REGEXP.
3
+ * Returns an array of error message strings (empty `[]` if valid).
4
+ */
5
+ export declare function validateEmail({ email }: {
6
+ email: any;
7
+ }): string[];
8
+ /**
9
+ * Normalizes an email string (lowercased and trimmed).
10
+ */
11
+ export declare function normalizeEmail(email: string): string;
12
+ /**
13
+ * Computes SHA256 privacy hash of an email string:
14
+ * `SHA256(normalizeEmail(email) + salt)` using `hash` from `@ibgib/helper-gib`.
15
+ */
16
+ export declare function getIdentityEmailHash({ email, salt, }: {
17
+ email: string;
18
+ salt?: string;
19
+ }): Promise<string>;
20
+ /**
21
+ * Returns the sharded directory path and truncated filename for an email hash.
22
+ *
23
+ * Full Hash (e.g. 64 chars): `abcdef12345...`
24
+ * Subfolders: `ab/cd/ef`
25
+ * Truncated filename: `12345....json` (strips the leading 6 characters that form the 3 subfolder pairs).
26
+ */
27
+ export declare function getShardedIndexPath({ baseDir, emailHash, }: {
28
+ baseDir: string;
29
+ emailHash: string;
30
+ }): {
31
+ folderPath: string;
32
+ filePath: string;
33
+ filename: string;
34
+ };
35
+ //# sourceMappingURL=identity-index-helpers.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-index-helpers.d.mts","sourceRoot":"","sources":["../../../src/serve-gib/identity-index/identity-index-helpers.mts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,GAAG,MAAM,EAAE,CAiBjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EACvC,KAAK,EACL,IAAqE,GACxE,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,OAAO,EACP,SAAS,GACZ,EAAE;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAe7D"}