@acorex-platform/framework-server 0.0.30 → 0.0.32

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 (238) hide show
  1. package/background-job/src/index.d.ts +3 -0
  2. package/background-job/src/index.d.ts.map +1 -1
  3. package/background-job/src/index.js +3 -0
  4. package/background-job/src/index.js.map +1 -1
  5. package/background-job/src/lib/background-job.module.d.ts +3 -0
  6. package/background-job/src/lib/background-job.module.d.ts.map +1 -1
  7. package/background-job/src/lib/background-job.module.js +13 -1
  8. package/background-job/src/lib/background-job.module.js.map +1 -1
  9. package/background-job/src/lib/background-job.service.d.ts +9 -2
  10. package/background-job/src/lib/background-job.service.d.ts.map +1 -1
  11. package/background-job/src/lib/background-job.service.js +42 -2
  12. package/background-job/src/lib/background-job.service.js.map +1 -1
  13. package/background-job/src/lib/command-concurrency-lock.registrar.d.ts +14 -0
  14. package/background-job/src/lib/command-concurrency-lock.registrar.d.ts.map +1 -0
  15. package/background-job/src/lib/command-concurrency-lock.registrar.js +29 -0
  16. package/background-job/src/lib/command-concurrency-lock.registrar.js.map +1 -0
  17. package/background-job/src/lib/execution/background-job-cancellation.service.d.ts +5 -1
  18. package/background-job/src/lib/execution/background-job-cancellation.service.d.ts.map +1 -1
  19. package/background-job/src/lib/execution/background-job-cancellation.service.js +11 -2
  20. package/background-job/src/lib/execution/background-job-cancellation.service.js.map +1 -1
  21. package/background-job/src/lib/execution/background-job-execution.service.d.ts +15 -2
  22. package/background-job/src/lib/execution/background-job-execution.service.d.ts.map +1 -1
  23. package/background-job/src/lib/execution/background-job-execution.service.js +145 -8
  24. package/background-job/src/lib/execution/background-job-execution.service.js.map +1 -1
  25. package/background-job/src/lib/notification/background-job-notification.port.d.ts +20 -0
  26. package/background-job/src/lib/notification/background-job-notification.port.d.ts.map +1 -0
  27. package/background-job/src/lib/notification/background-job-notification.port.js +31 -0
  28. package/background-job/src/lib/notification/background-job-notification.port.js.map +1 -0
  29. package/background-job/src/lib/queue/background-job-recovery.service.d.ts +22 -0
  30. package/background-job/src/lib/queue/background-job-recovery.service.d.ts.map +1 -0
  31. package/background-job/src/lib/queue/background-job-recovery.service.js +101 -0
  32. package/background-job/src/lib/queue/background-job-recovery.service.js.map +1 -0
  33. package/background-job/src/lib/store/background-job-attempt-store.service.d.ts +12 -0
  34. package/background-job/src/lib/store/background-job-attempt-store.service.d.ts.map +1 -1
  35. package/background-job/src/lib/store/background-job-attempt-store.service.js +30 -0
  36. package/background-job/src/lib/store/background-job-attempt-store.service.js.map +1 -1
  37. package/background-job/src/lib/store/background-job-store.service.d.ts +25 -3
  38. package/background-job/src/lib/store/background-job-store.service.d.ts.map +1 -1
  39. package/background-job/src/lib/store/background-job-store.service.js +52 -24
  40. package/background-job/src/lib/store/background-job-store.service.js.map +1 -1
  41. package/background-job/src/lib/store/jql-filter.util.d.ts +1 -0
  42. package/background-job/src/lib/store/jql-filter.util.d.ts.map +1 -1
  43. package/background-job/src/lib/store/jql-filter.util.js +4 -0
  44. package/background-job/src/lib/store/jql-filter.util.js.map +1 -1
  45. package/background-job/src/lib/tray/background-job-tray-realtime.publisher.d.ts +17 -0
  46. package/background-job/src/lib/tray/background-job-tray-realtime.publisher.d.ts.map +1 -0
  47. package/background-job/src/lib/tray/background-job-tray-realtime.publisher.js +61 -0
  48. package/background-job/src/lib/tray/background-job-tray-realtime.publisher.js.map +1 -0
  49. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event-emitter.service.d.ts +2 -1
  50. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event-emitter.service.d.ts.map +1 -1
  51. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event-emitter.service.js +3 -0
  52. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event-emitter.service.js.map +1 -1
  53. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event.types.d.ts +12 -0
  54. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event.types.d.ts.map +1 -1
  55. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event.types.js +6 -1
  56. package/core/src/lib/entity-storage/entity-mutation-events/entity-mutation-event.types.js.map +1 -1
  57. package/core/src/lib/entity-storage/entity-storage-middleware.service.d.ts +3 -2
  58. package/core/src/lib/entity-storage/entity-storage-middleware.service.d.ts.map +1 -1
  59. package/core/src/lib/entity-storage/entity-storage-middleware.service.js +6 -2
  60. package/core/src/lib/entity-storage/entity-storage-middleware.service.js.map +1 -1
  61. package/core/src/lib/runtime/index.d.ts +3 -0
  62. package/core/src/lib/runtime/index.d.ts.map +1 -1
  63. package/core/src/lib/runtime/index.js +3 -0
  64. package/core/src/lib/runtime/index.js.map +1 -1
  65. package/core/src/lib/runtime/runtime-authz.guard.d.ts +1 -0
  66. package/core/src/lib/runtime/runtime-authz.guard.d.ts.map +1 -1
  67. package/core/src/lib/runtime/runtime-authz.guard.js +10 -0
  68. package/core/src/lib/runtime/runtime-authz.guard.js.map +1 -1
  69. package/core/src/lib/runtime/runtime-bulk-command.service.d.ts +4 -1
  70. package/core/src/lib/runtime/runtime-bulk-command.service.d.ts.map +1 -1
  71. package/core/src/lib/runtime/runtime-bulk-command.service.js +64 -17
  72. package/core/src/lib/runtime/runtime-bulk-command.service.js.map +1 -1
  73. package/core/src/lib/runtime/runtime-bulk-progress.realtime.port.d.ts +9 -0
  74. package/core/src/lib/runtime/runtime-bulk-progress.realtime.port.d.ts.map +1 -0
  75. package/core/src/lib/runtime/runtime-bulk-progress.realtime.port.js +13 -0
  76. package/core/src/lib/runtime/runtime-bulk-progress.realtime.port.js.map +1 -0
  77. package/core/src/lib/runtime/runtime-bulk-progress.store.d.ts +12 -0
  78. package/core/src/lib/runtime/runtime-bulk-progress.store.d.ts.map +1 -0
  79. package/core/src/lib/runtime/runtime-bulk-progress.store.js +61 -0
  80. package/core/src/lib/runtime/runtime-bulk-progress.store.js.map +1 -0
  81. package/core/src/lib/runtime/runtime-command.controller.d.ts +5 -1
  82. package/core/src/lib/runtime/runtime-command.controller.d.ts.map +1 -1
  83. package/core/src/lib/runtime/runtime-command.controller.js +30 -2
  84. package/core/src/lib/runtime/runtime-command.controller.js.map +1 -1
  85. package/core/src/lib/runtime/runtime-dispatcher.service.d.ts +3 -2
  86. package/core/src/lib/runtime/runtime-dispatcher.service.d.ts.map +1 -1
  87. package/core/src/lib/runtime/runtime-dispatcher.service.js +23 -2
  88. package/core/src/lib/runtime/runtime-dispatcher.service.js.map +1 -1
  89. package/core/src/lib/runtime/runtime-request-session.util.d.ts +6 -0
  90. package/core/src/lib/runtime/runtime-request-session.util.d.ts.map +1 -0
  91. package/core/src/lib/runtime/runtime-request-session.util.js +21 -0
  92. package/core/src/lib/runtime/runtime-request-session.util.js.map +1 -0
  93. package/core/src/lib/runtime/runtime.module.d.ts.map +1 -1
  94. package/core/src/lib/runtime/runtime.module.js +3 -0
  95. package/core/src/lib/runtime/runtime.module.js.map +1 -1
  96. package/domain/abstract/src/index.d.ts +2 -0
  97. package/domain/abstract/src/index.d.ts.map +1 -1
  98. package/domain/abstract/src/index.js +2 -0
  99. package/domain/abstract/src/index.js.map +1 -1
  100. package/domain/abstract/src/lib/commands/command-concurrency.types.d.ts +30 -0
  101. package/domain/abstract/src/lib/commands/command-concurrency.types.d.ts.map +1 -0
  102. package/domain/abstract/src/lib/commands/command-concurrency.types.js +9 -0
  103. package/domain/abstract/src/lib/commands/command-concurrency.types.js.map +1 -0
  104. package/domain/abstract/src/lib/commands/command-concurrency.util.d.ts +11 -0
  105. package/domain/abstract/src/lib/commands/command-concurrency.util.d.ts.map +1 -0
  106. package/domain/abstract/src/lib/commands/command-concurrency.util.js +53 -0
  107. package/domain/abstract/src/lib/commands/command-concurrency.util.js.map +1 -0
  108. package/domain/abstract/src/lib/commands/server-command-registry.token.d.ts +3 -0
  109. package/domain/abstract/src/lib/commands/server-command-registry.token.d.ts.map +1 -1
  110. package/domain/abstract/src/lib/commands/server-command-registry.token.js.map +1 -1
  111. package/domain/abstract/src/lib/commands/server-handler.decorator.d.ts +1 -0
  112. package/domain/abstract/src/lib/commands/server-handler.decorator.d.ts.map +1 -1
  113. package/domain/abstract/src/lib/commands/server-handler.decorator.js +1 -0
  114. package/domain/abstract/src/lib/commands/server-handler.decorator.js.map +1 -1
  115. package/domain/abstract/src/lib/commands/server-handler.types.d.ts +7 -0
  116. package/domain/abstract/src/lib/commands/server-handler.types.d.ts.map +1 -1
  117. package/domain/abstract/src/lib/commands/server-handler.types.js.map +1 -1
  118. package/domain/providers/src/lib/command-concurrency.guard.d.ts +11 -0
  119. package/domain/providers/src/lib/command-concurrency.guard.d.ts.map +1 -0
  120. package/domain/providers/src/lib/command-concurrency.guard.js +110 -0
  121. package/domain/providers/src/lib/command-concurrency.guard.js.map +1 -0
  122. package/domain/providers/src/lib/middlewares/lookup-resolver.middleware.d.ts.map +1 -1
  123. package/domain/providers/src/lib/middlewares/lookup-resolver.middleware.js +5 -3
  124. package/domain/providers/src/lib/middlewares/lookup-resolver.middleware.js.map +1 -1
  125. package/domain/providers/src/lib/server-command.module.d.ts.map +1 -1
  126. package/domain/providers/src/lib/server-command.module.js +8 -1
  127. package/domain/providers/src/lib/server-command.module.js.map +1 -1
  128. package/domain/providers/src/lib/server-command.registry.d.ts +7 -3
  129. package/domain/providers/src/lib/server-command.registry.d.ts.map +1 -1
  130. package/domain/providers/src/lib/server-command.registry.js +18 -7
  131. package/domain/providers/src/lib/server-command.registry.js.map +1 -1
  132. package/domain/providers/src/lib/utils/entity-query-fields-path-planner.util.d.ts +2 -0
  133. package/domain/providers/src/lib/utils/entity-query-fields-path-planner.util.d.ts.map +1 -1
  134. package/domain/providers/src/lib/utils/entity-query-fields-path-planner.util.js +12 -2
  135. package/domain/providers/src/lib/utils/entity-query-fields-path-planner.util.js.map +1 -1
  136. package/domain/providers/src/lib/utils/entity-relation-join.planner.d.ts.map +1 -1
  137. package/domain/providers/src/lib/utils/entity-relation-join.planner.js +1 -1
  138. package/domain/providers/src/lib/utils/entity-relation-join.planner.js.map +1 -1
  139. package/jql/elasticsearch/src/lib/compile/filter-compiler.js +14 -0
  140. package/jql/elasticsearch/src/lib/compile/filter-compiler.js.map +1 -1
  141. package/jql/elasticsearch/src/lib/jql-elasticsearch.engine.js +3 -0
  142. package/jql/elasticsearch/src/lib/jql-elasticsearch.engine.js.map +1 -1
  143. package/jql/schema/src/lib/generated/plugin-contributions.bootstrap.d.ts.map +1 -1
  144. package/jql/schema/src/lib/generated/plugin-contributions.bootstrap.js +6 -0
  145. package/jql/schema/src/lib/generated/plugin-contributions.bootstrap.js.map +1 -1
  146. package/observability/abstract/src/index.d.ts +1 -0
  147. package/observability/abstract/src/index.d.ts.map +1 -1
  148. package/observability/abstract/src/index.js +1 -0
  149. package/observability/abstract/src/index.js.map +1 -1
  150. package/observability/abstract/src/lib/entity-observability-skip.util.d.ts +11 -0
  151. package/observability/abstract/src/lib/entity-observability-skip.util.d.ts.map +1 -0
  152. package/observability/abstract/src/lib/entity-observability-skip.util.js +22 -0
  153. package/observability/abstract/src/lib/entity-observability-skip.util.js.map +1 -0
  154. package/observability/abstract/src/lib/observability.config.d.ts +2 -0
  155. package/observability/abstract/src/lib/observability.config.d.ts.map +1 -1
  156. package/observability/abstract/src/lib/observability.config.js.map +1 -1
  157. package/observability/abstract/src/lib/runtime-log-buffer.d.ts.map +1 -1
  158. package/observability/abstract/src/lib/runtime-log-buffer.js +5 -1
  159. package/observability/abstract/src/lib/runtime-log-buffer.js.map +1 -1
  160. package/observability/providers/src/lib/context/correlation-fields.util.d.ts +5 -0
  161. package/observability/providers/src/lib/context/correlation-fields.util.d.ts.map +1 -1
  162. package/observability/providers/src/lib/context/correlation-fields.util.js +4 -1
  163. package/observability/providers/src/lib/context/correlation-fields.util.js.map +1 -1
  164. package/observability/providers/src/lib/context/resolve-request-observability-entity.util.d.ts +14 -0
  165. package/observability/providers/src/lib/context/resolve-request-observability-entity.util.d.ts.map +1 -0
  166. package/observability/providers/src/lib/context/resolve-request-observability-entity.util.js +82 -0
  167. package/observability/providers/src/lib/context/resolve-request-observability-entity.util.js.map +1 -0
  168. package/observability/providers/src/lib/execution-trace/execution-trace-recorder.service.d.ts.map +1 -1
  169. package/observability/providers/src/lib/execution-trace/execution-trace-recorder.service.js +3 -0
  170. package/observability/providers/src/lib/execution-trace/execution-trace-recorder.service.js.map +1 -1
  171. package/observability/providers/src/lib/http/observability-context.interceptor.d.ts +3 -1
  172. package/observability/providers/src/lib/http/observability-context.interceptor.d.ts.map +1 -1
  173. package/observability/providers/src/lib/http/observability-context.interceptor.js +17 -4
  174. package/observability/providers/src/lib/http/observability-context.interceptor.js.map +1 -1
  175. package/observability/providers/src/lib/pino/pino.factory.d.ts.map +1 -1
  176. package/observability/providers/src/lib/pino/pino.factory.js +9 -1
  177. package/observability/providers/src/lib/pino/pino.factory.js.map +1 -1
  178. package/package.json +2 -2
  179. package/realtime/src/lib/delivery/socket-io-realtime.delivery.d.ts +3 -3
  180. package/realtime/src/lib/delivery/socket-io-realtime.delivery.d.ts.map +1 -1
  181. package/realtime/src/lib/delivery/socket-io-realtime.delivery.js +10 -2
  182. package/realtime/src/lib/delivery/socket-io-realtime.delivery.js.map +1 -1
  183. package/realtime/src/lib/entity-bridge/realtime-bulk-progress-bridge.listener.d.ts +9 -0
  184. package/realtime/src/lib/entity-bridge/realtime-bulk-progress-bridge.listener.d.ts.map +1 -0
  185. package/realtime/src/lib/entity-bridge/realtime-bulk-progress-bridge.listener.js +62 -0
  186. package/realtime/src/lib/entity-bridge/realtime-bulk-progress-bridge.listener.js.map +1 -0
  187. package/realtime/src/lib/gateway/realtime.gateway.d.ts +2 -2
  188. package/realtime/src/lib/gateway/realtime.gateway.d.ts.map +1 -1
  189. package/realtime/src/lib/gateway/realtime.gateway.js +1 -1
  190. package/realtime/src/lib/gateway/realtime.gateway.js.map +1 -1
  191. package/realtime/src/lib/realtime.module.d.ts.map +1 -1
  192. package/realtime/src/lib/realtime.module.js +8 -0
  193. package/realtime/src/lib/realtime.module.js.map +1 -1
  194. package/realtime/src/lib/topics/realtime-topics.d.ts +2 -0
  195. package/realtime/src/lib/topics/realtime-topics.d.ts.map +1 -1
  196. package/realtime/src/lib/topics/realtime-topics.js +3 -1
  197. package/realtime/src/lib/topics/realtime-topics.js.map +1 -1
  198. package/realtime/src/lib/types/realtime.types.d.ts +26 -0
  199. package/realtime/src/lib/types/realtime.types.d.ts.map +1 -1
  200. package/realtime/src/lib/types/realtime.types.js.map +1 -1
  201. package/search/abstract/src/lib/quick-search-content.util.d.ts.map +1 -1
  202. package/search/abstract/src/lib/quick-search-content.util.js +14 -1
  203. package/search/abstract/src/lib/quick-search-content.util.js.map +1 -1
  204. package/search/providers/src/lib/quick-search-index.service.d.ts +9 -1
  205. package/search/providers/src/lib/quick-search-index.service.d.ts.map +1 -1
  206. package/search/providers/src/lib/quick-search-index.service.js +53 -15
  207. package/search/providers/src/lib/quick-search-index.service.js.map +1 -1
  208. package/search/providers/src/lib/quick-search-provider.module.d.ts.map +1 -1
  209. package/search/providers/src/lib/quick-search-provider.module.js +12 -0
  210. package/search/providers/src/lib/quick-search-provider.module.js.map +1 -1
  211. package/search/providers/src/lib/quick-search-reindex.service.d.ts +15 -6
  212. package/search/providers/src/lib/quick-search-reindex.service.d.ts.map +1 -1
  213. package/search/providers/src/lib/quick-search-reindex.service.js +98 -12
  214. package/search/providers/src/lib/quick-search-reindex.service.js.map +1 -1
  215. package/search/providers/src/lib/quick-search-related.util.d.ts +14 -0
  216. package/search/providers/src/lib/quick-search-related.util.d.ts.map +1 -1
  217. package/search/providers/src/lib/quick-search-related.util.js +142 -8
  218. package/search/providers/src/lib/quick-search-related.util.js.map +1 -1
  219. package/security/src/lib/auth/auth.service.js +1 -1
  220. package/security/src/lib/auth/auth.service.js.map +1 -1
  221. package/swagger/src/lib/runtime-openapi.service.d.ts.map +1 -1
  222. package/swagger/src/lib/runtime-openapi.service.js +43 -0
  223. package/swagger/src/lib/runtime-openapi.service.js.map +1 -1
  224. package/tracing/abstract/src/index.d.ts +1 -0
  225. package/tracing/abstract/src/index.d.ts.map +1 -1
  226. package/tracing/abstract/src/index.js +1 -0
  227. package/tracing/abstract/src/index.js.map +1 -1
  228. package/tracing/abstract/src/lib/entity-log.types.d.ts +14 -0
  229. package/tracing/abstract/src/lib/entity-log.types.d.ts.map +1 -0
  230. package/tracing/abstract/src/lib/entity-log.types.js +10 -0
  231. package/tracing/abstract/src/lib/entity-log.types.js.map +1 -0
  232. package/tracing/abstract/src/lib/entity-trace.tokens.d.ts +2 -0
  233. package/tracing/abstract/src/lib/entity-trace.tokens.d.ts.map +1 -1
  234. package/tracing/abstract/src/lib/entity-trace.tokens.js.map +1 -1
  235. package/tracing/providers/src/lib/entity-trace-config-resolver.service.d.ts +5 -3
  236. package/tracing/providers/src/lib/entity-trace-config-resolver.service.d.ts.map +1 -1
  237. package/tracing/providers/src/lib/entity-trace-config-resolver.service.js +36 -11
  238. package/tracing/providers/src/lib/entity-trace-config-resolver.service.js.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import { type AXPServerCommandRegistry, type AXPServerQueryRegistry } from '@acorex-platform/framework-server/domain/abstract';
