@motiadev/core 0.8.6-beta.143 → 0.8.6-beta.144-481431

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 (121) hide show
  1. package/dist/index.d.ts +12 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -5
  4. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +13 -0
  5. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +1 -0
  6. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +53 -0
  7. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +15 -0
  8. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +1 -0
  9. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +49 -0
  10. package/dist/src/adapters/defaults/index.d.ts +9 -0
  11. package/dist/src/adapters/defaults/index.d.ts.map +1 -0
  12. package/dist/src/adapters/defaults/index.js +19 -0
  13. package/dist/src/{state/adapters/default-state-adapter.d.ts → adapters/defaults/state/file-state-adapter.d.ts} +2 -2
  14. package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +1 -0
  15. package/dist/src/{state/adapters/default-state-adapter.js → adapters/defaults/state/file-state-adapter.js} +1 -3
  16. package/dist/src/{state/adapters → adapters/defaults/state}/memory-state-adapter.d.ts +1 -1
  17. package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +1 -0
  18. package/dist/src/{state/adapters → adapters/defaults/state}/memory-state-adapter.js +1 -3
  19. package/dist/src/{state/adapters → adapters/defaults/state}/utils.d.ts +1 -1
  20. package/dist/src/adapters/defaults/state/utils.d.ts.map +1 -0
  21. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +9 -0
  22. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +1 -0
  23. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +14 -0
  24. package/dist/src/{streams/adapters → adapters/defaults/stream}/file-stream-adapter.d.ts +2 -2
  25. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +1 -0
  26. package/dist/src/{streams/adapters → adapters/defaults/stream}/file-stream-adapter.js +5 -4
  27. package/dist/src/adapters/defaults/stream/index.d.ts +5 -0
  28. package/dist/src/adapters/defaults/stream/index.d.ts.map +1 -0
  29. package/dist/src/adapters/defaults/stream/index.js +11 -0
  30. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +6 -0
  31. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +1 -0
  32. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +10 -0
  33. package/dist/src/{streams/adapters → adapters/defaults/stream}/memory-stream-adapter.d.ts +4 -1
  34. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +1 -0
  35. package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +55 -0
  36. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +29 -0
  37. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +1 -0
  38. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +15 -0
  39. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +1 -0
  40. package/dist/src/adapters/interfaces/event-adapter.interface.js +2 -0
  41. package/dist/src/adapters/interfaces/index.d.ts +7 -0
  42. package/dist/src/adapters/interfaces/index.d.ts.map +1 -0
  43. package/dist/src/adapters/interfaces/index.js +5 -0
  44. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +23 -0
  45. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +1 -0
  46. package/dist/src/adapters/interfaces/observability-adapter.interface.js +2 -0
  47. package/dist/src/{state/state-adapter.d.ts → adapters/interfaces/state-adapter.interface.d.ts} +2 -5
  48. package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +1 -0
  49. package/dist/src/adapters/interfaces/state-adapter.interface.js +2 -0
  50. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +6 -0
  51. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +1 -0
  52. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +2 -0
  53. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +22 -0
  54. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +1 -0
  55. package/dist/src/adapters/interfaces/stream-adapter.interface.js +16 -0
  56. package/dist/src/call-step-file.js +1 -1
  57. package/dist/src/cron-handler.d.ts +4 -3
  58. package/dist/src/cron-handler.d.ts.map +1 -1
  59. package/dist/src/cron-handler.js +46 -2
  60. package/dist/src/endpoints/step-endpoint.d.ts.map +1 -1
  61. package/dist/src/endpoints/step-endpoint.js +5 -4
  62. package/dist/src/helper/flows-helper.d.ts +1 -1
  63. package/dist/src/helper/flows-helper.d.ts.map +1 -1
  64. package/dist/src/infrastructure-validator/schemas.d.ts +8 -8
  65. package/dist/src/locked-data.d.ts +3 -3
  66. package/dist/src/locked-data.d.ts.map +1 -1
  67. package/dist/src/locked-data.js +2 -8
  68. package/dist/src/logger-factory.d.ts +2 -2
  69. package/dist/src/logger-factory.d.ts.map +1 -1
  70. package/dist/src/motia.d.ts +4 -5
  71. package/dist/src/motia.d.ts.map +1 -1
  72. package/dist/src/observability/index.d.ts +3 -14
  73. package/dist/src/observability/index.d.ts.map +1 -1
  74. package/dist/src/observability/trace-stream-adapter.d.ts +1 -1
  75. package/dist/src/observability/trace-stream-adapter.d.ts.map +1 -1
  76. package/dist/src/observability/trace-stream-adapter.js +3 -2
  77. package/dist/src/observability/tracer.d.ts +1 -0
  78. package/dist/src/observability/tracer.d.ts.map +1 -1
  79. package/dist/src/observability/tracer.js +13 -2
  80. package/dist/src/queue-manager.d.ts +1 -2
  81. package/dist/src/queue-manager.d.ts.map +1 -1
  82. package/dist/src/server.d.ts +11 -4
  83. package/dist/src/server.d.ts.map +1 -1
  84. package/dist/src/server.js +9 -9
  85. package/dist/src/state/create-state-adapter.d.ts +4 -4
  86. package/dist/src/state/create-state-adapter.d.ts.map +1 -1
  87. package/dist/src/state/create-state-adapter.js +3 -3
  88. package/dist/src/step-handlers.d.ts +2 -2
  89. package/dist/src/step-handlers.d.ts.map +1 -1
  90. package/dist/src/step-handlers.js +14 -10
  91. package/dist/src/streams/flows-config-stream.d.ts +1 -1
  92. package/dist/src/streams/flows-config-stream.d.ts.map +1 -1
  93. package/dist/src/streams/flows-config-stream.js +3 -3
  94. package/dist/src/streams/flows-stream.d.ts +1 -1
  95. package/dist/src/streams/flows-stream.d.ts.map +1 -1
  96. package/dist/src/streams/flows-stream.js +3 -3
  97. package/dist/src/streams/logs-stream.d.ts +2 -1
  98. package/dist/src/streams/logs-stream.d.ts.map +1 -1
  99. package/dist/src/streams/logs-stream.js +3 -3
  100. package/dist/src/types/app-config-types.d.ts +11 -0
  101. package/dist/src/types/app-config-types.d.ts.map +1 -1
  102. package/dist/src/types.d.ts +0 -5
  103. package/dist/src/types.d.ts.map +1 -1
  104. package/dist/src/validate-event-input.d.ts.map +1 -1
  105. package/dist/src/validate-event-input.js +3 -1
  106. package/package.json +1 -1
  107. package/dist/src/event-manager.d.ts +0 -4
  108. package/dist/src/event-manager.d.ts.map +0 -1
  109. package/dist/src/event-manager.js +0 -32
  110. package/dist/src/state/adapters/default-state-adapter.d.ts.map +0 -1
  111. package/dist/src/state/adapters/memory-state-adapter.d.ts.map +0 -1
  112. package/dist/src/state/adapters/utils.d.ts.map +0 -1
  113. package/dist/src/state/state-adapter.d.ts.map +0 -1
  114. package/dist/src/streams/adapters/file-stream-adapter.d.ts.map +0 -1
  115. package/dist/src/streams/adapters/memory-stream-adapter.d.ts.map +0 -1
  116. package/dist/src/streams/adapters/memory-stream-adapter.js +0 -39
  117. package/dist/src/streams/adapters/stream-adapter.d.ts +0 -12
  118. package/dist/src/streams/adapters/stream-adapter.d.ts.map +0 -1
  119. package/dist/src/streams/adapters/stream-adapter.js +0 -10
  120. /package/dist/src/{state/adapters → adapters/defaults/state}/utils.js +0 -0
  121. /package/dist/src/{state/state-adapter.js → adapters/interfaces/cron-adapter.interface.js} +0 -0
