@forklaunch/core 1.5.2 → 1.5.4

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 (264) hide show
  1. package/lib/cache/{index.d.mts → cacheKey.d.ts} +2 -6
  2. package/lib/cache/cacheKey.d.ts.map +1 -0
  3. package/lib/cache/index.d.ts +4 -15
  4. package/lib/cache/index.d.ts.map +1 -0
  5. package/lib/{ttlCache.interface-B3xaLT00.d.ts → cache/interfaces/ttlCache.interface.d.ts} +3 -5
  6. package/lib/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
  7. package/lib/{ttlCacheRecord.types-oX0ti5SP.d.mts → cache/types/ttlCacheRecord.types.d.ts} +3 -4
  8. package/lib/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
  9. package/lib/controllers/index.d.ts +2 -13
  10. package/lib/controllers/index.d.ts.map +1 -0
  11. package/lib/controllers/{index.d.mts → interfaces/controller.interface.d.ts} +2 -3
  12. package/lib/controllers/interfaces/controller.interface.d.ts.map +1 -0
  13. package/lib/environment/index.d.ts +2 -28
  14. package/lib/environment/index.d.ts.map +1 -0
  15. package/lib/environment/{index.d.mts → loadCascadingEnv.d.ts} +4 -5
  16. package/lib/environment/loadCascadingEnv.d.ts.map +1 -0
  17. package/lib/http/application/expressLikeApplication.d.ts +34 -0
  18. package/lib/http/application/expressLikeApplication.d.ts.map +1 -0
  19. package/lib/http/bootstrap/listen.d.ts +2 -0
  20. package/lib/http/bootstrap/listen.d.ts.map +1 -0
  21. package/lib/http/cluster/cluster.types.d.ts +17 -0
  22. package/lib/http/cluster/cluster.types.d.ts.map +1 -0
  23. package/lib/http/cluster/isPortBound.d.ts +2 -0
  24. package/lib/http/cluster/isPortBound.d.ts.map +1 -0
  25. package/lib/http/createHmacToken.d.ts +19 -0
  26. package/lib/http/createHmacToken.d.ts.map +1 -0
  27. package/lib/http/discriminateAuthMethod.d.ts +85 -0
  28. package/lib/http/discriminateAuthMethod.d.ts.map +1 -0
  29. package/lib/http/generateHmacAuthHeaders.d.ts +31 -0
  30. package/lib/http/generateHmacAuthHeaders.d.ts.map +1 -0
  31. package/lib/http/guards/hasFeatureChecks.d.ts +2 -0
  32. package/lib/http/guards/hasFeatureChecks.d.ts.map +1 -0
  33. package/lib/http/guards/hasPermissionChecks.d.ts +2 -0
  34. package/lib/http/guards/hasPermissionChecks.d.ts.map +1 -0
  35. package/lib/http/guards/hasRoleChecks.d.ts +2 -0
  36. package/lib/http/guards/hasRoleChecks.d.ts.map +1 -0
  37. package/lib/http/guards/hasScopeChecks.d.ts +2 -0
  38. package/lib/http/guards/hasScopeChecks.d.ts.map +1 -0
  39. package/lib/http/guards/hasSend.d.ts +17 -0
  40. package/lib/http/guards/hasSend.d.ts.map +1 -0
  41. package/lib/http/guards/hasSubscriptionChecks.d.ts +2 -0
  42. package/lib/http/guards/hasSubscriptionChecks.d.ts.map +1 -0
  43. package/lib/http/guards/hasVersionedSchema.d.ts +2 -0
  44. package/lib/http/guards/hasVersionedSchema.d.ts.map +1 -0
  45. package/lib/http/guards/isBasicAuthMethod.d.ts +3 -0
  46. package/lib/http/guards/isBasicAuthMethod.d.ts.map +1 -0
  47. package/lib/http/guards/isConstrainedForklaunchRouter.d.ts +21 -0
  48. package/lib/http/guards/isConstrainedForklaunchRouter.d.ts.map +1 -0
  49. package/lib/http/guards/isExpressLikeSchemaHandler.d.ts +32 -0
  50. package/lib/http/guards/isExpressLikeSchemaHandler.d.ts.map +1 -0
  51. package/lib/http/guards/isForklaunchExpressLikeRouter.d.ts +28 -0
  52. package/lib/http/guards/isForklaunchExpressLikeRouter.d.ts.map +1 -0
  53. package/lib/http/guards/isForklaunchRequest.d.ts +26 -0
  54. package/lib/http/guards/isForklaunchRequest.d.ts.map +1 -0
  55. package/lib/http/guards/isForklaunchResponse.d.ts +23 -0
  56. package/lib/http/guards/isForklaunchResponse.d.ts.map +1 -0
  57. package/lib/http/guards/isForklaunchRouter.d.ts +21 -0
  58. package/lib/http/guards/isForklaunchRouter.d.ts.map +1 -0
  59. package/lib/http/guards/isHmacMethod.d.ts +9 -0
  60. package/lib/http/guards/isHmacMethod.d.ts.map +1 -0
  61. package/lib/http/guards/isHttpContractDetails.d.ts +29 -0
  62. package/lib/http/guards/isHttpContractDetails.d.ts.map +1 -0
  63. package/lib/http/guards/isJwtAuthMethod.d.ts +3 -0
  64. package/lib/http/guards/isJwtAuthMethod.d.ts.map +1 -0
  65. package/lib/http/guards/isLoggerMeta.d.ts +3 -0
  66. package/lib/http/guards/isLoggerMeta.d.ts.map +1 -0
  67. package/lib/http/guards/isPath.d.ts +2 -0
  68. package/lib/http/guards/isPath.d.ts.map +1 -0
  69. package/lib/http/guards/isPathParamContractDetails.d.ts +4 -0
  70. package/lib/http/guards/isPathParamContractDetails.d.ts.map +1 -0
  71. package/lib/http/guards/isRequestShape.d.ts +3 -0
  72. package/lib/http/guards/isRequestShape.d.ts.map +1 -0
  73. package/lib/http/guards/isResponseCompiledSchema.d.ts +3 -0
  74. package/lib/http/guards/isResponseCompiledSchema.d.ts.map +1 -0
  75. package/lib/http/guards/isSdkHandler.d.ts +9 -0
  76. package/lib/http/guards/isSdkHandler.d.ts.map +1 -0
  77. package/lib/http/guards/isSdkRouter.d.ts +9 -0
  78. package/lib/http/guards/isSdkRouter.d.ts.map +1 -0
  79. package/lib/http/guards/isTypedHandler.d.ts +5 -0
  80. package/lib/http/guards/isTypedHandler.d.ts.map +1 -0
  81. package/lib/http/guards/isVersionedInputSchema.d.ts +3 -0
  82. package/lib/http/guards/isVersionedInputSchema.d.ts.map +1 -0
  83. package/lib/http/handlers/delete.d.ts +5 -0
  84. package/lib/http/handlers/delete.d.ts.map +1 -0
  85. package/lib/http/handlers/get.d.ts +5 -0
  86. package/lib/http/handlers/get.d.ts.map +1 -0
  87. package/lib/http/handlers/head.d.ts +5 -0
  88. package/lib/http/handlers/head.d.ts.map +1 -0
  89. package/lib/http/handlers/middleware.d.ts +10 -0
  90. package/lib/http/handlers/middleware.d.ts.map +1 -0
  91. package/lib/http/handlers/options.d.ts +5 -0
  92. package/lib/http/handlers/options.d.ts.map +1 -0
  93. package/lib/http/handlers/patch.d.ts +5 -0
  94. package/lib/http/handlers/patch.d.ts.map +1 -0
  95. package/lib/http/handlers/post.d.ts +5 -0
  96. package/lib/http/handlers/post.d.ts.map +1 -0
  97. package/lib/http/handlers/put.d.ts +5 -0
  98. package/lib/http/handlers/put.d.ts.map +1 -0
  99. package/lib/http/handlers/trace.d.ts +5 -0
  100. package/lib/http/handlers/trace.d.ts.map +1 -0
  101. package/lib/http/handlers/typedAuthHandler.d.ts +5 -0
  102. package/lib/http/handlers/typedAuthHandler.d.ts.map +1 -0
  103. package/lib/http/handlers/typedHandler.d.ts +14 -0
  104. package/lib/http/handlers/typedHandler.d.ts.map +1 -0
  105. package/lib/http/httpStatusCodes.d.ts +75 -0
  106. package/lib/http/httpStatusCodes.d.ts.map +1 -0
  107. package/lib/http/index.d.ts +47 -1244
  108. package/lib/http/index.d.ts.map +1 -0
  109. package/lib/http/index.js +445 -410
  110. package/lib/http/index.js.map +1 -1
  111. package/lib/http/index.mjs +439 -407
  112. package/lib/http/index.mjs.map +1 -1
  113. package/lib/http/interfaces/expressLikeRouter.interface.d.ts +25 -0
  114. package/lib/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
  115. package/lib/http/mcpGenerator/mcpGenerator.d.ts +17 -0
  116. package/lib/http/mcpGenerator/mcpGenerator.d.ts.map +1 -0
  117. package/lib/http/middleware/request/auth.middleware.d.ts +16 -0
  118. package/lib/http/middleware/request/auth.middleware.d.ts.map +1 -0
  119. package/lib/http/middleware/request/cors.middleware.d.ts +13 -0
  120. package/lib/http/middleware/request/cors.middleware.d.ts.map +1 -0
  121. package/lib/http/middleware/request/createContext.middleware.d.ts +15 -0
  122. package/lib/http/middleware/request/createContext.middleware.d.ts.map +1 -0
  123. package/lib/http/middleware/request/enrichDetails.middleware.d.ts +18 -0
  124. package/lib/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
  125. package/lib/http/middleware/request/parse.middleware.d.ts +17 -0
  126. package/lib/http/middleware/request/parse.middleware.d.ts.map +1 -0
  127. package/lib/http/middleware/request/tenantContext.middleware.d.ts +41 -0
  128. package/lib/http/middleware/request/tenantContext.middleware.d.ts.map +1 -0
  129. package/lib/http/middleware/response/enrichExpressLikeSend.middleware.d.ts +32 -0
  130. package/lib/http/middleware/response/enrichExpressLikeSend.middleware.d.ts.map +1 -0
  131. package/lib/http/middleware/response/parse.middleware.d.ts +31 -0
  132. package/lib/http/middleware/response/parse.middleware.d.ts.map +1 -0
  133. package/lib/http/openApiV3Generator/openApiV3Generator.d.ts +17 -0
  134. package/lib/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
  135. package/lib/http/rateLimit/index.d.ts +2 -0
  136. package/lib/http/rateLimit/index.d.ts.map +1 -0
  137. package/lib/http/rateLimit/rateLimiter.d.ts +66 -0
  138. package/lib/http/rateLimit/rateLimiter.d.ts.map +1 -0
  139. package/lib/http/router/discriminateBody.d.ts +43 -0
  140. package/lib/http/router/discriminateBody.d.ts.map +1 -0
  141. package/lib/http/router/expressLikeRouter.d.ts +240 -0
  142. package/lib/http/router/expressLikeRouter.d.ts.map +1 -0
  143. package/lib/http/router/routerSharedLogic.d.ts +50 -0
  144. package/lib/http/router/routerSharedLogic.d.ts.map +1 -0
  145. package/lib/http/router/unpackRouters.d.ts +7 -0
  146. package/lib/http/router/unpackRouters.d.ts.map +1 -0
  147. package/lib/http/telemetry/auditLogger.d.ts +21 -0
  148. package/lib/http/telemetry/auditLogger.d.ts.map +1 -0
  149. package/lib/http/telemetry/constants.d.ts +6 -0
  150. package/lib/http/telemetry/constants.d.ts.map +1 -0
  151. package/lib/http/telemetry/evaluateTelemetryOptions.d.ts +11 -0
  152. package/lib/http/telemetry/evaluateTelemetryOptions.d.ts.map +1 -0
  153. package/lib/http/telemetry/metricsDefinition.d.ts +3 -0
  154. package/lib/http/telemetry/metricsDefinition.d.ts.map +1 -0
  155. package/lib/http/telemetry/openTelemetryCollector.d.ts +53 -0
  156. package/lib/http/telemetry/openTelemetryCollector.d.ts.map +1 -0
  157. package/lib/http/telemetry/pinoLogger.d.ts +20 -0
  158. package/lib/http/telemetry/pinoLogger.d.ts.map +1 -0
  159. package/lib/http/telemetry/recordMetric.d.ts +5 -0
  160. package/lib/http/telemetry/recordMetric.d.ts.map +1 -0
  161. package/lib/http/types/apiDefinition.types.d.ts +471 -0
  162. package/lib/http/types/apiDefinition.types.d.ts.map +1 -0
  163. package/lib/http/types/contractDetails.types.d.ts +404 -0
  164. package/lib/http/types/contractDetails.types.d.ts.map +1 -0
  165. package/lib/http/types/docsConfiguration.types.d.ts +7 -0
  166. package/lib/http/types/docsConfiguration.types.d.ts.map +1 -0
  167. package/lib/http/types/expressLikeOptions.d.ts +224 -0
  168. package/lib/http/types/expressLikeOptions.d.ts.map +1 -0
  169. package/lib/http/types/expressLikeRouter.types.d.ts +127 -0
  170. package/lib/http/types/expressLikeRouter.types.d.ts.map +1 -0
  171. package/lib/http/types/openTelemetryCollector.types.d.ts +21 -0
  172. package/lib/http/types/openTelemetryCollector.types.d.ts.map +1 -0
  173. package/lib/http/types/router.types.d.ts +52 -0
  174. package/lib/http/types/router.types.d.ts.map +1 -0
  175. package/lib/http/types/sdk.types.d.ts +259 -0
  176. package/lib/http/types/sdk.types.d.ts.map +1 -0
  177. package/lib/http/types/typedHandler.types.d.ts +18 -0
  178. package/lib/http/types/typedHandler.types.d.ts.map +1 -0
  179. package/lib/mappers/guards/isSchemaResolutionFunction.d.ts +10 -0
  180. package/lib/mappers/guards/isSchemaResolutionFunction.d.ts.map +1 -0
  181. package/lib/mappers/index.d.ts +3 -68
  182. package/lib/mappers/index.d.ts.map +1 -0
  183. package/lib/mappers/mapServiceSchemas.d.ts +33 -0
  184. package/lib/mappers/mapServiceSchemas.d.ts.map +1 -0
  185. package/lib/mappers/mapper.d.ts +26 -0
  186. package/lib/mappers/mapper.d.ts.map +1 -0
  187. package/lib/mappers/types/schemaResolution.types.d.ts +9 -0
  188. package/lib/mappers/types/schemaResolution.types.d.ts.map +1 -0
  189. package/lib/objectstore/index.d.ts +3 -71
  190. package/lib/objectstore/index.d.ts.map +1 -0
  191. package/lib/objectstore/{index.d.mts → interfaces/objectstore.interface.d.ts} +3 -16
  192. package/lib/objectstore/interfaces/objectstore.interface.d.ts.map +1 -0
  193. package/lib/objectstore/objectstoreKey.d.ts +11 -0
  194. package/lib/objectstore/objectstoreKey.d.ts.map +1 -0
  195. package/lib/persistence/complianceEventSubscriber.d.ts +13 -0
  196. package/lib/persistence/complianceEventSubscriber.d.ts.map +1 -0
  197. package/lib/persistence/compliancePropertyBuilder.d.ts +26 -0
  198. package/lib/persistence/compliancePropertyBuilder.d.ts.map +1 -0
  199. package/lib/persistence/complianceTypes.d.ts +64 -0
  200. package/lib/persistence/complianceTypes.d.ts.map +1 -0
  201. package/lib/persistence/defineComplianceEntity.d.ts +19 -0
  202. package/lib/persistence/defineComplianceEntity.d.ts.map +1 -0
  203. package/lib/persistence/encryptedType.d.ts +85 -0
  204. package/lib/persistence/encryptedType.d.ts.map +1 -0
  205. package/lib/persistence/fieldEncryptor.d.ts +48 -0
  206. package/lib/persistence/fieldEncryptor.d.ts.map +1 -0
  207. package/lib/persistence/index.d.ts +10 -403
  208. package/lib/persistence/index.d.ts.map +1 -0
  209. package/lib/persistence/index.js.map +1 -1
  210. package/lib/persistence/index.mjs.map +1 -1
  211. package/lib/persistence/rls.d.ts +56 -0
  212. package/lib/persistence/rls.d.ts.map +1 -0
  213. package/lib/persistence/tenantEm.d.ts +60 -0
  214. package/lib/persistence/tenantEm.d.ts.map +1 -0
  215. package/lib/persistence/tenantFilter.d.ts +47 -0
  216. package/lib/persistence/tenantFilter.d.ts.map +1 -0
  217. package/lib/secrets/index.d.ts +2 -0
  218. package/lib/secrets/index.d.ts.map +1 -0
  219. package/lib/secrets/secretsAccessor.d.ts +17 -0
  220. package/lib/secrets/secretsAccessor.d.ts.map +1 -0
  221. package/lib/services/complianceDataService.d.ts +47 -0
  222. package/lib/services/complianceDataService.d.ts.map +1 -0
  223. package/lib/services/configInjector.d.ts +43 -0
  224. package/lib/services/configInjector.d.ts.map +1 -0
  225. package/lib/services/guards/isConstructed.d.ts +3 -0
  226. package/lib/services/guards/isConstructed.d.ts.map +1 -0
  227. package/lib/services/guards/isConstructedSingleton.d.ts +3 -0
  228. package/lib/services/guards/isConstructedSingleton.d.ts.map +1 -0
  229. package/lib/services/guards/isConstructor.d.ts +3 -0
  230. package/lib/services/guards/isConstructor.d.ts.map +1 -0
  231. package/lib/services/index.d.ts +10 -184
  232. package/lib/services/index.d.ts.map +1 -0
  233. package/lib/services/retentionService.d.ts +31 -0
  234. package/lib/services/retentionService.d.ts.map +1 -0
  235. package/lib/services/runRetentionEnforcement.d.ts +19 -0
  236. package/lib/services/runRetentionEnforcement.d.ts.map +1 -0
  237. package/lib/services/types/configInjector.types.d.ts +39 -0
  238. package/lib/services/types/configInjector.types.d.ts.map +1 -0
  239. package/lib/services/types/entityManager.types.d.ts +4 -0
  240. package/lib/services/types/entityManager.types.d.ts.map +1 -0
  241. package/lib/services/types/service.types.d.ts +5 -0
  242. package/lib/services/types/service.types.d.ts.map +1 -0
  243. package/lib/ws/asyncApiV3Generator/asyncApiV3Generator.d.ts +12 -0
  244. package/lib/ws/asyncApiV3Generator/asyncApiV3Generator.d.ts.map +1 -0
  245. package/lib/ws/index.d.ts +4 -67
  246. package/lib/ws/index.d.ts.map +1 -0
  247. package/lib/ws/index.js.map +1 -1
  248. package/lib/ws/index.mjs.map +1 -1
  249. package/lib/ws/types/eventSchema.types.d.ts +28 -0
  250. package/lib/ws/types/eventSchema.types.d.ts.map +1 -0
  251. package/lib/ws/webSocketLike.d.ts +18 -0
  252. package/lib/ws/webSocketLike.d.ts.map +1 -0
  253. package/package.json +33 -33
  254. package/lib/apiDefinition.types-DF_crhB0.d.mts +0 -1092
  255. package/lib/apiDefinition.types-DW4lfZqy.d.ts +0 -1092
  256. package/lib/http/index.d.mts +0 -1244
  257. package/lib/mappers/index.d.mts +0 -68
  258. package/lib/openTelemetryCollector-BS-ej09T.d.mts +0 -70
  259. package/lib/openTelemetryCollector-BS-ej09T.d.ts +0 -70
  260. package/lib/persistence/index.d.mts +0 -403
  261. package/lib/services/index.d.mts +0 -185
  262. package/lib/ttlCache.interface-CEOkrt8d.d.mts +0 -77
  263. package/lib/ttlCacheRecord.types-oX0ti5SP.d.ts +0 -25
  264. package/lib/ws/index.d.mts +0 -67
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ws/asyncApiV3Generator/asyncApiV3Generator.ts","../../src/ws/webSocketLike.ts"],"sourcesContent":["import type {\n AsyncAPIObject,\n ChannelObject,\n ChannelsObject,\n MessageObject,\n MessagesObject,\n OperationObject,\n OperationsObject,\n ReferenceObject\n} from '@asyncapi/parser/esm/spec-types/v3';\n\nimport type { AnySchemaValidator } from '@forklaunch/validator';\n\nimport { EventSchema, EventSchemaEntry } from '../types/eventSchema.types';\n\nexport type AsyncApiDocument = AsyncAPIObject;\n\nexport function generateAsyncApi<SV extends AnySchemaValidator>(\n eventSchemas: EventSchema<SV>,\n options?: {\n title?: string;\n version?: string;\n description?: string;\n id?: AsyncApiDocument['id'];\n defaultContentType?: AsyncApiDocument['defaultContentType'];\n }\n): AsyncApiDocument {\n const channels: ChannelsObject = {};\n\n const appendMessageToChannel = (\n collection?: Record<string, EventSchemaEntry<SV>>\n ) => {\n if (!collection) {\n return;\n }\n\n Object.entries(collection).forEach(([messageKey, candidate]) => {\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n Array.isArray(candidate) ||\n !('shape' in candidate)\n ) {\n return;\n }\n\n const entry = candidate as EventSchemaEntry<SV>;\n const schema = entry.shape;\n\n // Determine which channels to use\n const channelNames: string[] = entry.channel\n ? [entry.channel]\n : entry.channels && entry.channels.length > 0\n ? entry.channels\n : [messageKey];\n\n const messageName =\n entry.operation ?? entry.operations?.[0] ?? messageKey;\n\n // Add message to all specified channels\n channelNames.forEach((channelName) => {\n const existingChannel = channels[channelName];\n if (!existingChannel || '$ref' in existingChannel) {\n channels[channelName] = {\n address: channelName,\n messages: {}\n };\n }\n\n const channelEntry = channels[channelName] as ChannelObject;\n channelEntry.messages = (channelEntry.messages ?? {}) as MessagesObject;\n const messages = channelEntry.messages as MessagesObject;\n\n const message: MessageObject = {\n name: messageName,\n payload: schema\n };\n\n messages[messageName] = message;\n });\n });\n };\n\n appendMessageToChannel(eventSchemas.clientMessages);\n appendMessageToChannel(eventSchemas.serverMessages);\n appendMessageToChannel(eventSchemas.errors);\n\n const operations: OperationsObject = {};\n\n const addOperationsForCollection = (\n collection: Record<string, EventSchemaEntry<SV>> | undefined,\n action: 'send' | 'receive'\n ) => {\n if (!collection) {\n return;\n }\n\n Object.entries(collection).forEach(([messageKey, candidate]) => {\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n Array.isArray(candidate) ||\n !('shape' in candidate)\n ) {\n return;\n }\n\n const entry = candidate as EventSchemaEntry<SV>;\n\n // Determine which channels to use\n const channelNames: string[] = entry.channel\n ? [entry.channel]\n : entry.channels && entry.channels.length > 0\n ? entry.channels\n : [messageKey];\n\n const messageName =\n entry.operation ?? entry.operations?.[0] ?? messageKey;\n\n // Create operations for all specified channels\n channelNames.forEach((channelName) => {\n const operationKey = `${action}-${channelName}-${messageName}`;\n\n const operation: OperationObject = {\n action,\n channel: {\n $ref: `#/channels/${channelName}`\n } as ReferenceObject,\n messages: [\n {\n $ref: `#/channels/${channelName}/messages/${messageName}`\n } as ReferenceObject\n ]\n };\n\n operations[operationKey] = operation;\n });\n });\n };\n\n addOperationsForCollection(eventSchemas.clientMessages, 'receive');\n addOperationsForCollection(eventSchemas.serverMessages, 'send');\n\n const { title, version, description } = options ?? {};\n\n const asyncApiDocument: AsyncApiDocument = {\n asyncapi: '3.0.0',\n info: {\n title: title || process.env.API_TITLE || 'Forklaunch WebSocket API',\n version: version || '1.0.0',\n ...(description ? { description } : {})\n },\n ...(options?.id ? { id: options.id } : {}),\n ...(options?.defaultContentType\n ? { defaultContentType: options.defaultContentType }\n : {}),\n ...(Object.keys(channels).length > 0 ? { channels } : {}),\n ...(Object.keys(operations).length > 0 ? { operations } : {})\n };\n\n return asyncApiDocument;\n}\n","import {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n SchemaValidator\n} from '@forklaunch/validator';\n\nimport { EventSchema, EventSchemaEntry } from './types/eventSchema.types';\n\ntype SchemaRecord<SV extends AnySchemaValidator> =\n | Record<string, EventSchemaEntry<SV>>\n | undefined;\n\nexport function buildUnionSchema<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n record: SchemaRecord<SV>\n): IdiomaticSchema<SV> | undefined {\n if (!record) {\n return undefined;\n }\n\n const schemas = Object.values(record)\n .filter((entry): entry is EventSchemaEntry<SV> => Boolean(entry))\n .map((entry) => entry.shape);\n\n if (schemas.length === 0) {\n return undefined;\n }\n\n if (schemas.length === 1) {\n return schemas[0];\n }\n\n return schemaValidator.union(schemas) as IdiomaticSchema<SV>;\n}\n\nexport function parseSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n value: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n if (!schema) {\n return value;\n }\n\n const result = schemaValidator.parse(schema, value);\n if (result.ok) {\n return result.value;\n }\n\n const errors = 'errors' in result ? result.errors || [] : [];\n throw new Error(prettyPrintParseErrors(errors, context));\n}\n\nexport function encodeSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n value: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n const validated = parseSchemaValue(schemaValidator, value, schema, context);\n\n if (\n Buffer.isBuffer(validated) ||\n validated instanceof ArrayBuffer ||\n ArrayBuffer.isView(validated)\n ) {\n if (Buffer.isBuffer(validated)) {\n return validated;\n }\n\n if (validated instanceof ArrayBuffer) {\n return Buffer.from(validated);\n }\n\n const view = validated as {\n buffer: ArrayBuffer;\n byteOffset: number;\n byteLength: number;\n };\n const typed = new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n return Buffer.from(typed);\n }\n\n if (typeof validated === 'string') {\n return Buffer.from(validated, 'utf-8');\n }\n\n if (validated === null || validated === undefined) {\n return validated;\n }\n\n return Buffer.from(JSON.stringify(validated), 'utf-8');\n}\n\nexport function decodeSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n data: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n let decoded: string;\n let parsed: unknown;\n\n if (Buffer.isBuffer(data)) {\n decoded = data.toString('utf-8');\n } else if (data instanceof ArrayBuffer) {\n decoded = Buffer.from(data).toString('utf-8');\n } else if (ArrayBuffer.isView(data)) {\n const view = data as {\n buffer: ArrayBuffer;\n byteOffset: number;\n byteLength: number;\n };\n decoded = Buffer.from(\n view.buffer,\n view.byteOffset,\n view.byteLength\n ).toString('utf-8');\n } else if (typeof data === 'string') {\n decoded = data;\n } else {\n parsed = data;\n return parseSchemaValue(schemaValidator, parsed, schema, context);\n }\n\n try {\n parsed = JSON.parse(decoded);\n } catch {\n parsed = decoded;\n }\n\n return parseSchemaValue(schemaValidator, parsed, schema, context);\n}\n\nexport function normalizeEncodedValue(\n encoded: unknown,\n context: string,\n allowUndefined = false\n): Buffer | undefined {\n if (encoded === null || encoded === undefined) {\n if (allowUndefined) {\n return undefined;\n }\n throw new Error(`Invalid ${context}`);\n }\n\n if (Buffer.isBuffer(encoded)) {\n return encoded;\n }\n\n if (encoded instanceof ArrayBuffer) {\n return Buffer.from(encoded);\n }\n\n if (ArrayBuffer.isView(encoded)) {\n const view = encoded as ArrayBufferView;\n return Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n }\n\n if (typeof encoded === 'string') {\n return Buffer.from(encoded, 'utf-8');\n }\n\n if (\n typeof encoded === 'number' ||\n typeof encoded === 'boolean' ||\n typeof encoded === 'bigint'\n ) {\n return Buffer.from(JSON.stringify(encoded), 'utf-8');\n }\n\n if (typeof encoded === 'object') {\n return Buffer.from(JSON.stringify(encoded), 'utf-8');\n }\n\n throw new Error(`Unsupported payload type for ${context}`);\n}\n\nexport function createWebSocketSchemas<\n SV extends AnySchemaValidator,\n ES extends EventSchema<SV>\n>(schemaValidator: SchemaValidator, eventSchemas: ES) {\n const clientMessagesSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.clientMessages\n );\n const serverMessagesSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.serverMessages\n );\n const errorsSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.errors\n );\n const pingSchema = eventSchemas.ping?.shape;\n const pongSchema = eventSchemas.pong?.shape;\n const closeReasonSchema = eventSchemas.closeReason\n ? buildUnionSchema<SV>(schemaValidator, eventSchemas.closeReason)\n : undefined;\n\n return {\n clientMessagesSchema,\n serverMessagesSchema,\n errorsSchema,\n pingSchema,\n pongSchema,\n closeReasonSchema\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/ws/asyncApiV3Generator/asyncApiV3Generator.ts","../../src/ws/webSocketLike.ts"],"sourcesContent":["import type {\n AsyncAPIObject,\n ChannelObject,\n ChannelsObject,\n MessageObject,\n MessagesObject,\n OperationObject,\n OperationsObject,\n ReferenceObject\n} from '@asyncapi/parser/esm/spec-types/v3';\n\nimport type { AnySchemaValidator } from '@forklaunch/validator';\n\nimport { EventSchema, EventSchemaEntry } from '../types/eventSchema.types';\n\nexport type AsyncApiDocument = AsyncAPIObject;\n\nexport function generateAsyncApi<SV extends AnySchemaValidator>(\n eventSchemas: EventSchema<SV>,\n options?: {\n title?: string;\n version?: string;\n description?: string;\n id?: AsyncApiDocument['id'];\n defaultContentType?: AsyncApiDocument['defaultContentType'];\n }\n): AsyncApiDocument {\n const channels: ChannelsObject = {};\n\n const appendMessageToChannel = (\n collection?: Record<string, EventSchemaEntry<SV>>\n ) => {\n if (!collection) {\n return;\n }\n\n Object.entries(collection).forEach(([messageKey, candidate]) => {\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n Array.isArray(candidate) ||\n !('shape' in candidate)\n ) {\n return;\n }\n\n const entry = candidate as EventSchemaEntry<SV>;\n const schema = entry.shape;\n\n // Determine which channels to use\n const channelNames: string[] = entry.channel\n ? [entry.channel]\n : entry.channels && entry.channels.length > 0\n ? entry.channels\n : [messageKey];\n\n const messageName =\n entry.operation ?? entry.operations?.[0] ?? messageKey;\n\n // Add message to all specified channels\n channelNames.forEach((channelName) => {\n const existingChannel = channels[channelName];\n if (!existingChannel || '$ref' in existingChannel) {\n channels[channelName] = {\n address: channelName,\n messages: {}\n };\n }\n\n const channelEntry = channels[channelName] as ChannelObject;\n channelEntry.messages = (channelEntry.messages ?? {}) as MessagesObject;\n const messages = channelEntry.messages as MessagesObject;\n\n const message: MessageObject = {\n name: messageName,\n payload: schema\n };\n\n messages[messageName] = message;\n });\n });\n };\n\n appendMessageToChannel(eventSchemas.clientMessages);\n appendMessageToChannel(eventSchemas.serverMessages);\n appendMessageToChannel(eventSchemas.errors);\n\n const operations: OperationsObject = {};\n\n const addOperationsForCollection = (\n collection: Record<string, EventSchemaEntry<SV>> | undefined,\n action: 'send' | 'receive'\n ) => {\n if (!collection) {\n return;\n }\n\n Object.entries(collection).forEach(([messageKey, candidate]) => {\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n Array.isArray(candidate) ||\n !('shape' in candidate)\n ) {\n return;\n }\n\n const entry = candidate as EventSchemaEntry<SV>;\n\n // Determine which channels to use\n const channelNames: string[] = entry.channel\n ? [entry.channel]\n : entry.channels && entry.channels.length > 0\n ? entry.channels\n : [messageKey];\n\n const messageName =\n entry.operation ?? entry.operations?.[0] ?? messageKey;\n\n // Create operations for all specified channels\n channelNames.forEach((channelName) => {\n const operationKey = `${action}-${channelName}-${messageName}`;\n\n const operation: OperationObject = {\n action,\n channel: {\n $ref: `#/channels/${channelName}`\n } as ReferenceObject,\n messages: [\n {\n $ref: `#/channels/${channelName}/messages/${messageName}`\n } as ReferenceObject\n ]\n };\n\n operations[operationKey] = operation;\n });\n });\n };\n\n addOperationsForCollection(eventSchemas.clientMessages, 'receive');\n addOperationsForCollection(eventSchemas.serverMessages, 'send');\n\n const { title, version, description } = options ?? {};\n\n const asyncApiDocument: AsyncApiDocument = {\n asyncapi: '3.0.0',\n info: {\n title: title || process.env.API_TITLE || 'Forklaunch WebSocket API',\n version: version || '1.0.0',\n ...(description ? { description } : {})\n },\n ...(options?.id ? { id: options.id } : {}),\n ...(options?.defaultContentType\n ? { defaultContentType: options.defaultContentType }\n : {}),\n ...(Object.keys(channels).length > 0 ? { channels } : {}),\n ...(Object.keys(operations).length > 0 ? { operations } : {})\n };\n\n return asyncApiDocument;\n}\n","import {\n AnySchemaValidator,\n IdiomaticSchema,\n prettyPrintParseErrors,\n SchemaValidator\n} from '@forklaunch/validator';\n\nimport { EventSchema, EventSchemaEntry } from './types/eventSchema.types';\n\ntype SchemaRecord<SV extends AnySchemaValidator> =\n Record<string, EventSchemaEntry<SV>> | undefined;\n\nexport function buildUnionSchema<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n record: SchemaRecord<SV>\n): IdiomaticSchema<SV> | undefined {\n if (!record) {\n return undefined;\n }\n\n const schemas = Object.values(record)\n .filter((entry): entry is EventSchemaEntry<SV> => Boolean(entry))\n .map((entry) => entry.shape);\n\n if (schemas.length === 0) {\n return undefined;\n }\n\n if (schemas.length === 1) {\n return schemas[0];\n }\n\n return schemaValidator.union(schemas) as IdiomaticSchema<SV>;\n}\n\nexport function parseSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n value: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n if (!schema) {\n return value;\n }\n\n const result = schemaValidator.parse(schema, value);\n if (result.ok) {\n return result.value;\n }\n\n const errors = 'errors' in result ? result.errors || [] : [];\n throw new Error(prettyPrintParseErrors(errors, context));\n}\n\nexport function encodeSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n value: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n const validated = parseSchemaValue(schemaValidator, value, schema, context);\n\n if (\n Buffer.isBuffer(validated) ||\n validated instanceof ArrayBuffer ||\n ArrayBuffer.isView(validated)\n ) {\n if (Buffer.isBuffer(validated)) {\n return validated;\n }\n\n if (validated instanceof ArrayBuffer) {\n return Buffer.from(validated);\n }\n\n const view = validated as {\n buffer: ArrayBuffer;\n byteOffset: number;\n byteLength: number;\n };\n const typed = new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n return Buffer.from(typed);\n }\n\n if (typeof validated === 'string') {\n return Buffer.from(validated, 'utf-8');\n }\n\n if (validated === null || validated === undefined) {\n return validated;\n }\n\n return Buffer.from(JSON.stringify(validated), 'utf-8');\n}\n\nexport function decodeSchemaValue<SV extends AnySchemaValidator>(\n schemaValidator: SchemaValidator,\n data: unknown,\n schema: IdiomaticSchema<SV> | undefined,\n context: string\n): unknown {\n let decoded: string;\n let parsed: unknown;\n\n if (Buffer.isBuffer(data)) {\n decoded = data.toString('utf-8');\n } else if (data instanceof ArrayBuffer) {\n decoded = Buffer.from(data).toString('utf-8');\n } else if (ArrayBuffer.isView(data)) {\n const view = data as {\n buffer: ArrayBuffer;\n byteOffset: number;\n byteLength: number;\n };\n decoded = Buffer.from(\n view.buffer,\n view.byteOffset,\n view.byteLength\n ).toString('utf-8');\n } else if (typeof data === 'string') {\n decoded = data;\n } else {\n parsed = data;\n return parseSchemaValue(schemaValidator, parsed, schema, context);\n }\n\n try {\n parsed = JSON.parse(decoded);\n } catch {\n parsed = decoded;\n }\n\n return parseSchemaValue(schemaValidator, parsed, schema, context);\n}\n\nexport function normalizeEncodedValue(\n encoded: unknown,\n context: string,\n allowUndefined = false\n): Buffer | undefined {\n if (encoded === null || encoded === undefined) {\n if (allowUndefined) {\n return undefined;\n }\n throw new Error(`Invalid ${context}`);\n }\n\n if (Buffer.isBuffer(encoded)) {\n return encoded;\n }\n\n if (encoded instanceof ArrayBuffer) {\n return Buffer.from(encoded);\n }\n\n if (ArrayBuffer.isView(encoded)) {\n const view = encoded as ArrayBufferView;\n return Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n }\n\n if (typeof encoded === 'string') {\n return Buffer.from(encoded, 'utf-8');\n }\n\n if (\n typeof encoded === 'number' ||\n typeof encoded === 'boolean' ||\n typeof encoded === 'bigint'\n ) {\n return Buffer.from(JSON.stringify(encoded), 'utf-8');\n }\n\n if (typeof encoded === 'object') {\n return Buffer.from(JSON.stringify(encoded), 'utf-8');\n }\n\n throw new Error(`Unsupported payload type for ${context}`);\n}\n\nexport function createWebSocketSchemas<\n SV extends AnySchemaValidator,\n ES extends EventSchema<SV>\n>(schemaValidator: SchemaValidator, eventSchemas: ES) {\n const clientMessagesSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.clientMessages\n );\n const serverMessagesSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.serverMessages\n );\n const errorsSchema = buildUnionSchema<SV>(\n schemaValidator,\n eventSchemas.errors\n );\n const pingSchema = eventSchemas.ping?.shape;\n const pongSchema = eventSchemas.pong?.shape;\n const closeReasonSchema = eventSchemas.closeReason\n ? buildUnionSchema<SV>(schemaValidator, eventSchemas.closeReason)\n : undefined;\n\n return {\n clientMessagesSchema,\n serverMessagesSchema,\n errorsSchema,\n pingSchema,\n pongSchema,\n closeReasonSchema\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,28 @@
1
+ import { AnySchemaValidator, IdiomaticSchema } from '@forklaunch/validator';
2
+ import { StringOnlyObject } from '../../http/types/contractDetails.types';
3
+ export type AsyncApiEnrichment = {
4
+ channel?: string;
5
+ channels?: string[];
6
+ operation?: string;
7
+ operations?: string[];
8
+ };
9
+ export type EventSchemaEntry<SV extends AnySchemaValidator> = {
10
+ shape: IdiomaticSchema<SV>;
11
+ } & AsyncApiEnrichment;
12
+ export type EventSchema<SV extends AnySchemaValidator> = {
13
+ ping?: EventSchemaEntry<SV>;
14
+ pong?: EventSchemaEntry<SV>;
15
+ clientMessages: Record<string, EventSchemaEntry<SV>>;
16
+ serverMessages: Record<string, EventSchemaEntry<SV>>;
17
+ errors?: Record<string, EventSchemaEntry<SV>>;
18
+ closeReason?: Record<string, EventSchemaEntry<SV>>;
19
+ context?: StringOnlyObject<SV>;
20
+ userData?: StringOnlyObject<SV>;
21
+ };
22
+ export type ServerEventSchema<SV extends AnySchemaValidator, ES extends EventSchema<SV>> = Omit<ES, 'serverMessages' | 'clientMessages'> & {
23
+ serverMessages: ES['clientMessages'];
24
+ clientMessages: ES['serverMessages'];
25
+ };
26
+ export type ExtractSchemaFromEntry<SV extends AnySchemaValidator, Entry extends EventSchemaEntry<SV> | undefined> = Entry extends EventSchemaEntry<SV> ? Entry['shape'] : never;
27
+ export type ExtractSchemaFromRecord<SV extends AnySchemaValidator, RecordType extends Record<string, EventSchemaEntry<SV>> | undefined> = RecordType extends Record<string, EventSchemaEntry<SV>> ? RecordType[keyof RecordType]['shape'] : never;
28
+ //# sourceMappingURL=eventSchema.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventSchema.types.d.ts","sourceRoot":"","sources":["../../../src/ws/types/eventSchema.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,kBAAkB,IAAI;IAC5D,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;CAC5B,GAAG,kBAAkB,CAAC;AAEvB,MAAM,MAAM,WAAW,CAAC,EAAE,SAAS,kBAAkB,IAAI;IACvD,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,WAAW,CAAC,EAAE,CAAC,IACxB,IAAI,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,GAAG;IAClD,cAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACrC,cAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,EAAE,SAAS,kBAAkB,EAC7B,KAAK,SAAS,gBAAgB,CAAC,EAAE,CAAC,GAAG,SAAS,IAC5C,KAAK,SAAS,gBAAgB,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AAEhE,MAAM,MAAM,uBAAuB,CACjC,EAAE,SAAS,kBAAkB,EAC7B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,IAEnE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,GACnD,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { AnySchemaValidator, IdiomaticSchema, SchemaValidator } from '@forklaunch/validator';
2
+ import { EventSchema, EventSchemaEntry } from './types/eventSchema.types';
3
+ type SchemaRecord<SV extends AnySchemaValidator> = Record<string, EventSchemaEntry<SV>> | undefined;
4
+ export declare function buildUnionSchema<SV extends AnySchemaValidator>(schemaValidator: SchemaValidator, record: SchemaRecord<SV>): IdiomaticSchema<SV> | undefined;
5
+ export declare function parseSchemaValue<SV extends AnySchemaValidator>(schemaValidator: SchemaValidator, value: unknown, schema: IdiomaticSchema<SV> | undefined, context: string): unknown;
6
+ export declare function encodeSchemaValue<SV extends AnySchemaValidator>(schemaValidator: SchemaValidator, value: unknown, schema: IdiomaticSchema<SV> | undefined, context: string): unknown;
7
+ export declare function decodeSchemaValue<SV extends AnySchemaValidator>(schemaValidator: SchemaValidator, data: unknown, schema: IdiomaticSchema<SV> | undefined, context: string): unknown;
8
+ export declare function normalizeEncodedValue(encoded: unknown, context: string, allowUndefined?: boolean): Buffer | undefined;
9
+ export declare function createWebSocketSchemas<SV extends AnySchemaValidator, ES extends EventSchema<SV>>(schemaValidator: SchemaValidator, eventSchemas: ES): {
10
+ clientMessagesSchema: IdiomaticSchema<SV> | undefined;
11
+ serverMessagesSchema: IdiomaticSchema<SV> | undefined;
12
+ errorsSchema: IdiomaticSchema<SV> | undefined;
13
+ pingSchema: IdiomaticSchema<SV> | undefined;
14
+ pongSchema: IdiomaticSchema<SV> | undefined;
15
+ closeReasonSchema: IdiomaticSchema<SV> | undefined;
16
+ };
17
+ export {};
18
+ //# sourceMappingURL=webSocketLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSocketLike.d.ts","sourceRoot":"","sources":["../../src/ws/webSocketLike.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EAEf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,KAAK,YAAY,CAAC,EAAE,SAAS,kBAAkB,IAC7C,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,kBAAkB,EAC5D,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GACvB,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,CAkBjC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,kBAAkB,EAC5D,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAYT;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAC7D,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAkCT;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAC7D,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAiCT;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,cAAc,UAAQ,GACrB,MAAM,GAAG,SAAS,CAsCpB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,WAAW,CAAC,EAAE,CAAC,EAC1B,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE;;;;;;;EA2BnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/core",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "description": "forklaunch-js core package. Contains useful building blocks.",
5
5
  "homepage": "https://github.com/forklaunch/forklaunch-js#readme",
6
6
  "bugs": {
@@ -78,58 +78,58 @@
78
78
  "dependencies": {
79
79
  "@asyncapi/parser": "^3.6.0",
80
80
  "@forklaunch/opentelemetry-instrumentation-hyper-express": "0.0.5",
81
- "@mikro-orm/core": "7.0.15",
82
- "@mikro-orm/mongodb": "7.0.15",
81
+ "@mikro-orm/core": "7.1.8",
82
+ "@mikro-orm/mongodb": "7.1.8",
83
83
  "@opentelemetry/api": "^1.9.1",
84
- "@opentelemetry/api-logs": "^0.217.0",
85
- "@opentelemetry/exporter-logs-otlp-http": "^0.217.0",
86
- "@opentelemetry/exporter-metrics-otlp-http": "^0.217.0",
87
- "@opentelemetry/exporter-prometheus": "^0.217.0",
88
- "@opentelemetry/exporter-trace-otlp-http": "^0.217.0",
89
- "@opentelemetry/instrumentation-express": "^0.65.0",
90
- "@opentelemetry/instrumentation-http": "^0.217.0",
91
- "@opentelemetry/resources": "^2.7.1",
92
- "@opentelemetry/sdk-logs": "^0.217.0",
93
- "@opentelemetry/sdk-metrics": "^2.7.1",
94
- "@opentelemetry/sdk-node": "^0.217.0",
95
- "@opentelemetry/sdk-trace-node": "^2.7.1",
96
- "@opentelemetry/semantic-conventions": "^1.40.0",
84
+ "@opentelemetry/api-logs": "^0.221.0",
85
+ "@opentelemetry/exporter-logs-otlp-http": "^0.221.0",
86
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.221.0",
87
+ "@opentelemetry/exporter-prometheus": "^0.221.0",
88
+ "@opentelemetry/exporter-trace-otlp-http": "^0.221.0",
89
+ "@opentelemetry/instrumentation-express": "^0.69.0",
90
+ "@opentelemetry/instrumentation-http": "^0.221.0",
91
+ "@opentelemetry/resources": "^2.10.0",
92
+ "@opentelemetry/sdk-logs": "^0.221.0",
93
+ "@opentelemetry/sdk-metrics": "^2.10.0",
94
+ "@opentelemetry/sdk-node": "^0.221.0",
95
+ "@opentelemetry/sdk-trace-node": "^2.10.0",
96
+ "@opentelemetry/semantic-conventions": "^1.43.0",
97
97
  "cors": "^2.8.6",
98
98
  "dotenv": "^17.4.2",
99
- "fastmcp": "^4.0.1",
100
- "jose": "6.2.3",
101
- "openapi3-ts": "^4.5.0",
99
+ "fastmcp": "^4.12.1",
100
+ "jose": "6.2.4",
101
+ "openapi3-ts": "^4.6.1",
102
102
  "pino": "^10.3.1",
103
103
  "pino-http": "^11.0.0",
104
104
  "pino-pretty": "^13.1.3",
105
- "redis": "^5.12.1",
106
- "uuid": "^14.0.0",
105
+ "redis": "^6.1.0",
106
+ "uuid": "^14.0.1",
107
107
  "zod": "^4.4.3",
108
- "@forklaunch/validator": "1.2.18",
109
- "@forklaunch/common": "1.2.18"
108
+ "@forklaunch/validator": "1.2.20",
109
+ "@forklaunch/common": "1.2.20"
110
110
  },
111
111
  "devDependencies": {
112
112
  "@eslint/js": "^10.0.1",
113
- "@scalar/express-api-reference": "^0.9.14",
113
+ "@scalar/express-api-reference": "^0.10.11",
114
114
  "@types/cors": "^2.8.19",
115
115
  "@types/jest": "^30.0.0",
116
116
  "@types/qs": "^6.15.1",
117
117
  "@types/uuid": "^11.0.0",
118
- "@typescript/native-preview": "7.0.0-dev.20260511.1",
119
- "globals": "^17.6.0",
118
+ "@typescript/native-preview": "7.0.0-dev.20260707.2",
119
+ "globals": "^17.8.0",
120
120
  "jest": "^30.4.2",
121
121
  "jose": "6.1.3",
122
- "prettier": "^3.8.3",
123
- "testcontainers": "^11.14.0",
124
- "ts-jest": "^29.4.9",
122
+ "prettier": "^3.9.6",
123
+ "testcontainers": "^12.0.4",
124
+ "ts-jest": "^29.4.12",
125
125
  "ts-node": "^10.9.2",
126
126
  "tsup": "^8.5.1",
127
- "typedoc": "^0.28.19",
128
- "typescript": "^6.0.3",
129
- "typescript-eslint": "^8.59.3"
127
+ "typedoc": "^0.28.20",
128
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
129
+ "typescript-eslint": "^8.65.0"
130
130
  },
131
131
  "scripts": {
132
- "build": "tsgo --noEmit && tsup ./src/cache/index.ts ./src/controllers/index.ts ./src/mappers/index.ts ./src/objectstore/index.ts ./src/persistence/index.ts ./src/http/index.ts ./src/services/index.ts ./src/environment/index.ts ./src/ws/index.ts --format cjs,esm --no-splitting --dts --tsconfig tsconfig.json --out-dir lib --clean --sourcemap",
132
+ "build": "tsgo --noEmit && tsup ./src/cache/index.ts ./src/controllers/index.ts ./src/mappers/index.ts ./src/objectstore/index.ts ./src/persistence/index.ts ./src/http/index.ts ./src/services/index.ts ./src/environment/index.ts ./src/ws/index.ts --format cjs,esm --no-splitting --tsconfig tsconfig.json --out-dir lib --clean --sourcemap && tsgo -p tsconfig.build.json --emitDeclarationOnly",
133
133
  "clean": "rm -rf lib pnpm.lock.yaml node_modules",
134
134
  "docs": "typedoc --out docs *",
135
135
  "format": "prettier --ignore-path=.prettierignore --config .prettierrc '**/*.{ts,tsx,json}' --write",