@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,340 @@
1
+ import { t as ConsoleLogger } from "./ConsoleLogger-ClPU7jtc.js";
2
+ import { n as __decorateMetadata, t as __decorateParam } from "./decorateParam-BTcc3KNk.js";
3
+ import { t as __decorate } from "./decorate-B-N_5S4p.js";
4
+ import { inject, injectable } from "@codemation/core";
5
+
6
+ //#region src/presentation/config/CodemationConfigNormalizer.ts
7
+ var CodemationConfigNormalizer = class {
8
+ normalize(config) {
9
+ const collected = this.collectRegistration(config);
10
+ const normalizedRuntime = this.normalizeRuntimeConfig(config);
11
+ const normalizedWorkflowDiscoveryDirectories = [...config.workflowDiscovery?.directories ?? [], ...collected.workflowDirectories];
12
+ return {
13
+ ...config,
14
+ auth: config.app?.auth ?? config.auth,
15
+ containerRegistrations: collected.containerRegistrations,
16
+ credentialTypes: [...config.credentialTypes ?? [], ...collected.credentialTypes],
17
+ log: config.app?.log ?? config.log,
18
+ runtime: normalizedRuntime,
19
+ whitelabel: config.app?.whitelabel ?? config.whitelabel,
20
+ workflowDiscovery: normalizedWorkflowDiscoveryDirectories.length > 0 ? { directories: normalizedWorkflowDiscoveryDirectories } : config.workflowDiscovery,
21
+ workflows: this.mergeWorkflows(config.workflows ?? [], collected.workflows)
22
+ };
23
+ }
24
+ collectRegistration(config) {
25
+ if (!config.register) return {
26
+ containerRegistrations: [],
27
+ credentialTypes: [],
28
+ workflows: [],
29
+ workflowDirectories: []
30
+ };
31
+ const containerRegistrations = [];
32
+ const credentialTypes = [];
33
+ const workflows = [];
34
+ const workflowDirectories = [];
35
+ config.register({
36
+ registerCredentialType(type) {
37
+ credentialTypes.push(type);
38
+ },
39
+ registerNode(token, implementation) {
40
+ containerRegistrations.push({
41
+ token,
42
+ useClass: implementation ?? token
43
+ });
44
+ },
45
+ registerValue(token, value) {
46
+ containerRegistrations.push({
47
+ token,
48
+ useValue: value
49
+ });
50
+ },
51
+ registerClass(token, implementation) {
52
+ containerRegistrations.push({
53
+ token,
54
+ useClass: implementation
55
+ });
56
+ },
57
+ registerFactory(token, factory) {
58
+ containerRegistrations.push({
59
+ token,
60
+ useFactory: factory
61
+ });
62
+ },
63
+ registerWorkflow(workflow) {
64
+ workflows.push(workflow);
65
+ },
66
+ registerWorkflows(nextWorkflows) {
67
+ workflows.push(...nextWorkflows);
68
+ },
69
+ discoverWorkflows(...directories) {
70
+ workflowDirectories.push(...directories);
71
+ }
72
+ });
73
+ return {
74
+ containerRegistrations,
75
+ credentialTypes,
76
+ workflows,
77
+ workflowDirectories
78
+ };
79
+ }
80
+ normalizeRuntimeConfig(config) {
81
+ if (!config.app) return config.runtime;
82
+ return {
83
+ ...config.runtime ?? {},
84
+ frontendPort: config.app.frontendPort ?? config.runtime?.frontendPort,
85
+ database: this.normalizeDatabaseConfig(config),
86
+ eventBus: this.normalizeEventBusConfig(config),
87
+ scheduler: this.normalizeSchedulerConfig(config),
88
+ engineExecutionLimits: config.app.engineExecutionLimits ?? config.runtime?.engineExecutionLimits
89
+ };
90
+ }
91
+ normalizeDatabaseConfig(config) {
92
+ if (!config.app) return config.runtime?.database;
93
+ if (config.app.database) return config.app.database;
94
+ if (!config.app.databaseUrl) return config.runtime?.database;
95
+ return {
96
+ ...config.runtime?.database ?? {},
97
+ url: config.app.databaseUrl
98
+ };
99
+ }
100
+ normalizeSchedulerConfig(config) {
101
+ if (!config.app?.scheduler) return config.runtime?.scheduler;
102
+ const scheduler = config.app.scheduler;
103
+ return {
104
+ ...config.runtime?.scheduler ?? {},
105
+ kind: scheduler.kind === "queue" ? "bullmq" : scheduler.kind === "inline" ? "local" : config.runtime?.scheduler?.kind,
106
+ queuePrefix: scheduler.queuePrefix ?? config.runtime?.scheduler?.queuePrefix,
107
+ workerQueues: scheduler.workerQueues ?? config.runtime?.scheduler?.workerQueues
108
+ };
109
+ }
110
+ normalizeEventBusConfig(config) {
111
+ if (!config.app?.scheduler) return config.runtime?.eventBus;
112
+ const scheduler = config.app.scheduler;
113
+ const eventBusKind = scheduler.kind === "queue" ? "redis" : scheduler.kind === "inline" ? "memory" : config.runtime?.eventBus?.kind;
114
+ return {
115
+ ...config.runtime?.eventBus ?? {},
116
+ kind: eventBusKind,
117
+ queuePrefix: scheduler.queuePrefix ?? config.runtime?.eventBus?.queuePrefix,
118
+ redisUrl: scheduler.redisUrl ?? config.runtime?.eventBus?.redisUrl
119
+ };
120
+ }
121
+ mergeWorkflows(configuredWorkflows, registeredWorkflows) {
122
+ if (configuredWorkflows.length === 0 && registeredWorkflows.length === 0) return;
123
+ const workflowsById = /* @__PURE__ */ new Map();
124
+ for (const workflow of registeredWorkflows) workflowsById.set(workflow.id, workflow);
125
+ for (const workflow of configuredWorkflows) workflowsById.set(workflow.id, workflow);
126
+ return [...workflowsById.values()];
127
+ }
128
+ };
129
+
130
+ //#endregion
131
+ //#region src/infrastructure/logging/LogLevelPolicy.ts
132
+ const levelRank = {
133
+ debug: 0,
134
+ info: 1,
135
+ warn: 2,
136
+ error: 3
137
+ };
138
+ const globRegexMetaChars = /* @__PURE__ */ new Set("\\^$+?()[]{}|.");
139
+ /**
140
+ * Minimum log level for @codemation/host loggers.
141
+ * - `CODEMATION_LOG_LEVEL` overrides when set to a known level (for namespaces not matched by `codemation.config` log rules).
142
+ * - Under Vitest, defaults to **warn** so routine `info`/`debug` noise stays off the terminal; `warn`/`error` still print.
143
+ * - Otherwise defaults to **info**.
144
+ *
145
+ * When {@link applyCodemationLogConfig} is set, the first matching rule wins per namespace; unmatched namespaces use env defaults.
146
+ *
147
+ * Resolve a shared instance via {@link LogLevelPolicyFactory} (DI or `logLevelPolicyFactory`).
148
+ */
149
+ var LogLevelPolicy = class {
150
+ cachedMin;
151
+ codemationRules = null;
152
+ resolveMin() {
153
+ const raw = process.env.CODEMATION_LOG_LEVEL?.toLowerCase();
154
+ if (raw === "silent" || raw === "debug" || raw === "info" || raw === "warn" || raw === "error") return raw;
155
+ if (process.env.VITEST === "true") return "warn";
156
+ return "info";
157
+ }
158
+ minLevelCached() {
159
+ if (this.cachedMin === void 0) this.cachedMin = this.resolveMin();
160
+ return this.cachedMin;
161
+ }
162
+ resetForTests() {
163
+ this.cachedMin = void 0;
164
+ this.codemationRules = null;
165
+ }
166
+ /**
167
+ * Applies `codemation.config` log rules. Pass `undefined` to clear rules and use env-only behavior.
168
+ */
169
+ applyCodemationLogConfig(config) {
170
+ this.codemationRules = null;
171
+ if (!config) return;
172
+ const rawRules = this.normalizeCodemationRules(config);
173
+ if (rawRules.length === 0) return;
174
+ const compiled = [];
175
+ for (const rule of rawRules) {
176
+ const minLevel = this.parseRuleLevel(rule.level);
177
+ const patterns = this.normalizeFilterPatterns(rule.filter);
178
+ if (patterns.length === 0) throw new Error("codemation.config log rule filter must include at least one pattern");
179
+ const matchers = patterns.map((pattern) => this.compileGlobPattern(pattern));
180
+ compiled.push({
181
+ matchers,
182
+ minLevel
183
+ });
184
+ }
185
+ this.codemationRules = compiled;
186
+ }
187
+ shouldEmit(level, namespace) {
188
+ if (this.codemationRules && this.codemationRules.length > 0) {
189
+ for (const rule of this.codemationRules) if (rule.matchers.some((regex) => regex.test(namespace))) return this.levelPassesAgainstMin(level, rule.minLevel);
190
+ }
191
+ return this.levelPassesAgainstMin(level, this.minLevelCached());
192
+ }
193
+ normalizeCodemationRules(config) {
194
+ if ("rules" in config && Array.isArray(config.rules)) return [...config.rules];
195
+ return [config];
196
+ }
197
+ normalizeFilterPatterns(filter) {
198
+ if (typeof filter === "string") return [filter];
199
+ return [...filter];
200
+ }
201
+ /**
202
+ * Glob: only `*` is special (matches any substring). A lone `*` matches all namespaces.
203
+ */
204
+ compileGlobPattern(pattern) {
205
+ const trimmed = pattern.trim();
206
+ if (trimmed === "*") return /^.*$/;
207
+ let body = "";
208
+ for (const ch of trimmed) {
209
+ if (ch === "*") {
210
+ body += ".*";
211
+ continue;
212
+ }
213
+ if (globRegexMetaChars.has(ch)) {
214
+ body += "\\" + ch;
215
+ continue;
216
+ }
217
+ body += ch;
218
+ }
219
+ return /* @__PURE__ */ new RegExp("^" + body + "$");
220
+ }
221
+ parseRuleLevel(level) {
222
+ const normalized = level.toLowerCase();
223
+ if (normalized === "silent" || normalized === "debug" || normalized === "info" || normalized === "warn" || normalized === "error") return normalized;
224
+ throw new Error(`Invalid codemation.config log level: ${level}`);
225
+ }
226
+ levelPassesAgainstMin(level, min) {
227
+ if (min === "silent") return false;
228
+ return levelRank[level] >= levelRank[min];
229
+ }
230
+ };
231
+
232
+ //#endregion
233
+ //#region src/infrastructure/logging/LogLevelPolicyFactory.ts
234
+ /**
235
+ * Process-wide {@link LogLevelPolicy} singleton for server and browser loggers.
236
+ * Plain class (no `@injectable` from `@codemation/core`): client components import this file; decorating would pull core into the browser bundle.
237
+ */
238
+ var LogLevelPolicyFactory = class {
239
+ policy = new LogLevelPolicy();
240
+ create() {
241
+ return this.policy;
242
+ }
243
+ };
244
+ /** Shared factory for call sites outside the DI container (e.g. next-host bootstrap). */
245
+ const logLevelPolicyFactory = new LogLevelPolicyFactory();
246
+
247
+ //#endregion
248
+ //#region src/infrastructure/logging/FilteringLogger.ts
249
+ var FilteringLogger = class {
250
+ constructor(inner, scope, filter) {
251
+ this.inner = inner;
252
+ this.scope = scope;
253
+ this.filter = filter;
254
+ }
255
+ info(message, exception) {
256
+ if (!this.filter({
257
+ scope: this.scope,
258
+ level: "info",
259
+ message
260
+ })) return;
261
+ this.inner.info(message, exception);
262
+ }
263
+ warn(message, exception) {
264
+ if (!this.filter({
265
+ scope: this.scope,
266
+ level: "warn",
267
+ message
268
+ })) return;
269
+ this.inner.warn(message, exception);
270
+ }
271
+ error(message, exception) {
272
+ if (!this.filter({
273
+ scope: this.scope,
274
+ level: "error",
275
+ message
276
+ })) return;
277
+ this.inner.error(message, exception);
278
+ }
279
+ debug(message, exception) {
280
+ if (!this.filter({
281
+ scope: this.scope,
282
+ level: "debug",
283
+ message
284
+ })) return;
285
+ this.inner.debug(message, exception);
286
+ }
287
+ };
288
+
289
+ //#endregion
290
+ //#region src/infrastructure/logging/PerformanceLogPolicy.ts
291
+ /**
292
+ * Opt-in detailed timing / diagnostics lines (used with `ServerLoggerFactory#createPerformanceDiagnostics`).
293
+ *
294
+ * Set `CODEMATION_PERFORMANCE_LOGGING=true` to enable. Otherwise those loggers are silent regardless of level.
295
+ */
296
+ var PerformanceLogPolicy = class {
297
+ shouldEmitDetailedTiming() {
298
+ return process.env.CODEMATION_PERFORMANCE_LOGGING === "true";
299
+ }
300
+ };
301
+
302
+ //#endregion
303
+ //#region src/infrastructure/logging/PerformanceLogPolicyFactory.ts
304
+ /**
305
+ * Process-wide {@link PerformanceLogPolicy} singleton (same pattern as {@link LogLevelPolicyFactory}).
306
+ */
307
+ var PerformanceLogPolicyFactory = class {
308
+ policy = new PerformanceLogPolicy();
309
+ create() {
310
+ return this.policy;
311
+ }
312
+ };
313
+ const performanceLogPolicyFactory = new PerformanceLogPolicyFactory();
314
+
315
+ //#endregion
316
+ //#region src/infrastructure/logging/ServerLoggerFactory.ts
317
+ var _ref;
318
+ let ServerLoggerFactory = class ServerLoggerFactory$1 {
319
+ constructor(logLevelPolicyFactory$1) {
320
+ this.logLevelPolicyFactory = logLevelPolicyFactory$1;
321
+ }
322
+ create(scope) {
323
+ return new ConsoleLogger(scope, this.logLevelPolicyFactory.create());
324
+ }
325
+ createFiltered(scope, filter) {
326
+ return new FilteringLogger(this.create(scope), scope, filter);
327
+ }
328
+ createPerformanceDiagnostics(scope) {
329
+ return this.createFiltered(scope, (_entry) => performanceLogPolicyFactory.create().shouldEmitDetailedTiming());
330
+ }
331
+ };
332
+ ServerLoggerFactory = __decorate([
333
+ injectable(),
334
+ __decorateParam(0, inject(LogLevelPolicyFactory)),
335
+ __decorateMetadata("design:paramtypes", [typeof (_ref = typeof LogLevelPolicyFactory !== "undefined" && LogLevelPolicyFactory) === "function" ? _ref : Object])
336
+ ], ServerLoggerFactory);
337
+
338
+ //#endregion
339
+ export { FilteringLogger as a, CodemationConfigNormalizer as c, PerformanceLogPolicy as i, PerformanceLogPolicyFactory as n, LogLevelPolicyFactory as o, performanceLogPolicyFactory as r, logLevelPolicyFactory as s, ServerLoggerFactory as t };
340
+ //# sourceMappingURL=ServerLoggerFactory-BRHxIDS7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerLoggerFactory-BRHxIDS7.js","names":["containerRegistrations: Array<CodemationContainerRegistration<unknown>>","credentialTypes: Array<AnyCredentialType>","workflows: Array<WorkflowDefinition>","workflowDirectories: Array<string>","levelRank: Record<Exclude<LogLevel, \"silent\">, number>","compiled: { matchers: ReadonlyArray<RegExp>; minLevel: LogLevel }[]","inner: Logger","scope: string","filter: LogFilter","ServerLoggerFactory","logLevelPolicyFactory: LogLevelPolicyFactory","ServerLogger"],"sources":["../src/presentation/config/CodemationConfigNormalizer.ts","../src/infrastructure/logging/LogLevelPolicy.ts","../src/infrastructure/logging/LogLevelPolicyFactory.ts","../src/infrastructure/logging/FilteringLogger.ts","../src/infrastructure/logging/PerformanceLogPolicy.ts","../src/infrastructure/logging/PerformanceLogPolicyFactory.ts","../src/infrastructure/logging/ServerLoggerFactory.ts"],"sourcesContent":["import type { AnyCredentialType, Container, TypeToken, WorkflowDefinition } from \"@codemation/core\";\nimport type { CodemationContainerRegistration } from \"../../bootstrap/CodemationContainerRegistration\";\nimport type { CodemationAppContext } from \"./CodemationAppContext\";\nimport type { CodemationClassToken } from \"./CodemationClassToken\";\nimport type {\n CodemationApplicationRuntimeConfig,\n CodemationConfig,\n CodemationDatabaseConfig,\n CodemationEventBusConfig,\n CodemationSchedulerConfig,\n} from \"./CodemationConfig\";\n\nexport type NormalizedCodemationConfig = CodemationConfig &\n Readonly<{\n containerRegistrations: ReadonlyArray<CodemationContainerRegistration<unknown>>;\n }>;\n\nexport class CodemationConfigNormalizer {\n normalize(config: CodemationConfig): NormalizedCodemationConfig {\n const collected = this.collectRegistration(config);\n const normalizedRuntime = this.normalizeRuntimeConfig(config);\n const normalizedWorkflowDiscoveryDirectories = [\n ...(config.workflowDiscovery?.directories ?? []),\n ...collected.workflowDirectories,\n ];\n\n return {\n ...config,\n auth: config.app?.auth ?? config.auth,\n containerRegistrations: collected.containerRegistrations,\n credentialTypes: [...(config.credentialTypes ?? []), ...collected.credentialTypes],\n log: config.app?.log ?? config.log,\n runtime: normalizedRuntime,\n whitelabel: config.app?.whitelabel ?? config.whitelabel,\n workflowDiscovery:\n normalizedWorkflowDiscoveryDirectories.length > 0\n ? { directories: normalizedWorkflowDiscoveryDirectories }\n : config.workflowDiscovery,\n workflows: this.mergeWorkflows(config.workflows ?? [], collected.workflows),\n };\n }\n\n private collectRegistration(config: CodemationConfig): Readonly<{\n containerRegistrations: ReadonlyArray<CodemationContainerRegistration<unknown>>;\n credentialTypes: ReadonlyArray<AnyCredentialType>;\n workflows: ReadonlyArray<WorkflowDefinition>;\n workflowDirectories: ReadonlyArray<string>;\n }> {\n if (!config.register) {\n return {\n containerRegistrations: [],\n credentialTypes: [],\n workflows: [],\n workflowDirectories: [],\n };\n }\n\n const containerRegistrations: Array<CodemationContainerRegistration<unknown>> = [];\n const credentialTypes: Array<AnyCredentialType> = [];\n const workflows: Array<WorkflowDefinition> = [];\n const workflowDirectories: Array<string> = [];\n\n const context: CodemationAppContext = {\n registerCredentialType(type) {\n credentialTypes.push(type);\n },\n registerNode<TValue>(token: TypeToken<TValue>, implementation?: CodemationClassToken<TValue>) {\n containerRegistrations.push({\n token,\n useClass: implementation ?? (token as CodemationClassToken<TValue>),\n });\n },\n registerValue<TValue>(token: TypeToken<TValue>, value: TValue) {\n containerRegistrations.push({ token, useValue: value });\n },\n registerClass<TValue>(token: TypeToken<TValue>, implementation: CodemationClassToken<TValue>) {\n containerRegistrations.push({ token, useClass: implementation });\n },\n registerFactory<TValue>(token: TypeToken<TValue>, factory: (container: Container) => TValue) {\n containerRegistrations.push({ token, useFactory: factory });\n },\n registerWorkflow(workflow: WorkflowDefinition) {\n workflows.push(workflow);\n },\n registerWorkflows(nextWorkflows: ReadonlyArray<WorkflowDefinition>) {\n workflows.push(...nextWorkflows);\n },\n discoverWorkflows(...directories: ReadonlyArray<string>) {\n workflowDirectories.push(...directories);\n },\n };\n\n config.register(context);\n\n return {\n containerRegistrations,\n credentialTypes,\n workflows,\n workflowDirectories,\n };\n }\n\n private normalizeRuntimeConfig(config: CodemationConfig): CodemationApplicationRuntimeConfig | undefined {\n if (!config.app) {\n return config.runtime;\n }\n const nextRuntime: CodemationApplicationRuntimeConfig = {\n ...(config.runtime ?? {}),\n frontendPort: config.app.frontendPort ?? config.runtime?.frontendPort,\n database: this.normalizeDatabaseConfig(config),\n eventBus: this.normalizeEventBusConfig(config),\n scheduler: this.normalizeSchedulerConfig(config),\n engineExecutionLimits: config.app.engineExecutionLimits ?? config.runtime?.engineExecutionLimits,\n };\n return nextRuntime;\n }\n\n private normalizeDatabaseConfig(config: CodemationConfig): CodemationDatabaseConfig | undefined {\n if (!config.app) {\n return config.runtime?.database;\n }\n if (config.app.database) {\n return config.app.database;\n }\n if (!config.app.databaseUrl) {\n return config.runtime?.database;\n }\n return {\n ...(config.runtime?.database ?? {}),\n url: config.app.databaseUrl,\n };\n }\n\n private normalizeSchedulerConfig(config: CodemationConfig): CodemationSchedulerConfig | undefined {\n if (!config.app?.scheduler) {\n return config.runtime?.scheduler;\n }\n const scheduler = config.app.scheduler;\n return {\n ...(config.runtime?.scheduler ?? {}),\n kind:\n scheduler.kind === \"queue\" ? \"bullmq\" : scheduler.kind === \"inline\" ? \"local\" : config.runtime?.scheduler?.kind,\n queuePrefix: scheduler.queuePrefix ?? config.runtime?.scheduler?.queuePrefix,\n workerQueues: scheduler.workerQueues ?? config.runtime?.scheduler?.workerQueues,\n };\n }\n\n private normalizeEventBusConfig(config: CodemationConfig): CodemationEventBusConfig | undefined {\n if (!config.app?.scheduler) {\n return config.runtime?.eventBus;\n }\n const scheduler = config.app.scheduler;\n const eventBusKind =\n scheduler.kind === \"queue\" ? \"redis\" : scheduler.kind === \"inline\" ? \"memory\" : config.runtime?.eventBus?.kind;\n return {\n ...(config.runtime?.eventBus ?? {}),\n kind: eventBusKind,\n queuePrefix: scheduler.queuePrefix ?? config.runtime?.eventBus?.queuePrefix,\n redisUrl: scheduler.redisUrl ?? config.runtime?.eventBus?.redisUrl,\n };\n }\n\n private mergeWorkflows(\n configuredWorkflows: ReadonlyArray<WorkflowDefinition>,\n registeredWorkflows: ReadonlyArray<WorkflowDefinition>,\n ): ReadonlyArray<WorkflowDefinition> | undefined {\n if (configuredWorkflows.length === 0 && registeredWorkflows.length === 0) {\n return undefined;\n }\n const workflowsById = new Map<string, WorkflowDefinition>();\n for (const workflow of registeredWorkflows) {\n workflowsById.set(workflow.id, workflow);\n }\n for (const workflow of configuredWorkflows) {\n workflowsById.set(workflow.id, workflow);\n }\n return [...workflowsById.values()];\n }\n}\n","import type { CodemationLogConfig, CodemationLogRule } from \"../../presentation/config/CodemationLogConfig\";\n\nexport type LogLevel = \"silent\" | \"debug\" | \"info\" | \"warn\" | \"error\";\n\nconst levelRank: Record<Exclude<LogLevel, \"silent\">, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n\nconst globRegexMetaChars = new Set(\"\\\\^$+?()[]{}|.\");\n\n/**\n * Minimum log level for @codemation/host loggers.\n * - `CODEMATION_LOG_LEVEL` overrides when set to a known level (for namespaces not matched by `codemation.config` log rules).\n * - Under Vitest, defaults to **warn** so routine `info`/`debug` noise stays off the terminal; `warn`/`error` still print.\n * - Otherwise defaults to **info**.\n *\n * When {@link applyCodemationLogConfig} is set, the first matching rule wins per namespace; unmatched namespaces use env defaults.\n *\n * Resolve a shared instance via {@link LogLevelPolicyFactory} (DI or `logLevelPolicyFactory`).\n */\nexport class LogLevelPolicy {\n private cachedMin: LogLevel | undefined;\n\n private codemationRules: ReadonlyArray<{ matchers: ReadonlyArray<RegExp>; minLevel: LogLevel }> | null = null;\n\n resolveMin(): LogLevel {\n const raw = process.env.CODEMATION_LOG_LEVEL?.toLowerCase();\n if (raw === \"silent\" || raw === \"debug\" || raw === \"info\" || raw === \"warn\" || raw === \"error\") {\n return raw;\n }\n if (process.env.VITEST === \"true\") {\n return \"warn\";\n }\n return \"info\";\n }\n\n private minLevelCached(): LogLevel {\n if (this.cachedMin === undefined) {\n this.cachedMin = this.resolveMin();\n }\n return this.cachedMin;\n }\n\n resetForTests(): void {\n this.cachedMin = undefined;\n this.codemationRules = null;\n }\n\n /**\n * Applies `codemation.config` log rules. Pass `undefined` to clear rules and use env-only behavior.\n */\n applyCodemationLogConfig(config: CodemationLogConfig | undefined): void {\n this.codemationRules = null;\n if (!config) {\n return;\n }\n const rawRules = this.normalizeCodemationRules(config);\n if (rawRules.length === 0) {\n return;\n }\n const compiled: { matchers: ReadonlyArray<RegExp>; minLevel: LogLevel }[] = [];\n for (const rule of rawRules) {\n const minLevel = this.parseRuleLevel(rule.level);\n const patterns = this.normalizeFilterPatterns(rule.filter);\n if (patterns.length === 0) {\n throw new Error(\"codemation.config log rule filter must include at least one pattern\");\n }\n const matchers = patterns.map((pattern) => this.compileGlobPattern(pattern));\n compiled.push({\n matchers,\n minLevel,\n });\n }\n this.codemationRules = compiled;\n }\n\n shouldEmit(level: Exclude<LogLevel, \"silent\">, namespace: string): boolean {\n if (this.codemationRules && this.codemationRules.length > 0) {\n for (const rule of this.codemationRules) {\n if (rule.matchers.some((regex) => regex.test(namespace))) {\n return this.levelPassesAgainstMin(level, rule.minLevel);\n }\n }\n }\n return this.levelPassesAgainstMin(level, this.minLevelCached());\n }\n\n private normalizeCodemationRules(config: CodemationLogConfig): ReadonlyArray<CodemationLogRule> {\n if (\"rules\" in config && Array.isArray(config.rules)) {\n return [...config.rules];\n }\n return [config as CodemationLogRule];\n }\n\n private normalizeFilterPatterns(filter: string | ReadonlyArray<string>): ReadonlyArray<string> {\n if (typeof filter === \"string\") {\n return [filter];\n }\n return [...filter];\n }\n\n /**\n * Glob: only `*` is special (matches any substring). A lone `*` matches all namespaces.\n */\n private compileGlobPattern(pattern: string): RegExp {\n const trimmed = pattern.trim();\n if (trimmed === \"*\") {\n return /^.*$/;\n }\n let body = \"\";\n for (const ch of trimmed) {\n if (ch === \"*\") {\n body += \".*\";\n continue;\n }\n if (globRegexMetaChars.has(ch)) {\n body += \"\\\\\" + ch;\n continue;\n }\n body += ch;\n }\n return new RegExp(\"^\" + body + \"$\");\n }\n\n private parseRuleLevel(level: string): LogLevel {\n const normalized = level.toLowerCase();\n if (\n normalized === \"silent\" ||\n normalized === \"debug\" ||\n normalized === \"info\" ||\n normalized === \"warn\" ||\n normalized === \"error\"\n ) {\n return normalized;\n }\n throw new Error(`Invalid codemation.config log level: ${level}`);\n }\n\n private levelPassesAgainstMin(level: Exclude<LogLevel, \"silent\">, min: LogLevel): boolean {\n if (min === \"silent\") {\n return false;\n }\n return levelRank[level] >= levelRank[min];\n }\n}\n","import { LogLevelPolicy } from \"./LogLevelPolicy\";\n\n/**\n * Process-wide {@link LogLevelPolicy} singleton for server and browser loggers.\n * Plain class (no `@injectable` from `@codemation/core`): client components import this file; decorating would pull core into the browser bundle.\n */\nexport class LogLevelPolicyFactory {\n private readonly policy = new LogLevelPolicy();\n\n create(): LogLevelPolicy {\n return this.policy;\n }\n}\n\n/** Shared factory for call sites outside the DI container (e.g. next-host bootstrap). */\nexport const logLevelPolicyFactory = new LogLevelPolicyFactory();\n","import type { LogFilter } from \"../../application/logging/LogFilter\";\nimport type { Logger } from \"../../application/logging/Logger\";\n\nexport class FilteringLogger implements Logger {\n constructor(\n private readonly inner: Logger,\n private readonly scope: string,\n private readonly filter: LogFilter,\n ) {}\n\n info(message: string, exception?: Error): void {\n if (!this.filter({ scope: this.scope, level: \"info\", message })) {\n return;\n }\n this.inner.info(message, exception);\n }\n\n warn(message: string, exception?: Error): void {\n if (!this.filter({ scope: this.scope, level: \"warn\", message })) {\n return;\n }\n this.inner.warn(message, exception);\n }\n\n error(message: string, exception?: Error): void {\n if (!this.filter({ scope: this.scope, level: \"error\", message })) {\n return;\n }\n this.inner.error(message, exception);\n }\n\n debug(message: string, exception?: Error): void {\n if (!this.filter({ scope: this.scope, level: \"debug\", message })) {\n return;\n }\n this.inner.debug(message, exception);\n }\n}\n","/**\n * Opt-in detailed timing / diagnostics lines (used with `ServerLoggerFactory#createPerformanceDiagnostics`).\n *\n * Set `CODEMATION_PERFORMANCE_LOGGING=true` to enable. Otherwise those loggers are silent regardless of level.\n */\nexport class PerformanceLogPolicy {\n shouldEmitDetailedTiming(): boolean {\n return process.env.CODEMATION_PERFORMANCE_LOGGING === \"true\";\n }\n}\n","import { PerformanceLogPolicy } from \"./PerformanceLogPolicy\";\n\n/**\n * Process-wide {@link PerformanceLogPolicy} singleton (same pattern as {@link LogLevelPolicyFactory}).\n */\nexport class PerformanceLogPolicyFactory {\n private readonly policy = new PerformanceLogPolicy();\n\n create(): PerformanceLogPolicy {\n return this.policy;\n }\n}\n\nexport const performanceLogPolicyFactory = new PerformanceLogPolicyFactory();\n","import { inject, injectable } from \"@codemation/core\";\n\nimport type { LogFilter } from \"../../application/logging/LogFilter\";\nimport type { Logger, LoggerFactory } from \"../../application/logging/Logger\";\n\nimport { FilteringLogger } from \"./FilteringLogger\";\nimport { LogLevelPolicyFactory } from \"./LogLevelPolicyFactory\";\nimport { performanceLogPolicyFactory } from \"./PerformanceLogPolicyFactory\";\nimport { ServerLogger } from \"./ServerLogger\";\n\n@injectable()\nexport class ServerLoggerFactory implements LoggerFactory {\n constructor(@inject(LogLevelPolicyFactory) private readonly logLevelPolicyFactory: LogLevelPolicyFactory) {}\n\n create(scope: string): Logger {\n return new ServerLogger(scope, this.logLevelPolicyFactory.create());\n }\n\n createFiltered(scope: string, filter: LogFilter): Logger {\n return new FilteringLogger(this.create(scope), scope, filter);\n }\n\n createPerformanceDiagnostics(scope: string): Logger {\n return this.createFiltered(scope, (_entry) => performanceLogPolicyFactory.create().shouldEmitDetailedTiming());\n }\n}\n\nexport { ServerLogger } from \"./ServerLogger\";\n"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ //#region src/application/contracts/WorkflowViewContracts.d.ts
2
+ type WorkflowNodeDto = Readonly<{
3
+ id: string;
4
+ kind: string;
5
+ name?: string;
6
+ type: string;
7
+ role?: string;
8
+ icon?: string;
9
+ parentNodeId?: string;
10
+ /** Short retry policy label for canvas/properties (e.g. fixed / exponential). */
11
+ retryPolicySummary?: string;
12
+ /** Whether this node declares a node-level error handler. */
13
+ hasNodeErrorHandler?: boolean;
14
+ /** When true, downstream nodes may run even when this node outputs zero items. */
15
+ continueWhenEmptyOutput?: boolean;
16
+ }>;
17
+ type WorkflowEdgeDto = Readonly<{
18
+ from: Readonly<{
19
+ nodeId: string;
20
+ output: string;
21
+ }>;
22
+ to: Readonly<{
23
+ nodeId: string;
24
+ input: string;
25
+ }>;
26
+ }>;
27
+ type WorkflowDto = Readonly<{
28
+ id: string;
29
+ name: string;
30
+ /** When true, trigger setup runs and webhooks are registered for this workflow. */
31
+ active: boolean;
32
+ nodes: ReadonlyArray<WorkflowNodeDto>;
33
+ edges: ReadonlyArray<WorkflowEdgeDto>;
34
+ /** Workflow-level error hook configured on the definition. */
35
+ hasWorkflowErrorHandler?: boolean;
36
+ }>;
37
+ type WorkflowSummary = Readonly<{
38
+ id: string;
39
+ name: string;
40
+ /** When true, trigger setup runs and webhooks are registered for this workflow. */
41
+ active: boolean;
42
+ /** Path under workflow discovery root: folders + workflow file stem. */
43
+ discoveryPathSegments: readonly string[];
44
+ }>;
45
+ //#endregion
46
+ export { WorkflowSummary as n, WorkflowDto as t };
47
+ //# sourceMappingURL=WorkflowViewContracts-DCLpTn25.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ //#region rolldown:runtime
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __commonJS = (cb, mod) => function() {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ };
13
+ var __export = (all) => {
14
+ let target = {};
15
+ for (var name in all) __defProp(target, name, {
16
+ get: all[name],
17
+ enumerable: true
18
+ });
19
+ return target;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
23
+ key = keys[i];
24
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
25
+ get: ((k) => from[k]).bind(null, key),
26
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
27
+ });
28
+ }
29
+ return to;
30
+ };
31
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
32
+ value: mod,
33
+ enumerable: true
34
+ }) : target, mod));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
37
+
38
+ //#endregion
39
+ export { __toESM as i, __export as n, __require as r, __commonJS as t };