@@ -0,0 +1,23 @@
1
+ import type { Logger } from '../../logger';
2
+ import type { StateOperation, StreamOperation, TraceError } from '../../observability/types';
3
+ import type { Step } from '../../types';
4
+ export interface Metric {
5
+ name: string;
6
+ value: number;
7
+ tags?: Record<string, string>;
8
+ timestamp?: number;
9
+ }
10
+ export interface Tracer {
11
+ end(err?: TraceError): void;
12
+ stateOperation(operation: StateOperation, input: unknown): void;
13
+ emitOperation(topic: string, data: unknown, success: boolean): void;
14
+ streamOperation(streamName: string, operation: StreamOperation, input: unknown): void;
15
+ child(step: Step, logger: Logger): Tracer;
16
+ }
17
+ export interface ObservabilityAdapter {
18
+ createTracer(traceId: string, step: Step, logger: Logger): Promise<Tracer> | Tracer;
19
+ attachToTrace(traceId: string, step: Step, logger: Logger): Promise<Tracer> | Tracer;
20
+ clear(): Promise<void>;
21
+ recordMetric?(metric: Metric): Promise<void> | void;
22
+ }
23
+ //# sourceMappingURL=observability-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/observability-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC5F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACnE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACrF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACpD"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,4 @@
1
- import type { InternalStateManager } from '../types';
1
+ import type { InternalStateManager } from '../../types';
2
2
  export interface StateItem {
3
3
  groupId: string;
4
4
  key: string;
@@ -14,9 +14,6 @@ export interface StateItemsInput {
14
14
  groupId?: string;
15
15
  filter?: StateFilter[];
16
16
  }
17
- /**
18
- * Interface for state management adapters
19
- */
20
17
  export interface StateAdapter extends InternalStateManager {
21
18
  clear(traceId: string): Promise<void>;
22
19
  cleanup(): Promise<void>;
@@ -24,4 +21,4 @@ export interface StateAdapter extends InternalStateManager {
24
21
  traceIds(): Promise<string[]>;
25
22
  items(input: StateItemsInput): Promise<StateItem[]>;
26
23
  }
27
- //# sourceMappingURL=state-adapter.d.ts.map
24
+ //# sourceMappingURL=state-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/state-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACnE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GACV,aAAa,GACb,YAAY,GACZ,UAAU,GACV,WAAW,GACX,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,oBAAoB;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAExB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAE7B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;CACpD"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import type { StreamAdapter } from './stream-adapter.interface';
2
+ export interface StreamAdapterManager {
3
+ createStream<TData>(streamName: string): StreamAdapter<TData>;
4
+ shutdown?(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=stream-adapter-manager.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-adapter-manager.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/stream-adapter-manager.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7D,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,22 @@
1
+ import type { BaseStreamItem, MotiaStream, StateStreamEvent, StateStreamEventChannel } from '../../types-stream';
2
+ export interface StreamQueryFilter<TData> {
3
+ limit?: number;
4
+ offset?: number;
5
+ orderBy?: keyof TData;
6
+ orderDirection?: 'asc' | 'desc';
7
+ where?: Partial<TData>;
8
+ }
9
+ export declare abstract class StreamAdapter<TData> implements MotiaStream<TData> {
10
+ protected streamName: string;
11
+ constructor(streamName: string);
12
+ abstract get(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
13
+ abstract set(groupId: string, id: string, data: TData): Promise<BaseStreamItem<TData>>;
14
+ abstract delete(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
15
+ abstract getGroup(groupId: string): Promise<BaseStreamItem<TData>[]>;
16
+ send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void>;
17
+ subscribe<T>(channel: StateStreamEventChannel, handler: (event: StateStreamEvent<T>) => void | Promise<void>): Promise<void>;
18
+ unsubscribe(channel: StateStreamEventChannel): Promise<void>;
19
+ clear(groupId: string): Promise<void>;
20
+ query(groupId: string, filter: StreamQueryFilter<TData>): Promise<BaseStreamItem<TData>[]>;
21
+ }
22
+ //# sourceMappingURL=stream-adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/stream-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEhH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,KAAK,CAAA;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB;AAED,8BAAsB,aAAa,CAAC,KAAK,CAAE,YAAW,WAAW,CAAC,KAAK,CAAC;IACtE,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;gBAEhB,UAAU,EAAE,MAAM;IAI9B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChF,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtF,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACnF,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAE9D,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF,SAAS,CAAC,CAAC,EACf,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC;IAEV,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAErC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;CAGjG"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamAdapter = void 0;
4
+ class StreamAdapter {
5
+ constructor(streamName) {
6
+ this.streamName = streamName;
7
+ }
8
+ async send(channel, event) { }
9
+ async subscribe(channel, handler) { }
10
+ async unsubscribe(channel) { }
11
+ async clear(groupId) { }
12
+ async query(groupId, filter) {
13
+ return [];
14
+ }
15
+ }
16
+ exports.StreamAdapter = StreamAdapter;
@@ -125,7 +125,7 @@ const callStepFile = (options, motia) => {
125
125
  return motia.printer.printInvalidEmit(step, input.topic);
126
126
  }
127
127
  tracer.emitOperation(input.topic, input.data, true);
128
- return motia.eventManager.emit({ ...input, traceId, flows, logger, tracer }, step.filePath);
128
+ return motia.eventAdapter.emit({ ...input, traceId, flows, logger, tracer });
129
129
  });
130
130
  Object.entries(streamConfig).forEach(([name, streamFactory]) => {
131
131
  const stateStream = streamFactory();
@@ -1,13 +1,14 @@
1
+ import type { CronAdapter } from './adapters/interfaces/cron-adapter.interface';
1
2
  import type { Motia } from './motia';
2
3
  import type { CronConfig, Step } from './types';
3
4
  export type CronManager = {
4
5
  createCronJob: (step: Step<CronConfig>) => void;
5
6
  removeCronJob: (step: Step<CronConfig>) => void;
6
- close: () => void;
7
+ close: () => Promise<void>;
7
8
  };
8
- export declare const setupCronHandlers: (motia: Motia) => {
9
+ export declare const setupCronHandlers: (motia: Motia, cronAdapter?: CronAdapter) => {
9
10
  createCronJob: (step: Step<CronConfig>) => void;
10
11
  removeCronJob: (step: Step<CronConfig>) => void;
11
- close: () => void;
12
+ close: () => Promise<void>;
12
13
  };
13
14
  //# sourceMappingURL=cron-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cron-handler.d.ts","sourceRoot":"","sources":["../../src/cron-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC/C,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK;0BAGf,IAAI,CAAC,UAAU,CAAC;0BAoChB,IAAI,CAAC,UAAU,CAAC;;CAiB9C,CAAA"}
1
+ {"version":3,"file":"cron-handler.d.ts","sourceRoot":"","sources":["../../src/cron-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,8CAA8C,CAAA;AAIzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC/C,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC/C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,EAAE,cAAc,WAAW;0BAG1C,IAAI,CAAC,UAAU,CAAC;0BA8EhB,IAAI,CAAC,UAAU,CAAC;;CAqB9C,CAAA"}
@@ -38,7 +38,7 @@ const cron = __importStar(require("node-cron"));
38
38
  const call_step_file_1 = require("./call-step-file");
39
39
  const generate_trace_id_1 = require("./generate-trace-id");
40
40
  const logger_1 = require("./logger");
41
- const setupCronHandlers = (motia) => {
41
+ const setupCronHandlers = (motia, cronAdapter) => {
42
42
  const cronJobs = new Map();
43
43
  const createCronJob = (step) => {
44
44
  const { config, filePath } = step;
@@ -56,6 +56,30 @@ const setupCronHandlers = (motia) => {
56
56
  cron: cronExpression,
57
57
  });
58
58
  const task = cron.schedule(cronExpression, async () => {
59
+ let lock = null;
60
+ if (cronAdapter) {
61
+ try {
62
+ lock = await cronAdapter.acquireLock(stepName, 300000);
63
+ if (!lock) {
64
+ logger_1.globalLogger.debug('[cron handler] failed to acquire lock, skipping execution', {
65
+ step: stepName,
66
+ });
67
+ return;
68
+ }
69
+ logger_1.globalLogger.debug('[cron handler] acquired lock for cron job', {
70
+ step: stepName,
71
+ lockId: lock.lockId,
72
+ instanceId: lock.instanceId,
73
+ });
74
+ }
75
+ catch (error) {
76
+ logger_1.globalLogger.error('[cron handler] error acquiring lock', {
77
+ error: error.message,
78
+ step: stepName,
79
+ });
80
+ return;
81
+ }
82
+ }
59
83
  const traceId = (0, generate_trace_id_1.generateTraceId)();
60
84
  const logger = motia.loggerFactory.create({ traceId, flows, stepName });
61
85
  const tracer = await motia.tracerFactory.createTracer(traceId, step, logger);
@@ -68,6 +92,23 @@ const setupCronHandlers = (motia) => {
68
92
  step: step.config.name,
69
93
  });
70
94
  }
95
+ finally {
96
+ if (lock && cronAdapter) {
97
+ try {
98
+ await cronAdapter.releaseLock(lock);
99
+ logger_1.globalLogger.debug('[cron handler] released lock for cron job', {
100
+ step: stepName,
101
+ lockId: lock.lockId,
102
+ });
103
+ }
104
+ catch (error) {
105
+ logger_1.globalLogger.error('[cron handler] error releasing lock', {
106
+ error: error.message,
107
+ step: stepName,
108
+ });
109
+ }
110
+ }
111
+ }
71
112
  });
72
113
  cronJobs.set(step.filePath, task);
73
114
  };
@@ -78,9 +119,12 @@ const setupCronHandlers = (motia) => {
78
119
  cronJobs.delete(step.filePath);
79
120
  }
80
121
  };
81
- const close = () => {
122
+ const close = async () => {
82
123
  cronJobs.forEach((task) => task.stop());
83
124
  cronJobs.clear();
125
+ if (cronAdapter) {
126
+ await cronAdapter.shutdown();
127
+ }
84
128
  };
85
129
  motia.lockedData.cronSteps().forEach(createCronJob);
86
130
  return { createCronJob, removeCronJob, close };
@@ -1 +1 @@
1
- {"version":3,"file":"step-endpoint.d.ts","sourceRoot":"","sources":["../../../src/endpoints/step-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAiBhD,eAAO,MAAM,YAAY,GAAI,KAAK,OAAO,EAAE,YAAY,UAAU,SAwBhE,CAAA"}
1
+ {"version":3,"file":"step-endpoint.d.ts","sourceRoot":"","sources":["../../../src/endpoints/step-endpoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAiBhD,eAAO,MAAM,YAAY,GAAI,KAAK,OAAO,EAAE,YAAY,UAAU,SA0BhE,CAAA"}
@@ -4,18 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.stepEndpoint = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
7
8
  const promises_1 = __importDefault(require("fs/promises"));
8
9
  const flows_helper_1 = require("../helper/flows-helper");
9
10
  const getFeatures = async (filePath) => {
10
- const stat = await promises_1.default.stat(filePath + '-features.json').catch(() => null);
11
+ const stat = await promises_1.default.stat(`${filePath}-features.json`).catch(() => null);
11
12
  if (!stat || stat.isDirectory()) {
12
13
  return [];
13
14
  }
14
15
  try {
15
- const content = await promises_1.default.readFile(filePath + '-features.json', 'utf8');
16
+ const content = await promises_1.default.readFile(`${filePath}-features.json`, 'utf8');
16
17
  return JSON.parse(content);
17
18
  }
18
- catch (error) {
19
+ catch {
19
20
  return [];
20
21
  }
21
22
  };
@@ -30,7 +31,7 @@ const stepEndpoint = (app, lockedData) => {
30
31
  }
31
32
  try {
32
33
  const content = await promises_1.default.readFile(step.filePath, 'utf8');
33
- const features = await getFeatures(step.filePath);
34
+ const features = await getFeatures(step.filePath.replace(`${node_path_1.default.sep}steps${node_path_1.default.sep}`, `${node_path_1.default.sep}tutorial${node_path_1.default.sep}`));
34
35
  res.status(200).send({ id, content, features });
35
36
  }
36
37
  catch (error) {
@@ -1,4 +1,4 @@
1
- import type { Step } from 'src/types';
1
+ import type { Step } from '../types';
2
2
  import type { FlowResponse } from '../types/flows-types';
3
3
  export declare const STEP_NAMESPACE = "7f1c3ff2-9b00-4d0a-bdd7-efb8bca49d4f";
4
4
  export declare const generateStepId: (filePath: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"flows-helper.d.ts","sourceRoot":"","sources":["../../../src/helper/flows-helper.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,WAAW,CAAA;AAI3C,OAAO,KAAK,EAAY,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AA2IpF,eAAO,MAAM,cAAc,yCAAyC,CAAA;AACpE,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MAEjD,CAAA;AAqBD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,WAAW,IAAI,EAAE,KAAG,YAMhE,CAAA"}
1
+ {"version":3,"file":"flows-helper.d.ts","sourceRoot":"","sources":["../../../src/helper/flows-helper.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAY,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AA2IpF,eAAO,MAAM,cAAc,yCAAyC,CAAA;AACpE,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MAEjD,CAAA;AAqBD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,WAAW,IAAI,EAAE,KAAG,YAMhE,CAAA"}
@@ -47,12 +47,12 @@ export declare const queueSchema: z.ZodObject<{
47
47
  maxRetries: z.ZodNumber;
48
48
  delaySeconds: z.ZodOptional<z.ZodNumber>;
49
49
  }, "strip", z.ZodTypeAny, {
50
- type: "fifo" | "standard";
50
+ type: "standard" | "fifo";
51
51
  visibilityTimeout: number;
52
52
  maxRetries: number;
53
53
  delaySeconds?: number | undefined;
54
54
  }, {
55
- type: "fifo" | "standard";
55
+ type: "standard" | "fifo";
56
56
  visibilityTimeout: number;
57
57
  maxRetries: number;
58
58
  delaySeconds?: number | undefined;
@@ -85,12 +85,12 @@ export declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
85
85
  maxRetries: z.ZodOptional<z.ZodNumber>;
86
86
  delaySeconds: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
87
87
  }, "strip", z.ZodTypeAny, {
88
- type?: "fifo" | "standard" | undefined;
88
+ type?: "standard" | "fifo" | undefined;
89
89
  visibilityTimeout?: number | undefined;
90
90
  maxRetries?: number | undefined;
91
91
  delaySeconds?: number | undefined;
92
92
  }, {
93
- type?: "fifo" | "standard" | undefined;
93
+ type?: "standard" | "fifo" | undefined;
94
94
  visibilityTimeout?: number | undefined;
95
95
  maxRetries?: number | undefined;
96
96
  delaySeconds?: number | undefined;
@@ -102,7 +102,7 @@ export declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
102
102
  cpu?: number | undefined;
103
103
  } | undefined;
104
104
  queue?: {
105
- type?: "fifo" | "standard" | undefined;
105
+ type?: "standard" | "fifo" | undefined;
106
106
  visibilityTimeout?: number | undefined;
107
107
  maxRetries?: number | undefined;
108
108
  delaySeconds?: number | undefined;
@@ -114,7 +114,7 @@ export declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
114
114
  cpu?: number | undefined;
115
115
  } | undefined;
116
116
  queue?: {
117
- type?: "fifo" | "standard" | undefined;
117
+ type?: "standard" | "fifo" | undefined;
118
118
  visibilityTimeout?: number | undefined;
119
119
  maxRetries?: number | undefined;
120
120
  delaySeconds?: number | undefined;
@@ -126,7 +126,7 @@ export declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
126
126
  cpu?: number | undefined;
127
127
  } | undefined;
128
128
  queue?: {
129
- type?: "fifo" | "standard" | undefined;
129
+ type?: "standard" | "fifo" | undefined;
130
130
  visibilityTimeout?: number | undefined;
131
131
  maxRetries?: number | undefined;
132
132
  delaySeconds?: number | undefined;
@@ -138,7 +138,7 @@ export declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
138
138
  cpu?: number | undefined;
139
139
  } | undefined;
140
140
  queue?: {
141
- type?: "fifo" | "standard" | undefined;
141
+ type?: "standard" | "fifo" | undefined;
142
142
  visibilityTimeout?: number | undefined;
143
143
  maxRetries?: number | undefined;
144
144
  delaySeconds?: number | undefined;
@@ -1,3 +1,4 @@
1
+ import type { StreamAdapterManager } from './adapters/interfaces/stream-adapter-manager.interface';
1
2
  import type { Printer } from './printer';
2
3
  import type { StreamFactory } from './streams/stream-factory';
3
4
  import type { ApiRouteConfig, CronConfig, EventConfig, Flow, Step } from './types';
@@ -8,9 +9,8 @@ type StreamEvent = 'stream-created' | 'stream-removed' | 'stream-updated';
8
9
  type StreamWrapper<TData> = (streamName: string, factory: StreamFactory<TData>) => StreamFactory<TData>;
9
10
  export declare class LockedData {
10
11
  readonly baseDir: string;
11
- readonly streamAdapter: 'file' | 'memory';
12
+ readonly streamAdapter: StreamAdapterManager;
12
13
  private readonly printer;
13
- readonly motiaFileStoragePath: string;
14
14
  flows: Record<string, Flow>;
15
15
  activeSteps: Step[];
16
16
  devSteps: Step[];
@@ -20,7 +20,7 @@ export declare class LockedData {
20
20
  private streamHandlers;
21
21
  private streams;
22
22
  private streamWrapper?;
23
- constructor(baseDir: string, streamAdapter: "file" | "memory" | undefined, printer: Printer, motiaFileStoragePath?: string);
23
+ constructor(baseDir: string, streamAdapter: StreamAdapterManager, printer: Printer);
24
24
  applyStreamWrapper<TData>(streamWrapper: StreamWrapper<TData>): void;
25
25
  saveTypes(): void;
26
26
  on(event: FlowEvent, handler: (flowName: string) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"locked-data.d.ts","sourceRoot":"","sources":["../../src/locked-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locked-data.d.ts","sourceRoot":"","sources":["../../src/locked-data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAGlG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAElF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,KAAK,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AACjE,KAAK,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AACjE,KAAK,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;AAEzE,KAAK,aAAa,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAA;AAEvG,qBAAa,UAAU;aAcH,OAAO,EAAE,MAAM;aACf,aAAa,EAAE,oBAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAfnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3B,WAAW,EAAE,IAAI,EAAE,CAAA;IACnB,QAAQ,EAAE,IAAI,EAAE,CAAA;IAEvB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,aAAa,CAAC,CAAoB;gBAGxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,oBAAoB,EAClC,OAAO,EAAE,OAAO;IA4BnC,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI;IAIpE,SAAS;IAOT,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;IAIxD,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;IAItD,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI9D,cAAc;IAId,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;IAIjC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;IAIlC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;IAI/B,WAAW,IAAI,IAAI,EAAE;IAIrB,OAAO,IAAI,IAAI,EAAE;IAIjB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAUhD,WAAW,IAAI,MAAM,EAAE;IAIvB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO;IAyDlG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO;IAiChF,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IA6B7E,OAAO,CAAC,oBAAoB;IAS5B,YAAY,CAAC,KAAK,EAChB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EACnC,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC9C,aAAa,CAAC,KAAK,CAAC;IAuBvB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAkBnF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAuBtG,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -9,15 +9,12 @@ const path_1 = __importDefault(require("path"));
9
9
  const guards_1 = require("./guards");
10
10
  const motia_1 = require("./motia");
11
11
  const step_validator_1 = require("./step-validator");
12
- const file_stream_adapter_1 = require("./streams/adapters/file-stream-adapter");
13
- const memory_stream_adapter_1 = require("./streams/adapters/memory-stream-adapter");
14
12
  const generate_types_1 = require("./types/generate-types");
15
13
  class LockedData {
16
- constructor(baseDir, streamAdapter = 'file', printer, motiaFileStoragePath = '.motia') {
14
+ constructor(baseDir, streamAdapter, printer) {
17
15
  this.baseDir = baseDir;
18
16
  this.streamAdapter = streamAdapter;
19
17
  this.printer = printer;
20
- this.motiaFileStoragePath = motiaFileStoragePath;
21
18
  this.flows = {};
22
19
  this.activeSteps = [];
23
20
  this.devSteps = [];
@@ -269,10 +266,7 @@ class LockedData {
269
266
  return validationResult.success;
270
267
  }
271
268
  createStreamAdapter(streamName) {
272
- if (this.streamAdapter === 'file') {
273
- return new file_stream_adapter_1.FileStreamAdapter(this.baseDir, streamName, this.motiaFileStoragePath);
274
- }
275
- return new memory_stream_adapter_1.MemoryStreamAdapter();
269
+ return this.streamAdapter.createStream(streamName);
276
270
  }
277
271
  }
278
272
  exports.LockedData = LockedData;
@@ -1,6 +1,6 @@
1
1
  import { Logger } from './logger';
2
- import type { StreamAdapter } from './streams/adapters/stream-adapter';
3
2
  import type { Log } from './streams/logs-stream';
3
+ import type { MotiaStream } from './types-stream';
4
4
  type CreateLogger = {
5
5
  traceId: string;
6
6
  flows?: string[];
@@ -12,7 +12,7 @@ export interface LoggerFactory {
12
12
  export declare class BaseLoggerFactory implements LoggerFactory {
13
13
  private readonly isVerbose;
14
14
  private readonly logStream;
15
- constructor(isVerbose: boolean, logStream: StreamAdapter<Log>);
15
+ constructor(isVerbose: boolean, logStream: MotiaStream<Log>);
16
16
  create({ stepName, traceId, flows }: CreateLogger): Logger;
17
17
  }
18
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"logger-factory.d.ts","sourceRoot":"","sources":["../../src/logger-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAEhD,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAA;CACvC;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC;IAGhD,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,MAAM;CAiB3D"}
1
+ {"version":3,"file":"logger-factory.d.ts","sourceRoot":"","sources":["../../src/logger-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAA;CACvC;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC;IAG9C,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,MAAM;CAiB3D"}
@@ -1,19 +1,18 @@
1
1
  import type { Express } from 'express';
2
+ import type { EventAdapter } from './adapters/interfaces/event-adapter.interface';
3
+ import type { StateAdapter } from './adapters/interfaces/state-adapter.interface';
2
4
  import type { LockedData } from './locked-data';
3
5
  import type { LoggerFactory } from './logger-factory';
4
6
  import type { TracerFactory } from './observability';
5
7
  import type { Printer } from './printer';
6
- import type { QueueManager } from './queue-manager';
7
- import type { StateAdapter } from './state/state-adapter';
8
- import type { ApiResponse, ApiRouteConfig, ApiRouteHandler, EventManager, InternalStateManager } from './types';
8
+ import type { ApiResponse, ApiRouteConfig, ApiRouteHandler, InternalStateManager } from './types';
9
9
  export type Motia = {
10
10
  loggerFactory: LoggerFactory;
11
- eventManager: EventManager;
11
+ eventAdapter: EventAdapter;
12
12
  state: InternalStateManager;
13
13
  lockedData: LockedData;
14
14
  printer: Printer;
15
15
  tracerFactory: TracerFactory;
16
- queueManager: QueueManager;
17
16
  app: Express;
18
17
  stateAdapter: StateAdapter;
19
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"motia.d.ts","sourceRoot":"","sources":["../../src/motia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE/G,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAE1B,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,CACX,YAAY,GAAG,OAAO,EACtB,aAAa,SAAS,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,SAAS,GAAG,KAAK,EAEjB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,KAC7D,wBAAwB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"motia.d.ts","sourceRoot":"","sources":["../../src/motia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEjG,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAE5B,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,CACX,YAAY,GAAG,OAAO,EACtB,aAAa,SAAS,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,SAAS,GAAG,KAAK,EAEjB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,KAC7D,wBAAwB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,cAAc,YAAY,CAAA"}
@@ -1,15 +1,4 @@
1
- import type { Logger } from '../logger';
2
- import type { Step } from '../types';
3
- import type { StateOperation, StreamOperation, TraceError } from './types';
4
- export interface TracerFactory {
5
- createTracer(traceId: string, step: Step, logger: Logger): Promise<Tracer> | Tracer;
6
- clear(): Promise<void>;
7
- }
8
- export interface Tracer {
9
- end(err?: TraceError): void;
10
- stateOperation(operation: StateOperation, input: unknown): void;
11
- emitOperation(topic: string, data: unknown, success: boolean): void;
12
- streamOperation(streamName: string, operation: StreamOperation, input: unknown): void;
13
- child(step: Step, logger: Logger): Tracer;
14
- }
1
+ import type { ObservabilityAdapter, Tracer } from '../adapters/interfaces/observability-adapter.interface';
2
+ export type { ObservabilityAdapter, Tracer };
3
+ export type TracerFactory = ObservabilityAdapter;
15
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IACnF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACnE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACrF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,wDAAwD,CAAA;AAE1G,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAA;AAC5C,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { FileStreamAdapter } from '../streams/adapters/file-stream-adapter';
1
+ import { FileStreamAdapter } from '../adapters/defaults/stream/file-stream-adapter';
2
2
  import type { BaseStreamItem } from '../types-stream';
3
3
  export declare class TraceStreamAdapter<TData> extends FileStreamAdapter<TData> {
4
4
  private state;
@@ -1 +1 @@
1
- {"version":3,"file":"trace-stream-adapter.d.ts","sourceRoot":"","sources":["../../../src/observability/trace-stream-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,qBAAa,kBAAkB,CAAC,KAAK,CAAE,SAAQ,iBAAiB,CAAC,KAAK,CAAC;IACrE,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAiB;gBAEpB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,QAAQ;IAuB5E,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAMvE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAS7E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAY1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;CAKlE"}
1
+ {"version":3,"file":"trace-stream-adapter.d.ts","sourceRoot":"","sources":["../../../src/observability/trace-stream-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAA;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,qBAAa,kBAAkB,CAAC,KAAK,CAAE,SAAQ,iBAAiB,CAAC,KAAK,CAAC;IACrE,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAiB;gBAEpB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,QAAQ;IAuB5E,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAMvE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAS7E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAY1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;CAMlE"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TraceStreamAdapter = void 0;
4
- const file_stream_adapter_1 = require("../streams/adapters/file-stream-adapter");
4
+ const file_stream_adapter_1 = require("../adapters/defaults/stream/file-stream-adapter");
5
5
  class TraceStreamAdapter extends file_stream_adapter_1.FileStreamAdapter {
6
6
  constructor(filePath, streamName, streamAdapter) {
7
7
  super(filePath ?? '', streamName);
@@ -45,8 +45,9 @@ class TraceStreamAdapter extends file_stream_adapter_1.FileStreamAdapter {
45
45
  return value;
46
46
  }
47
47
  async getGroup(groupId) {
48
+ const prefix = this._makeKey(groupId, '');
48
49
  return Object.entries(this.state)
49
- .filter(([key]) => key.startsWith(groupId))
50
+ .filter(([key]) => key.startsWith(prefix))
50
51
  .map(([, value]) => value);
51
52
  }
52
53
  }
@@ -13,6 +13,7 @@ export declare class BaseTracerFactory implements TracerFactory {
13
13
  private deleteGroup;
14
14
  clear(): Promise<void>;
15
15
  createTracer(traceId: string, step: Step, logger: Logger): Promise<StreamTracer>;
16
+ attachToTrace(traceId: string, step: Step, logger: Logger): Promise<StreamTracer>;
16
17
  }
17
18
  export declare const createTracerFactory: (lockedData: LockedData) => TracerFactory;
18
19
  //# sourceMappingURL=tracer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMhD,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAC/B,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC;YAG9C,YAAY;YAIZ,WAAW;IASnB,KAAK;IAQL,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;CAgC/D;AAED,eAAO,MAAM,mBAAmB,GAAI,YAAY,UAAU,KAAG,aAkC5D,CAAA"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/tracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMhD,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAC/B,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC;YAG9C,YAAY;YAIZ,WAAW;IASnB,KAAK;IAQL,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAiCxD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;CAYhE;AAED,eAAO,MAAM,mBAAmB,GAAI,YAAY,UAAU,KAAG,aA2B5D,CAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTracerFactory = exports.BaseTracerFactory = void 0;
4
+ const file_stream_adapter_manager_1 = require("../adapters/defaults/stream/file-stream-adapter-manager");
4
5
  const create_trace_1 = require("./create-trace");
5
6
  const stream_tracer_1 = require("./stream-tracer");
6
7
  const trace_manager_1 = require("./trace-manager");
@@ -56,11 +57,21 @@ class BaseTracerFactory {
56
57
  const manager = new trace_manager_1.TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace);
57
58
  return new stream_tracer_1.StreamTracer(manager, traceGroup, trace, logger);
58
59
  }
60
+ async attachToTrace(traceId, step, logger) {
61
+ const existingGroup = await this.traceGroupStream.get('default', traceId);
62
+ if (!existingGroup) {
63
+ return this.createTracer(traceId, step, logger);
64
+ }
65
+ const trace = (0, create_trace_1.createTrace)(existingGroup, step);
66
+ const manager = new trace_manager_1.TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace);
67
+ return new stream_tracer_1.StreamTracer(manager, existingGroup, trace, logger);
68
+ }
59
69
  }
60
70
  exports.BaseTracerFactory = BaseTracerFactory;
61
71
  const createTracerFactory = (lockedData) => {
72
+ const streamAdapter = lockedData.streamAdapter instanceof file_stream_adapter_manager_1.FileStreamAdapterManager ? 'file' : 'memory';
62
73
  const traceStreamName = 'motia-trace';
63
- const traceStreamAdapter = new trace_stream_adapter_1.TraceStreamAdapter(lockedData.baseDir, traceStreamName, lockedData.streamAdapter);
74
+ const traceStreamAdapter = new trace_stream_adapter_1.TraceStreamAdapter(lockedData.baseDir, traceStreamName, streamAdapter);
64
75
  const traceStream = lockedData.createStream({
65
76
  filePath: traceStreamName,
66
77
  hidden: true,
@@ -71,7 +82,7 @@ const createTracerFactory = (lockedData) => {
71
82
  },
72
83
  })();
73
84
  const traceGroupName = 'motia-trace-group';
74
- const traceGroupStreamAdapter = new trace_stream_adapter_1.TraceStreamAdapter(lockedData.baseDir, traceGroupName, lockedData.streamAdapter);
85
+ const traceGroupStreamAdapter = new trace_stream_adapter_1.TraceStreamAdapter(lockedData.baseDir, traceGroupName, streamAdapter);
75
86
  const traceGroupStream = lockedData.createStream({
76
87
  filePath: traceGroupName,
77
88
  hidden: true,
@@ -10,7 +10,7 @@ export declare class MaxRetriesError extends QueueError {
10
10
  readonly attempts: number;
11
11
  constructor(message: string, attempts: number);
12
12
  }
13
- type QueueMetrics = {
13
+ export type QueueMetrics = {
14
14
  queueDepth: number;
15
15
  processingCount: number;
16
16
  retriesCount: number;
@@ -39,5 +39,4 @@ export declare class QueueManager {
39
39
  getAllMetrics(): Record<string, QueueMetrics>;
40
40
  reset(): void;
41
41
  }
42
- export {};
43
42
  //# sourceMappingURL=queue-manager.d.ts.map