@mastra/mssql 1.0.0-beta.1 → 1.0.0-beta.10

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.
@@ -1,16 +1,80 @@
1
- import { StoreOperations } from '@mastra/core/storage';
1
+ import { MastraBase } from '@mastra/core/base';
2
2
  import type { StorageColumn, TABLE_NAMES, CreateIndexOptions, IndexInfo, StorageIndexStats } from '@mastra/core/storage';
3
3
  import sql from 'mssql';
4
4
  export type { CreateIndexOptions, IndexInfo, StorageIndexStats };
5
- export declare class StoreOperationsMSSQL extends StoreOperations {
5
+ /**
6
+ * Configuration for standalone domain usage.
7
+ * Accepts either:
8
+ * 1. A pre-configured pool (domain creates its own MssqlDB)
9
+ * 2. Config to create a new pool internally
10
+ */
11
+ export type MssqlDomainConfig = MssqlDomainPoolConfig | MssqlDomainRestConfig;
12
+ /**
13
+ * Pass an existing pool - domain will create its own MssqlDB
14
+ */
15
+ export interface MssqlDomainPoolConfig {
6
16
  pool: sql.ConnectionPool;
7
17
  schemaName?: string;
18
+ skipDefaultIndexes?: boolean;
19
+ /** Custom indexes to create for this domain's tables */
20
+ indexes?: CreateIndexOptions[];
21
+ }
22
+ /**
23
+ * Pass config to create a new pool internally
24
+ */
25
+ export interface MssqlDomainRestConfig {
26
+ server: string;
27
+ port: number;
28
+ database: string;
29
+ user: string;
30
+ password: string;
31
+ schemaName?: string;
32
+ options?: sql.IOptions;
33
+ skipDefaultIndexes?: boolean;
34
+ /** Custom indexes to create for this domain's tables */
35
+ indexes?: CreateIndexOptions[];
36
+ }
37
+ /**
38
+ * Resolves MssqlDomainConfig to pool and schema.
39
+ * Domain classes create their own MssqlDB instance from the returned pool.
40
+ *
41
+ * @param config - Either an existing connected pool, or connection details to create a new pool
42
+ * @returns Object containing pool, schemaName, skipDefaultIndexes, and whether the pool needs connection
43
+ *
44
+ * @remarks
45
+ * When using connection details (not an existing pool), the returned pool is NOT connected.
46
+ * The caller must call `pool.connect()` before use, typically in an `init()` method.
47
+ * The `needsConnect` flag indicates whether the pool was newly created and needs connecting.
48
+ */
49
+ export declare function resolveMssqlConfig(config: MssqlDomainConfig): {
50
+ pool: sql.ConnectionPool;
51
+ schemaName?: string;
52
+ skipDefaultIndexes?: boolean;
53
+ indexes?: CreateIndexOptions[];
54
+ needsConnect: boolean;
55
+ };
56
+ export declare class MssqlDB extends MastraBase {
57
+ pool: sql.ConnectionPool;
58
+ schemaName?: string;
59
+ skipDefaultIndexes?: boolean;
8
60
  private setupSchemaPromise;
9
61
  private schemaSetupComplete;
10
- protected getSqlType(type: StorageColumn['type'], isPrimaryKey?: boolean, useLargeStorage?: boolean): string;
11
- constructor({ pool, schemaName }: {
62
+ /**
63
+ * Columns that participate in composite indexes need smaller sizes (NVARCHAR(100)).
64
+ * MSSQL has a 900-byte index key limit, so composite indexes with NVARCHAR(400) columns fail.
65
+ * These are typically ID/type fields that don't need 400 chars.
66
+ */
67
+ private readonly COMPOSITE_INDEX_COLUMNS;
68
+ /**
69
+ * Columns that store large amounts of data and should use NVARCHAR(MAX).
70
+ * Avoid listing columns that participate in indexes (resourceId, thread_id, agent_name, name, etc.)
71
+ */
72
+ private readonly LARGE_DATA_COLUMNS;
73
+ protected getSqlType(type: StorageColumn['type'], isPrimaryKey?: boolean, useLargeStorage?: boolean, useSmallStorage?: boolean): string;
74
+ constructor({ pool, schemaName, skipDefaultIndexes, }: {
12
75
  pool: sql.ConnectionPool;
13
76
  schemaName?: string;
77
+ skipDefaultIndexes?: boolean;
14
78
  });
15
79
  hasColumn(table: string, column: string): Promise<boolean>;
16
80
  private setupSchema;
@@ -27,6 +91,11 @@ export declare class StoreOperationsMSSQL extends StoreOperations {
27
91
  tableName: TABLE_NAMES;
28
92
  schema: Record<string, StorageColumn>;
29
93
  }): Promise<void>;
94
+ /**
95
+ * Migrates the spans table schema from OLD_SPAN_SCHEMA to current SPAN_SCHEMA.
96
+ * This adds new columns that don't exist in old schema.
97
+ */
98
+ private migrateSpansTable;
30
99
  /**
31
100
  * Alters table schema to add columns if they don't exist
32
101
  * @param tableName Name of the table
@@ -99,16 +168,5 @@ export declare class StoreOperationsMSSQL extends StoreOperations {
99
168
  * Get detailed statistics for a specific index
100
169
  */
101
170
  describeIndex(indexName: string): Promise<StorageIndexStats>;
102
- /**
103
- * Returns definitions for automatic performance indexes
104
- * IMPORTANT: Uses seq_id DESC instead of createdAt DESC for MSSQL due to millisecond accuracy limitations
105
- * NOTE: Using NVARCHAR(400) for text columns (800 bytes) leaves room for composite indexes
106
- */
107
- protected getAutomaticIndexDefinitions(): CreateIndexOptions[];
108
- /**
109
- * Creates automatic indexes for optimal query performance
110
- * Uses getAutomaticIndexDefinitions() to determine which indexes to create
111
- */
112
- createAutomaticIndexes(): Promise<void>;
113
171
  }
114
172
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/db/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { StorageColumn, TABLE_NAMES } from '@mastra/core/storage';
2
+ export declare function getSchemaName(schema?: string): string | undefined;
3
+ export declare function getTableName({ indexName, schemaName }: {
4
+ indexName: string;
5
+ schemaName?: string;
6
+ }): string;
7
+ /**
8
+ * Prepare WHERE clause for MSSQL queries with @param substitution
9
+ */
10
+ export declare function prepareWhereClause(filters: Record<string, any>, _schema?: Record<string, StorageColumn>): {
11
+ sql: string;
12
+ params: Record<string, any>;
13
+ };
14
+ /**
15
+ * Transform SQL row to record format, handling JSON columns
16
+ */
17
+ export declare function transformFromSqlRow<T>({ tableName, sqlRow, }: {
18
+ tableName: TABLE_NAMES;
19
+ sqlRow: Record<string, any>;
20
+ }): T;
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/db/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvE,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,sBAE5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,UAKjG;AAWD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAsE9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,CAAC,CA8BJ"}
@@ -1,19 +1,34 @@
1
1
  import type { MastraMessageContentV2 } from '@mastra/core/agent';
2
2
  import type { MastraDBMessage, StorageThreadType } from '@mastra/core/memory';
3
3
  import { MemoryStorage } from '@mastra/core/storage';
4
- import type { StorageResourceType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsByResourceIdInput, StorageListThreadsByResourceIdOutput } from '@mastra/core/storage';
5
- import sql from 'mssql';
6
- import type { StoreOperationsMSSQL } from '../operations/index.js';
4
+ import type { StorageResourceType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsByResourceIdInput, StorageListThreadsByResourceIdOutput, CreateIndexOptions } from '@mastra/core/storage';
5
+ import type { MssqlDomainConfig } from '../../db/index.js';
7
6
  export declare class MemoryMSSQL extends MemoryStorage {
8
7
  private pool;
9
- private schema;
10
- private operations;
8
+ private schema?;
9
+ private db;
10
+ private needsConnect;
11
+ private skipDefaultIndexes?;
12
+ private indexes?;
13
+ /** Tables managed by this domain */
14
+ static readonly MANAGED_TABLES: readonly ["mastra_threads", "mastra_messages", "mastra_resources"];
11
15
  private _parseAndFormatMessages;
12
- constructor({ pool, schema, operations, }: {
13
- pool: sql.ConnectionPool;
14
- schema: string;
15
- operations: StoreOperationsMSSQL;
16
- });
16
+ constructor(config: MssqlDomainConfig);
17
+ init(): Promise<void>;
18
+ /**
19
+ * Returns default index definitions for the memory domain tables.
20
+ * IMPORTANT: Uses seq_id DESC instead of createdAt DESC for MSSQL due to millisecond accuracy limitations
21
+ */
22
+ getDefaultIndexDefinitions(): CreateIndexOptions[];
23
+ /**
24
+ * Creates default indexes for optimal query performance.
25
+ */
26
+ createDefaultIndexes(): Promise<void>;
27
+ /**
28
+ * Creates custom user-defined indexes for this domain's tables.
29
+ */
30
+ createCustomIndexes(): Promise<void>;
31
+ dangerouslyClearAll(): Promise<void>;
17
32
  getThreadById({ threadId }: {
18
33
  threadId: string;
19
34
  }): Promise<StorageThreadType | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,46 @@
1
- import type { TracingStorageStrategy } from '@mastra/core/observability';
2
1
  import { ObservabilityStorage } from '@mastra/core/storage';
3
- import type { SpanRecord, TraceRecord, TracesPaginatedArg, CreateSpanRecord, PaginationInfo, UpdateSpanRecord } from '@mastra/core/storage';
2
+ import type { SpanRecord, PaginationInfo, ListTracesArgs, TracingStorageStrategy, BatchUpdateSpansArgs, BatchDeleteTracesArgs, BatchCreateSpansArgs, UpdateSpanArgs, GetTraceArgs, GetTraceResponse, GetSpanArgs, GetSpanResponse, GetRootSpanArgs, GetRootSpanResponse, CreateSpanArgs, CreateIndexOptions } from '@mastra/core/storage';
4
3
  import type { ConnectionPool } from 'mssql';
5
- import type { StoreOperationsMSSQL } from '../operations/index.js';
4
+ import type { MssqlDomainConfig } from '../../db/index.js';
6
5
  export declare class ObservabilityMSSQL extends ObservabilityStorage {
7
6
  pool: ConnectionPool;
8
- private operations;
7
+ private db;
9
8
  private schema?;
10
- constructor({ pool, operations, schema, }: {
11
- pool: ConnectionPool;
12
- operations: StoreOperationsMSSQL;
13
- schema?: string;
14
- });
9
+ private needsConnect;
10
+ private skipDefaultIndexes?;
11
+ private indexes?;
12
+ /** Tables managed by this domain */
13
+ static readonly MANAGED_TABLES: readonly ["mastra_ai_spans"];
14
+ constructor(config: MssqlDomainConfig);
15
+ init(): Promise<void>;
16
+ /**
17
+ * Returns default index definitions for the observability domain tables.
18
+ */
19
+ getDefaultIndexDefinitions(): CreateIndexOptions[];
20
+ /**
21
+ * Creates default indexes for optimal query performance.
22
+ */
23
+ createDefaultIndexes(): Promise<void>;
24
+ /**
25
+ * Creates custom user-defined indexes for this domain's tables.
26
+ */
27
+ createCustomIndexes(): Promise<void>;
28
+ dangerouslyClearAll(): Promise<void>;
15
29
  get tracingStrategy(): {
16
30
  preferred: TracingStorageStrategy;
17
31
  supported: TracingStorageStrategy[];
18
32
  };
19
- createSpan(span: CreateSpanRecord): Promise<void>;
20
- getTrace(traceId: string): Promise<TraceRecord | null>;
21
- updateSpan({ spanId, traceId, updates, }: {
22
- spanId: string;
23
- traceId: string;
24
- updates: Partial<UpdateSpanRecord>;
25
- }): Promise<void>;
26
- getTracesPaginated({ filters, pagination, }: TracesPaginatedArg): Promise<{
33
+ createSpan(args: CreateSpanArgs): Promise<void>;
34
+ getTrace(args: GetTraceArgs): Promise<GetTraceResponse | null>;
35
+ getSpan(args: GetSpanArgs): Promise<GetSpanResponse | null>;
36
+ getRootSpan(args: GetRootSpanArgs): Promise<GetRootSpanResponse | null>;
37
+ updateSpan(args: UpdateSpanArgs): Promise<void>;
38
+ listTraces(args: ListTracesArgs): Promise<{
27
39
  pagination: PaginationInfo;
28
40
  spans: SpanRecord[];
29
41
  }>;
30
- batchCreateSpans(args: {
31
- records: CreateSpanRecord[];
32
- }): Promise<void>;
33
- batchUpdateSpans(args: {
34
- records: {
35
- traceId: string;
36
- spanId: string;
37
- updates: Partial<UpdateSpanRecord>;
38
- }[];
39
- }): Promise<void>;
40
- batchDeleteTraces(args: {
41
- traceIds: string[];
42
- }): Promise<void>;
42
+ batchCreateSpans(args: BatchCreateSpansArgs): Promise<void>;
43
+ batchUpdateSpans(args: BatchUpdateSpansArgs): Promise<void>;
44
+ batchDeleteTraces(args: BatchDeleteTracesArgs): Promise<void>;
43
45
  }
44
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/observability/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAe,oBAAoB,EAAe,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,qBAAa,kBAAmB,SAAQ,oBAAoB;IACnD,IAAI,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,EACV,IAAI,EACJ,UAAU,EACV,MAAM,GACP,EAAE;QACD,IAAI,EAAE,cAAc,CAAC;QACrB,UAAU,EAAE,oBAAoB,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAOD,IAAW,eAAe,IAAI;QAC5B,SAAS,EAAE,sBAAsB,CAAC;QAClC,SAAS,EAAE,sBAAsB,EAAE,CAAC;KACrC,CAKA;IAEK,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgDtD,UAAU,CAAC,EACf,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCX,kBAAkB,CAAC,EACvB,OAAO,EACP,UAAU,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAoH9E,gBAAgB,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtE,gBAAgB,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACpC,EAAE,CAAC;KACL,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCX,iBAAiB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/observability/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,oBAAoB,EAIrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,qBAAa,kBAAmB,SAAQ,oBAAoB;IACnD,IAAI,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,OAAO,CAAC,CAAuB;IAEvC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,+BAA0B;gBAE5C,MAAM,EAAE,iBAAiB;IAY/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACH,0BAA0B,IAAI,kBAAkB,EAAE;IAoDlD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,IAAoB,eAAe,IAAI;QACrC,SAAS,EAAE,sBAAsB,CAAC;QAClC,SAAS,EAAE,sBAAsB,EAAE,CAAC;KACrC,CAKA;IAEK,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/C,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAsD9D,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiD3D,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgDvE,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAiR9F,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C3D,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BpE"}
@@ -1,21 +1,37 @@
1
- import type { ScoreRowData, ScoringSource } from '@mastra/core/evals';
2
- import type { PaginationInfo, StoragePagination } from '@mastra/core/storage';
1
+ import type { ListScoresResponse, SaveScorePayload, ScoreRowData, ScoringSource } from '@mastra/core/evals';
2
+ import type { StoragePagination, CreateIndexOptions } from '@mastra/core/storage';
3
3
  import { ScoresStorage } from '@mastra/core/storage';
4
4
  import type { ConnectionPool } from 'mssql';
5
- import type { StoreOperationsMSSQL } from '../operations/index.js';
5
+ import type { MssqlDomainConfig } from '../../db/index.js';
6
6
  export declare class ScoresMSSQL extends ScoresStorage {
7
7
  pool: ConnectionPool;
8
- private operations;
8
+ private db;
9
9
  private schema?;
10
- constructor({ pool, operations, schema, }: {
11
- pool: ConnectionPool;
12
- operations: StoreOperationsMSSQL;
13
- schema?: string;
14
- });
10
+ private needsConnect;
11
+ private skipDefaultIndexes?;
12
+ private indexes?;
13
+ /** Tables managed by this domain */
14
+ static readonly MANAGED_TABLES: readonly ["mastra_scorers"];
15
+ constructor(config: MssqlDomainConfig);
16
+ init(): Promise<void>;
17
+ /**
18
+ * Returns default index definitions for the scores domain tables.
19
+ * IMPORTANT: Uses seq_id DESC instead of createdAt DESC for MSSQL due to millisecond accuracy limitations
20
+ */
21
+ getDefaultIndexDefinitions(): CreateIndexOptions[];
22
+ /**
23
+ * Creates default indexes for optimal query performance.
24
+ */
25
+ createDefaultIndexes(): Promise<void>;
26
+ /**
27
+ * Creates custom user-defined indexes for this domain's tables.
28
+ */
29
+ createCustomIndexes(): Promise<void>;
30
+ dangerouslyClearAll(): Promise<void>;
15
31
  getScoreById({ id }: {
16
32
  id: string;
17
33
  }): Promise<ScoreRowData | null>;
18
- saveScore(score: Omit<ScoreRowData, 'id' | 'createdAt' | 'updatedAt'>): Promise<{
34
+ saveScore(score: SaveScorePayload): Promise<{
19
35
  score: ScoreRowData;
20
36
  }>;
21
37
  listScoresByScorerId({ scorerId, pagination, entityId, entityType, source, }: {
@@ -24,32 +40,20 @@ export declare class ScoresMSSQL extends ScoresStorage {
24
40
  entityId?: string;
25
41
  entityType?: string;
26
42
  source?: ScoringSource;
27
- }): Promise<{
28
- pagination: PaginationInfo;
29
- scores: ScoreRowData[];
30
- }>;
43
+ }): Promise<ListScoresResponse>;
31
44
  listScoresByRunId({ runId, pagination, }: {
32
45
  runId: string;
33
46
  pagination: StoragePagination;
34
- }): Promise<{
35
- pagination: PaginationInfo;
36
- scores: ScoreRowData[];
37
- }>;
47
+ }): Promise<ListScoresResponse>;
38
48
  listScoresByEntityId({ entityId, entityType, pagination, }: {
39
49
  pagination: StoragePagination;
40
50
  entityId: string;
41
51
  entityType: string;
42
- }): Promise<{
43
- pagination: PaginationInfo;
44
- scores: ScoreRowData[];
45
- }>;
52
+ }): Promise<ListScoresResponse>;
46
53
  listScoresBySpan({ traceId, spanId, pagination, }: {
47
54
  traceId: string;
48
55
  spanId: string;
49
56
  pagination: StoragePagination;
50
- }): Promise<{
51
- pagination: PaginationInfo;
52
- scores: ScoreRowData[];
53
- }>;
57
+ }): Promise<ListScoresResponse>;
54
58
  }