2
- import { type ExecutionTraceRecorder } from '@acorex-platform/framework-server/observability/abstract';
2
+ import { type AxpObservabilityContext, type ExecutionTraceRecorder } from '@acorex-platform/framework-server/observability/abstract';
3
3
  import { type AXPCommandExecuteOptions, type AXPQueryExecuteOptions } from '@acorex-platform/framework-shared/runtime';
4
4
  import { EntityRuntimeMutationService } from './entity-runtime-mutation.service';
5
5
  import { EntityRuntimeQueryService } from './entity-runtime-query.service';
@@ -12,7 +12,8 @@ export declare class RuntimeDispatcherService {
12
12
  private readonly queryService;
13
13
  private readonly authzService;
14
14
  private readonly executionTrace;
15
- constructor(commandRegistry: AXPServerCommandRegistry | null, queryRegistry: AXPServerQueryRegistry | null, mutationService: EntityRuntimeMutationService, queryService: EntityRuntimeQueryService, authzService: RuntimeAuthzService, executionTrace: ExecutionTraceRecorder | null);
15
+ private readonly observabilityContext;
16
+ constructor(commandRegistry: AXPServerCommandRegistry | null, queryRegistry: AXPServerQueryRegistry | null, mutationService: EntityRuntimeMutationService, queryService: EntityRuntimeQueryService, authzService: RuntimeAuthzService, executionTrace: ExecutionTraceRecorder | null, observabilityContext: AxpObservabilityContext | null);
16
17
  executeCommand(name: string, input: unknown, options?: AXPCommandExecuteOptions): Promise<RuntimeCommandResult>;
17
18
  executeQuery(name: string, input: unknown, options?: AXPQueryExecuteOptions): Promise<RuntimeQueryResult>;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-dispatcher.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-dispatcher.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAML,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAoChF,qBACa,wBAAwB;IAIjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAGhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAG7B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBATd,eAAe,EAAE,wBAAwB,GAAG,IAAI,EAGhD,aAAa,EAAE,sBAAsB,GAAG,IAAI,EAC5C,eAAe,EAAE,4BAA4B,EAC7C,YAAY,EAAE,yBAAyB,EACvC,YAAY,EAAE,mBAAmB,EAGjC,cAAc,EAAE,sBAAsB,GAAG,IAAI;IAG1D,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAsE1B,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;CAmE/B"}
1
+ {"version":3,"file":"runtime-dispatcher.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-dispatcher.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAOL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAwChF,qBACa,wBAAwB;IAIjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAGhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAG7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAZpB,eAAe,EAAE,wBAAwB,GAAG,IAAI,EAGhD,aAAa,EAAE,sBAAsB,GAAG,IAAI,EAC5C,eAAe,EAAE,4BAA4B,EAC7C,YAAY,EAAE,yBAAyB,EACvC,YAAY,EAAE,mBAAmB,EAGjC,cAAc,EAAE,sBAAsB,GAAG,IAAI,EAG7C,oBAAoB,EAAE,uBAAuB,GAAG,IAAI;IAGjE,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IA8E1B,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;CA2E/B"}
@@ -16,6 +16,10 @@ const runtime_result_normalize_util_1 = require("./runtime-result.normalize.util
16
16
  //#endregion
17
17
  //#region ---- Helpers ----
18
18
  function resolveModuleFromKey(key) {
19
+ const entityName = (0, runtime_1.resolveEntityNameFromRuntimeKey)(key);
20
+ if (entityName?.includes('.')) {
21
+ return entityName.split('.')[0];
22
+ }
19
23
  const entityPart = key.includes(':') ? key.split(':')[0] : undefined;
20
24
  if (!entityPart || !entityPart.includes('.')) {
21
25
  return undefined;
@@ -41,13 +45,14 @@ function summarizeQueryResult(result) {
41
45
  //#endregion
42
46
  //#region ---- Runtime dispatcher ----
43
47
  let RuntimeDispatcherService = class RuntimeDispatcherService {
44
- constructor(commandRegistry, queryRegistry, mutationService, queryService, authzService, executionTrace) {
48
+ constructor(commandRegistry, queryRegistry, mutationService, queryService, authzService, executionTrace, observabilityContext) {
45
49
  this.commandRegistry = commandRegistry;
46
50
  this.queryRegistry = queryRegistry;
47
51
  this.mutationService = mutationService;
48
52
  this.queryService = queryService;
49
53
  this.authzService = authzService;
50
54
  this.executionTrace = executionTrace;
55
+ this.observabilityContext = observabilityContext;
51
56
  }
52
57
  async executeCommand(name, input, options) {
53
58
  const key = name?.trim();
@@ -85,6 +90,13 @@ let RuntimeDispatcherService = class RuntimeDispatcherService {
85
90
  if (!this.executionTrace?.isEnabled('command')) {
86
91
  return run();
87
92
  }
93
+ const entityName = resolveEntityFromKey(key, input);
94
+ if (entityName) {
95
+ this.observabilityContext?.assign({ entityName });
96
+ }
97
+ if (entityName && !(0, abstract_2.isEntityObservabilityEnabled)(entityName, 'trace')) {
98
+ return run();
99
+ }
88
100
  return this.executionTrace.withTrace({
89
101
  kind: 'command',
90
102
  operation: key,
@@ -141,6 +153,13 @@ let RuntimeDispatcherService = class RuntimeDispatcherService {
141
153
  if (!this.executionTrace?.isEnabled('query')) {
142
154
  return run();
143
155
  }
156
+ const entityName = resolveEntityFromKey(key, input);
157
+ if (entityName) {
158
+ this.observabilityContext?.assign({ entityName });
159
+ }
160
+ if (entityName && !(0, abstract_2.isEntityObservabilityEnabled)(entityName, 'trace')) {
161
+ return run();
162
+ }
144
163
  return this.executionTrace.withTrace({
145
164
  kind: 'query',
146
165
  operation: key,
@@ -168,9 +187,11 @@ exports.RuntimeDispatcherService = RuntimeDispatcherService = tslib_1.__decorate
168
187
  tslib_1.__param(1, (0, common_1.Inject)(abstract_1.SERVER_QUERY_REGISTRY)),
169
188
  tslib_1.__param(5, (0, common_1.Optional)()),
170
189
  tslib_1.__param(5, (0, common_1.Inject)(abstract_2.AXP_EXECUTION_TRACE_RECORDER)),
190
+ tslib_1.__param(6, (0, common_1.Optional)()),
191
+ tslib_1.__param(6, (0, common_1.Inject)(abstract_2.AXP_OBSERVABILITY_CONTEXT)),
171
192
  tslib_1.__metadata("design:paramtypes", [Object, Object, entity_runtime_mutation_service_1.EntityRuntimeMutationService,
172
193
  entity_runtime_query_service_1.EntityRuntimeQueryService,
173
- runtime_authz_service_1.RuntimeAuthzService, Object])
194
+ runtime_authz_service_1.RuntimeAuthzService, Object, Object])
174
195
  ], RuntimeDispatcherService);
175
196
  //#endregion
176
197
  //# sourceMappingURL=runtime-dispatcher.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-dispatcher.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-dispatcher.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-dispatcher.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-dispatcher.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function readRuntimeRequestSession(): {
2
+ tenantId?: string;
3
+ userId?: string;
4
+ applicationId?: string;
5
+ } | undefined;
6
+ //# sourceMappingURL=runtime-request-session.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-request-session.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-request-session.util.ts"],"names":[],"mappings":"AAMA,wBAAgB,yBAAyB,IAAI;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,SAAS,CAaZ"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readRuntimeRequestSession = readRuntimeRequestSession;
4
+ const entity_storage_request_context_1 = require("../entity-storage/entity-storage-request-context");
5
+ //#region ---- Runtime request session ----
6
+ const ACX_REQUEST_SESSION_KEY = 'acxRequestSession';
7
+ function readRuntimeRequestSession() {
8
+ const request = (0, entity_storage_request_context_1.getEntityStorageRequest)();
9
+ const session = request?.[ACX_REQUEST_SESSION_KEY];
10
+ if (!session || typeof session !== 'object') {
11
+ return undefined;
12
+ }
13
+ const record = session;
14
+ return {
15
+ tenantId: typeof record['tenantId'] === 'string' ? record['tenantId'] : undefined,
16
+ userId: typeof record['userId'] === 'string' ? record['userId'] : undefined,
17
+ applicationId: typeof record['applicationId'] === 'string' ? record['applicationId'] : undefined,
18
+ };
19
+ }
20
+ //#endregion
21
+ //# sourceMappingURL=runtime-request-session.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-request-session.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime-request-session.util.ts"],"names":[],"mappings":";;AAMA,8DAiBC;AAvBD,qGAA2F;AAE3F,2CAA2C;AAE3C,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAEpD,SAAgB,yBAAyB;IAKvC,MAAM,OAAO,GAAG,IAAA,wDAAuB,GAAyC,CAAC;IACjF,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,uBAAuB,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,OAAO;QACL,QAAQ,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QACjF,MAAM,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,aAAa,EAAE,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;KACjG,CAAC;AACJ,CAAC;AAED,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.module.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAkB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAmB1E,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;CACvD;AAMD,qBAEa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa;CA+BlE"}
1
+ {"version":3,"file":"runtime.module.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAkB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAoB1E,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;CACvD;AAMD,qBAEa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa;CAiClE"}
@@ -12,6 +12,7 @@ const runtime_authz_metadata_service_1 = require("./runtime-authz-metadata.servi
12
12
  const runtime_authz_service_1 = require("./runtime-authz.service");
13
13
  const runtime_authz_guard_1 = require("./runtime-authz.guard");
14
14
  const runtime_bulk_command_service_1 = require("./runtime-bulk-command.service");
15
+ const runtime_bulk_progress_store_1 = require("./runtime-bulk-progress.store");
15
16
  const runtime_command_controller_1 = require("./runtime-command.controller");
16
17
  const runtime_command_invoke_controller_1 = require("./runtime-command-invoke.controller");
17
18
  const runtime_dispatcher_service_1 = require("./runtime-dispatcher.service");
@@ -38,11 +39,13 @@ let RuntimeModule = RuntimeModule_1 = class RuntimeModule {
38
39
  runtime_authz_service_1.RuntimeAuthzService,
39
40
  runtime_authz_guard_1.RuntimeAuthzGuard,
40
41
  runtime_dispatcher_service_1.RuntimeDispatcherService,
42
+ runtime_bulk_progress_store_1.RuntimeBulkProgressStore,
41
43
  runtime_bulk_command_service_1.RuntimeBulkCommandService,
42
44
  runtime_startup_registrar_1.RuntimeStartUpRegistrar,
43
45
  ],
44
46
  exports: [
45
47
  runtime_dispatcher_service_1.RuntimeDispatcherService,
48
+ runtime_bulk_progress_store_1.RuntimeBulkProgressStore,
46
49
  runtime_bulk_command_service_1.RuntimeBulkCommandService,
47
50
  entity_runtime_mutation_service_1.EntityRuntimeMutationService,
48
51
  entity_runtime_query_service_1.EntityRuntimeQueryService,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.module.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime.module.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;;;AAE3B,2CAA0E;AAC1E,mFAA8E;AAC9E,uFAAiF;AACjF,iFAA2E;AAC3E,qFAA+E;AAC/E,mEAA8D;AAC9D,+DAA0D;AAC1D,iFAA2E;AAC3E,6EAAwE;AACxE,2FAAqF;AACrF,6EAAwE;AACxE,yEAAoE;AACpE,uFAAiF;AACjF,2EAAsE;AAUtE,YAAY;AAEZ,kCAAkC;AAI3B,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,UAAgC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,2CAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACjE,WAAW,EAAE;gBACX,qDAAwB;gBACxB,iDAAsB;gBACtB,kEAA8B;gBAC9B,8DAA4B;aAC7B;YACD,SAAS,EAAE;gBACT,8DAA4B;gBAC5B,wDAAyB;gBACzB,4DAA2B;gBAC3B,2CAAmB;gBACnB,uCAAiB;gBACjB,qDAAwB;gBACxB,wDAAyB;gBACzB,mDAAuB;aACxB;YACD,OAAO,EAAE;gBACP,qDAAwB;gBACxB,wDAAyB;gBACzB,8DAA4B;gBAC5B,wDAAyB;gBACzB,4DAA2B;gBAC3B,2CAAmB;gBACnB,uCAAiB;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,sCAAa;wBAAb,aAAa;IAFzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAgCzB;AAED,YAAY"}
1
+ {"version":3,"file":"runtime.module.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/core/src/lib/runtime/runtime.module.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;;;AAE3B,2CAA0E;AAC1E,mFAA8E;AAC9E,uFAAiF;AACjF,iFAA2E;AAC3E,qFAA+E;AAC/E,mEAA8D;AAC9D,+DAA0D;AAC1D,iFAA2E;AAC3E,+EAAyE;AACzE,6EAAwE;AACxE,2FAAqF;AACrF,6EAAwE;AACxE,yEAAoE;AACpE,uFAAiF;AACjF,2EAAsE;AAUtE,YAAY;AAEZ,kCAAkC;AAI3B,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,UAAgC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,2CAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACjE,WAAW,EAAE;gBACX,qDAAwB;gBACxB,iDAAsB;gBACtB,kEAA8B;gBAC9B,8DAA4B;aAC7B;YACD,SAAS,EAAE;gBACT,8DAA4B;gBAC5B,wDAAyB;gBACzB,4DAA2B;gBAC3B,2CAAmB;gBACnB,uCAAiB;gBACjB,qDAAwB;gBACxB,sDAAwB;gBACxB,wDAAyB;gBACzB,mDAAuB;aACxB;YACD,OAAO,EAAE;gBACP,qDAAwB;gBACxB,sDAAwB;gBACxB,wDAAyB;gBACzB,8DAA4B;gBAC5B,wDAAyB;gBACzB,4DAA2B;gBAC3B,2CAAmB;gBACnB,uCAAiB;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAlCY,sCAAa;wBAAb,aAAa;IAFzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAkCzB;AAED,YAAY"}
@@ -13,6 +13,8 @@ export * from './lib/definitions/permission-definition.types';
13
13
  export * from './lib/definitions/command-registry.types';
14
14
  export * from './lib/commands/server-handler.decorator';
15
15
  export * from './lib/commands/server-handler.types';
16
+ export * from './lib/commands/command-concurrency.types';
17
+ export * from './lib/commands/command-concurrency.util';
16
18
  export * from './lib/commands/server-command-registry.token';
17
19
  export * from './lib/queries/server-query-handler.types';
18
20
  export * from './lib/queries/server-query-handler.decorator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/framework/server/domain/abstract/src/index.ts"],"names":[],"mappings":"AAEA,cAAc,+BAA+B,CAAC;AAM9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AAMvD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,IAAI,sBAAsB,GACpD,MAAM,qDAAqD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/framework/server/domain/abstract/src/index.ts"],"names":[],"mappings":"AAEA,cAAc,+BAA+B,CAAC;AAM9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AAMvD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,IAAI,sBAAsB,GACpD,MAAM,qDAAqD,CAAC"}
@@ -20,6 +20,8 @@ tslib_1.__exportStar(require("./lib/definitions/permission-definition.types"), e
20
20
  tslib_1.__exportStar(require("./lib/definitions/command-registry.types"), exports);
21
21
  tslib_1.__exportStar(require("./lib/commands/server-handler.decorator"), exports);
22
22
  tslib_1.__exportStar(require("./lib/commands/server-handler.types"), exports);
23
+ tslib_1.__exportStar(require("./lib/commands/command-concurrency.types"), exports);
24
+ tslib_1.__exportStar(require("./lib/commands/command-concurrency.util"), exports);
23
25
  tslib_1.__exportStar(require("./lib/commands/server-command-registry.token"), exports);
24
26
  tslib_1.__exportStar(require("./lib/queries/server-query-handler.types"), exports);
25
27
  tslib_1.__exportStar(require("./lib/queries/server-query-handler.decorator"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/framework/server/domain/abstract/src/index.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;;AAEzB,wEAA8C;AAE9C,YAAY;AAEZ,+BAA+B;AAE/B,uEAA6C;AAC7C,oFAA0D;AAC1D,uFAA6D;AAC7D,oFAA0D;AAC1D,sFAA4D;AAC5D,uFAA6D;AAC7D,wFAA8D;AAC9D,oFAA0D;AAC1D,sFAA4D;AAC5D,kFAAwD;AACxD,wFAA8D;AAC9D,mFAAyD;AACzD,kFAAwD;AACxD,8EAAoD;AACpD,uFAA6D;AAC7D,mFAAyD;AACzD,uFAA6D;AAC7D,oFAA0D;AAC1D,iFAAuD;AACvD,4EAAkD;AAClD,iFAAuD;AACvD,iFAAuD;AAEvD,YAAY;AAEZ,8BAA8B;AAE9B,mFAAyD;AACzD,0GAG6D;AAF3D,+IAAA,yBAAyB,OAAA;AACzB,4IAAA,yBAAyB,OAA0B;AAGrD,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/framework/server/domain/abstract/src/index.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;;AAEzB,wEAA8C;AAE9C,YAAY;AAEZ,+BAA+B;AAE/B,uEAA6C;AAC7C,oFAA0D;AAC1D,uFAA6D;AAC7D,oFAA0D;AAC1D,sFAA4D;AAC5D,uFAA6D;AAC7D,wFAA8D;AAC9D,oFAA0D;AAC1D,sFAA4D;AAC5D,kFAAwD;AACxD,wFAA8D;AAC9D,mFAAyD;AACzD,kFAAwD;AACxD,8EAAoD;AACpD,mFAAyD;AACzD,kFAAwD;AACxD,uFAA6D;AAC7D,mFAAyD;AACzD,uFAA6D;AAC7D,oFAA0D;AAC1D,iFAAuD;AACvD,4EAAkD;AAClD,iFAAuD;AACvD,iFAAuD;AAEvD,YAAY;AAEZ,8BAA8B;AAE9B,mFAAyD;AACzD,0GAG6D;AAF3D,+IAAA,yBAAyB,OAAA;AACzB,4IAAA,yBAAyB,OAA0B;AAGrD,YAAY"}
@@ -0,0 +1,30 @@
1
+ /** Fail immediately when another execute of the same command scope is running. */
2
+ export type AXPServerHandlerConcurrencyPolicy = 'skip-if-running';
3
+ /**
4
+ * Who shares the lock.
5
+ * - `global` — one run per command key (shared index / platform sweep)
6
+ * - `tenant` — one run per tenant (default)
7
+ * - `application` — one run per tenant + application
8
+ * - `tenant+input` — one run per tenant + input fingerprint (e.g. connection id)
9
+ */
10
+ export type AXPServerHandlerConcurrencyScope = 'global' | 'tenant' | 'application' | 'tenant+input';
11
+ export interface AXPServerHandlerConcurrency {
12
+ readonly policy: AXPServerHandlerConcurrencyPolicy;
13
+ /** Default: `tenant`. */
14
+ readonly scope?: AXPServerHandlerConcurrencyScope;
15
+ /** Lock TTL in milliseconds. Default: 20 minutes. */
16
+ readonly ttlMs?: number;
17
+ }
18
+ export declare const COMMAND_ALREADY_RUNNING_CODE: "COMMAND_ALREADY_RUNNING";
19
+ export declare const AXP_COMMAND_CONCURRENCY_DEFAULT_TTL_MS: number;
20
+ export declare const AXP_COMMAND_CONCURRENCY_LOCK_PREFIX = "cmd:run";
21
+ /** Minimal lock used by the command registry (Redis or in-process). */
22
+ export interface AXPCommandConcurrencyLock {
23
+ acquire(key: string, ttlMs: number): Promise<AXPCommandConcurrencyLockHandle | null>;
24
+ release(handle: AXPCommandConcurrencyLockHandle): Promise<void>;
25
+ }
26
+ export interface AXPCommandConcurrencyLockHandle {
27
+ readonly key: string;
28
+ readonly ownerToken: string;
29
+ }
30
+ //# sourceMappingURL=command-concurrency.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.types.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/command-concurrency.types.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,MAAM,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,yBAAyB;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,gCAAgC,CAAC;IAClD,qDAAqD;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,4BAA4B,2BAAmD,CAAC;AAE7F,eAAO,MAAM,sCAAsC,QAAiB,CAAC;AAErE,eAAO,MAAM,mCAAmC,YAAY,CAAC;AAE7D,uEAAuE;AACvE,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;IACrF,OAAO,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX = exports.AXP_COMMAND_CONCURRENCY_DEFAULT_TTL_MS = exports.COMMAND_ALREADY_RUNNING_CODE = void 0;
4
+ const core_1 = require("@acorex-platform/framework-shared/core");
5
+ exports.COMMAND_ALREADY_RUNNING_CODE = core_1.AXP_PLATFORM_ERROR_CODES.COMMAND_ALREADY_RUNNING;
6
+ exports.AXP_COMMAND_CONCURRENCY_DEFAULT_TTL_MS = 20 * 60 * 1000;
7
+ exports.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX = 'cmd:run';
8
+ //#endregion
9
+ //# sourceMappingURL=command-concurrency.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.types.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/command-concurrency.types.ts"],"names":[],"mappings":";;;AAAA,iEAAkF;AAwBrE,QAAA,4BAA4B,GAAG,+BAAwB,CAAC,uBAAuB,CAAC;AAEhF,QAAA,sCAAsC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD,QAAA,mCAAmC,GAAG,SAAS,CAAC;AAa7D,YAAY"}
@@ -0,0 +1,11 @@
1
+ import { type AXPServerHandlerConcurrency, type AXPServerHandlerConcurrencyScope } from './command-concurrency.types';
2
+ export declare function normalizeServerHandlerConcurrency(concurrency: AXPServerHandlerConcurrency | undefined): AXPServerHandlerConcurrency | undefined;
3
+ export declare function fingerprintCommandConcurrencyInput(input: unknown): string;
4
+ export declare function buildCommandConcurrencyLockKey(input: {
5
+ commandKey: string;
6
+ scope: AXPServerHandlerConcurrencyScope;
7
+ tenantId?: string;
8
+ applicationId?: string;
9
+ inputFingerprint?: string;
10
+ }): string;
11
+ //# sourceMappingURL=command-concurrency.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.util.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/command-concurrency.util.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AAIrC,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,2BAA2B,GAAG,SAAS,GACnD,2BAA2B,GAAG,SAAS,CAYzC;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAczE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,gCAAgC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAiBT"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeServerHandlerConcurrency = normalizeServerHandlerConcurrency;
4
+ exports.fingerprintCommandConcurrencyInput = fingerprintCommandConcurrencyInput;
5
+ exports.buildCommandConcurrencyLockKey = buildCommandConcurrencyLockKey;
6
+ const node_crypto_1 = require("node:crypto");
7
+ const command_concurrency_types_1 = require("./command-concurrency.types");
8
+ //#region ----- Command concurrency helpers -----
9
+ function normalizeServerHandlerConcurrency(concurrency) {
10
+ if (concurrency?.policy !== 'skip-if-running') {
11
+ return undefined;
12
+ }
13
+ return {
14
+ policy: 'skip-if-running',
15
+ scope: concurrency.scope ?? 'tenant',
16
+ ...(concurrency.ttlMs != null && Number.isFinite(concurrency.ttlMs) && concurrency.ttlMs > 0
17
+ ? { ttlMs: concurrency.ttlMs }
18
+ : {}),
19
+ };
20
+ }
21
+ function fingerprintCommandConcurrencyInput(input) {
22
+ if (input == null) {
23
+ return '';
24
+ }
25
+ try {
26
+ const serialized = typeof input === 'object' && !Array.isArray(input)
27
+ ? JSON.stringify(input, Object.keys(input).sort())
28
+ : JSON.stringify(input);
29
+ return (0, node_crypto_1.createHash)('sha256').update(serialized ?? '').digest('hex').slice(0, 16);
30
+ }
31
+ catch {
32
+ return '';
33
+ }
34
+ }
35
+ function buildCommandConcurrencyLockKey(input) {
36
+ const commandKey = input.commandKey.trim();
37
+ const tenantId = input.tenantId?.trim() || '_none_';
38
+ const applicationId = input.applicationId?.trim() || '_none_';
39
+ const fingerprint = input.inputFingerprint?.trim() || '_none_';
40
+ switch (input.scope) {
41
+ case 'global':
42
+ return `${command_concurrency_types_1.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX}:global:${commandKey}`;
43
+ case 'application':
44
+ return `${command_concurrency_types_1.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX}:app:${tenantId}:${applicationId}:${commandKey}`;
45
+ case 'tenant+input':
46
+ return `${command_concurrency_types_1.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX}:tenant-input:${tenantId}:${commandKey}:${fingerprint}`;
47
+ case 'tenant':
48
+ default:
49
+ return `${command_concurrency_types_1.AXP_COMMAND_CONCURRENCY_LOCK_PREFIX}:tenant:${tenantId}:${commandKey}`;
50
+ }
51
+ }
52
+ //#endregion
53
+ //# sourceMappingURL=command-concurrency.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.util.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/command-concurrency.util.ts"],"names":[],"mappings":";;AASA,8EAcC;AAED,gFAcC;AAED,wEAuBC;AAhED,6CAAyC;AACzC,2EAIqC;AAErC,iDAAiD;AAEjD,SAAgB,iCAAiC,CAC/C,WAAoD;IAEpD,IAAI,WAAW,EAAE,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,QAAQ;QACpC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC;YAC1F,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,kCAAkC,CAAC,KAAc;IAC/D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GACd,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,8BAA8B,CAAC,KAM9C;IACC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;IACpD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;IAE/D,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,GAAG,+DAAmC,WAAW,UAAU,EAAE,CAAC;QACvE,KAAK,aAAa;YAChB,OAAO,GAAG,+DAAmC,QAAQ,QAAQ,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;QACjG,KAAK,cAAc;YACjB,OAAO,GAAG,+DAAmC,iBAAiB,QAAQ,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QACxG,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,GAAG,+DAAmC,WAAW,QAAQ,IAAI,UAAU,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,YAAY"}
@@ -1,4 +1,5 @@
1
1
  import type { AXPCommandExecuteOptions, AXPCommandExecuteResultPromise, AXPCommandMiddleware } from '@acorex-platform/framework-shared/runtime';
2
+ import type { AXPCommandConcurrencyLock } from './command-concurrency.types';
2
3
  /**
3
4
  * Injection token for {@link ServerCommandRegistry} (provided by ServerCommandModule).
4
5
  * Keeps framework-server/core free of a direct dependency on domain/providers.
@@ -11,5 +12,7 @@ export interface AXPServerCommandRegistry {
11
12
  execute(key: string, input: unknown, options?: AXPCommandExecuteOptions): AXPCommandExecuteResultPromise;
12
13
  /** Register onion middleware (first registered runs outermost). */
13
14
  use?(middleware: AXPCommandMiddleware): void;
15
+ /** Prefer a distributed lock for `@ServerHandler({ concurrency })`. */
16
+ setConcurrencyLock?(lock: AXPCommandConcurrencyLock): void;
14
17
  }
15
18
  //# sourceMappingURL=server-command-registry.token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-command-registry.token.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-command-registry.token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAInD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sDAAsD;IACtD,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,OAAO,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,8BAA8B,CAAC;IAClC,mEAAmE;IACnE,GAAG,CAAC,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C"}
1
+ {"version":3,"file":"server-command-registry.token.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-command-registry.token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAI7E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sDAAsD;IACtD,IAAI,IAAI,MAAM,EAAE,CAAC;IACjB,OAAO,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,8BAA8B,CAAC;IAClC,mEAAmE;IACnE,GAAG,CAAC,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,uEAAuE;IACvE,kBAAkB,CAAC,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-command-registry.token.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-command-registry.token.ts"],"names":[],"mappings":";;;AAMA,iDAAiD;AAEjD;;;GAGG;AACU,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAezE,YAAY"}
1
+ {"version":3,"file":"server-command-registry.token.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-command-registry.token.ts"],"names":[],"mappings":";;;AAOA,iDAAiD;AAEjD;;;GAGG;AACU,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAiBzE,YAAY"}
@@ -4,6 +4,7 @@ export declare const SERVER_HANDLER_METADATA: unique symbol;
4
4
  /**
5
5
  * Registers an `@Injectable()` class as a server-side {@link AXPCommand} handler.
6
6
  * Discovered at bootstrap by {@link ServerCommandRegistry}.
7
+ * Set `concurrency: { policy: 'skip-if-running' }` to reject overlapping executes.
7
8
  */
8
9
  export declare function ServerHandler(options: AXPServerHandlerOptions): ClassDecorator;
9
10
  //# sourceMappingURL=server-handler.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.decorator.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAItE,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,eAAsC,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,cAAc,CAE9E"}
1
+ {"version":3,"file":"server-handler.decorator.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAItE,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,eAAsC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,cAAc,CAE9E"}
@@ -9,6 +9,7 @@ exports.SERVER_HANDLER_METADATA = Symbol.for('ACOREX_SERVER_HANDLER');
9
9
  /**
10
10
  * Registers an `@Injectable()` class as a server-side {@link AXPCommand} handler.
11
11
  * Discovered at bootstrap by {@link ServerCommandRegistry}.
12
+ * Set `concurrency: { policy: 'skip-if-running' }` to reject overlapping executes.
12
13
  */
13
14
  function ServerHandler(options) {
14
15
  return (0, common_1.SetMetadata)(exports.SERVER_HANDLER_METADATA, options);
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.decorator.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.decorator.ts"],"names":[],"mappings":";;;AAaA,sCAEC;AAfD,2CAA6C;AAI7C,4CAA4C;AAE5C,mFAAmF;AACtE,QAAA,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE3E;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAAgC;IAC5D,OAAO,IAAA,oBAAW,EAAC,+BAAuB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,YAAY"}
1
+ {"version":3,"file":"server-handler.decorator.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.decorator.ts"],"names":[],"mappings":";;;AAcA,sCAEC;AAhBD,2CAA6C;AAI7C,4CAA4C;AAE5C,mFAAmF;AACtE,QAAA,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE3E;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAgC;IAC5D,OAAO,IAAA,oBAAW,EAAC,+BAAuB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,YAAY"}
@@ -1,5 +1,6 @@
1
1
  import type { AXPCommand } from '@acorex-platform/framework-shared/runtime';
2
2
  import type { Type } from '@nestjs/common';
3
+ import type { AXPServerHandlerConcurrency } from './command-concurrency.types';
3
4
  import type { AXPRuntimeAuthMode } from '../runtime/runtime-authz.types';
4
5
  export type { AXPRuntimeAuthMode, AXPRuntimeAuthzMetadata } from '../runtime/runtime-authz.types';
5
6
  export { DEFAULT_RUNTIME_AUTHZ_METADATA, normalizeRuntimeAuthzOptions, RUNTIME_PERMISSION_DENIED_CODE, } from '../runtime/runtime-authz.types';
@@ -10,11 +11,17 @@ export interface AXPServerHandlerOptions {
10
11
  readonly auth?: AXPRuntimeAuthMode;
11
12
  /** All keys required (AND). Empty/omitted = authenticated session only. */
12
13
  readonly permissions?: readonly string[];
14
+ /**
15
+ * Opt-in execute lock. `skip-if-running` fails immediately when another
16
+ * execute of the same scope is already in progress.
17
+ */
18
+ readonly concurrency?: AXPServerHandlerConcurrency;
13
19
  }
14
20
  export interface RegisteredServerHandler {
15
21
  readonly key: string;
16
22
  readonly auth: AXPRuntimeAuthMode;
17
23
  readonly permissions: readonly string[];
24
+ readonly concurrency?: AXPServerHandlerConcurrency;
18
25
  readonly metatype: Type<AXPCommand>;
19
26
  /** Nest-created singleton when available (preferred over metatype lookup). */
20
27
  readonly instance?: AXPCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.types.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;CAChC"}
1
+ {"version":3,"file":"server-handler.types.d.ts","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-handler.types.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.types.ts"],"names":[],"mappings":";;;AAQA,sEAIwC;AAHtC,qIAAA,8BAA8B,OAAA;AAC9B,mIAAA,4BAA4B,OAAA;AAC5B,qIAAA,8BAA8B,OAAA;AAqBhC,YAAY"}
1
+ {"version":3,"file":"server-handler.types.js","sourceRoot":"","sources":["../../../../../../../../../libs/framework/server/domain/abstract/src/lib/commands/server-handler.types.ts"],"names":[],"mappings":";;;AASA,sEAIwC;AAHtC,qIAAA,8BAA8B,OAAA;AAC9B,mIAAA,4BAA4B,OAAA;AAC5B,qIAAA,8BAA8B,OAAA;AA2BhC,YAAY"}
@@ -0,0 +1,11 @@
1
+ import { type AXPCommandConcurrencyLock, type RegisteredServerHandler } from '@acorex-platform/framework-server/domain/abstract';
2
+ import type { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';
3
+ export declare class CommandConcurrencyGuard {
4
+ private readonly logger;
5
+ private readonly inProcess;
6
+ private distributed?;
7
+ setLock(lock: AXPCommandConcurrencyLock): void;
8
+ run(entry: RegisteredServerHandler, input: unknown, execute: () => Promise<AXPRuntimeCommandResult>): Promise<AXPRuntimeCommandResult>;
9
+ private buildLockKey;
10
+ }
11
+ //# sourceMappingURL=command-concurrency.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.guard.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/domain/providers/src/lib/command-concurrency.guard.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,yBAAyB,EAG9B,KAAK,uBAAuB,EAC7B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAuCtF,qBACa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,WAAW,CAAC,CAA4B;IAEhD,OAAO,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI;IAIxC,GAAG,CACP,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,GAC9C,OAAO,CAAC,uBAAuB,CAAC;IAuDnC,OAAO,CAAC,YAAY;CAgBrB"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var CommandConcurrencyGuard_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CommandConcurrencyGuard = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const node_async_hooks_1 = require("node:async_hooks");
7
+ const node_crypto_1 = require("node:crypto");
8
+ const common_1 = require("@nestjs/common");
9
+ const core_1 = require("@acorex-platform/framework-server/core");
10
+ const abstract_1 = require("@acorex-platform/framework-server/domain/abstract");
11
+ //#region ----- In-process fallback -----
12
+ class InProcessCommandConcurrencyLock {
13
+ constructor() {
14
+ this.locks = new Map();
15
+ }
16
+ async acquire(key, ttlMs) {
17
+ this.evictExpired(key);
18
+ if (this.locks.has(key)) {
19
+ return null;
20
+ }
21
+ const ownerToken = (0, node_crypto_1.randomUUID)();
22
+ this.locks.set(key, { ownerToken, expiresAt: Date.now() + ttlMs });
23
+ return { key, ownerToken };
24
+ }
25
+ async release(handle) {
26
+ const entry = this.locks.get(handle.key);
27
+ if (entry && entry.ownerToken === handle.ownerToken) {
28
+ this.locks.delete(handle.key);
29
+ }
30
+ }
31
+ evictExpired(key) {
32
+ const entry = this.locks.get(key);
33
+ if (entry && entry.expiresAt <= Date.now()) {
34
+ this.locks.delete(key);
35
+ }
36
+ }
37
+ }
38
+ //#endregion
39
+ //#region ----- Command concurrency guard -----
40
+ const heldLocks = new node_async_hooks_1.AsyncLocalStorage();
41
+ let CommandConcurrencyGuard = CommandConcurrencyGuard_1 = class CommandConcurrencyGuard {
42
+ constructor() {
43
+ this.logger = new common_1.Logger(CommandConcurrencyGuard_1.name);
44
+ this.inProcess = new InProcessCommandConcurrencyLock();
45
+ }
46
+ setLock(lock) {
47
+ this.distributed = lock;
48
+ }
49
+ async run(entry, input, execute) {
50
+ const concurrency = entry.concurrency;
51
+ if (!concurrency) {
52
+ return execute();
53
+ }
54
+ const lockKey = this.buildLockKey(entry.key, concurrency, input);
55
+ const held = heldLocks.getStore();
56
+ if (held?.has(lockKey)) {
57
+ return execute();
58
+ }
59
+ const ttlMs = concurrency.ttlMs ?? abstract_1.AXP_COMMAND_CONCURRENCY_DEFAULT_TTL_MS;
60
+ const lock = this.distributed ?? this.inProcess;
61
+ let handle;
62
+ try {
63
+ handle = await lock.acquire(lockKey, ttlMs);
64
+ }
65
+ catch (error) {
66
+ this.logger.warn(`Command concurrency lock unavailable for '${entry.key}': ${error instanceof Error ? error.message : String(error)}`);
67
+ return execute();
68
+ }
69
+ if (!handle) {
70
+ return {
71
+ success: false,
72
+ message: {
73
+ type: 'warning',
74
+ code: abstract_1.COMMAND_ALREADY_RUNNING_CODE,
75
+ text: `Command '${entry.key}' is already running.`,
76
+ },
77
+ };
78
+ }
79
+ const nextHeld = new Set(held ?? []);
80
+ nextHeld.add(lockKey);
81
+ try {
82
+ return await heldLocks.run(nextHeld, execute);
83
+ }
84
+ finally {
85
+ try {
86
+ await lock.release(handle);
87
+ }
88
+ catch (error) {
89
+ this.logger.warn(`Failed to release command concurrency lock '${lockKey}': ${error instanceof Error ? error.message : String(error)}`);
90
+ }
91
+ }
92
+ }
93
+ buildLockKey(commandKey, concurrency, input) {
94
+ const session = (0, core_1.readRuntimeRequestSession)();
95
+ const scope = concurrency.scope ?? 'tenant';
96
+ return (0, abstract_1.buildCommandConcurrencyLockKey)({
97
+ commandKey,
98
+ scope,
99
+ tenantId: session?.tenantId,
100
+ applicationId: session?.applicationId,
101
+ inputFingerprint: scope === 'tenant+input' ? (0, abstract_1.fingerprintCommandConcurrencyInput)(input) : undefined,
102
+ });
103
+ }
104
+ };
105
+ exports.CommandConcurrencyGuard = CommandConcurrencyGuard;
106
+ exports.CommandConcurrencyGuard = CommandConcurrencyGuard = CommandConcurrencyGuard_1 = tslib_1.__decorate([
107
+ (0, common_1.Injectable)()
108
+ ], CommandConcurrencyGuard);
109
+ //#endregion
110
+ //# sourceMappingURL=command-concurrency.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-concurrency.guard.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/domain/providers/src/lib/command-concurrency.guard.ts"],"names":[],"mappings":"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"}