harper 5.1.20 → 5.2.0-alpha.5

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 (395) hide show
  1. package/agent/operations.ts +13 -16
  2. package/components/Application.ts +188 -7
  3. package/components/ApplicationScope.ts +3 -0
  4. package/components/Scope.ts +12 -0
  5. package/components/anthropic/index.ts +9 -2
  6. package/components/bedrock/index.ts +25 -2
  7. package/components/componentLoader.ts +56 -7
  8. package/components/componentSecrets.ts +451 -0
  9. package/components/deploymentRecorder.ts +7 -1
  10. package/components/mcp/adapters/fastify.ts +3 -0
  11. package/components/mcp/adapters/harperHttp.ts +3 -0
  12. package/components/mcp/audit.ts +21 -6
  13. package/components/mcp/customResourceRegistry.ts +17 -38
  14. package/components/mcp/listChanged.ts +37 -20
  15. package/components/mcp/quota.ts +145 -0
  16. package/components/mcp/rateLimit.ts +152 -14
  17. package/components/mcp/resources.ts +2 -4
  18. package/components/mcp/toolRegistry.ts +73 -4
  19. package/components/mcp/tools/application.ts +77 -8
  20. package/components/mcp/tools/operations.ts +106 -36
  21. package/components/mcp/tools/schemas/operationDescriptions.ts +4 -4
  22. package/components/mcp/tools/schemas/operations.ts +5 -0
  23. package/components/mcp/transport.ts +55 -4
  24. package/components/ollama/index.ts +6 -2
  25. package/components/openai/index.ts +9 -2
  26. package/components/operations.js +204 -10
  27. package/components/operationsValidation.js +173 -0
  28. package/components/secretOperations.ts +498 -0
  29. package/config/configUtils.ts +25 -1
  30. package/config-app.schema.json +81 -0
  31. package/config-root.schema.json +8 -1
  32. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
  33. package/dataLayer/readAuditLog.ts +14 -0
  34. package/dataLayer/schemaDescribe.ts +1 -0
  35. package/dist/agent/operations.d.ts +7 -4
  36. package/dist/agent/operations.js +13 -15
  37. package/dist/agent/operations.js.map +1 -1
  38. package/dist/components/Application.d.ts +25 -2
  39. package/dist/components/Application.js +166 -7
  40. package/dist/components/Application.js.map +1 -1
  41. package/dist/components/ApplicationScope.d.ts +2 -0
  42. package/dist/components/ApplicationScope.js +3 -0
  43. package/dist/components/ApplicationScope.js.map +1 -1
  44. package/dist/components/Scope.d.ts +8 -0
  45. package/dist/components/Scope.js +11 -0
  46. package/dist/components/Scope.js.map +1 -1
  47. package/dist/components/anthropic/index.d.ts +4 -1
  48. package/dist/components/anthropic/index.js +4 -2
  49. package/dist/components/anthropic/index.js.map +1 -1
  50. package/dist/components/bedrock/index.d.ts +4 -1
  51. package/dist/components/bedrock/index.js +22 -2
  52. package/dist/components/bedrock/index.js.map +1 -1
  53. package/dist/components/componentLoader.d.ts +2 -0
  54. package/dist/components/componentLoader.js +52 -10
  55. package/dist/components/componentLoader.js.map +1 -1
  56. package/dist/components/componentSecrets.d.ts +63 -0
  57. package/dist/components/componentSecrets.js +405 -0
  58. package/dist/components/componentSecrets.js.map +1 -0
  59. package/dist/components/deploymentRecorder.d.ts +3 -0
  60. package/dist/components/deploymentRecorder.js +4 -3
  61. package/dist/components/deploymentRecorder.js.map +1 -1
  62. package/dist/components/mcp/adapters/fastify.d.ts +2 -0
  63. package/dist/components/mcp/adapters/fastify.js +1 -0
  64. package/dist/components/mcp/adapters/fastify.js.map +1 -1
  65. package/dist/components/mcp/adapters/harperHttp.d.ts +2 -0
  66. package/dist/components/mcp/adapters/harperHttp.js +1 -0
  67. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  68. package/dist/components/mcp/audit.d.ts +2 -2
  69. package/dist/components/mcp/audit.js +20 -5
  70. package/dist/components/mcp/audit.js.map +1 -1
  71. package/dist/components/mcp/customResourceRegistry.d.ts +5 -12
  72. package/dist/components/mcp/customResourceRegistry.js +15 -30
  73. package/dist/components/mcp/customResourceRegistry.js.map +1 -1
  74. package/dist/components/mcp/listChanged.d.ts +7 -2
  75. package/dist/components/mcp/listChanged.js +28 -0
  76. package/dist/components/mcp/listChanged.js.map +1 -1
  77. package/dist/components/mcp/quota.d.ts +31 -0
  78. package/dist/components/mcp/quota.js +155 -0
  79. package/dist/components/mcp/quota.js.map +1 -0
  80. package/dist/components/mcp/rateLimit.d.ts +19 -3
  81. package/dist/components/mcp/rateLimit.js +129 -13
  82. package/dist/components/mcp/rateLimit.js.map +1 -1
  83. package/dist/components/mcp/resources.js.map +1 -1
  84. package/dist/components/mcp/toolRegistry.d.ts +39 -1
  85. package/dist/components/mcp/toolRegistry.js +60 -5
  86. package/dist/components/mcp/toolRegistry.js.map +1 -1
  87. package/dist/components/mcp/tools/application.d.ts +8 -1
  88. package/dist/components/mcp/tools/application.js +65 -5
  89. package/dist/components/mcp/tools/application.js.map +1 -1
  90. package/dist/components/mcp/tools/operations.d.ts +15 -3
  91. package/dist/components/mcp/tools/operations.js +99 -38
  92. package/dist/components/mcp/tools/operations.js.map +1 -1
  93. package/dist/components/mcp/tools/schemas/operationDescriptions.js +4 -4
  94. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  95. package/dist/components/mcp/tools/schemas/operations.js +4 -0
  96. package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
  97. package/dist/components/mcp/transport.d.ts +6 -0
  98. package/dist/components/mcp/transport.js +47 -3
  99. package/dist/components/mcp/transport.js.map +1 -1
  100. package/dist/components/ollama/index.d.ts +4 -1
  101. package/dist/components/ollama/index.js +4 -2
  102. package/dist/components/ollama/index.js.map +1 -1
  103. package/dist/components/openai/index.d.ts +4 -1
  104. package/dist/components/openai/index.js +4 -2
  105. package/dist/components/openai/index.js.map +1 -1
  106. package/dist/components/operations.d.ts +39 -0
  107. package/dist/components/operations.js +194 -2
  108. package/dist/components/operations.js.map +1 -1
  109. package/dist/components/operationsValidation.d.ts +38 -0
  110. package/dist/components/operationsValidation.js +155 -0
  111. package/dist/components/operationsValidation.js.map +1 -1
  112. package/dist/components/secretOperations.d.ts +113 -0
  113. package/dist/components/secretOperations.js +475 -0
  114. package/dist/components/secretOperations.js.map +1 -0
  115. package/dist/config/configUtils.d.ts +4 -1
  116. package/dist/config/configUtils.js +18 -1
  117. package/dist/config/configUtils.js.map +1 -1
  118. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
  119. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
  120. package/dist/dataLayer/readAuditLog.js +11 -0
  121. package/dist/dataLayer/readAuditLog.js.map +1 -1
  122. package/dist/dataLayer/schemaDescribe.js +2 -0
  123. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  124. package/dist/globals.d.ts +1 -1
  125. package/dist/globals.js +1 -0
  126. package/dist/globals.js.map +1 -1
  127. package/dist/index.d.ts +3 -0
  128. package/dist/index.js +1 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/json/systemSchema.json +38 -0
  131. package/dist/resources/DatabaseTransaction.d.ts +31 -3
  132. package/dist/resources/DatabaseTransaction.js +190 -29
  133. package/dist/resources/DatabaseTransaction.js.map +1 -1
  134. package/dist/resources/LMDBTransaction.d.ts +1 -1
  135. package/dist/resources/LMDBTransaction.js +43 -5
  136. package/dist/resources/LMDBTransaction.js.map +1 -1
  137. package/dist/resources/PrimaryRocksDatabase.d.ts +51 -0
  138. package/dist/resources/PrimaryRocksDatabase.js +194 -0
  139. package/dist/resources/PrimaryRocksDatabase.js.map +1 -0
  140. package/dist/resources/RecordEncoder.d.ts +1 -0
  141. package/dist/resources/RecordEncoder.js +81 -75
  142. package/dist/resources/RecordEncoder.js.map +1 -1
  143. package/dist/resources/RequestTarget.d.ts +19 -0
  144. package/dist/resources/RequestTarget.js.map +1 -1
  145. package/dist/resources/Resource.d.ts +0 -1
  146. package/dist/resources/Resource.js +103 -16
  147. package/dist/resources/Resource.js.map +1 -1
  148. package/dist/resources/ResourceInterface.d.ts +6 -2
  149. package/dist/resources/ResourceInterface.js.map +1 -1
  150. package/dist/resources/Resources.js.map +1 -1
  151. package/dist/resources/Table.d.ts +6 -4
  152. package/dist/resources/Table.js +247 -24
  153. package/dist/resources/Table.js.map +1 -1
  154. package/dist/resources/analytics/read.js +25 -28
  155. package/dist/resources/analytics/read.js.map +1 -1
  156. package/dist/resources/blob.js +165 -22
  157. package/dist/resources/blob.js.map +1 -1
  158. package/dist/resources/crdt.d.ts +2 -0
  159. package/dist/resources/crdt.js +45 -36
  160. package/dist/resources/crdt.js.map +1 -1
  161. package/dist/resources/databases.d.ts +1 -0
  162. package/dist/resources/databases.js +134 -7
  163. package/dist/resources/databases.js.map +1 -1
  164. package/dist/resources/graphql.js +8 -0
  165. package/dist/resources/graphql.js.map +1 -1
  166. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +35 -5
  167. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +239 -14
  168. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  169. package/dist/resources/jsResource.js +6 -0
  170. package/dist/resources/jsResource.js.map +1 -1
  171. package/dist/resources/loadEnv.js +30 -3
  172. package/dist/resources/loadEnv.js.map +1 -1
  173. package/dist/resources/login.js +2 -2
  174. package/dist/resources/login.js.map +1 -1
  175. package/dist/resources/models/Models.js +14 -3
  176. package/dist/resources/models/Models.js.map +1 -1
  177. package/dist/resources/models/embedHook.js +10 -2
  178. package/dist/resources/models/embedHook.js.map +1 -1
  179. package/dist/resources/models/openaiStream.d.ts +56 -0
  180. package/dist/resources/models/openaiStream.js +94 -0
  181. package/dist/resources/models/openaiStream.js.map +1 -0
  182. package/dist/resources/replayLogs.js +4 -3
  183. package/dist/resources/replayLogs.js.map +1 -1
  184. package/dist/resources/search.d.ts +1 -1
  185. package/dist/resources/search.js +104 -11
  186. package/dist/resources/search.js.map +1 -1
  187. package/dist/resources/secretDecryptor.d.ts +54 -0
  188. package/dist/resources/secretDecryptor.js +131 -0
  189. package/dist/resources/secretDecryptor.js.map +1 -0
  190. package/dist/resources/tracked.js +15 -5
  191. package/dist/resources/tracked.js.map +1 -1
  192. package/dist/security/auth.js +71 -8
  193. package/dist/security/auth.js.map +1 -1
  194. package/dist/security/jsLoader.js +11 -0
  195. package/dist/security/jsLoader.js.map +1 -1
  196. package/dist/security/tokenAuthentication.d.ts +9 -1
  197. package/dist/security/tokenAuthentication.js +31 -1
  198. package/dist/security/tokenAuthentication.js.map +1 -1
  199. package/dist/server/DurableSubscriptionsSession.d.ts +1 -1
  200. package/dist/server/DurableSubscriptionsSession.js +8 -4
  201. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  202. package/dist/server/REST.js +28 -9
  203. package/dist/server/REST.js.map +1 -1
  204. package/dist/server/fastifyRoutes.js +11 -1
  205. package/dist/server/fastifyRoutes.js.map +1 -1
  206. package/dist/server/graphqlQuerying.js +4 -3
  207. package/dist/server/graphqlQuerying.js.map +1 -1
  208. package/dist/server/http.d.ts +40 -2
  209. package/dist/server/http.js +560 -77
  210. package/dist/server/http.js.map +1 -1
  211. package/dist/server/itc/serverHandlers.js +64 -0
  212. package/dist/server/itc/serverHandlers.js.map +1 -1
  213. package/dist/server/liveSubscriptionAuth.d.ts +12 -0
  214. package/dist/server/liveSubscriptionAuth.js +140 -0
  215. package/dist/server/liveSubscriptionAuth.js.map +1 -0
  216. package/dist/server/loadRootComponents.js +2 -1
  217. package/dist/server/loadRootComponents.js.map +1 -1
  218. package/dist/server/middlewareChain.d.ts +44 -1
  219. package/dist/server/middlewareChain.js +86 -10
  220. package/dist/server/middlewareChain.js.map +1 -1
  221. package/dist/server/mqtt.js +2 -1
  222. package/dist/server/mqtt.js.map +1 -1
  223. package/dist/server/operationsServer.js +1 -1
  224. package/dist/server/operationsServer.js.map +1 -1
  225. package/dist/server/serverHelpers/Headers.d.ts +9 -0
  226. package/dist/server/serverHelpers/Headers.js +22 -0
  227. package/dist/server/serverHelpers/Headers.js.map +1 -1
  228. package/dist/server/serverHelpers/JSONStream.js +3 -3
  229. package/dist/server/serverHelpers/JSONStream.js.map +1 -1
  230. package/dist/server/serverHelpers/Request.d.ts +52 -1
  231. package/dist/server/serverHelpers/Request.js +122 -1
  232. package/dist/server/serverHelpers/Request.js.map +1 -1
  233. package/dist/server/serverHelpers/contentTypes.js +3 -8
  234. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  235. package/dist/server/serverHelpers/progressEmitter.d.ts +19 -0
  236. package/dist/server/serverHelpers/progressEmitter.js +52 -4
  237. package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
  238. package/dist/server/serverHelpers/registeredOperations.d.ts +40 -0
  239. package/dist/server/serverHelpers/registeredOperations.js +286 -0
  240. package/dist/server/serverHelpers/registeredOperations.js.map +1 -0
  241. package/dist/server/serverHelpers/serverHandlers.js +11 -5
  242. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  243. package/dist/server/serverHelpers/serverUtilities.d.ts +1 -0
  244. package/dist/server/serverHelpers/serverUtilities.js +67 -5
  245. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  246. package/dist/server/serverHelpers/uwsServer.d.ts +80 -0
  247. package/dist/server/serverHelpers/uwsServer.js +433 -0
  248. package/dist/server/serverHelpers/uwsServer.js.map +1 -0
  249. package/dist/server/static.d.ts +0 -15
  250. package/dist/server/static.js +161 -2
  251. package/dist/server/static.js.map +1 -1
  252. package/dist/server/status/index.d.ts +4 -1
  253. package/dist/server/status/index.js +64 -4
  254. package/dist/server/status/index.js.map +1 -1
  255. package/dist/server/threads/manageThreads.d.ts +10 -0
  256. package/dist/server/threads/manageThreads.js +107 -4
  257. package/dist/server/threads/manageThreads.js.map +1 -1
  258. package/dist/server/threads/socketRouter.js +5 -1
  259. package/dist/server/threads/socketRouter.js.map +1 -1
  260. package/dist/server/threads/threadServer.js +92 -14
  261. package/dist/server/threads/threadServer.js.map +1 -1
  262. package/dist/upgrade/directives/5-2-0.d.ts +7 -0
  263. package/dist/upgrade/directives/5-2-0.js +108 -0
  264. package/dist/upgrade/directives/5-2-0.js.map +1 -0
  265. package/dist/upgrade/directives/directivesController.js +2 -1
  266. package/dist/upgrade/directives/directivesController.js.map +1 -1
  267. package/dist/utility/common_utils.js +5 -0
  268. package/dist/utility/common_utils.js.map +1 -1
  269. package/dist/utility/envFile.d.ts +41 -0
  270. package/dist/utility/envFile.js +221 -0
  271. package/dist/utility/envFile.js.map +1 -0
  272. package/dist/utility/globalSchema.d.ts +9 -0
  273. package/dist/utility/hdbTerms.d.ts +25 -0
  274. package/dist/utility/hdbTerms.js +31 -0
  275. package/dist/utility/hdbTerms.js.map +1 -1
  276. package/dist/utility/logging/harper_logger.d.ts +21 -0
  277. package/dist/utility/logging/harper_logger.js +160 -8
  278. package/dist/utility/logging/harper_logger.js.map +1 -1
  279. package/dist/utility/logging/logRotator.js +29 -17
  280. package/dist/utility/logging/logRotator.js.map +1 -1
  281. package/dist/utility/logging/readLog.d.ts +1 -1
  282. package/dist/utility/logging/readLog.js +305 -2
  283. package/dist/utility/logging/readLog.js.map +1 -1
  284. package/dist/utility/operationPermissions.d.ts +18 -0
  285. package/dist/utility/operationPermissions.js +35 -1
  286. package/dist/utility/operationPermissions.js.map +1 -1
  287. package/dist/utility/operation_authorization.d.ts +17 -0
  288. package/dist/utility/operation_authorization.js +38 -0
  289. package/dist/utility/operation_authorization.js.map +1 -1
  290. package/dist/utility/secretEnvelope.d.ts +30 -0
  291. package/dist/utility/secretEnvelope.js +94 -0
  292. package/dist/utility/secretEnvelope.js.map +1 -0
  293. package/dist/utility/signalling.d.ts +7 -0
  294. package/dist/utility/signalling.js +16 -0
  295. package/dist/utility/signalling.js.map +1 -1
  296. package/dist/validation/configValidator.js +70 -24
  297. package/dist/validation/configValidator.js.map +1 -1
  298. package/index.ts +4 -0
  299. package/json/systemSchema.json +38 -0
  300. package/npm-shrinkwrap.json +15066 -9347
  301. package/package.json +13 -8
  302. package/resources/DESIGN.md +15 -12
  303. package/resources/DatabaseTransaction.ts +206 -37
  304. package/resources/LMDBTransaction.ts +43 -9
  305. package/resources/PrimaryRocksDatabase.ts +201 -0
  306. package/resources/RecordEncoder.ts +81 -69
  307. package/resources/RequestTarget.ts +21 -0
  308. package/resources/Resource.ts +109 -25
  309. package/resources/ResourceInterface.ts +6 -2
  310. package/resources/Resources.ts +1 -3
  311. package/resources/Table.ts +238 -29
  312. package/resources/analytics/read.ts +25 -30
  313. package/resources/blob.ts +159 -23
  314. package/resources/crdt.ts +37 -31
  315. package/resources/databases.ts +143 -6
  316. package/resources/graphql.ts +8 -0
  317. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +251 -17
  318. package/resources/jsResource.ts +6 -0
  319. package/resources/loadEnv.ts +34 -3
  320. package/resources/login.ts +2 -2
  321. package/resources/models/Models.ts +19 -3
  322. package/resources/models/embedHook.ts +13 -2
  323. package/resources/models/openaiStream.ts +133 -0
  324. package/resources/replayLogs.ts +4 -3
  325. package/resources/search.ts +113 -11
  326. package/resources/secretDecryptor.ts +159 -0
  327. package/resources/tracked.ts +24 -17
  328. package/security/auth.ts +70 -10
  329. package/security/jsLoader.ts +12 -0
  330. package/security/tokenAuthentication.ts +42 -1
  331. package/server/DESIGN.md +10 -0
  332. package/server/DurableSubscriptionsSession.ts +8 -4
  333. package/server/REST.ts +26 -9
  334. package/server/fastifyRoutes.ts +10 -1
  335. package/server/graphqlQuerying.ts +4 -3
  336. package/server/http.ts +563 -77
  337. package/server/itc/serverHandlers.js +70 -0
  338. package/server/liveSubscriptionAuth.ts +152 -0
  339. package/server/loadRootComponents.js +2 -1
  340. package/server/middlewareChain.ts +107 -17
  341. package/server/mqtt.ts +2 -1
  342. package/server/operationsServer.ts +2 -2
  343. package/server/serverHelpers/Headers.ts +24 -0
  344. package/server/serverHelpers/JSONStream.ts +3 -3
  345. package/server/serverHelpers/Request.ts +127 -0
  346. package/server/serverHelpers/contentTypes.ts +3 -8
  347. package/server/serverHelpers/progressEmitter.ts +55 -5
  348. package/server/serverHelpers/registeredOperations.ts +259 -0
  349. package/server/serverHelpers/serverHandlers.js +11 -5
  350. package/server/serverHelpers/serverUtilities.ts +88 -5
  351. package/server/serverHelpers/uwsServer.ts +488 -0
  352. package/server/static.ts +180 -2
  353. package/server/status/index.ts +72 -4
  354. package/server/threads/manageThreads.js +102 -4
  355. package/server/threads/socketRouter.ts +5 -1
  356. package/server/threads/threadServer.js +93 -10
  357. package/studio/web/assets/{Chat-SdD1EZca.js → Chat-Cv_2paZE.js} +2 -2
  358. package/studio/web/assets/{Chat-SdD1EZca.js.map → Chat-Cv_2paZE.js.map} +1 -1
  359. package/studio/web/assets/{FloatingChat-GMq6tHK9.js → FloatingChat-CPyPIcVR.js} +4 -4
  360. package/studio/web/assets/{FloatingChat-GMq6tHK9.js.map → FloatingChat-CPyPIcVR.js.map} +1 -1
  361. package/studio/web/assets/{applications-B5hhv7uA.js → applications-C0jT2vdZ.js} +2 -2
  362. package/studio/web/assets/{applications-B5hhv7uA.js.map → applications-C0jT2vdZ.js.map} +1 -1
  363. package/studio/web/assets/{index-VFcpNWgq.js → index-D_GKOkhn.js} +6 -6
  364. package/studio/web/assets/index-D_GKOkhn.js.map +1 -0
  365. package/studio/web/assets/{index.lazy-DgcJojIA.js → index.lazy-CAmCIA65.js} +4 -4
  366. package/studio/web/assets/{index.lazy-DgcJojIA.js.map → index.lazy-CAmCIA65.js.map} +1 -1
  367. package/studio/web/assets/{profile-BqN-8vzm.js → profile-CaF-4aZe.js} +2 -2
  368. package/studio/web/assets/{profile-BqN-8vzm.js.map → profile-CaF-4aZe.js.map} +1 -1
  369. package/studio/web/assets/{setComponentFile-CHFvFq9u.js → setComponentFile-DLW1DHCt.js} +2 -2
  370. package/studio/web/assets/{setComponentFile-CHFvFq9u.js.map → setComponentFile-DLW1DHCt.js.map} +1 -1
  371. package/studio/web/assets/{setup-CQ3vWJSr.js → setup-TGCErIhq.js} +2 -2
  372. package/studio/web/assets/{setup-CQ3vWJSr.js.map → setup-TGCErIhq.js.map} +1 -1
  373. package/studio/web/assets/{status-BsW5fjuh.js → status-DG0Maoao.js} +2 -2
  374. package/studio/web/assets/{status-BsW5fjuh.js.map → status-DG0Maoao.js.map} +1 -1
  375. package/studio/web/assets/{swagger-ui-react-DITdeB9-.js → swagger-ui-react-8T4SgQ1m.js} +2 -2
  376. package/studio/web/assets/{swagger-ui-react-DITdeB9-.js.map → swagger-ui-react-8T4SgQ1m.js.map} +1 -1
  377. package/studio/web/assets/{tsMode-Dyph-OUs.js → tsMode-DJ6Sl24Q.js} +2 -2
  378. package/studio/web/assets/{tsMode-Dyph-OUs.js.map → tsMode-DJ6Sl24Q.js.map} +1 -1
  379. package/studio/web/assets/{useEntityRestURL-D0QTUqex.js → useEntityRestURL-JO2mfWTQ.js} +2 -2
  380. package/studio/web/assets/{useEntityRestURL-D0QTUqex.js.map → useEntityRestURL-JO2mfWTQ.js.map} +1 -1
  381. package/studio/web/index.html +1 -1
  382. package/upgrade/directives/5-2-0.ts +82 -0
  383. package/upgrade/directives/directivesController.ts +2 -1
  384. package/utility/common_utils.ts +5 -0
  385. package/utility/envFile.ts +218 -0
  386. package/utility/hdbTerms.ts +31 -0
  387. package/utility/logging/harper_logger.ts +156 -8
  388. package/utility/logging/logRotator.ts +24 -14
  389. package/utility/logging/readLog.ts +323 -2
  390. package/utility/operationPermissions.ts +35 -1
  391. package/utility/operation_authorization.ts +74 -1
  392. package/utility/secretEnvelope.ts +113 -0
  393. package/utility/signalling.ts +15 -0
  394. package/validation/configValidator.ts +78 -25
  395. package/studio/web/assets/index-VFcpNWgq.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { UwsRequest } from './Request.ts';