55
59
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/scores/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAEjG,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,aAAa,EAKd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAoB1D,qBAAa,WAAY,SAAQ,aAAa;IACrC,IAAI,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,EACV,IAAI,EACJ,UAAU,EACV,MAAM,GACP,EAAE;QACD,IAAI,EAAE,cAAc,CAAC;QACrB,UAAU,EAAE,oBAAoB,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAOK,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0BlE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAiExG,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAwF7D,iBAAiB,CAAC,EACtB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IA4D7D,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IA6D7D,gBAAgB,CAAC,EACrB,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CA6DpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/scores/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAEL,aAAa,EAMd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAalD,qBAAa,WAAY,SAAQ,aAAa;IACrC,IAAI,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,OAAO,CAAC,CAAuB;IAEvC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,8BAA4B;gBAE9C,MAAM,EAAE,iBAAiB;IAY/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;;OAGG;IACH,0BAA0B,IAAI,kBAAkB,EAAE;IAWlD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0BlE,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAwEpE,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwFzB,iBAAiB,CAAC,EACtB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4DzB,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6DzB,gBAAgB,CAAC,EACrB,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA6DhC"}
@@ -1,4 +1,4 @@
1
- import type { PaginationArgs, StorageColumn, TABLE_NAMES } from '@mastra/core/storage';
1
+ import type { StorageColumn, TABLE_NAMES, DateRange } from '@mastra/core/storage';
2
2
  export declare function getSchemaName(schema?: string): string | undefined;
