@codemation/host 0.0.1

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 (358) hide show
  1. package/README.md +75 -0
  2. package/dist/CodemationConfig-XCkSV2dj.d.ts +168 -0
  3. package/dist/CodemationConsumerConfigLoader-Dmm2TzAA.d.ts +61 -0
  4. package/dist/CodemationConsumerConfigLoader-scS_RQMy.js +334 -0
  5. package/dist/CodemationConsumerConfigLoader-scS_RQMy.js.map +1 -0
  6. package/dist/CodemationFrontendBootstrapRequest-CE6DjOWJ.js +5768 -0
  7. package/dist/CodemationFrontendBootstrapRequest-CE6DjOWJ.js.map +1 -0
  8. package/dist/CodemationPluginListMerger-BNmaoXQL.js +49 -0
  9. package/dist/CodemationPluginListMerger-BNmaoXQL.js.map +1 -0
  10. package/dist/CodemationPluginListMerger-BRYqEk0y.d.ts +793 -0
  11. package/dist/CodemationWhitelabelConfig-DgbjgtrR.d.ts +48 -0
  12. package/dist/ConsoleLogger-ClPU7jtc.js +35 -0
  13. package/dist/ConsoleLogger-ClPU7jtc.js.map +1 -0
  14. package/dist/CredentialServices-BKBGe7l3.js +1030 -0
  15. package/dist/CredentialServices-BKBGe7l3.js.map +1 -0
  16. package/dist/CredentialServices-DpDpm8mL.d.ts +291 -0
  17. package/dist/LogLevelPolicy-4cq9z0TI.d.ts +37 -0
  18. package/dist/PrismaMigrationDeployer-B1E_gYz7.js +8212 -0
  19. package/dist/PrismaMigrationDeployer-B1E_gYz7.js.map +1 -0
  20. package/dist/ServerLoggerFactory-BRHxIDS7.js +340 -0
  21. package/dist/ServerLoggerFactory-BRHxIDS7.js.map +1 -0
  22. package/dist/WorkflowViewContracts-DCLpTn25.d.ts +47 -0
  23. package/dist/chunk-7V6ThxGB.js +39 -0
  24. package/dist/client-Yh7-CQud.d.ts +21995 -0
  25. package/dist/client.d.ts +12 -0
  26. package/dist/client.js +15 -0
  27. package/dist/client.js.map +1 -0
  28. package/dist/consumer.d.ts +5 -0
  29. package/dist/consumer.js +7 -0
  30. package/dist/credentials.d.ts +50 -0
  31. package/dist/credentials.js +11 -0
  32. package/dist/credentials.js.map +1 -0
  33. package/dist/decorate-B-N_5S4p.js +10 -0
  34. package/dist/decorateParam-BTcc3KNk.js +15 -0
  35. package/dist/devServerSidecar.d.ts +52 -0
  36. package/dist/devServerSidecar.js +131 -0
  37. package/dist/devServerSidecar.js.map +1 -0
  38. package/dist/index-Bs4F1IsC.d.ts +1044 -0
  39. package/dist/index.d.ts +19 -0
  40. package/dist/index.js +14 -0
  41. package/dist/nextServer.d.ts +89 -0
  42. package/dist/nextServer.js +127 -0
  43. package/dist/nextServer.js.map +1 -0
  44. package/dist/persistenceServer-K5eqlZm3.d.ts +36 -0
  45. package/dist/persistenceServer-W9uRw0dJ.js +19 -0
  46. package/dist/persistenceServer-W9uRw0dJ.js.map +1 -0
  47. package/dist/persistenceServer.d.ts +6 -0
  48. package/dist/persistenceServer.js +6 -0
  49. package/dist/server-BBdsATju.d.ts +132 -0
  50. package/dist/server-BiHSuA13.js +175 -0
  51. package/dist/server-BiHSuA13.js.map +1 -0
  52. package/dist/server.d.ts +9 -0
  53. package/dist/server.js +13 -0
  54. package/package.json +152 -0
  55. package/playwright.config.ts +74 -0
  56. package/prisma/migrations/20260315063514_init/migration.sql +16 -0
  57. package/prisma/migrations/20260316090000_workflow_debugger_overlay/migration.sql +9 -0
  58. package/prisma/migrations/20260317120000_trigger_state_store/migration.sql +3 -0
  59. package/prisma/migrations/20260317153000_trigger_setup_state/migration.sql +8 -0
  60. package/prisma/migrations/20260318110000_credentials_v2/migration.sql +49 -0
  61. package/prisma/migrations/20260319110000_credential_oauth2_material/migration.sql +28 -0
  62. package/prisma/migrations/20260319200000_codemation_auth_tables/migration.sql +56 -0
  63. package/prisma/migrations/20260320140000_user_invites_account_status/migration.sql +20 -0
  64. package/prisma/migrations/20260325120000_workflow_activation/migration.sql +8 -0
  65. package/prisma/migrations/migration_lock.toml +3 -0
  66. package/prisma/schema.prisma +179 -0
  67. package/prisma.config.ts +12 -0
  68. package/scripts/ensure-prisma-runtime-sourcemaps.mjs +42 -0
  69. package/scripts/integration-database-global-setup.mjs +30 -0
  70. package/src/application/ApplicationRequestError.ts +12 -0
  71. package/src/application/auth/AuthenticatedPrincipal.ts +5 -0
  72. package/src/application/auth/SessionVerifier.ts +5 -0
  73. package/src/application/binary/OverlayPinnedBinaryUploadService.ts +119 -0
  74. package/src/application/binary/RunBinaryAttachmentLookupService.ts +139 -0
  75. package/src/application/binary/RunStateBinaryStorageKeysCollector.ts +57 -0
  76. package/src/application/bus/Command.ts +3 -0
  77. package/src/application/bus/CommandBus.ts +5 -0
  78. package/src/application/bus/CommandHandler.ts +5 -0
  79. package/src/application/bus/DomainEvent.ts +1 -0
  80. package/src/application/bus/DomainEventBus.ts +5 -0
  81. package/src/application/bus/DomainEventHandler.ts +5 -0
  82. package/src/application/bus/Query.ts +3 -0
  83. package/src/application/bus/QueryBus.ts +5 -0
  84. package/src/application/bus/QueryHandler.ts +5 -0
  85. package/src/application/commands/AcceptUserInviteCommand.ts +10 -0
  86. package/src/application/commands/AcceptUserInviteCommandHandler.ts +19 -0
  87. package/src/application/commands/CopyRunToWorkflowDebuggerCommand.ts +14 -0
  88. package/src/application/commands/CopyRunToWorkflowDebuggerCommandHandler.ts +56 -0
  89. package/src/application/commands/CreateCredentialInstanceCommand.ts +9 -0
  90. package/src/application/commands/CreateCredentialInstanceCommandHandler.ts +28 -0
  91. package/src/application/commands/CredentialCommandHandlers.ts +10 -0
  92. package/src/application/commands/DeleteCredentialInstanceCommand.ts +7 -0
  93. package/src/application/commands/DeleteCredentialInstanceCommandHandler.ts +27 -0
  94. package/src/application/commands/HandleWebhookInvocationCommand.ts +12 -0
  95. package/src/application/commands/HandleWebhookInvocationCommandHandler.ts +42 -0
  96. package/src/application/commands/InviteUserCommand.ts +12 -0
  97. package/src/application/commands/InviteUserCommandHandler.ts +22 -0
  98. package/src/application/commands/RegenerateUserInviteCommand.ts +12 -0
  99. package/src/application/commands/RegenerateUserInviteCommandHandler.ts +24 -0
  100. package/src/application/commands/ReplaceMutableRunWorkflowSnapshotCommand.ts +12 -0
  101. package/src/application/commands/ReplaceMutableRunWorkflowSnapshotCommandHandler.ts +47 -0
  102. package/src/application/commands/ReplaceWorkflowDebuggerOverlayCommand.ts +14 -0
  103. package/src/application/commands/ReplaceWorkflowDebuggerOverlayCommandHandler.ts +35 -0
  104. package/src/application/commands/ReplayWorkflowNodeCommand.ts +12 -0
  105. package/src/application/commands/ReplayWorkflowNodeCommandHandler.ts +164 -0
  106. package/src/application/commands/SetPinnedNodeInputCommand.ts +13 -0
  107. package/src/application/commands/SetPinnedNodeInputCommandHandler.ts +50 -0
  108. package/src/application/commands/SetWorkflowActivationCommand.ts +10 -0
  109. package/src/application/commands/SetWorkflowActivationCommandHandler.ts +39 -0
  110. package/src/application/commands/StartWorkflowRunCommand.ts +8 -0
  111. package/src/application/commands/StartWorkflowRunCommandHandler.ts +286 -0
  112. package/src/application/commands/TestCredentialInstanceCommand.ts +9 -0
  113. package/src/application/commands/TestCredentialInstanceCommandHandler.ts +28 -0
  114. package/src/application/commands/UpdateCredentialInstanceCommand.ts +12 -0
  115. package/src/application/commands/UpdateCredentialInstanceCommandHandler.ts +28 -0
  116. package/src/application/commands/UpdateUserAccountStatusCommand.ts +12 -0
  117. package/src/application/commands/UpdateUserAccountStatusCommandHandler.ts +24 -0
  118. package/src/application/commands/UploadOverlayPinnedBinaryCommand.ts +16 -0
  119. package/src/application/commands/UploadOverlayPinnedBinaryCommandHandler.ts +31 -0
  120. package/src/application/commands/UpsertCredentialBindingCommand.ts +11 -0
  121. package/src/application/commands/UpsertCredentialBindingCommandHandler.ts +28 -0
  122. package/src/application/commands/UpsertLocalBootstrapUserCommand.ts +12 -0
  123. package/src/application/commands/UpsertLocalBootstrapUserCommandHandler.ts +24 -0
  124. package/src/application/commands/UserAccountCommandHandlers.ts +10 -0
  125. package/src/application/contracts/CredentialContractsRegistry.ts +88 -0
  126. package/src/application/contracts/RunContracts.ts +41 -0
  127. package/src/application/contracts/WorkflowDebuggerContracts.ts +12 -0
  128. package/src/application/contracts/WorkflowViewContracts.ts +40 -0
  129. package/src/application/contracts/WorkflowWebsocketMessage.ts +8 -0
  130. package/src/application/contracts/userDirectoryContracts.types.ts +60 -0
  131. package/src/application/dev/BootRuntimeSnapshotHolder.ts +19 -0
  132. package/src/application/dev/BootRuntimeSummary.types.ts +11 -0
  133. package/src/application/dev/DevBootstrapSummaryAssembler.ts +84 -0
  134. package/src/application/dev/DevBootstrapSummaryJson.types.ts +9 -0
  135. package/src/application/logging/LogFilter.ts +7 -0
  136. package/src/application/logging/Logger.ts +10 -0
  137. package/src/application/mapping/DataMapper.ts +3 -0
  138. package/src/application/mapping/WorkflowDefinitionMapper.ts +171 -0
  139. package/src/application/mapping/WorkflowPolicyUiPresentationFactory.ts +39 -0
  140. package/src/application/queries/CredentialQueryHandlers.ts +12 -0
  141. package/src/application/queries/GetCredentialFieldEnvStatusQuery.ts +5 -0
  142. package/src/application/queries/GetCredentialFieldEnvStatusQueryHandler.ts +52 -0
  143. package/src/application/queries/GetCredentialInstanceQuery.ts +9 -0
  144. package/src/application/queries/GetCredentialInstanceQueryHandler.ts +27 -0
  145. package/src/application/queries/GetCredentialInstanceWithSecretsQuery.ts +9 -0
  146. package/src/application/queries/GetCredentialInstanceWithSecretsQueryHandler.ts +27 -0
  147. package/src/application/queries/GetRunBinaryAttachmentQuery.ts +11 -0
  148. package/src/application/queries/GetRunBinaryAttachmentQueryHandler.ts +23 -0
  149. package/src/application/queries/GetRunStateQuery.ts +8 -0
  150. package/src/application/queries/GetRunStateQueryHandler.ts +21 -0
  151. package/src/application/queries/GetWorkflowCredentialHealthQuery.ts +9 -0
  152. package/src/application/queries/GetWorkflowCredentialHealthQueryHandler.ts +27 -0
  153. package/src/application/queries/GetWorkflowDebuggerOverlayQuery.ts +8 -0
  154. package/src/application/queries/GetWorkflowDebuggerOverlayQueryHandler.ts +28 -0
  155. package/src/application/queries/GetWorkflowDetailQuery.ts +8 -0
  156. package/src/application/queries/GetWorkflowDetailQueryHandler.ts +24 -0
  157. package/src/application/queries/GetWorkflowOverlayBinaryAttachmentQuery.ts +11 -0
  158. package/src/application/queries/GetWorkflowOverlayBinaryAttachmentQueryHandler.ts +23 -0
  159. package/src/application/queries/GetWorkflowSummariesQuery.ts +4 -0
  160. package/src/application/queries/GetWorkflowSummariesQueryHandler.ts +23 -0
  161. package/src/application/queries/ListCredentialInstancesQuery.ts +5 -0
  162. package/src/application/queries/ListCredentialInstancesQueryHandler.ts +27 -0
  163. package/src/application/queries/ListCredentialTypesQuery.ts +5 -0
  164. package/src/application/queries/ListCredentialTypesQueryHandler.ts +28 -0
  165. package/src/application/queries/ListUserAccountsQuery.ts +5 -0
  166. package/src/application/queries/ListUserAccountsQueryHandler.ts +22 -0
  167. package/src/application/queries/ListWorkflowRunsQuery.ts +8 -0
  168. package/src/application/queries/ListWorkflowRunsQueryHandler.ts +21 -0
  169. package/src/application/queries/UserAccountQueryHandlers.ts +4 -0
  170. package/src/application/queries/VerifyUserInviteQuery.ts +9 -0
  171. package/src/application/queries/VerifyUserInviteQueryHandler.ts +21 -0
  172. package/src/application/runs/WorkflowRunRetentionPruneScheduler.ts +98 -0
  173. package/src/application/websocket/WorkflowRunEventWebsocketRelay.ts +36 -0
  174. package/src/application/websocket/WorkflowWebsocketPublisher.ts +5 -0
  175. package/src/application/workflows/WebhookEndpointPathValidator.ts +35 -0
  176. package/src/application/workflows/WorkflowDebuggerOverlayStateFactory.ts +122 -0
  177. package/src/applicationTokens.ts +72 -0
  178. package/src/bootstrap/CodemationBootstrapRequest.ts +27 -0
  179. package/src/bootstrap/CodemationContainerFactory.ts +310 -0
  180. package/src/bootstrap/CodemationContainerRegistration.ts +23 -0
  181. package/src/bootstrap/CodemationContainerRegistrationRegistrar.ts +42 -0
  182. package/src/bootstrap/CodemationFrontendBootstrapRequest.ts +16 -0
  183. package/src/bootstrap/CodemationWorkerBootstrapRequest.ts +19 -0
  184. package/src/bootstrap/PreparedCodemationRuntime.ts +37 -0
  185. package/src/bootstrap/PreparedCodemationRuntimeFactory.ts +308 -0
  186. package/src/bootstrap/boot/CliRuntimeBootService.ts +27 -0
  187. package/src/bootstrap/boot/FrontendRuntimeBootService.ts +86 -0
  188. package/src/bootstrap/boot/WorkerRuntimeBootService.ts +64 -0
  189. package/src/bootstrap/runtime/AppConfigFactory.ts +57 -0
  190. package/src/bootstrap/runtime/ResolvedImplementationSelectionFactory.ts +118 -0
  191. package/src/client.ts +3 -0
  192. package/src/codemationApplication.ts +311 -0
  193. package/src/consumer.ts +4 -0
  194. package/src/credentials.ts +24 -0
  195. package/src/devServerSidecar.ts +10 -0
  196. package/src/domain/credentials/CredentialBindingService.ts +139 -0
  197. package/src/domain/credentials/CredentialFieldEnvOverlayService.ts +60 -0
  198. package/src/domain/credentials/CredentialInstanceService.ts +391 -0
  199. package/src/domain/credentials/CredentialMaterialResolver.ts +55 -0
  200. package/src/domain/credentials/CredentialRuntimeMaterialService.ts +39 -0
  201. package/src/domain/credentials/CredentialSecretCipher.ts +70 -0
  202. package/src/domain/credentials/CredentialServices.ts +145 -0
  203. package/src/domain/credentials/CredentialSessionServiceImpl.ts +119 -0
  204. package/src/domain/credentials/CredentialTestService.ts +73 -0
  205. package/src/domain/credentials/CredentialTypeRegistryImpl.ts +29 -0
  206. package/src/domain/credentials/OAuth2ConnectServiceFactory.ts +396 -0
  207. package/src/domain/credentials/OAuth2ProviderRegistry.ts +75 -0
  208. package/src/domain/credentials/WorkflowCredentialNodeResolver.ts +246 -0
  209. package/src/domain/runs/WorkflowRunRepository.ts +11 -0
  210. package/src/domain/users/UserAccountServiceRegistry.ts +315 -0
  211. package/src/domain/users/userLoginMethodLabels.types.ts +29 -0
  212. package/src/domain/workflows/WorkflowActivationPreflight.ts +32 -0
  213. package/src/domain/workflows/WorkflowActivationPreflightRules.ts +77 -0
  214. package/src/domain/workflows/WorkflowActivationRepository.ts +9 -0
  215. package/src/domain/workflows/WorkflowDebuggerOverlayRepository.ts +7 -0
  216. package/src/domain/workflows/WorkflowDebuggerOverlayState.ts +8 -0
  217. package/src/domain/workflows/WorkflowDefinitionRepository.ts +11 -0
  218. package/src/index.ts +58 -0
  219. package/src/infrastructure/auth/AuthJsSessionVerifier.ts +26 -0
  220. package/src/infrastructure/auth/DevelopmentSessionBypassVerifier.ts +12 -0
  221. package/src/infrastructure/binary/BinaryBodyNodeReadableFactory.ts +22 -0
  222. package/src/infrastructure/binary/CountingSha256Transform.ts +26 -0
  223. package/src/infrastructure/binary/LocalFilesystemBinaryStorageRegistry.ts +86 -0
  224. package/src/infrastructure/config/CodemationPluginRegistrar.ts +44 -0
  225. package/src/infrastructure/credentials/FrameworkBuiltinCredentialTypesRegistrar.ts +21 -0
  226. package/src/infrastructure/credentials/OpenAiApiKeyCredentialHealthTester.ts +89 -0
  227. package/src/infrastructure/credentials/OpenAiApiKeyCredentialShapes.types.ts +15 -0
  228. package/src/infrastructure/credentials/OpenAiApiKeyCredentialTypeFactory.ts +47 -0
  229. package/src/infrastructure/di/HandlesCommandRegistry.ts +24 -0
  230. package/src/infrastructure/di/HandlesDomainEventRegistry.ts +24 -0
  231. package/src/infrastructure/di/HandlesQueryRegistry.ts +24 -0
  232. package/src/infrastructure/di/InMemoryCommandBus.ts +47 -0
  233. package/src/infrastructure/di/InMemoryDomainEventBus.ts +47 -0
  234. package/src/infrastructure/di/InMemoryQueryBus.ts +45 -0
  235. package/src/infrastructure/ids/CodemationIdFactory.ts +12 -0
  236. package/src/infrastructure/logging/BrowserLogger.ts +1 -0
  237. package/src/infrastructure/logging/BrowserLoggerFactory.ts +14 -0
  238. package/src/infrastructure/logging/ConsoleLogger.ts +41 -0
  239. package/src/infrastructure/logging/FilteringLogger.ts +38 -0
  240. package/src/infrastructure/logging/LogLevelPolicy.ts +148 -0
  241. package/src/infrastructure/logging/LogLevelPolicyFactory.ts +16 -0
  242. package/src/infrastructure/logging/PerformanceLogPolicy.ts +10 -0
  243. package/src/infrastructure/logging/PerformanceLogPolicyFactory.ts +14 -0
  244. package/src/infrastructure/logging/ServerLogger.ts +1 -0
  245. package/src/infrastructure/logging/ServerLoggerFactory.ts +28 -0
  246. package/src/infrastructure/persistence/CodemationPostgresPrismaClientFactory.ts +9 -0
  247. package/src/infrastructure/persistence/CredentialPersistenceStore.ts +139 -0
  248. package/src/infrastructure/persistence/DatabasePersistenceResolver.ts +91 -0
  249. package/src/infrastructure/persistence/InMemoryTriggerSetupStateRepository.ts +23 -0
  250. package/src/infrastructure/persistence/InMemoryWorkflowActivationRepository.ts +18 -0
  251. package/src/infrastructure/persistence/InMemoryWorkflowDebuggerOverlayRepository.ts +16 -0
  252. package/src/infrastructure/persistence/InMemoryWorkflowRunRepository.ts +94 -0
  253. package/src/infrastructure/persistence/PrismaClientFactory.ts +26 -0
  254. package/src/infrastructure/persistence/PrismaCredentialStore.ts +368 -0
  255. package/src/infrastructure/persistence/PrismaMigrationDeployer.ts +184 -0
  256. package/src/infrastructure/persistence/PrismaTriggerSetupStateRepository.ts +68 -0
  257. package/src/infrastructure/persistence/PrismaWorkflowActivationRepository.ts +36 -0
  258. package/src/infrastructure/persistence/PrismaWorkflowDebuggerOverlayRepository.ts +65 -0
  259. package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +243 -0
  260. package/src/infrastructure/persistence/RuntimeWorkflowActivationPolicy.ts +27 -0
  261. package/src/infrastructure/persistence/SchedulerPersistenceCompatibilityValidator.ts +20 -0
  262. package/src/infrastructure/persistence/WorkflowDefinitionRepositoryAdapter.ts +31 -0
  263. package/src/infrastructure/persistence/WorkflowRunRepository.ts +46 -0
  264. package/src/infrastructure/persistence/generated/prisma/client.d.ts +1 -0
  265. package/src/infrastructure/persistence/generated/prisma/default.d.ts +1 -0
  266. package/src/infrastructure/persistence/generated/prisma/edge.d.ts +1 -0
  267. package/src/infrastructure/persistence/generated/prisma/index.d.ts +4766 -0
  268. package/src/infrastructure/persistence/generated/prisma/package.json +144 -0
  269. package/src/infrastructure/persistence/generated/prisma/query_compiler_fast_bg.wasm +0 -0
  270. package/src/infrastructure/persistence/generated/prisma/runtime/client.d.ts +3358 -0
  271. package/src/infrastructure/persistence/generated/prisma/runtime/index-browser.d.ts +90 -0
  272. package/src/infrastructure/persistence/generated/prisma/schema.prisma +35 -0
  273. package/src/infrastructure/persistence/generated/prisma/wasm-edge-light-loader.mjs +5 -0
  274. package/src/infrastructure/persistence/generated/prisma/wasm-worker-loader.mjs +5 -0
  275. package/src/infrastructure/persistence/generated/prisma-client/client.d.ts +1 -0
  276. package/src/infrastructure/persistence/generated/prisma-client/client.js +5 -0
  277. package/src/infrastructure/persistence/generated/prisma-client/default.d.ts +1 -0
  278. package/src/infrastructure/persistence/generated/prisma-client/default.js +5 -0
  279. package/src/infrastructure/persistence/generated/prisma-client/edge.d.ts +1 -0
  280. package/src/infrastructure/persistence/generated/prisma-client/edge.js +299 -0
  281. package/src/infrastructure/persistence/generated/prisma-client/index-browser.js +325 -0
  282. package/src/infrastructure/persistence/generated/prisma-client/index.d.ts +21623 -0
  283. package/src/infrastructure/persistence/generated/prisma-client/index.js +299 -0
  284. package/src/infrastructure/persistence/generated/prisma-client/package.json +144 -0
  285. package/src/infrastructure/persistence/generated/prisma-client/query_compiler_fast_bg.js +2 -0
  286. package/src/infrastructure/persistence/generated/prisma-client/query_compiler_fast_bg.wasm +0 -0
  287. package/src/infrastructure/persistence/generated/prisma-client/query_compiler_fast_bg.wasm-base64.js +2 -0
  288. package/src/infrastructure/persistence/generated/prisma-client/runtime/client.d.ts +3358 -0
  289. package/src/infrastructure/persistence/generated/prisma-client/runtime/client.js +86 -0
  290. package/src/infrastructure/persistence/generated/prisma-client/runtime/client.js.map +1 -0
  291. package/src/infrastructure/persistence/generated/prisma-client/runtime/index-browser.d.ts +90 -0
  292. package/src/infrastructure/persistence/generated/prisma-client/runtime/index-browser.js +6 -0
  293. package/src/infrastructure/persistence/generated/prisma-client/runtime/index-browser.js.map +1 -0
  294. package/src/infrastructure/persistence/generated/prisma-client/runtime/wasm-compiler-edge.js +76 -0
  295. package/src/infrastructure/persistence/generated/prisma-client/runtime/wasm-compiler-edge.js.map +1 -0
  296. package/src/infrastructure/persistence/generated/prisma-client/schema.prisma +179 -0
  297. package/src/infrastructure/persistence/generated/prisma-client/wasm-edge-light-loader.mjs +5 -0
  298. package/src/infrastructure/persistence/generated/prisma-client/wasm-worker-loader.mjs +5 -0
  299. package/src/infrastructure/runtime/LiveWorkflowRepository.ts +14 -0
  300. package/src/infrastructure/runtime/WorkerRuntimeScheduler.ts +35 -0
  301. package/src/infrastructure/server/http/ServerHttpRouteParams.ts +1 -0
  302. package/src/infrastructure/webhooks/RequestToWebhookItemMapper.ts +128 -0
  303. package/src/nextServer.ts +31 -0
  304. package/src/persistenceServer.ts +5 -0
  305. package/src/presentation/config/AppConfig.ts +25 -0
  306. package/src/presentation/config/CodemationAppContext.ts +19 -0
  307. package/src/presentation/config/CodemationApplicationFacade.ts +5 -0
  308. package/src/presentation/config/CodemationAuthConfig.ts +31 -0
  309. package/src/presentation/config/CodemationClassToken.ts +3 -0
  310. package/src/presentation/config/CodemationConfig.ts +86 -0
  311. package/src/presentation/config/CodemationConfigNormalizer.ts +179 -0
  312. package/src/presentation/config/CodemationLogConfig.ts +22 -0
  313. package/src/presentation/config/CodemationPackageManifest.ts +9 -0
  314. package/src/presentation/config/CodemationPlugin.ts +20 -0
  315. package/src/presentation/config/CodemationPluginListMerger.ts +46 -0
  316. package/src/presentation/config/CodemationWhitelabelConfig.ts +9 -0
  317. package/src/presentation/config/CodemationWorkflowDiscovery.ts +3 -0
  318. package/src/presentation/http/ApiPaths.ts +165 -0
  319. package/src/presentation/http/CodemationServerGatewayFactory.ts +120 -0
  320. package/src/presentation/http/HttpRequestJsonBodyReader.ts +12 -0
  321. package/src/presentation/http/ServerHttpErrorResponseFactory.ts +33 -0
  322. package/src/presentation/http/ServerHttpRouteParams.ts +1 -0
  323. package/src/presentation/http/hono/CodemationHonoApiAppFactory.ts +64 -0
  324. package/src/presentation/http/hono/HonoApiRouteRegistrar.ts +5 -0
  325. package/src/presentation/http/hono/HonoHttpAnonymousRoutePolicyRegistry.ts +27 -0
  326. package/src/presentation/http/hono/registrars/BinaryHonoApiRouteRegistrar.ts +21 -0
  327. package/src/presentation/http/hono/registrars/CredentialHonoApiRouteRegistrar.ts +34 -0
  328. package/src/presentation/http/hono/registrars/DevHonoApiRouteRegistrar.ts +17 -0
  329. package/src/presentation/http/hono/registrars/OAuth2HonoApiRouteRegistrar.ts +18 -0
  330. package/src/presentation/http/hono/registrars/RunHonoApiRouteRegistrar.ts +31 -0
  331. package/src/presentation/http/hono/registrars/UserHonoApiRouteRegistrar.ts +24 -0
  332. package/src/presentation/http/hono/registrars/WebhookHonoApiRouteRegistrar.ts +23 -0
  333. package/src/presentation/http/hono/registrars/WhitelabelHonoApiRouteRegistrar.ts +18 -0
  334. package/src/presentation/http/hono/registrars/WorkflowHonoApiRouteRegistrar.ts +33 -0
  335. package/src/presentation/http/routeHandlers/BinaryHttpRouteHandlerFactory.ts +101 -0
  336. package/src/presentation/http/routeHandlers/CredentialHttpRouteHandler.ts +129 -0
  337. package/src/presentation/http/routeHandlers/DevBootstrapSummaryHttpRouteHandler.ts +21 -0
  338. package/src/presentation/http/routeHandlers/OAuth2HttpRouteHandlerFactory.ts +129 -0
  339. package/src/presentation/http/routeHandlers/RunHttpRouteHandler.ts +82 -0
  340. package/src/presentation/http/routeHandlers/UserHttpRouteHandlerFactory.ts +109 -0
  341. package/src/presentation/http/routeHandlers/WebhookHttpRouteHandler.ts +42 -0
  342. package/src/presentation/http/routeHandlers/WhitelabelLogoHttpRouteHandler.ts +96 -0
  343. package/src/presentation/http/routeHandlers/WorkflowHttpRouteHandler.ts +104 -0
  344. package/src/presentation/server/CodemationConsumerAppResolver.ts +82 -0
  345. package/src/presentation/server/CodemationConsumerConfigExportsResolver.ts +33 -0
  346. package/src/presentation/server/CodemationConsumerConfigLoader.ts +270 -0
  347. package/src/presentation/server/CodemationPluginDiscovery.ts +151 -0
  348. package/src/presentation/server/CodemationTsyringeParamInfoReader.ts +26 -0
  349. package/src/presentation/server/CodemationTsyringeTypeInfoRegistrar.ts +121 -0
  350. package/src/presentation/server/DevelopmentRuntimeRouteGuard.ts +59 -0
  351. package/src/presentation/server/DiscoveredWorkflowsEmptyMessageFactory.ts +11 -0
  352. package/src/presentation/server/WorkflowDefinitionExportsResolver.ts +24 -0
  353. package/src/presentation/server/WorkflowDiscoveryPathSegmentsComputer.ts +53 -0
  354. package/src/presentation/server/WorkflowModulePathFinder.ts +47 -0
  355. package/src/presentation/websocket/WorkflowWebsocketServer.ts +169 -0
  356. package/src/server.ts +14 -0
  357. package/tsconfig.json +10 -0
  358. package/vitest.shared.ts +45 -0