3
+ import { Headers } from './Headers.ts';
4
+ type UwsApp = any;
5
+ export interface UwsServerOptions {
6
+ /** Bind a Unix domain socket at this path (the symphony-fronted topology). */
7
+ socketPath?: string;
8
+ /** Bind a TCP port instead of a UDS (plaintext HTTP, e.g. the main http port). */
9
+ port?: number;
10
+ /** Optional host/interface for the TCP bind (defaults to all interfaces). */
11
+ host?: string;
12
+ secure?: boolean;
13
+ /** httpChain[port]-style handler: (request) => Harper response descriptor (or undefined). */
14
+ handler: (request: UwsRequest) => Promise<HarperResponse | undefined> | HarperResponse | undefined;
15
+ /**
16
+ * Coarse socket-level ceiling on request-body bytes (default 100 MiB, matching ws maxPayload). The
17
+ * real per-request limit is enforced downstream by streamToBuffer (HTTP_MAXREQUESTBODYSIZE); this
18
+ * only guards against an unconsumed body growing unbounded, since uWS gives no inbound backpressure.
19
+ */
20
+ maxBodyBytes?: number;
21
+ /** Max WebSocket frame payload; falls back to maxBodyBytes when unset. */
22
+ wsMaxPayload?: number;
23
+ /**
24
+ * Optional WebSocket handler. When provided, uWS accepts upgrades on this app/port and calls this
25
+ * with a ws-library-shaped {@link UwsWebSocket} adapter plus the captured upgrade request, so
26
+ * Harper's existing websocket chain (auth + listeners) runs unchanged.
27
+ */
28
+ wsHandler?: (ws: UwsWebSocket, upgrade: UwsUpgrade) => void;
29
+ }
30
+ export interface UwsUpgrade {
31
+ url: string;
32
+ headers: Record<string, string | string[]>;
33
+ ip: string;
34
+ adapter?: UwsWebSocket;
35
+ }
36
+ export interface HarperResponse {
37
+ status?: number;
38
+ headers?: Headers | Record<string, string | string[]>;
39
+ body?: string | Buffer | Uint8Array | Iterable<any> | AsyncIterable<any> | {
40
+ pipe?: any;
41
+ } | null;
42
+ handlesHeaders?: boolean;
43
+ wasCacheMiss?: boolean;
44
+ }
45
+ export declare function createUwsServer(options: UwsServerOptions): Promise<{
46
+ app: UwsApp;
47
+ close: () => void;
48
+ }>;
49
+ /**
50
+ * A backpressure-aware stand-in for the `ws` library's underlying socket. Harper's WS consumers read
51
+ * `remoteAddress` and gate on `writableNeedDrain` / `'drain'`; uWS surfaces those via getBufferedAmount()
52
+ * and the behavior's drain callback.
53
+ */
54
+ declare class UwsSocketShim extends EventEmitter {
55
+ #private;
56
+ remoteAddress: string;
57
+ constructor(raw: any);
58
+ get writableNeedDrain(): boolean;
59
+ }
60
+ /**
61
+ * Adapts a uWS WebSocket to the subset of the `ws` library's WebSocket interface that Harper's WS
62
+ * consumers use (MQTT-over-WS in server/mqtt.ts, subscriptions in server/REST.ts): send/close/
63
+ * terminate/ping, the 'message'/'close'/'error' events, `_socket`, and `readyState`. This lets the
64
+ * existing websocket chain run unchanged on the uWS transport.
65
+ */
66
+ export declare class UwsWebSocket extends EventEmitter {
67
+ #private;
68
+ _socket: UwsSocketShim;
69
+ binaryType: string;
70
+ constructor(raw: any);
71
+ get readyState(): number;
72
+ send(data: any, optionsOrCb?: any, maybeCb?: any): void;
73
+ close(code?: number, reason?: string): void;
74
+ terminate(): void;
75
+ ping(): void;
76
+ _message(message: ArrayBuffer, isBinary: boolean): void;
77
+ _drain(): void;
78
+ _closed(code: number, message: ArrayBuffer): void;
79
+ }
80
+ export {};
@@ -0,0 +1,433 @@
1
+ "use strict";
2
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
3
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
4
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
5
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
6
+ });
7
+ }
8
+ return path;
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.UwsWebSocket = void 0;
12
+ exports.createUwsServer = createUwsServer;
13
+ /**
14
+ * uWebSockets.js HTTP server adapter (#914, github.com/HarperFast/harper, default-off backend).
15
+ *
16
+ * Creates a non-SSL uWS App — on a Unix domain socket (`socketPath`) or a TCP port (`port`) —
17
+ * and bridges each request through Harper's existing pipeline: it builds a {@link UwsRequest}
18
+ * (same duck-typed shape as BunRequest), invokes the supplied `handler` (i.e. `httpChain[port]`),
19
+ * and serializes the returned Harper response descriptor back onto the uWS HttpResponse.
20
+ * Streaming/SSE bodies are written incrementally with backpressure; a WebSocket `wsHandler`
21
+ * (when supplied) accepts upgrades via native app.ws() bridged through {@link UwsWebSocket}.
22
+ *
23
+ * Two topologies, both gated default-off in http.ts:
24
+ * - HARPER_UWS_UDS: the plaintext-UDS-behind-symphony mirror — TLS/mTLS/HTTP-2 terminated by
25
+ * symphony upstream, real client IP via X-Forwarded-For, so this server never touches certs.
26
+ * - HARPER_UWS_HTTP: a direct plaintext TCP HTTP port (real peer IP from the socket).
27
+ *
28
+ * `uWebSockets.js` is an optionalDependency (ABI/platform-specific, built by CI).
29
+ */
30
+ const node_http_1 = require("node:http");
31
+ const node_events_1 = require("node:events");
32
+ const Request_ts_1 = require("./Request.js");
33
+ const Headers_ts_1 = require("./Headers.js");
34
+ const when_ts_1 = require("../../utility/when.js");
35
+ const hdbError_ts_1 = require("../../utility/errors/hdbError.js");
36
+ // uWS writeStatus() needs a full "<code> <reason>" line; an empty reason phrase is rejected by
37
+ // some reverse-proxy parsers, so fall back to "Unknown" for codes Node doesn't know.
38
+ const statusText = (s) => `${s} ${node_http_1.STATUS_CODES[s] ?? 'Unknown'}`;
39
+ async function createUwsServer(options) {
40
+ const { default: uWS } = await import(__rewriteRelativeImportExtension('uWebSockets.js'));
41
+ const { socketPath, port, host, secure = false, handler, wsHandler, wsMaxPayload, maxBodyBytes = 100 * 1024 * 1024, } = options;
42
+ const app = uWS.App();
43
+ // Accept WebSocket upgrades on this app/port when a ws handler is supplied. Registered before the
44
+ // HTTP routes so uWS routes upgrade requests here; normal requests still fall through to app.get/any.
45
+ if (wsHandler)
46
+ registerWsBehavior(app, wsHandler, wsMaxPayload ?? maxBodyBytes);
47
+ const onRequest = (res, req, hasBody) => {
48
+ // uWS HttpRequest is only valid synchronously inside this callback — copy everything now.
49
+ const method = req.getMethod().toUpperCase();
50
+ const query = req.getQuery();
51
+ const url = req.getUrl() + (query ? '?' + query : '');
52
+ const headers = {};
53
+ req.forEach((k, v) => {
54
+ // uWS calls this once per header line, so preserve repeats (e.g. multiple Cookie/Forwarded).
55
+ const existing = headers[k];
56
+ if (existing === undefined)
57
+ headers[k] = v;
58
+ else if (Array.isArray(existing))
59
+ existing.push(v);
60
+ else
61
+ headers[k] = [existing, v];
62
+ });
63
+ // Capture the peer address synchronously (res is only valid in this callback). Only populated for
64
+ // the direct-TCP path, where it's authoritative; behind symphony on a UDS it's left unset so the
65
+ // real client IP comes from X-Forwarded-For (UwsRequest.ip falls back to XFF only when no socket
66
+ // address is set). request.ip feeds local-auth (security/auth.ts AUTHORIZE_LOCAL), rate limiting,
67
+ // and logging.
68
+ const ip = port != null ? normalizeAddress(Buffer.from(res.getRemoteAddressAsText()).toString()) : undefined;
69
+ const ac = new AbortController();
70
+ res.onAborted(() => ac.abort());
71
+ // Once a response has been committed (handler result, error, or a 413), writing again to the
72
+ // same uWS response is invalid and aborts the process — so every write site guards on this in
73
+ // addition to ac.signal.aborted (which only covers a client-side teardown, not our own writes).
74
+ let responseCompleted = false;
75
+ const dispatch = (body) => {
76
+ const request = new Request_ts_1.UwsRequest({ method, url, headers, secure, body, signal: ac.signal, ip });
77
+ // when() keeps a synchronously-returning handler synchronous (no extra microtask/promise).
78
+ (0, when_ts_1.when)(handler(request), (response) => {
79
+ if (ac.signal.aborted || responseCompleted)
80
+ return;
81
+ responseCompleted = true;
82
+ writeResponse(res, response, ac.signal, method);
83
+ }, (error) => {
84
+ if (ac.signal.aborted || responseCompleted)
85
+ return;
86
+ responseCompleted = true;
87
+ const status = (error && error.statusCode) || 500;
88
+ res.cork(() => {
89
+ res.writeStatus(statusText(status));
90
+ res.writeHeader('content-type', 'text/plain');
91
+ res.end(String((error && error.message) || error));
92
+ });
93
+ });
94
+ };
95
+ if (hasBody) {
96
+ // Stream the body: dispatch immediately with a push-based Readable and feed each chunk in as it
97
+ // arrives, so consumers (streamToBuffer, streaming deserializers) don't wait on — or hold — the
98
+ // whole body. streamToBuffer owns concatenation and the configurable per-request size limit;
99
+ // maxBodyBytes is only the coarse ceiling below, since uWS offers no way to pause the socket.
100
+ const body = new Request_ts_1.UwsRequestBody();
101
+ let total = 0;
102
+ let ended = false;
103
+ // Only surface a teardown as a stream 'error' when a consumer is listening; destroying with an
104
+ // error and no 'error' listener would throw. An unconsumed body just gets its chunks released.
105
+ const tearDown = (error) => {
106
+ if (ended || body.destroyed)
107
+ return;
108
+ ended = true;
109
+ body.destroy(error && body.listenerCount('error') > 0 ? error : undefined);
110
+ };
111
+ ac.signal.addEventListener('abort', () => tearDown(new Error('request aborted')), { once: true });
112
+ res.onData((chunk, isLast) => {
113
+ if (ended || body.destroyed)
114
+ return;
115
+ total += chunk.byteLength;
116
+ if (total > maxBodyBytes) {
117
+ // Only send 413 if nothing has been written yet: the handler may have already responded
118
+ // (or streamed) without consuming the body, and writing to that completed response aborts.
119
+ if (!ac.signal.aborted && !responseCompleted) {
120
+ responseCompleted = true;
121
+ res.cork(() => res.writeStatus('413 Payload Too Large').end());
122
+ }
123
+ tearDown(new hdbError_ts_1.ClientError(`Request body exceeds ${maxBodyBytes} bytes`, 413));
124
+ ac.abort();
125
+ return;
126
+ }
127
+ // uWS neuters/reuses the ArrayBuffer once this callback returns, and the body is read
128
+ // asynchronously by the consumer — so copy the bytes out now. `Buffer.from(arrayBuffer)`
129
+ // would alias uWS's memory; wrapping in a Uint8Array first forces an owned copy.
130
+ body.push(Buffer.from(new Uint8Array(chunk)));
131
+ if (isLast) {
132
+ ended = true;
133
+ body.push(null);
134
+ }
135
+ });
136
+ dispatch(body);
137
+ }
138
+ else {
139
+ dispatch(undefined);
140
+ }
141
+ };
142
+ // Route the known-bodyless methods so they dispatch immediately, and treat everything else —
143
+ // including non-standard body-bearing methods like QUERY (REST vector search) — as having a
144
+ // body. uWS still fires onData(len=0, isLast=true) for a bodyless request that lands on the
145
+ // any() fallback, so this can't stall the connection.
146
+ const bodyless = (res, req) => onRequest(res, req, false);
147
+ const withBody = (res, req) => onRequest(res, req, true);
148
+ app.get('/*', bodyless);
149
+ app.head('/*', bodyless);
150
+ app.options('/*', bodyless);
151
+ app.connect('/*', bodyless);
152
+ app.trace('/*', bodyless);
153
+ app.any('/*', withBody);
154
+ await new Promise((resolve, reject) => {
155
+ const onListen = (listenSocket) => listenSocket ? resolve() : reject(new Error(`uWS failed to bind ${host ?? ''}:${port ?? socketPath}`));
156
+ // uWS shares the port across workers (SO_REUSEPORT) by default, matching the Node reusePort path.
157
+ if (port != null) {
158
+ if (host)
159
+ app.listen(host, port, onListen);
160
+ else
161
+ app.listen(port, onListen);
162
+ }
163
+ else {
164
+ app.listen_unix(onListen, socketPath);
165
+ }
166
+ });
167
+ return {
168
+ app,
169
+ close: () => app.close(),
170
+ };
171
+ }
172
+ // Write every response header except Content-Length (uWS derives that from end(body); for streaming
173
+ // there is no fixed length and it must be omitted so uWS uses chunked transfer encoding).
174
+ function writeHeaders(res, headers) {
175
+ // WHATWG Headers comma-join Set-Cookie on iteration, which merges multiple cookies into one and
176
+ // corrupts values containing commas (e.g. `expires=` dates). Emit them individually via
177
+ // getSetCookie() and skip the joined entry from the main loop. A Harper Headers has no
178
+ // getSetCookie(); it stores multiple cookies as an array, handled by the Array.isArray branch.
179
+ const setCookies = typeof headers.getSetCookie === 'function' ? headers.getSetCookie() : null;
180
+ for (const [name, value] of headers) {
181
+ const lower = name.toLowerCase();
182
+ if (lower === 'content-length')
183
+ continue;
184
+ if (setCookies && lower === 'set-cookie')
185
+ continue;
186
+ if (Array.isArray(value))
187
+ for (const v of value)
188
+ res.writeHeader(name, String(v));
189
+ else if (value != null)
190
+ res.writeHeader(name, String(value));
191
+ }
192
+ if (setCookies)
193
+ for (const cookie of setCookies)
194
+ res.writeHeader('set-cookie', cookie);
195
+ }
196
+ function writeResponse(res, response, signal, method) {
197
+ if (!response) {
198
+ res.cork(() => res.writeStatus('404 Not Found').end('Not found\n'));
199
+ return;
200
+ }
201
+ const status = response.status || 200;
202
+ // A HEAD response must carry no body. The REST layer already nulls it, but uWS (unlike Node's
203
+ // ServerResponse) has no HEAD guard, so enforce it here for any handler that returns one.
204
+ const isHead = method === 'HEAD';
205
+ const body = isHead ? null : response.body;
206
+ // Normalize headers to something iterable with .get. Keep an existing Headers-like object
207
+ // (Harper or WHATWG) as-is — converting a WHATWG Headers via `new Headers()` would comma-join
208
+ // Set-Cookie on iteration before writeHeaders can split it back out via getSetCookie(). Only
209
+ // plain objects get wrapped.
210
+ const rawHeaders = response.headers;
211
+ const headers = rawHeaders && typeof rawHeaders.get === 'function' && rawHeaders[Symbol.iterator]
212
+ ? rawHeaders
213
+ : new Headers_ts_1.Headers(rawHeaders);
214
+ // Streaming body (Node stream / normalized async-iterable): write incrementally with backpressure.
215
+ if (body != null && typeof body.pipe === 'function') {
216
+ streamResponse(res, status, headers, body, signal);
217
+ return;
218
+ }
219
+ res.cork(() => {
220
+ res.writeStatus(statusText(status));
221
+ writeHeaders(res, headers);
222
+ if (body == null)
223
+ res.end();
224
+ else
225
+ res.end(body); // string | Buffer | Uint8Array
226
+ });
227
+ }
228
+ /**
229
+ * Stream a Node Readable to the uWS response with backpressure. uWS only flushes the status/headers
230
+ * on the first body write, so for text/event-stream (SSE) — where the client must see the stream
231
+ * open before any event — we emit a spec-valid comment line to force the flush. Client disconnect
232
+ * (via `signal`) or a source error destroys the source and stops writing (writing to an aborted uWS
233
+ * response is invalid).
234
+ */
235
+ function streamResponse(res, status, headers, source, signal) {
236
+ let finished = false;
237
+ const finish = (endResponse) => {
238
+ if (finished)
239
+ return;
240
+ finished = true;
241
+ signal?.removeEventListener('abort', onAbort);
242
+ if (endResponse)
243
+ res.cork(() => res.end());
244
+ };
245
+ function onAbort() {
246
+ if (finished)
247
+ return;
248
+ finished = true;
249
+ source.destroy?.();
250
+ }
251
+ if (signal?.aborted)
252
+ return onAbort();
253
+ signal?.addEventListener('abort', onAbort, { once: true });
254
+ const isSse = String(headers.get('content-type') ?? '').includes('text/event-stream');
255
+ res.cork(() => {
256
+ res.writeStatus(statusText(status));
257
+ writeHeaders(res, headers);
258
+ if (isSse)
259
+ res.write(':\n\n'); // SSE comment: flushes headers immediately, ignored by clients
260
+ });
261
+ source.on('data', (chunk) => {
262
+ if (finished)
263
+ return;
264
+ let ok = true;
265
+ res.cork(() => {
266
+ ok = res.write(chunk);
267
+ });
268
+ if (!ok) {
269
+ // Backpressure: pause the source until uWS drains, then resume.
270
+ source.pause();
271
+ res.onWritable(() => {
272
+ if (!finished)
273
+ source.resume();
274
+ return true;
275
+ });
276
+ }
277
+ });
278
+ source.once('end', () => finish(true));
279
+ source.once('error', () => finish(true)); // headers already sent; just terminate the response
280
+ }
281
+ // Normalize uWS's remote-address text (raw IPv6 form, IPv4-mapped for v4 peers) to a readable IP.
282
+ function normalizeAddress(text) {
283
+ const mapped = /^0000:0000:0000:0000:0000:ffff:([0-9a-f]{4}):([0-9a-f]{4})$/.exec(text);
284
+ if (mapped) {
285
+ const hi = parseInt(mapped[1], 16);
286
+ const lo = parseInt(mapped[2], 16);
287
+ return `${hi >> 8}.${hi & 0xff}.${lo >> 8}.${lo & 0xff}`;
288
+ }
289
+ return text;
290
+ }
291
+ function registerWsBehavior(app, wsHandler, maxPayload) {
292
+ app.ws('/*', {
293
+ maxPayload,
294
+ // Capture the upgrade request synchronously (uWS's HttpRequest is only valid here) and upgrade.
295
+ // Auth runs after open() in the ws chain, matching the Node path (which upgrades then authorizes).
296
+ upgrade: (res, req, context) => {
297
+ const query = req.getQuery();
298
+ const url = req.getUrl() + (query ? '?' + query : '');
299
+ const headers = {};
300
+ req.forEach((k, v) => {
301
+ const existing = headers[k];
302
+ if (existing === undefined)
303
+ headers[k] = v;
304
+ else if (Array.isArray(existing))
305
+ existing.push(v);
306
+ else
307
+ headers[k] = [existing, v];
308
+ });
309
+ const ip = normalizeAddress(Buffer.from(res.getRemoteAddressAsText()).toString());
310
+ const upgradeData = { url, headers, ip };
311
+ res.upgrade(upgradeData, req.getHeader('sec-websocket-key'), req.getHeader('sec-websocket-protocol'), req.getHeader('sec-websocket-extensions'), context);
312
+ },
313
+ open: (ws) => {
314
+ const data = ws.getUserData();
315
+ const adapter = new UwsWebSocket(ws);
316
+ adapter._socket.remoteAddress = data.ip;
317
+ data.adapter = adapter;
318
+ wsHandler(adapter, data);
319
+ },
320
+ message: (ws, message, isBinary) => ws.getUserData().adapter?._message(message, isBinary),
321
+ drain: (ws) => ws.getUserData().adapter?._drain(),
322
+ close: (ws, code, message) => ws.getUserData().adapter?._closed(code, message),
323
+ });
324
+ }
325
+ /**
326
+ * A backpressure-aware stand-in for the `ws` library's underlying socket. Harper's WS consumers read
327
+ * `remoteAddress` and gate on `writableNeedDrain` / `'drain'`; uWS surfaces those via getBufferedAmount()
328
+ * and the behavior's drain callback.
329
+ */
330
+ class UwsSocketShim extends node_events_1.EventEmitter {
331
+ remoteAddress = '';
332
+ #raw;
333
+ constructor(raw) {
334
+ super();
335
+ this.#raw = raw;
336
+ }
337
+ get writableNeedDrain() {
338
+ try {
339
+ return this.#raw.getBufferedAmount() > 0;
340
+ }
341
+ catch {
342
+ return false;
343
+ }
344
+ }
345
+ }
346
+ /**
347
+ * Adapts a uWS WebSocket to the subset of the `ws` library's WebSocket interface that Harper's WS
348
+ * consumers use (MQTT-over-WS in server/mqtt.ts, subscriptions in server/REST.ts): send/close/
349
+ * terminate/ping, the 'message'/'close'/'error' events, `_socket`, and `readyState`. This lets the
350
+ * existing websocket chain run unchanged on the uWS transport.
351
+ */
352
+ class UwsWebSocket extends node_events_1.EventEmitter {
353
+ #raw;
354
+ #open = true;
355
+ #closeEmitted = false;
356
+ _socket;
357
+ binaryType = 'nodebuffer';
358
+ constructor(raw) {
359
+ super();
360
+ this.#raw = raw;
361
+ this._socket = new UwsSocketShim(raw);
362
+ }
363
+ get readyState() {
364
+ return this.#open ? 1 /* OPEN */ : 3; /* CLOSED */
365
+ }
366
+ send(data, optionsOrCb, maybeCb) {
367
+ // ws-library signature is send(data[, options][, callback]); tolerate either arrangement.
368
+ const cb = typeof optionsOrCb === 'function' ? optionsOrCb : typeof maybeCb === 'function' ? maybeCb : undefined;
369
+ if (!this.#open) {
370
+ cb?.(new Error('WebSocket is not open'));
371
+ return;
372
+ }
373
+ try {
374
+ const isBinary = typeof data !== 'string';
375
+ const payload = isBinary && !Buffer.isBuffer(data) && !(data instanceof Uint8Array) ? Buffer.from(data) : data;
376
+ this.#raw.send(payload, isBinary);
377
+ cb?.();
378
+ }
379
+ catch (error) {
380
+ cb?.(error);
381
+ }
382
+ }
383
+ close(code, reason) {
384
+ if (!this.#open)
385
+ return;
386
+ this.#open = false;
387
+ try {
388
+ if (code != null)
389
+ this.#raw.end(code, reason);
390
+ else
391
+ this.#raw.end();
392
+ }
393
+ catch {
394
+ /* already closed by the peer */
395
+ }
396
+ }
397
+ terminate() {
398
+ if (!this.#open)
399
+ return;
400
+ this.#open = false;
401
+ try {
402
+ this.#raw.close();
403
+ }
404
+ catch {
405
+ /* already closed */
406
+ }
407
+ }
408
+ ping() {
409
+ try {
410
+ this.#raw.ping();
411
+ }
412
+ catch {
413
+ /* not open */
414
+ }
415
+ }
416
+ // uWS behavior hooks:
417
+ _message(message, isBinary) {
418
+ // Copy out of uWS's buffer — it's neutered once this callback returns and consumers read async.
419
+ this.emit('message', Buffer.from(new Uint8Array(message)), isBinary);
420
+ }
421
+ _drain() {
422
+ this._socket.emit('drain');
423
+ }
424
+ _closed(code, message) {
425
+ this.#open = false;
426
+ if (this.#closeEmitted)
427
+ return;
428
+ this.#closeEmitted = true;
429
+ this.emit('close', code, message ? Buffer.from(new Uint8Array(message)) : Buffer.alloc(0));
430
+ }
431
+ }
432
+ exports.UwsWebSocket = UwsWebSocket;
433
+ //# sourceMappingURL=uwsServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uwsServer.js","sourceRoot":"","sources":["../../../server/serverHelpers/uwsServer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,2 @@
1
1
  import { Scope } from '../components/Scope';
2
- /**
3
- * The static plugin handles serving static files from the respective application directory.
4
- * It uses the default `EntryHandler` configured via `files` and `urlPath` to watch for file changes and updates the in-memory map of static files.
5
- *
6
- * Additionally, it supports additional options:
7
- * - `index`: If enabled, it will serve `index.html` files from directories.
8
- * - `extensions`: An array of file extensions to try when serving files. If a file is not found, it will try appending each extension in order. For example, if set to `['html'], and the request is `/page`, it will try `/page.html` if `/page` is not found.
9
- * - `fallthrough`: If true, it will fall through to the next handler if the file is not found. If false, it will return a 404 error.
10
- * - `notFound`: Can be specified as a string to serve a custom 404 page, or an object with `file` and `statusCode` properties to serve a custom file with a specific status code. This is useful for hosting SPAs that use client-side routing. Make sure to set `fallthrough` to `false`!
11
- *
12
- * This plugin dynamically updates its behavior based on the current configuration file. Users can make updates and immediately see the changes reflect in the next request.
13
- *
14
- * Updates to the `files` option will clear the in-memory maps and allow them to regenerate based on the new configuration (since the default EntryHandler will regenerate anyways).
15
- * Updates to `urlPath` request a restart: the HTTP route mount is registered once at load and cannot be re-registered on a live server (#1583).
16
- */
17
2
  export declare function handleApplication(scope: Scope): void;