3
3
  export declare function getTableName({ indexName, schemaName }: {
4
4
  indexName: string;
@@ -7,7 +7,7 @@ export declare function getTableName({ indexName, schemaName }: {
7
7
  /**
8
8
  * Build date range filter for queries
9
9
  */
10
- export declare function buildDateRangeFilter(dateRange: PaginationArgs['dateRange'], fieldName: string): Record<string, any>;
10
+ export declare function buildDateRangeFilter(dateRange: DateRange | undefined, fieldName: string): Record<string, any>;
11
11
  /**
12
12
  * Prepare WHERE clause for MSSQL queries with @param substitution
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/domains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvF,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,sBAE5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,UAKjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASnH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CA+B9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,CAAC,CA8BJ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/domains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIlF,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,sBAE5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,UAKjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAa7G;AAWD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAgF9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,CAAC,CA8BJ"}
@@ -1,17 +1,34 @@
1
1
  import { WorkflowsStorage } from '@mastra/core/storage';
2
- import type { StorageListWorkflowRunsInput, WorkflowRun, WorkflowRuns } from '@mastra/core/storage';
2
+ import type { StorageListWorkflowRunsInput, WorkflowRun, WorkflowRuns, UpdateWorkflowStateOptions, CreateIndexOptions } from '@mastra/core/storage';
3
3
  import type { StepResult, WorkflowRunState } from '@mastra/core/workflows';
4
4
  import sql from 'mssql';
5
- import type { StoreOperationsMSSQL } from '../operations/index.js';
5
+ import type { MssqlDomainConfig } from '../../db/index.js';
6
6
  export declare class WorkflowsMSSQL extends WorkflowsStorage {
7
7
  pool: sql.ConnectionPool;
8
- private operations;
9
- private schema;
10
- constructor({ pool, operations, schema, }: {
11
- pool: sql.ConnectionPool;
12
- operations: StoreOperationsMSSQL;
13
- schema: string;
14
- });
8
+ private db;
9
+ private schema?;
10
+ private needsConnect;
11
+ private skipDefaultIndexes?;
12
+ private indexes?;
13
+ /** Tables managed by this domain */
14
+ static readonly MANAGED_TABLES: readonly ["mastra_workflow_snapshot"];
15
+ constructor(config: MssqlDomainConfig);
16
+ /**
17
+ * Returns default index definitions for the workflows domain tables.
18
+ * Currently no default indexes are defined for workflows.
19
+ */
20
+ getDefaultIndexDefinitions(): CreateIndexOptions[];
21
+ /**
22
+ * Creates default indexes for optimal query performance.
23
+ * Currently no default indexes are defined for workflows.
24
+ */
25
+ createDefaultIndexes(): Promise<void>;
26
+ init(): Promise<void>;
27
+ /**
28
+ * Creates custom user-defined indexes for this domain's tables.
29
+ */
30
+ createCustomIndexes(): Promise<void>;
31
+ dangerouslyClearAll(): Promise<void>;
15
32
  private parseWorkflowRun;
16
33
  updateWorkflowResults({ workflowName, runId, stepId, result, requestContext, }: {
17
34
  workflowName: string;
@@ -23,13 +40,7 @@ export declare class WorkflowsMSSQL extends WorkflowsStorage {
23
40
  updateWorkflowState({ workflowName, runId, opts, }: {
24
41
  workflowName: string;
25
42
  runId: string;
26
- opts: {
27
- status: string;
28
- result?: StepResult<any, any, any, any>;
29
- error?: string;
30
- suspendedPaths?: Record<string, number[]>;
31
- waitingPaths?: Record<string, number[]>;
32
- };
43
+ opts: UpdateWorkflowStateOptions;
33
44
  }): Promise<WorkflowRunState | undefined>;
34
45
  persistWorkflowSnapshot({ workflowName, runId, resourceId, snapshot, }: {
35
46
  workflowName: string;
@@ -45,6 +56,10 @@ export declare class WorkflowsMSSQL extends WorkflowsStorage {
45
56
  runId: string;
46
57
  workflowName?: string;
47
58
  }): Promise<WorkflowRun | null>;
48
- listWorkflowRuns({ workflowName, fromDate, toDate, page, perPage, resourceId, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
59
+ deleteWorkflowRunById({ runId, workflowName }: {
60
+ runId: string;
61
+ workflowName: string;
62
+ }): Promise<void>;
63
+ listWorkflowRuns({ workflowName, fromDate, toDate, page, perPage, resourceId, status, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
49
64
  }
50
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/workflows/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA6C,MAAM,sBAAsB,CAAC;AACnG,OAAO,KAAK,EAAE,4BAA4B,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,qBAAa,cAAe,SAAQ,gBAAgB;IAC3C,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,IAAI,EACJ,UAAU,EACV,MAAM,GACP,EAAE;QACD,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;QACzB,UAAU,EAAE,oBAAoB,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB;IAOD,OAAO,CAAC,gBAAgB;IAmBlB,qBAAqB,CAAC,EAC1B,YAAY,EACZ,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,GACf,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAmFrD,mBAAmB,CAAC,EACxB,YAAY,EACZ,KAAK,EACL,IAAI,GACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SACzC,CAAC;KACH,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA8EnC,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,UAAU,EACV,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6B9B,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA2CzB,gBAAgB,CAAC,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,GACX,GAAE,4BAAiC,GAAG,OAAO,CAAC,YAAY,CAAC;CA0E7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/workflows/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAIjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,4BAA4B,EAC5B,WAAW,EACX,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,qBAAa,cAAe,SAAQ,gBAAgB;IAC3C,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,OAAO,CAAC,CAAuB;IAEvC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,wCAAsC;gBAExD,MAAM,EAAE,iBAAiB;IAYrC;;;OAGG;IACH,0BAA0B,IAAI,kBAAkB,EAAE;IAIlD;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,gBAAgB;IAmBlB,qBAAqB,CAAC,EAC1B,YAAY,EACZ,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,GACf,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAoFrD,mBAAmB,CAAC,EACxB,YAAY,EACZ,KAAK,EACL,IAAI,GACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,0BAA0B,CAAC;KAClC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA+EnC,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,UAAU,EACV,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6B9B,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA2CzB,qBAAqB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtG,gBAAgB,CAAC,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,EACV,MAAM,GACP,GAAE,4BAAiC,GAAG,OAAO,CAAC,YAAY,CAAC;CA+E7D"}