@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.
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -5
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +13 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +53 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +15 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +49 -0
- package/dist/src/adapters/defaults/index.d.ts +9 -0
- package/dist/src/adapters/defaults/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/index.js +19 -0
- package/dist/src/{state/adapters/default-state-adapter.d.ts → adapters/defaults/state/file-state-adapter.d.ts} +2 -2
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +1 -0
- package/dist/src/{state/adapters/default-state-adapter.js → adapters/defaults/state/file-state-adapter.js} +1 -3
- package/dist/src/{state/adapters → adapters/defaults/state}/memory-state-adapter.d.ts +1 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +1 -0
- package/dist/src/{state/adapters → adapters/defaults/state}/memory-state-adapter.js +1 -3
- package/dist/src/{state/adapters → adapters/defaults/state}/utils.d.ts +1 -1
- package/dist/src/adapters/defaults/state/utils.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +9 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +14 -0
- package/dist/src/{streams/adapters → adapters/defaults/stream}/file-stream-adapter.d.ts +2 -2
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +1 -0
- package/dist/src/{streams/adapters → adapters/defaults/stream}/file-stream-adapter.js +5 -4
- package/dist/src/adapters/defaults/stream/index.d.ts +5 -0
- package/dist/src/adapters/defaults/stream/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/index.js +11 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +6 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +10 -0
- package/dist/src/{streams/adapters → adapters/defaults/stream}/memory-stream-adapter.d.ts +4 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +55 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +29 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +15 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/index.d.ts +7 -0
- package/dist/src/adapters/interfaces/index.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/index.js +5 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +23 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.js +2 -0
- package/dist/src/{state/state-adapter.d.ts → adapters/interfaces/state-adapter.interface.d.ts} +2 -5
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +6 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +22 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.js +16 -0
- package/dist/src/call-step-file.js +1 -1
- package/dist/src/cron-handler.d.ts +4 -3
- package/dist/src/cron-handler.d.ts.map +1 -1
- package/dist/src/cron-handler.js +46 -2
- package/dist/src/endpoints/step-endpoint.d.ts.map +1 -1
- package/dist/src/endpoints/step-endpoint.js +5 -4
- package/dist/src/helper/flows-helper.d.ts +1 -1
- package/dist/src/helper/flows-helper.d.ts.map +1 -1
- package/dist/src/infrastructure-validator/schemas.d.ts +8 -8
- package/dist/src/locked-data.d.ts +3 -3
- package/dist/src/locked-data.d.ts.map +1 -1
- package/dist/src/locked-data.js +2 -8
- package/dist/src/logger-factory.d.ts +2 -2
- package/dist/src/logger-factory.d.ts.map +1 -1
- package/dist/src/motia.d.ts +4 -5
- package/dist/src/motia.d.ts.map +1 -1
- package/dist/src/observability/index.d.ts +3 -14
- package/dist/src/observability/index.d.ts.map +1 -1
- package/dist/src/observability/trace-stream-adapter.d.ts +1 -1
- package/dist/src/observability/trace-stream-adapter.d.ts.map +1 -1
- package/dist/src/observability/trace-stream-adapter.js +3 -2
- package/dist/src/observability/tracer.d.ts +1 -0
- package/dist/src/observability/tracer.d.ts.map +1 -1
- package/dist/src/observability/tracer.js +13 -2
- package/dist/src/queue-manager.d.ts +1 -2
- package/dist/src/queue-manager.d.ts.map +1 -1
- package/dist/src/server.d.ts +11 -4
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +9 -9
- package/dist/src/state/create-state-adapter.d.ts +4 -4
- package/dist/src/state/create-state-adapter.d.ts.map +1 -1
- package/dist/src/state/create-state-adapter.js +3 -3
- package/dist/src/step-handlers.d.ts +2 -2
- package/dist/src/step-handlers.d.ts.map +1 -1
- package/dist/src/step-handlers.js +14 -10
- package/dist/src/streams/flows-config-stream.d.ts +1 -1
- package/dist/src/streams/flows-config-stream.d.ts.map +1 -1
- package/dist/src/streams/flows-config-stream.js +3 -3
- package/dist/src/streams/flows-stream.d.ts +1 -1
- package/dist/src/streams/flows-stream.d.ts.map +1 -1
- package/dist/src/streams/flows-stream.js +3 -3
- package/dist/src/streams/logs-stream.d.ts +2 -1
- package/dist/src/streams/logs-stream.d.ts.map +1 -1
- package/dist/src/streams/logs-stream.js +3 -3
- package/dist/src/types/app-config-types.d.ts +11 -0
- package/dist/src/types/app-config-types.d.ts.map +1 -1
- package/dist/src/types.d.ts +0 -5
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/validate-event-input.d.ts.map +1 -1
- package/dist/src/validate-event-input.js +3 -1
- package/package.json +1 -1
- package/dist/src/event-manager.d.ts +0 -4
- package/dist/src/event-manager.d.ts.map +0 -1
- package/dist/src/event-manager.js +0 -32
- package/dist/src/state/adapters/default-state-adapter.d.ts.map +0 -1
- package/dist/src/state/adapters/memory-state-adapter.d.ts.map +0 -1
- package/dist/src/state/adapters/utils.d.ts.map +0 -1
- package/dist/src/state/state-adapter.d.ts.map +0 -1
- package/dist/src/streams/adapters/file-stream-adapter.d.ts.map +0 -1
- package/dist/src/streams/adapters/memory-stream-adapter.d.ts.map +0 -1
- package/dist/src/streams/adapters/memory-stream-adapter.js +0 -39
- package/dist/src/streams/adapters/stream-adapter.d.ts +0 -12
- package/dist/src/streams/adapters/stream-adapter.d.ts.map +0 -1
- package/dist/src/streams/adapters/stream-adapter.js +0 -10
- /package/dist/src/{state/adapters → adapters/defaults/state}/utils.js +0 -0
- /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"}
|
package/dist/src/{state/state-adapter.d.ts → adapters/interfaces/state-adapter.interface.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InternalStateManager } from '
|
|
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,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,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.
|
|
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":"
|
|
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"}
|
package/dist/src/cron-handler.js
CHANGED
|
@@ -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":"
|
|
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
|
|
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
|
|
16
|
+
const content = await promises_1.default.readFile(`${filePath}-features.json`, 'utf8');
|
|
16
17
|
return JSON.parse(content);
|
|
17
18
|
}
|
|
18
|
-
catch
|
|
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 '
|
|
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":"
|
|
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: "
|
|
50
|
+
type: "standard" | "fifo";
|
|
51
51
|
visibilityTimeout: number;
|
|
52
52
|
maxRetries: number;
|
|
53
53
|
delaySeconds?: number | undefined;
|
|
54
54
|
}, {
|
|
55
|
-
type: "
|
|
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?: "
|
|
88
|
+
type?: "standard" | "fifo" | undefined;
|
|
89
89
|
visibilityTimeout?: number | undefined;
|
|
90
90
|
maxRetries?: number | undefined;
|
|
91
91
|
delaySeconds?: number | undefined;
|
|
92
92
|
}, {
|
|
93
|
-
type?: "
|
|
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?: "
|
|
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?: "
|
|
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?: "
|
|
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?: "
|
|
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:
|
|
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:
|
|
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":"
|
|
1
|
+
{"version":3,"file":"locked-data.d.ts","sourceRoot":"","sources":["../../src/locked-data.ts"],"names":[],"mappings":"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"}
|
package/dist/src/locked-data.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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"}
|
package/dist/src/motia.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
};
|
package/dist/src/motia.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
2
|
-
|
|
3
|
-
|
|
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,
|
|
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 '../
|
|
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,
|
|
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("../
|
|
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(
|
|
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":"
|
|
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,
|
|
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,
|
|
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
|