@motiadev/core 0.8.2-beta.140-504654 → 0.8.2-beta.140-460356
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 +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -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 +7 -0
- package/dist/src/adapters/defaults/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/index.js +15 -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/{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 +3 -3
- 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 +6 -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.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/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 -2
- package/dist/src/locked-data.d.ts.map +1 -1
- package/dist/src/locked-data.js +6 -3
- 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 -6
- package/dist/src/motia.d.ts.map +1 -1
- package/dist/src/node/logger.d.ts +0 -3
- package/dist/src/node/logger.d.ts.map +1 -1
- package/dist/src/node/logger.js +0 -5
- 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 -3
- package/dist/src/printer.d.ts +0 -6
- package/dist/src/printer.d.ts.map +1 -1
- package/dist/src/printer.js +2 -19
- package/dist/src/python/motia_logger.py +1 -10
- package/dist/src/queue-manager.d.ts +2 -2
- package/dist/src/queue-manager.d.ts.map +1 -1
- package/dist/src/queue-manager.js +17 -3
- package/dist/src/server.d.ts +11 -5
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +13 -12
- 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 +12 -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
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
export { FileStateAdapter, FileStreamAdapter, MemoryStateAdapter, MemoryStreamAdapter } from './src/adapters/defaults';
|
|
2
|
+
export { InMemoryCronAdapter as DefaultCronAdapter } from './src/adapters/defaults/cron/in-memory-cron-adapter';
|
|
3
|
+
export { InMemoryQueueEventAdapter as DefaultQueueEventAdapter } from './src/adapters/defaults/event/in-memory-queue-event-adapter';
|
|
4
|
+
export type { CronAdapter, CronAdapterConfig, CronLock, CronLockInfo, } from './src/adapters/interfaces/cron-adapter.interface';
|
|
5
|
+
export type { EventAdapter, SubscriptionHandle, } from './src/adapters/interfaces/event-adapter.interface';
|
|
6
|
+
export type { Metric, ObservabilityAdapter, Tracer, } from './src/adapters/interfaces/observability-adapter.interface';
|
|
7
|
+
export type { StateAdapter, StateFilter, StateItem, StateItemsInput, } from './src/adapters/interfaces/state-adapter.interface';
|
|
8
|
+
export { StreamAdapter, type StreamQueryFilter, } from './src/adapters/interfaces/stream-adapter.interface';
|
|
1
9
|
export { getProjectIdentifier, getUserIdentifier, isAnalyticsEnabled, trackEvent } from './src/analytics/utils';
|
|
2
10
|
export { config } from './src/config';
|
|
3
11
|
export { CronManager, setupCronHandlers } from './src/cron-handler';
|
|
4
|
-
export { createEventManager } from './src/event-manager';
|
|
5
12
|
export { getStepConfig, getStreamConfig } from './src/get-step-config';
|
|
6
13
|
export { isApiStep, isCronStep, isEventStep, isNoopStep } from './src/guards';
|
|
7
14
|
export { type InfrastructureValidationError, type InfrastructureValidationResult, validateInfrastructureConfig, } from './src/infrastructure-validator';
|
|
@@ -11,13 +18,12 @@ export { createMermaidGenerator } from './src/mermaid-generator';
|
|
|
11
18
|
export { Motia, MotiaPluginContext, PLUGIN_FLOW_ID, PluginApiConfig, UnregisterMotiaPluginApi } from './src/motia';
|
|
12
19
|
export { NoTracer } from './src/observability/no-tracer';
|
|
13
20
|
export { NoPrinter, Printer } from './src/printer';
|
|
14
|
-
export { QueueManager } from './src/queue-manager';
|
|
21
|
+
export { QueueManager, type QueueMetrics } from './src/queue-manager';
|
|
15
22
|
export { createServer, MotiaServer } from './src/server';
|
|
16
23
|
export { createStateAdapter } from './src/state/create-state-adapter';
|
|
17
|
-
export { StateAdapter } from './src/state/state-adapter';
|
|
18
24
|
export { createStepHandlers, MotiaEventManager } from './src/step-handlers';
|
|
19
|
-
export { StreamAdapter } from './src/streams/adapters/stream-adapter';
|
|
20
25
|
export * from './src/types';
|
|
26
|
+
export type { AdapterConfig, Config } from './src/types/app-config-types';
|
|
21
27
|
export * from './src/types/schema.types';
|
|
22
|
-
export { MotiaStream, StreamConfig } from './src/types-stream';
|
|
28
|
+
export { type BaseStreamItem, MotiaStream, type StateStreamEvent, type StateStreamEventChannel, StreamConfig, } from './src/types-stream';
|
|
23
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACtH,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC/G,OAAO,EAAE,yBAAyB,IAAI,wBAAwB,EAAE,MAAM,6DAA6D,CAAA;AACnI,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,YAAY,GACb,MAAM,kDAAkD,CAAA;AACzD,YAAY,EACV,YAAY,EACZ,kBAAkB,GACnB,MAAM,mDAAmD,CAAA;AAC1D,YAAY,EACV,MAAM,EACN,oBAAoB,EACpB,MAAM,GACP,MAAM,2DAA2D,CAAA;AAClE,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,GACvB,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC/G,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,4BAA4B,GAC7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAClH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACzE,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,YAAY,GACb,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.createStepHandlers = exports.createStateAdapter = exports.createServer = exports.QueueManager = exports.Printer = exports.NoPrinter = exports.NoTracer = exports.PLUGIN_FLOW_ID = exports.createMermaidGenerator = exports.Logger = exports.LockedData = exports.validateInfrastructureConfig = exports.isNoopStep = exports.isEventStep = exports.isCronStep = exports.isApiStep = exports.getStreamConfig = exports.getStepConfig = exports.setupCronHandlers = exports.config = exports.trackEvent = exports.isAnalyticsEnabled = exports.getUserIdentifier = exports.getProjectIdentifier = exports.StreamAdapter = exports.DefaultQueueEventAdapter = exports.DefaultCronAdapter = exports.MemoryStreamAdapter = exports.MemoryStateAdapter = exports.FileStreamAdapter = exports.FileStateAdapter = void 0;
|
|
18
|
+
var defaults_1 = require("./src/adapters/defaults");
|
|
19
|
+
Object.defineProperty(exports, "FileStateAdapter", { enumerable: true, get: function () { return defaults_1.FileStateAdapter; } });
|
|
20
|
+
Object.defineProperty(exports, "FileStreamAdapter", { enumerable: true, get: function () { return defaults_1.FileStreamAdapter; } });
|
|
21
|
+
Object.defineProperty(exports, "MemoryStateAdapter", { enumerable: true, get: function () { return defaults_1.MemoryStateAdapter; } });
|
|
22
|
+
Object.defineProperty(exports, "MemoryStreamAdapter", { enumerable: true, get: function () { return defaults_1.MemoryStreamAdapter; } });
|
|
23
|
+
var in_memory_cron_adapter_1 = require("./src/adapters/defaults/cron/in-memory-cron-adapter");
|
|
24
|
+
Object.defineProperty(exports, "DefaultCronAdapter", { enumerable: true, get: function () { return in_memory_cron_adapter_1.InMemoryCronAdapter; } });
|
|
25
|
+
var in_memory_queue_event_adapter_1 = require("./src/adapters/defaults/event/in-memory-queue-event-adapter");
|
|
26
|
+
Object.defineProperty(exports, "DefaultQueueEventAdapter", { enumerable: true, get: function () { return in_memory_queue_event_adapter_1.InMemoryQueueEventAdapter; } });
|
|
27
|
+
var stream_adapter_interface_1 = require("./src/adapters/interfaces/stream-adapter.interface");
|
|
28
|
+
Object.defineProperty(exports, "StreamAdapter", { enumerable: true, get: function () { return stream_adapter_interface_1.StreamAdapter; } });
|
|
18
29
|
var utils_1 = require("./src/analytics/utils");
|
|
19
30
|
Object.defineProperty(exports, "getProjectIdentifier", { enumerable: true, get: function () { return utils_1.getProjectIdentifier; } });
|
|
20
31
|
Object.defineProperty(exports, "getUserIdentifier", { enumerable: true, get: function () { return utils_1.getUserIdentifier; } });
|
|
@@ -24,8 +35,6 @@ var config_1 = require("./src/config");
|
|
|
24
35
|
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_1.config; } });
|
|
25
36
|
var cron_handler_1 = require("./src/cron-handler");
|
|
26
37
|
Object.defineProperty(exports, "setupCronHandlers", { enumerable: true, get: function () { return cron_handler_1.setupCronHandlers; } });
|
|
27
|
-
var event_manager_1 = require("./src/event-manager");
|
|
28
|
-
Object.defineProperty(exports, "createEventManager", { enumerable: true, get: function () { return event_manager_1.createEventManager; } });
|
|
29
38
|
var get_step_config_1 = require("./src/get-step-config");
|
|
30
39
|
Object.defineProperty(exports, "getStepConfig", { enumerable: true, get: function () { return get_step_config_1.getStepConfig; } });
|
|
31
40
|
Object.defineProperty(exports, "getStreamConfig", { enumerable: true, get: function () { return get_step_config_1.getStreamConfig; } });
|
|
@@ -57,7 +66,5 @@ var create_state_adapter_1 = require("./src/state/create-state-adapter");
|
|
|
57
66
|
Object.defineProperty(exports, "createStateAdapter", { enumerable: true, get: function () { return create_state_adapter_1.createStateAdapter; } });
|
|
58
67
|
var step_handlers_1 = require("./src/step-handlers");
|
|
59
68
|
Object.defineProperty(exports, "createStepHandlers", { enumerable: true, get: function () { return step_handlers_1.createStepHandlers; } });
|
|
60
|
-
var stream_adapter_1 = require("./src/streams/adapters/stream-adapter");
|
|
61
|
-
Object.defineProperty(exports, "StreamAdapter", { enumerable: true, get: function () { return stream_adapter_1.StreamAdapter; } });
|
|
62
69
|
__exportStar(require("./src/types"), exports);
|
|
63
70
|
__exportStar(require("./src/types/schema.types"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CronAdapter, CronLock, CronLockInfo } from '../../interfaces/cron-adapter.interface';
|
|
2
|
+
export declare class InMemoryCronAdapter implements CronAdapter {
|
|
3
|
+
private locks;
|
|
4
|
+
private instanceId;
|
|
5
|
+
constructor();
|
|
6
|
+
acquireLock(jobName: string, ttl: number): Promise<CronLock | null>;
|
|
7
|
+
releaseLock(lock: CronLock): Promise<void>;
|
|
8
|
+
renewLock(lock: CronLock, ttl: number): Promise<boolean>;
|
|
9
|
+
isHealthy(): Promise<boolean>;
|
|
10
|
+
shutdown(): Promise<void>;
|
|
11
|
+
getActiveLocks(): Promise<CronLockInfo[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=in-memory-cron-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-cron-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/cron/in-memory-cron-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AAElG,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,UAAU,CAAQ;;IAMpB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAcnE,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAQhD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InMemoryCronAdapter = void 0;
|
|
7
|
+
const os_1 = __importDefault(require("os"));
|
|
8
|
+
const uuid_1 = require("uuid");
|
|
9
|
+
class InMemoryCronAdapter {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.locks = new Map();
|
|
12
|
+
this.instanceId = `${os_1.default.hostname()}-${(0, uuid_1.v4)()}`;
|
|
13
|
+
}
|
|
14
|
+
async acquireLock(jobName, ttl) {
|
|
15
|
+
const now = Date.now();
|
|
16
|
+
const lock = {
|
|
17
|
+
jobName,
|
|
18
|
+
lockId: (0, uuid_1.v4)(),
|
|
19
|
+
acquiredAt: now,
|
|
20
|
+
expiresAt: now + ttl,
|
|
21
|
+
instanceId: this.instanceId,
|
|
22
|
+
};
|
|
23
|
+
this.locks.set(jobName, lock);
|
|
24
|
+
return lock;
|
|
25
|
+
}
|
|
26
|
+
async releaseLock(lock) {
|
|
27
|
+
this.locks.delete(lock.jobName);
|
|
28
|
+
}
|
|
29
|
+
async renewLock(lock, ttl) {
|
|
30
|
+
const existingLock = this.locks.get(lock.jobName);
|
|
31
|
+
if (existingLock && existingLock.lockId === lock.lockId) {
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
existingLock.expiresAt = now + ttl;
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
async isHealthy() {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
async shutdown() {
|
|
42
|
+
this.locks.clear();
|
|
43
|
+
}
|
|
44
|
+
async getActiveLocks() {
|
|
45
|
+
return Array.from(this.locks.values()).map((lock) => ({
|
|
46
|
+
jobName: lock.jobName,
|
|
47
|
+
instanceId: lock.instanceId,
|
|
48
|
+
acquiredAt: lock.acquiredAt,
|
|
49
|
+
expiresAt: lock.expiresAt,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.InMemoryCronAdapter = InMemoryCronAdapter;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type QueueMetrics } from '../../../queue-manager';
|
|
2
|
+
import type { Event, QueueConfig } from '../../../types';
|
|
3
|
+
import type { EventAdapter, SubscriptionHandle } from '../../interfaces/event-adapter.interface';
|
|
4
|
+
export declare class InMemoryQueueEventAdapter implements EventAdapter {
|
|
5
|
+
private queueManager;
|
|
6
|
+
private subscriptions;
|
|
7
|
+
emit<TData>(event: Event<TData>): Promise<void>;
|
|
8
|
+
subscribe<TData>(topic: string, stepName: string, handler: (event: Event<TData>) => void | Promise<void>, queueConfig?: QueueConfig): Promise<SubscriptionHandle>;
|
|
9
|
+
unsubscribe(handle: SubscriptionHandle): Promise<void>;
|
|
10
|
+
shutdown(): Promise<void>;
|
|
11
|
+
getSubscriptionCount(topic: string): Promise<number>;
|
|
12
|
+
listTopics(): Promise<string[]>;
|
|
13
|
+
getAllMetrics(): Record<string, QueueMetrics>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=in-memory-queue-event-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-queue-event-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/event/in-memory-queue-event-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAEhG,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,aAAa,CACV;IAEL,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,SAAS,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACtD,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,kBAAkB,CAAC;IAmBxB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;CAG9C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryQueueEventAdapter = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const defaults_1 = require("../../../infrastructure-validator/defaults");
|
|
6
|
+
const queue_manager_1 = require("../../../queue-manager");
|
|
7
|
+
class InMemoryQueueEventAdapter {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.queueManager = new queue_manager_1.QueueManager();
|
|
10
|
+
this.subscriptions = new Map();
|
|
11
|
+
}
|
|
12
|
+
async emit(event) {
|
|
13
|
+
await this.queueManager.enqueue(event.topic, event, event.messageGroupId);
|
|
14
|
+
}
|
|
15
|
+
async subscribe(topic, stepName, handler, queueConfig) {
|
|
16
|
+
const id = (0, uuid_1.v4)();
|
|
17
|
+
this.subscriptions.set(id, { topic, handler: handler });
|
|
18
|
+
const config = queueConfig || defaults_1.DEFAULT_QUEUE_CONFIG;
|
|
19
|
+
this.queueManager.subscribe(topic, handler, config, id);
|
|
20
|
+
const handle = {
|
|
21
|
+
topic,
|
|
22
|
+
id,
|
|
23
|
+
unsubscribe: async () => {
|
|
24
|
+
await this.unsubscribe(handle);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
return handle;
|
|
28
|
+
}
|
|
29
|
+
async unsubscribe(handle) {
|
|
30
|
+
const subscription = this.subscriptions.get(handle.id);
|
|
31
|
+
if (subscription) {
|
|
32
|
+
this.queueManager.unsubscribe(handle.topic, subscription.handler);
|
|
33
|
+
this.subscriptions.delete(handle.id);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async shutdown() {
|
|
37
|
+
this.subscriptions.clear();
|
|
38
|
+
}
|
|
39
|
+
async getSubscriptionCount(topic) {
|
|
40
|
+
return Array.from(this.subscriptions.values()).filter((sub) => sub.topic === topic).length;
|
|
41
|
+
}
|
|
42
|
+
async listTopics() {
|
|
43
|
+
return Array.from(new Set(Array.from(this.subscriptions.values()).map((sub) => sub.topic)));
|
|
44
|
+
}
|
|
45
|
+
getAllMetrics() {
|
|
46
|
+
return this.queueManager.getAllMetrics();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.InMemoryQueueEventAdapter = InMemoryQueueEventAdapter;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { InMemoryCronAdapter } from './cron/in-memory-cron-adapter';
|
|
2
|
+
export { InMemoryQueueEventAdapter } from './event/in-memory-queue-event-adapter';
|
|
3
|
+
export { type FileAdapterConfig as FileStateAdapterConfig, FileStateAdapter } from './state/file-state-adapter';
|
|
4
|
+
export { MemoryStateAdapter } from './state/memory-state-adapter';
|
|
5
|
+
export { type FileAdapterConfig as FileStreamAdapterConfig, FileStreamAdapter } from './stream/file-stream-adapter';
|
|
6
|
+
export { MemoryStreamAdapter } from './stream/memory-stream-adapter';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAEjF,OAAO,EAAE,KAAK,iBAAiB,IAAI,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,KAAK,iBAAiB,IAAI,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryStreamAdapter = exports.FileStreamAdapter = exports.MemoryStateAdapter = exports.FileStateAdapter = exports.InMemoryQueueEventAdapter = exports.InMemoryCronAdapter = void 0;
|
|
4
|
+
var in_memory_cron_adapter_1 = require("./cron/in-memory-cron-adapter");
|
|
5
|
+
Object.defineProperty(exports, "InMemoryCronAdapter", { enumerable: true, get: function () { return in_memory_cron_adapter_1.InMemoryCronAdapter; } });
|
|
6
|
+
var in_memory_queue_event_adapter_1 = require("./event/in-memory-queue-event-adapter");
|
|
7
|
+
Object.defineProperty(exports, "InMemoryQueueEventAdapter", { enumerable: true, get: function () { return in_memory_queue_event_adapter_1.InMemoryQueueEventAdapter; } });
|
|
8
|
+
var file_state_adapter_1 = require("./state/file-state-adapter");
|
|
9
|
+
Object.defineProperty(exports, "FileStateAdapter", { enumerable: true, get: function () { return file_state_adapter_1.FileStateAdapter; } });
|
|
10
|
+
var memory_state_adapter_1 = require("./state/memory-state-adapter");
|
|
11
|
+
Object.defineProperty(exports, "MemoryStateAdapter", { enumerable: true, get: function () { return memory_state_adapter_1.MemoryStateAdapter; } });
|
|
12
|
+
var file_stream_adapter_1 = require("./stream/file-stream-adapter");
|
|
13
|
+
Object.defineProperty(exports, "FileStreamAdapter", { enumerable: true, get: function () { return file_stream_adapter_1.FileStreamAdapter; } });
|
|
14
|
+
var memory_stream_adapter_1 = require("./stream/memory-stream-adapter");
|
|
15
|
+
Object.defineProperty(exports, "MemoryStreamAdapter", { enumerable: true, get: function () { return memory_stream_adapter_1.MemoryStreamAdapter; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StateAdapter, StateItem, StateItemsInput } from '
|
|
1
|
+
import type { StateAdapter, StateItem, StateItemsInput } from '../../interfaces/state-adapter.interface';
|
|
2
2
|
export type FileAdapterConfig = {
|
|
3
3
|
adapter: 'default';
|
|
4
4
|
filePath: string;
|
|
@@ -20,4 +20,4 @@ export declare class FileStateAdapter implements StateAdapter {
|
|
|
20
20
|
private _readFile;
|
|
21
21
|
private _writeFile;
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=file-state-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-state-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/state/file-state-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAGxG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,EAAE,iBAAiB;IAKrC,IAAI;IAeE,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAQ1C,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOvD,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAW7C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAa1D,KAAK,CAAC,OAAO,EAAE,MAAM;IAarB,IAAI,CAAC,OAAO,EAAE,MAAM;IAOpB,QAAQ;IASR,OAAO;IAEP,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAazD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;CAQnB"}
|
|
@@ -110,9 +110,7 @@ class FileStateAdapter {
|
|
|
110
110
|
Object.keys(data).forEach((key) => traceIds.add(key.split(':')[0]));
|
|
111
111
|
return Array.from(traceIds);
|
|
112
112
|
}
|
|
113
|
-
async cleanup() {
|
|
114
|
-
// No cleanup needed for file system
|
|
115
|
-
}
|
|
113
|
+
async cleanup() { }
|
|
116
114
|
async items(input) {
|
|
117
115
|
const data = this._readFile();
|
|
118
116
|
return Object.entries(data)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StateAdapter, StateItem, StateItemsInput } from '
|
|
1
|
+
import type { StateAdapter, StateItem, StateItemsInput } from '../../interfaces/state-adapter.interface';
|
|
2
2
|
export declare class MemoryStateAdapter implements StateAdapter {
|
|
3
3
|
private state;
|
|
4
4
|
constructor();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-state-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/state/memory-state-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAGxG,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAA8B;;IAMrC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAM1C,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAMvD,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAQ7C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAW1D,KAAK,CAAC,OAAO,EAAE,MAAM;IAUrB,IAAI,CAAC,OAAO,EAAE,MAAM;IAMpB,QAAQ;IAQR,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYnD,OAAO;IAEb,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -58,9 +58,7 @@ class MemoryStateAdapter {
|
|
|
58
58
|
.filter((item) => (input.groupId ? item.groupId === input.groupId : true))
|
|
59
59
|
.filter((item) => (input.filter ? (0, utils_1.filterItem)(item, input.filter) : true));
|
|
60
60
|
}
|
|
61
|
-
async cleanup() {
|
|
62
|
-
// No cleanup needed for memory
|
|
63
|
-
}
|
|
61
|
+
async cleanup() { }
|
|
64
62
|
_makeKey(traceId, key) {
|
|
65
63
|
return `${traceId}:${key}`;
|
|
66
64
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StateFilter, StateItem } from '
|
|
1
|
+
import type { StateFilter, StateItem } from '../../interfaces/state-adapter.interface';
|
|
2
2
|
export declare const inferType: (value: unknown) => StateItem["type"];
|
|
3
3
|
export declare const filterItem: (item: StateItem, filters: StateFilter[]) => boolean;
|
|
4
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AAUtF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,SAAS,CAAC,MAAM,CAa1D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,EAAE,SAAS,WAAW,EAAE,KAAG,OAuCpE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BaseStreamItem } from '
|
|
2
|
-
import { StreamAdapter } from '
|
|
1
|
+
import type { BaseStreamItem } from '../../../types-stream';
|
|
2
|
+
import { StreamAdapter } from '../../interfaces/stream-adapter.interface';
|
|
3
3
|
export type FileAdapterConfig = {
|
|
4
4
|
filePath: string;
|
|
5
5
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-stream-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/stream/file-stream-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,iBAAiB,CAAC,KAAK,CAAE,SAAQ,aAAa,CAAC,KAAK,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEvB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,GAAE,MAAiB;IAMzF,IAAI;IAcE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAQ3D,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAOxE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;;;IAW7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAa1E,KAAK,CAAC,OAAO,EAAE,MAAM;IAa3B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAI9C,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAU7C,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;CAQnC"}
|
|
@@ -39,10 +39,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.FileStreamAdapter = void 0;
|
|
40
40
|
const fs_1 = __importDefault(require("fs"));
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
|
-
const
|
|
43
|
-
class FileStreamAdapter extends
|
|
42
|
+
const stream_adapter_interface_1 = require("../../interfaces/stream-adapter.interface");
|
|
43
|
+
class FileStreamAdapter extends stream_adapter_interface_1.StreamAdapter {
|
|
44
44
|
constructor(filePath, streamName, motiaFileStoragePath = '.motia') {
|
|
45
|
-
super();
|
|
45
|
+
super(streamName);
|
|
46
46
|
this.streamsDir = path.join(filePath, motiaFileStoragePath, 'streams');
|
|
47
47
|
this.filePath = path.join(this.streamsDir, `${streamName}.stream.json`);
|
|
48
48
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { StreamAdapter } from '
|
|
1
|
+
import { StreamAdapter } from '../../interfaces/stream-adapter.interface';
|
|
2
2
|
export declare class MemoryStreamAdapter<TData> extends StreamAdapter<TData> {
|
|
3
3
|
private state;
|
|
4
|
+
constructor(streamName: string);
|
|
4
5
|
init(): Promise<void>;
|
|
5
6
|
getGroup<T>(groupId: string): Promise<T[]>;
|
|
6
7
|
get<T>(groupId: string, id: string): Promise<T | null>;
|
|
@@ -8,6 +9,8 @@ export declare class MemoryStreamAdapter<TData> extends StreamAdapter<TData> {
|
|
|
8
9
|
id: string;
|
|
9
10
|
}>;
|
|
10
11
|
delete<T>(groupId: string, id: string): Promise<T | null>;
|
|
12
|
+
clear(groupId: string): Promise<void>;
|
|
13
|
+
private _makeKeyPrefix;
|
|
11
14
|
private _makeKey;
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=memory-stream-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stream-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/defaults/stream/memory-stream-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAEzE,qBAAa,mBAAmB,CAAC,KAAK,CAAE,SAAQ,aAAa,CAAC,KAAK,CAAC;IAClE,OAAO,CAAC,KAAK,CAA8B;gBAE/B,UAAU,EAAE,MAAM;IAIxB,IAAI;IAIJ,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAU1C,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOtD,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;;IAQ5C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWzD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryStreamAdapter = void 0;
|
|
4
|
+
const stream_adapter_interface_1 = require("../../interfaces/stream-adapter.interface");
|
|
5
|
+
class MemoryStreamAdapter extends stream_adapter_interface_1.StreamAdapter {
|
|
6
|
+
constructor(streamName) {
|
|
7
|
+
super(streamName);
|
|
8
|
+
this.state = {};
|
|
9
|
+
}
|
|
10
|
+
async init() {
|
|
11
|
+
this.state = {};
|
|
12
|
+
}
|
|
13
|
+
async getGroup(groupId) {
|
|
14
|
+
const prefix = this._makeKeyPrefix(groupId);
|
|
15
|
+
return Object.entries(this.state)
|
|
16
|
+
.filter(([key]) => key.startsWith(prefix))
|
|
17
|
+
.map(([key, value]) => {
|
|
18
|
+
const id = key.split(':').pop();
|
|
19
|
+
return { ...value, id };
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async get(groupId, id) {
|
|
23
|
+
const key = this._makeKey(groupId, id);
|
|
24
|
+
const value = this.state[key];
|
|
25
|
+
return value ? { ...value, id } : null;
|
|
26
|
+
}
|
|
27
|
+
async set(groupId, id, value) {
|
|
28
|
+
const key = this._makeKey(groupId, id);
|
|
29
|
+
this.state[key] = value;
|
|
30
|
+
return { ...value, id };
|
|
31
|
+
}
|
|
32
|
+
async delete(groupId, id) {
|
|
33
|
+
const key = this._makeKey(groupId, id);
|
|
34
|
+
const value = await this.get(groupId, id);
|
|
35
|
+
if (value) {
|
|
36
|
+
delete this.state[key];
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
async clear(groupId) {
|
|
41
|
+
const prefix = this._makeKeyPrefix(groupId);
|
|
42
|
+
for (const key in this.state) {
|
|
43
|
+
if (key.startsWith(prefix)) {
|
|
44
|
+
delete this.state[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
_makeKeyPrefix(groupId) {
|
|
49
|
+
return `${this.streamName}:${groupId}`;
|
|
50
|
+
}
|
|
51
|
+
_makeKey(groupId, id) {
|
|
52
|
+
return `${this.streamName}:${groupId}:${id}`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.MemoryStreamAdapter = MemoryStreamAdapter;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface CronLock {
|
|
2
|
+
jobName: string;
|
|
3
|
+
lockId: string;
|
|
4
|
+
acquiredAt: number;
|
|
5
|
+
expiresAt: number;
|
|
6
|
+
instanceId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CronLockInfo {
|
|
9
|
+
jobName: string;
|
|
10
|
+
instanceId: string;
|
|
11
|
+
acquiredAt: number;
|
|
12
|
+
expiresAt: number;
|
|
13
|
+
}
|
|
14
|
+
export interface CronAdapterConfig {
|
|
15
|
+
lockTTL?: number;
|
|
16
|
+
lockRetryDelay?: number;
|
|
17
|
+
lockRetryAttempts?: number;
|
|
18
|
+
instanceId?: string;
|
|
19
|
+
enableHealthCheck?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface CronAdapter {
|
|
22
|
+
acquireLock(jobName: string, ttl: number): Promise<CronLock | null>;
|
|
23
|
+
releaseLock(lock: CronLock): Promise<void>;
|
|
24
|
+
renewLock(lock: CronLock, ttl: number): Promise<boolean>;
|
|
25
|
+
isHealthy(): Promise<boolean>;
|
|
26
|
+
shutdown(): Promise<void>;
|
|
27
|
+
getActiveLocks(): Promise<CronLockInfo[]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cron-adapter.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/cron-adapter.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAEnE,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1C,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAExD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;CAC1C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Event, QueueConfig } from '../../types';
|
|
2
|
+
export interface SubscriptionHandle {
|
|
3
|
+
topic: string;
|
|
4
|
+
id: string;
|
|
5
|
+
unsubscribe: () => Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export interface EventAdapter {
|
|
8
|
+
emit<TData>(event: Event<TData>): Promise<void>;
|
|
9
|
+
subscribe<TData>(topic: string, stepName: string, handler: (event: Event<TData>) => void | Promise<void>, options?: QueueConfig): Promise<SubscriptionHandle>;
|
|
10
|
+
unsubscribe(handle: SubscriptionHandle): Promise<void>;
|
|
11
|
+
shutdown(): Promise<void>;
|
|
12
|
+
getSubscriptionCount(topic: string): Promise<number>;
|
|
13
|
+
listTopics(): Promise<string[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=event-adapter.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/event-adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/C,SAAS,CAAC,KAAK,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACtD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAE9B,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CAChC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { CronAdapter, CronAdapterConfig, CronLock, CronLockInfo } from './cron-adapter.interface';
|
|
2
|
+
export type { EventAdapter, SubscriptionHandle } from './event-adapter.interface';
|
|
3
|
+
export type { Metric, ObservabilityAdapter, Tracer } from './observability-adapter.interface';
|
|
4
|
+
export type { StateAdapter, StateFilter, StateItem, StateItemsInput } from './state-adapter.interface';
|
|
5
|
+
export { StreamAdapter, type StreamQueryFilter } from './stream-adapter.interface';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACtG,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACjF,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC7F,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamAdapter = void 0;
|
|
4
|
+
var stream_adapter_interface_1 = require("./stream-adapter.interface");
|
|
5
|
+
Object.defineProperty(exports, "StreamAdapter", { enumerable: true, get: function () { return stream_adapter_interface_1.StreamAdapter; } });
|
|
@@ -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,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"}
|