@@ -0,0 +1,12 @@
1
+ import { a as Logger, o as LoggerFactory, t as CodemationWhitelabelConfig } from "./CodemationWhitelabelConfig-DgbjgtrR.js";
2
+ import { t as LogLevelPolicy } from "./LogLevelPolicy-4cq9z0TI.js";
3
+
4
+ //#region src/infrastructure/logging/BrowserLoggerFactory.d.ts
5
+ declare class BrowserLoggerFactory implements LoggerFactory {
6
+ private readonly logLevelPolicy;
7
+ constructor(logLevelPolicy: LogLevelPolicy);
8
+ create(scope: string): Logger;
9
+ }
10
+ //#endregion
11
+ export { BrowserLoggerFactory, type CodemationWhitelabelConfig, type Logger, type LoggerFactory };
12
+ //# sourceMappingURL=client.d.ts.map
package/dist/client.js ADDED
@@ -0,0 +1,15 @@
1
+ import { t as ConsoleLogger } from "./ConsoleLogger-ClPU7jtc.js";
2
+
3
+ //#region src/infrastructure/logging/BrowserLoggerFactory.ts
4
+ var BrowserLoggerFactory = class {
5
+ constructor(logLevelPolicy) {
6
+ this.logLevelPolicy = logLevelPolicy;
7
+ }
8
+ create(scope) {
9
+ return new ConsoleLogger(scope, this.logLevelPolicy);
10
+ }
11
+ };
12
+
13
+ //#endregion
14
+ export { BrowserLoggerFactory };
15
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["logLevelPolicy: LogLevelPolicy","BrowserLogger"],"sources":["../src/infrastructure/logging/BrowserLoggerFactory.ts"],"sourcesContent":["import type { Logger, LoggerFactory } from \"../../application/logging/Logger\";\n\nimport type { LogLevelPolicy } from \"./LogLevelPolicy\";\nimport { BrowserLogger } from \"./BrowserLogger\";\n\nexport class BrowserLoggerFactory implements LoggerFactory {\n constructor(private readonly logLevelPolicy: LogLevelPolicy) {}\n\n create(scope: string): Logger {\n return new BrowserLogger(scope, this.logLevelPolicy);\n }\n}\n\nexport { BrowserLogger } from \"./BrowserLogger\";\n"],"mappings":";;;AAKA,IAAa,uBAAb,MAA2D;CACzD,YAAY,AAAiBA,gBAAgC;EAAhC;;CAE7B,OAAO,OAAuB;AAC5B,SAAO,IAAIC,cAAc,OAAO,KAAK,eAAe"}
@@ -0,0 +1,5 @@
1
+ import "./CodemationWhitelabelConfig-DgbjgtrR.js";
2
+ import "./index-Bs4F1IsC.js";
3
+ import "./CodemationConfig-XCkSV2dj.js";
4
+ import { i as CodemationConsumerAppResolver, n as CodemationConsumerConfigResolution, r as CodemationConsumerApp, t as CodemationConsumerConfigLoader } from "./CodemationConsumerConfigLoader-Dmm2TzAA.js";
5
+ export { type CodemationConsumerApp, CodemationConsumerAppResolver, CodemationConsumerConfigLoader, type CodemationConsumerConfigResolution };
@@ -0,0 +1,7 @@
1
+ import "./ConsoleLogger-ClPU7jtc.js";
2
+ import "./ServerLoggerFactory-BRHxIDS7.js";
3
+ import { i as CodemationConsumerAppResolver, t as CodemationConsumerConfigLoader } from "./CodemationConsumerConfigLoader-scS_RQMy.js";
4
+ import "./decorateParam-BTcc3KNk.js";
5
+ import "./decorate-B-N_5S4p.js";
6
+
7
+ export { CodemationConsumerAppResolver, CodemationConsumerConfigLoader };
@@ -0,0 +1,50 @@
1
+ import "./CodemationWhitelabelConfig-DgbjgtrR.js";
2
+ import { d as CredentialHealth, s as AnyCredentialType, v as CredentialSessionFactoryArgs } from "./index-Bs4F1IsC.js";
3
+ import "./CodemationConfig-XCkSV2dj.js";
4
+ import { a as CredentialInstanceService, i as CredentialBindingService, n as CredentialType } from "./CredentialServices-DpDpm8mL.js";
5
+
6
+ //#region src/infrastructure/credentials/OpenAiApiKeyCredentialShapes.types.d.ts
7
+ /**
8
+ * Typed shapes for the `openai.apiKey` credential (public fields, secret material, session object).
9
+ */
10
+ type OpenAiApiKeyPublicConfig = Readonly<{
11
+ baseUrl?: string;
12
+ }>;
13
+ type OpenAiApiKeyMaterial = Readonly<{
14
+ apiKey?: string;
15
+ }>;
16
+ type OpenAiApiKeySession = Readonly<{
17
+ apiKey: string;
18
+ baseUrl?: string;
19
+ }>;
20
+ //#endregion
21
+ //#region src/infrastructure/credentials/OpenAiApiKeyCredentialHealthTester.d.ts
22
+ /**
23
+ * Verifies an OpenAI-compatible API key by calling the provider's models list endpoint
24
+ * (GET `/v1/models` relative to the configured base URL).
25
+ */
26
+ declare class OpenAiApiKeyCredentialHealthTester {
27
+ private readonly fetchImpl;
28
+ constructor(fetchImpl: typeof globalThis.fetch);
29
+ test(args: CredentialSessionFactoryArgs<OpenAiApiKeyPublicConfig, OpenAiApiKeyMaterial>): Promise<CredentialHealth>;
30
+ private resolveModelsListUrl;
31
+ private parseErrorMessage;
32
+ }
33
+ //#endregion
34
+ //#region src/infrastructure/credentials/OpenAiApiKeyCredentialTypeFactory.d.ts
35
+ /**
36
+ * Builds the OpenAI-compatible API key credential (`openai.apiKey`) registration.
37
+ * Used by {@link FrameworkBuiltinCredentialTypesRegistrar} and may be listed in {@link CodemationConfig.credentialTypes}
38
+ * so consumer apps always register the type even when bootstrap order differs.
39
+ */
40
+ declare class OpenAiApiKeyCredentialTypeFactory {
41
+ private readonly healthTester;
42
+ constructor(healthTester: OpenAiApiKeyCredentialHealthTester);
43
+ createCredentialType(): CredentialType<OpenAiApiKeyPublicConfig, OpenAiApiKeyMaterial, OpenAiApiKeySession>;
44
+ }
45
+ //#endregion
46
+ //#region src/credentials.d.ts
47
+ declare const openAiApiKeyCredentialType: AnyCredentialType;
48
+ //#endregion
49
+ export { type AnyCredentialType, CredentialBindingService, CredentialInstanceService, type CredentialSessionFactoryArgs, type CredentialType, OpenAiApiKeyCredentialHealthTester, OpenAiApiKeyCredentialTypeFactory, type OpenAiApiKeyMaterial, type OpenAiApiKeyPublicConfig, type OpenAiApiKeySession, openAiApiKeyCredentialType };
50
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1,11 @@
1
+ import "./decorateParam-BTcc3KNk.js";
2
+ import "./decorate-B-N_5S4p.js";
3
+ import { a as CredentialInstanceService, i as CredentialBindingService, m as OpenAiApiKeyCredentialHealthTester, p as OpenAiApiKeyCredentialTypeFactory } from "./CredentialServices-BKBGe7l3.js";
4
+
5
+ //#region src/credentials.ts
6
+ const defaultOpenAiApiKeyCredentialTypeFactory = new OpenAiApiKeyCredentialTypeFactory(new OpenAiApiKeyCredentialHealthTester(globalThis.fetch));
7
+ const openAiApiKeyCredentialType = defaultOpenAiApiKeyCredentialTypeFactory.createCredentialType();
8
+
9
+ //#endregion
10
+ export { CredentialBindingService, CredentialInstanceService, OpenAiApiKeyCredentialHealthTester, OpenAiApiKeyCredentialTypeFactory, openAiApiKeyCredentialType };
11
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","names":["openAiApiKeyCredentialType: AnyCredentialType"],"sources":["../src/credentials.ts"],"sourcesContent":["import type { AnyCredentialType } from \"./domain/credentials/CredentialServices\";\nimport { OpenAiApiKeyCredentialHealthTester } from \"./infrastructure/credentials/OpenAiApiKeyCredentialHealthTester\";\nimport { OpenAiApiKeyCredentialTypeFactory } from \"./infrastructure/credentials/OpenAiApiKeyCredentialTypeFactory\";\n\nexport { CredentialBindingService, CredentialInstanceService } from \"./domain/credentials/CredentialServices\";\nexport type {\n AnyCredentialType,\n CredentialSessionFactoryArgs,\n CredentialType,\n} from \"./domain/credentials/CredentialServices\";\nexport { OpenAiApiKeyCredentialHealthTester } from \"./infrastructure/credentials/OpenAiApiKeyCredentialHealthTester\";\nexport { OpenAiApiKeyCredentialTypeFactory } from \"./infrastructure/credentials/OpenAiApiKeyCredentialTypeFactory\";\nexport type {\n OpenAiApiKeyMaterial,\n OpenAiApiKeyPublicConfig,\n OpenAiApiKeySession,\n} from \"./infrastructure/credentials/OpenAiApiKeyCredentialShapes.types\";\n\nconst defaultOpenAiApiKeyCredentialTypeFactory = new OpenAiApiKeyCredentialTypeFactory(\n new OpenAiApiKeyCredentialHealthTester(globalThis.fetch),\n);\n\nexport const openAiApiKeyCredentialType: AnyCredentialType =\n defaultOpenAiApiKeyCredentialTypeFactory.createCredentialType();\n"],"mappings":";;;;;AAkBA,MAAM,2CAA2C,IAAI,kCACnD,IAAI,mCAAmC,WAAW,MAAM,CACzD;AAED,MAAaA,6BACX,yCAAyC,sBAAsB"}
@@ -0,0 +1,10 @@
1
+ //#region \0@oxc-project+runtime@0.95.0/helpers/decorate.js
2
+ function __decorate(decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }
8
+
9
+ //#endregion
10
+ export { __decorate as t };
@@ -0,0 +1,15 @@
1
+ //#region \0@oxc-project+runtime@0.95.0/helpers/decorateMetadata.js
2
+ function __decorateMetadata(k, v) {
3
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
+ }
5
+
6
+ //#endregion
7
+ //#region \0@oxc-project+runtime@0.95.0/helpers/decorateParam.js
8
+ function __decorateParam(paramIndex, decorator) {
9
+ return function(target, key) {
10
+ decorator(target, key, paramIndex);
11
+ };
12
+ }
13
+
14
+ //#endregion
15
+ export { __decorateMetadata as n, __decorateParam as t };
@@ -0,0 +1,52 @@
1
+ import { j as WorkflowDefinition, n as Container } from "./index-Bs4F1IsC.js";
2
+
3
+ //#region src/presentation/server/CodemationTsyringeParamInfoReader.d.ts
4
+ declare class CodemationTsyringeParamInfoReader {
5
+ private static readonly injectionTokenMetadataKey;
6
+ private static readonly designParamTypesMetadataKey;
7
+ static read(target: object): ReadonlyArray<unknown>;
8
+ private static readDesignParamTypes;
9
+ private static readInjectionTokens;
10
+ }
11
+ //#endregion
12
+ //#region src/presentation/server/CodemationTsyringeTypeInfoRegistrar.d.ts
13
+ declare class CodemationTsyringeTypeInfoRegistrar {
14
+ private readonly container;
15
+ private readonly visitedTokens;
16
+ private readonly visitedConfigObjects;
17
+ constructor(container: Container);
18
+ registerWorkflowDefinitions(workflows: ReadonlyArray<WorkflowDefinition>): void;
19
+ registerTypeToken(token: unknown): void;
20
+ private registerDependency;
21
+ private registerConfigTokens;
22
+ private registerFactoryProvider;
23
+ private resolveDependencyToken;
24
+ private resolveFactoryDependency;
25
+ private isInjectionDescriptor;
26
+ private isMissingTypeInfoError;
27
+ }
28
+ //#endregion
29
+ //#region src/presentation/server/DevelopmentRuntimeRouteGuard.d.ts
30
+ type DevelopmentRuntimeSignal = Readonly<{
31
+ kind: "buildStarted";
32
+ buildVersion?: string;
33
+ }> | Readonly<{
34
+ kind: "buildCompleted";
35
+ buildVersion?: string;
36
+ }> | Readonly<{
37
+ kind: "buildFailed";
38
+ message: string;
39
+ }>;
40
+ declare class DevelopmentRuntimeRouteGuard {
41
+ static isAuthorized(request: Request): boolean;
42
+ private static isLoopbackRequest;
43
+ static parseSignal(request: Request): Promise<DevelopmentRuntimeSignal>;
44
+ static parseSignalFromPayload(payload: Readonly<{
45
+ kind?: unknown;
46
+ buildVersion?: unknown;
47
+ message?: unknown;
48
+ }>): DevelopmentRuntimeSignal;
49
+ }
50
+ //#endregion
51
+ export { CodemationTsyringeParamInfoReader, CodemationTsyringeTypeInfoRegistrar, DevelopmentRuntimeRouteGuard, type DevelopmentRuntimeSignal };
52
+ //# sourceMappingURL=devServerSidecar.d.ts.map
@@ -0,0 +1,131 @@
1
+ //#region src/presentation/server/CodemationTsyringeParamInfoReader.ts
2
+ var CodemationTsyringeParamInfoReader = class {
3
+ static injectionTokenMetadataKey = "injectionTokens";
4
+ static designParamTypesMetadataKey = "design:paramtypes";
5
+ static read(target) {
6
+ const designParamTypes = this.readDesignParamTypes(target);
7
+ const injectionTokens = this.readInjectionTokens(target);
8
+ Object.keys(injectionTokens).forEach((key) => {
9
+ designParamTypes[Number(key)] = injectionTokens[key];
10
+ });
11
+ return designParamTypes;
12
+ }
13
+ static readDesignParamTypes(target) {
14
+ const reflected = Reflect.getMetadata?.(this.designParamTypesMetadataKey, target);
15
+ return Array.isArray(reflected) ? [...reflected] : [];
16
+ }
17
+ static readInjectionTokens(target) {
18
+ const reflected = Reflect.getOwnMetadata?.(this.injectionTokenMetadataKey, target);
19
+ if (!reflected || typeof reflected !== "object") return {};
20
+ return reflected;
21
+ }
22
+ };
23
+
24
+ //#endregion
25
+ //#region src/presentation/server/CodemationTsyringeTypeInfoRegistrar.ts
26
+ var CodemationTsyringeTypeInfoRegistrar = class {
27
+ visitedTokens = /* @__PURE__ */ new Set();
28
+ visitedConfigObjects = /* @__PURE__ */ new Set();
29
+ constructor(container) {
30
+ this.container = container;
31
+ }
32
+ registerWorkflowDefinitions(workflows) {
33
+ for (const workflow of workflows) for (const node of workflow.nodes) {
34
+ this.registerTypeToken(node.type);
35
+ this.registerConfigTokens(node.config);
36
+ }
37
+ }
38
+ registerTypeToken(token) {
39
+ if (typeof token !== "function" || this.visitedTokens.has(token)) return;
40
+ this.visitedTokens.add(token);
41
+ const paramInfo = CodemationTsyringeParamInfoReader.read(token);
42
+ for (const dependency of paramInfo) this.registerDependency(dependency);
43
+ this.registerFactoryProvider(token, paramInfo);
44
+ }
45
+ registerDependency(dependency) {
46
+ const token = this.resolveDependencyToken(dependency);
47
+ if (typeof token !== "function") return;
48
+ if (!this.container.isRegistered(token, true)) return;
49
+ this.registerTypeToken(token);
50
+ }
51
+ registerConfigTokens(value) {
52
+ if (Array.isArray(value)) {
53
+ value.forEach((entry) => this.registerConfigTokens(entry));
54
+ return;
55
+ }
56
+ if (!value || typeof value !== "object") return;
57
+ if (this.visitedConfigObjects.has(value)) return;
58
+ this.visitedConfigObjects.add(value);
59
+ if ("type" in value && typeof value.type === "function") this.registerTypeToken(value.type);
60
+ Object.values(value).forEach((entry) => this.registerConfigTokens(entry));
61
+ }
62
+ registerFactoryProvider(token, paramInfo) {
63
+ if (this.container.isRegistered(token, true)) return;
64
+ const classToken = token;
65
+ const constructorToken = token;
66
+ this.container.register(classToken, { useFactory: (dependencyContainer) => {
67
+ return new constructorToken(...paramInfo.map((dependency) => this.resolveFactoryDependency(dependencyContainer, dependency)));
68
+ } });
69
+ }
70
+ resolveDependencyToken(dependency) {
71
+ if (this.isInjectionDescriptor(dependency)) return dependency.token;
72
+ return dependency;
73
+ }
74
+ resolveFactoryDependency(dependencyContainer, dependency) {
75
+ const token = this.resolveDependencyToken(dependency);
76
+ if (typeof token === "function") {
77
+ if (dependencyContainer.isRegistered(token, true)) try {
78
+ return dependencyContainer.resolve(token);
79
+ } catch (error) {
80
+ if (!this.isMissingTypeInfoError(error)) throw error;
81
+ }
82
+ this.registerTypeToken(token);
83
+ return new token(...CodemationTsyringeParamInfoReader.read(token).map((entry) => this.resolveFactoryDependency(dependencyContainer, entry)));
84
+ }
85
+ return dependencyContainer.resolve(token);
86
+ }
87
+ isInjectionDescriptor(value) {
88
+ return value !== null && typeof value === "object" && "token" in value;
89
+ }
90
+ isMissingTypeInfoError(error) {
91
+ return error instanceof Error && error.message.includes("TypeInfo not known for");
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ //#region src/presentation/server/DevelopmentRuntimeRouteGuard.ts
97
+ var DevelopmentRuntimeRouteGuard = class DevelopmentRuntimeRouteGuard {
98
+ static isAuthorized(request) {
99
+ if (this.isLoopbackRequest(request)) return true;
100
+ const expectedToken = process.env.CODEMATION_DEV_SERVER_TOKEN;
101
+ if (!expectedToken) return true;
102
+ return request.headers.get("x-codemation-dev-token") === expectedToken;
103
+ }
104
+ static isLoopbackRequest(request) {
105
+ const requestUrl = new URL(request.url);
106
+ return requestUrl.hostname === "127.0.0.1" || requestUrl.hostname === "localhost" || requestUrl.hostname === "::1";
107
+ }
108
+ static async parseSignal(request) {
109
+ const payload = await request.json();
110
+ return DevelopmentRuntimeRouteGuard.parseSignalFromPayload(payload);
111
+ }
112
+ static parseSignalFromPayload(payload) {
113
+ if (payload.kind === "buildStarted") return {
114
+ kind: payload.kind,
115
+ buildVersion: typeof payload.buildVersion === "string" ? payload.buildVersion : void 0
116
+ };
117
+ if (payload.kind === "buildCompleted") return {
118
+ kind: payload.kind,
119
+ buildVersion: typeof payload.buildVersion === "string" ? payload.buildVersion : void 0
120
+ };
121
+ if (payload.kind === "buildFailed" && typeof payload.message === "string" && payload.message.length > 0) return {
122
+ kind: payload.kind,
123
+ message: payload.message
124
+ };
125
+ throw new Error("Unsupported development runtime signal.");
126
+ }
127
+ };
128
+
129
+ //#endregion
130
+ export { CodemationTsyringeParamInfoReader, CodemationTsyringeTypeInfoRegistrar, DevelopmentRuntimeRouteGuard };
131
+ //# sourceMappingURL=devServerSidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devServerSidecar.js","names":["container: Container"],"sources":["../src/presentation/server/CodemationTsyringeParamInfoReader.ts","../src/presentation/server/CodemationTsyringeTypeInfoRegistrar.ts","../src/presentation/server/DevelopmentRuntimeRouteGuard.ts"],"sourcesContent":["export class CodemationTsyringeParamInfoReader {\n private static readonly injectionTokenMetadataKey = \"injectionTokens\";\n private static readonly designParamTypesMetadataKey = \"design:paramtypes\";\n\n static read(target: object): ReadonlyArray<unknown> {\n const designParamTypes = this.readDesignParamTypes(target);\n const injectionTokens = this.readInjectionTokens(target);\n Object.keys(injectionTokens).forEach((key: string) => {\n designParamTypes[Number(key)] = injectionTokens[key];\n });\n return designParamTypes;\n }\n\n private static readDesignParamTypes(target: object): unknown[] {\n const reflected = Reflect.getMetadata?.(this.designParamTypesMetadataKey, target);\n return Array.isArray(reflected) ? [...reflected] : [];\n }\n\n private static readInjectionTokens(target: object): Record<string, unknown> {\n const reflected = Reflect.getOwnMetadata?.(this.injectionTokenMetadataKey, target);\n if (!reflected || typeof reflected !== \"object\") {\n return {};\n }\n return reflected as Record<string, unknown>;\n }\n}\n","import type { Container, TypeToken, WorkflowDefinition } from \"@codemation/core\";\n\nimport { CodemationTsyringeParamInfoReader } from \"./CodemationTsyringeParamInfoReader\";\n\ntype InjectionDescriptor = Readonly<{\n token?: unknown;\n}>;\n\nexport class CodemationTsyringeTypeInfoRegistrar {\n private readonly visitedTokens = new Set<unknown>();\n private readonly visitedConfigObjects = new Set<object>();\n\n constructor(private readonly container: Container) {}\n\n registerWorkflowDefinitions(workflows: ReadonlyArray<WorkflowDefinition>): void {\n for (const workflow of workflows) {\n for (const node of workflow.nodes) {\n this.registerTypeToken(node.type);\n this.registerConfigTokens(node.config);\n }\n }\n }\n\n registerTypeToken(token: unknown): void {\n if (typeof token !== \"function\" || this.visitedTokens.has(token)) {\n return;\n }\n this.visitedTokens.add(token);\n const paramInfo = CodemationTsyringeParamInfoReader.read(token);\n for (const dependency of paramInfo) {\n this.registerDependency(dependency);\n }\n this.registerFactoryProvider(token as new (...args: ReadonlyArray<unknown>) => unknown, paramInfo);\n }\n\n private registerDependency(dependency: unknown): void {\n const token = this.resolveDependencyToken(dependency);\n if (typeof token !== \"function\") {\n return;\n }\n if (!this.container.isRegistered(token as TypeToken<unknown>, true)) {\n return;\n }\n this.registerTypeToken(token);\n }\n\n private registerConfigTokens(value: unknown): void {\n if (Array.isArray(value)) {\n value.forEach((entry: unknown) => this.registerConfigTokens(entry));\n return;\n }\n if (!value || typeof value !== \"object\") {\n return;\n }\n if (this.visitedConfigObjects.has(value)) {\n return;\n }\n this.visitedConfigObjects.add(value);\n if (\"type\" in value && typeof value.type === \"function\") {\n this.registerTypeToken(value.type);\n }\n Object.values(value).forEach((entry: unknown) => this.registerConfigTokens(entry));\n }\n\n private registerFactoryProvider(\n token: new (...args: ReadonlyArray<unknown>) => unknown,\n paramInfo: ReadonlyArray<unknown>,\n ): void {\n if (this.container.isRegistered(token as TypeToken<unknown>, true)) {\n return;\n }\n const classToken = token as unknown as TypeToken<unknown>;\n const constructorToken = token as unknown as new (...args: ReadonlyArray<unknown>) => unknown;\n this.container.register(classToken, {\n useFactory: (dependencyContainer) => {\n const dependencies = paramInfo.map((dependency: unknown) =>\n this.resolveFactoryDependency(dependencyContainer, dependency),\n );\n return new constructorToken(...dependencies);\n },\n });\n }\n\n private resolveDependencyToken(dependency: unknown): unknown {\n if (this.isInjectionDescriptor(dependency)) {\n return dependency.token;\n }\n return dependency;\n }\n\n private resolveFactoryDependency(dependencyContainer: Container, dependency: unknown): unknown {\n const token = this.resolveDependencyToken(dependency);\n if (typeof token === \"function\") {\n if (dependencyContainer.isRegistered(token as TypeToken<unknown>, true)) {\n try {\n return dependencyContainer.resolve(token as TypeToken<unknown>);\n } catch (error) {\n if (!this.isMissingTypeInfoError(error)) {\n throw error;\n }\n }\n }\n this.registerTypeToken(token);\n const constructorToken = token as unknown as new (...args: ReadonlyArray<unknown>) => unknown;\n const paramInfo = CodemationTsyringeParamInfoReader.read(token);\n const nestedDependencies = paramInfo.map((entry: unknown) =>\n this.resolveFactoryDependency(dependencyContainer, entry),\n );\n return new constructorToken(...nestedDependencies);\n }\n return dependencyContainer.resolve(token as TypeToken<unknown>);\n }\n\n private isInjectionDescriptor(value: unknown): value is InjectionDescriptor {\n return value !== null && typeof value === \"object\" && \"token\" in value;\n }\n\n private isMissingTypeInfoError(error: unknown): boolean {\n return error instanceof Error && error.message.includes(\"TypeInfo not known for\");\n }\n}\n","export type DevelopmentRuntimeSignal =\n | Readonly<{ kind: \"buildStarted\"; buildVersion?: string }>\n | Readonly<{ kind: \"buildCompleted\"; buildVersion?: string }>\n | Readonly<{ kind: \"buildFailed\"; message: string }>;\n\nexport class DevelopmentRuntimeRouteGuard {\n static isAuthorized(request: Request): boolean {\n if (this.isLoopbackRequest(request)) {\n return true;\n }\n const expectedToken = process.env.CODEMATION_DEV_SERVER_TOKEN;\n if (!expectedToken) {\n return true;\n }\n return request.headers.get(\"x-codemation-dev-token\") === expectedToken;\n }\n\n private static isLoopbackRequest(request: Request): boolean {\n const requestUrl = new URL(request.url);\n return requestUrl.hostname === \"127.0.0.1\" || requestUrl.hostname === \"localhost\" || requestUrl.hostname === \"::1\";\n }\n\n static async parseSignal(request: Request): Promise<DevelopmentRuntimeSignal> {\n const payload = (await request.json()) as Readonly<{\n kind?: unknown;\n buildVersion?: unknown;\n message?: unknown;\n }>;\n return DevelopmentRuntimeRouteGuard.parseSignalFromPayload(payload);\n }\n\n static parseSignalFromPayload(\n payload: Readonly<{\n kind?: unknown;\n buildVersion?: unknown;\n message?: unknown;\n }>,\n ): DevelopmentRuntimeSignal {\n if (payload.kind === \"buildStarted\") {\n return {\n kind: payload.kind,\n buildVersion: typeof payload.buildVersion === \"string\" ? payload.buildVersion : undefined,\n };\n }\n if (payload.kind === \"buildCompleted\") {\n return {\n kind: payload.kind,\n buildVersion: typeof payload.buildVersion === \"string\" ? payload.buildVersion : undefined,\n };\n }\n if (payload.kind === \"buildFailed\" && typeof payload.message === \"string\" && payload.message.length > 0) {\n return {\n kind: payload.kind,\n message: payload.message,\n };\n }\n throw new Error(\"Unsupported development runtime signal.\");\n }\n}\n"],"mappings":"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"}