forge-sql-orm 2.1.13 → 2.1.15
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/README.md +550 -21
- package/dist/core/ForgeSQLORM.d.ts +45 -8
- package/dist/core/ForgeSQLORM.d.ts.map +1 -1
- package/dist/core/ForgeSQLORM.js +134 -15
- package/dist/core/ForgeSQLORM.js.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.d.ts +192 -5
- package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.js.map +1 -1
- package/dist/core/Rovo.d.ts +116 -0
- package/dist/core/Rovo.d.ts.map +1 -0
- package/dist/core/Rovo.js +647 -0
- package/dist/core/Rovo.js.map +1 -0
- package/dist/utils/forgeDriver.d.ts +3 -2
- package/dist/utils/forgeDriver.d.ts.map +1 -1
- package/dist/utils/forgeDriver.js +20 -16
- package/dist/utils/forgeDriver.js.map +1 -1
- package/dist/utils/metadataContextUtils.d.ts +27 -1
- package/dist/utils/metadataContextUtils.d.ts.map +1 -1
- package/dist/utils/metadataContextUtils.js +215 -12
- package/dist/utils/metadataContextUtils.js.map +1 -1
- package/dist/webtriggers/index.d.ts +1 -0
- package/dist/webtriggers/index.d.ts.map +1 -1
- package/dist/webtriggers/index.js +1 -0
- package/dist/webtriggers/index.js.map +1 -1
- package/dist/webtriggers/topSlowestStatementLastHourTrigger.d.ts +60 -0
- package/dist/webtriggers/topSlowestStatementLastHourTrigger.d.ts.map +1 -0
- package/dist/webtriggers/topSlowestStatementLastHourTrigger.js +55 -0
- package/dist/webtriggers/topSlowestStatementLastHourTrigger.js.map +1 -0
- package/package.json +13 -11
- package/src/core/ForgeSQLORM.ts +142 -14
- package/src/core/ForgeSQLQueryBuilder.ts +213 -4
- package/src/core/Rovo.ts +765 -0
- package/src/utils/forgeDriver.ts +34 -19
- package/src/utils/metadataContextUtils.ts +267 -12
- package/src/webtriggers/index.ts +1 -0
- package/src/webtriggers/topSlowestStatementLastHourTrigger.ts +69 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VerioningModificationForgeSQL, ForgeSqlOperation, ForgeSqlOrmOptions, SchemaAnalyzeForgeSql, SchemaSqlForgeSql } from "./ForgeSQLQueryBuilder";
|
|
1
|
+
import { VerioningModificationForgeSQL, ForgeSqlOperation, ForgeSqlOrmOptions, SchemaAnalyzeForgeSql, SchemaSqlForgeSql, RovoIntegration } from "./ForgeSQLQueryBuilder";
|
|
2
2
|
import { MySqlRemoteDatabase, MySqlRemotePreparedQueryHKT, MySqlRemoteQueryResultHKT } from "drizzle-orm/mysql-proxy";
|
|
3
3
|
import type { SelectedFields } from "drizzle-orm/mysql-core/query-builders/select.types";
|
|
4
4
|
import { MySqlSelectBuilder } from "drizzle-orm/mysql-core";
|
|
@@ -8,6 +8,7 @@ import { MySqlTable } from "drizzle-orm/mysql-core/table";
|
|
|
8
8
|
import { MySqlDeleteBase, MySqlInsertBuilder, MySqlUpdateBuilder } from "drizzle-orm/mysql-core/query-builders";
|
|
9
9
|
import { SQLWrapper } from "drizzle-orm/sql/sql";
|
|
10
10
|
import { WithSubquery } from "drizzle-orm/subquery";
|
|
11
|
+
import { MetadataQueryOptions } from "../utils/metadataContextUtils";
|
|
11
12
|
import type { MySqlQueryResultKind } from "drizzle-orm/mysql-core/session";
|
|
12
13
|
/**
|
|
13
14
|
* Public class that acts as a wrapper around the private ForgeSQLORMImpl.
|
|
@@ -29,7 +30,15 @@ declare class ForgeSQLORM implements ForgeSqlOperation {
|
|
|
29
30
|
* @param onMetadata - Callback function that receives aggregated execution metadata
|
|
30
31
|
* @param onMetadata.totalDbExecutionTime - Total database execution time across all operations in the query function (in milliseconds)
|
|
31
32
|
* @param onMetadata.totalResponseSize - Total response size across all operations (in bytes)
|
|
32
|
-
* @param onMetadata.
|
|
33
|
+
* @param onMetadata.printQueriesWithPlan - Function to analyze and print query execution plans. Supports two modes:
|
|
34
|
+
* - TopSlowest: Prints execution plans for the slowest queries from the current resolver (default)
|
|
35
|
+
* - SummaryTable: Uses CLUSTER_STATEMENTS_SUMMARY if within time window
|
|
36
|
+
* @param options - Optional configuration for query plan printing behavior
|
|
37
|
+
* @param options.mode - Query plan printing mode: 'TopSlowest' (default) or 'SummaryTable'
|
|
38
|
+
* @param options.summaryTableWindowTime - Time window in milliseconds for summary table queries (default: 15000ms). Only used when mode is 'SummaryTable'
|
|
39
|
+
* @param options.topQueries - Number of top slowest queries to analyze when mode is 'TopSlowest' (default: 1)
|
|
40
|
+
* @param options.showSlowestPlans - Whether to show execution plans for slowest queries in TopSlowest mode (default: true)
|
|
41
|
+
* @param options.normalizeQuery - Whether to normalize SQL queries by replacing parameter values with '?' placeholders (default: true). Set to false to disable normalization if it causes issues
|
|
33
42
|
* @returns Promise with the query result
|
|
34
43
|
*
|
|
35
44
|
* @example
|
|
@@ -41,12 +50,12 @@ declare class ForgeSQLORM implements ForgeSqlOperation {
|
|
|
41
50
|
* const orders = await forgeSQL.selectFrom(ordersTable).where(eq(ordersTable.userId, usersTable.id));
|
|
42
51
|
* return { users, orders };
|
|
43
52
|
* },
|
|
44
|
-
* (totalDbExecutionTime, totalResponseSize,
|
|
53
|
+
* (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
45
54
|
* const threshold = 500; // ms baseline for this resolver
|
|
46
55
|
*
|
|
47
56
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
48
57
|
* console.warn(`[Performance Warning] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
49
|
-
* await
|
|
58
|
+
* await printQueriesWithPlan(); // Analyze and print query execution plans
|
|
50
59
|
* } else if (totalDbExecutionTime > threshold) {
|
|
51
60
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
52
61
|
* }
|
|
@@ -69,12 +78,12 @@ declare class ForgeSQLORM implements ForgeSqlOperation {
|
|
|
69
78
|
* .where(eq(demoOrders.userId, demoUsers.id));
|
|
70
79
|
* return { users, orders };
|
|
71
80
|
* },
|
|
72
|
-
* async (totalDbExecutionTime, totalResponseSize,
|
|
81
|
+
* async (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
73
82
|
* const threshold = 500; // ms baseline for this resolver
|
|
74
83
|
*
|
|
75
84
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
76
85
|
* console.warn(`[Performance Warning fetch] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
77
|
-
* await
|
|
86
|
+
* await printQueriesWithPlan(); // Optionally log or capture diagnostics for further analysis
|
|
78
87
|
* } else if (totalDbExecutionTime > threshold) {
|
|
79
88
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
80
89
|
* }
|
|
@@ -90,9 +99,9 @@ declare class ForgeSQLORM implements ForgeSqlOperation {
|
|
|
90
99
|
* });
|
|
91
100
|
* ```
|
|
92
101
|
*
|
|
93
|
-
* @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `
|
|
102
|
+
* @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `printQueriesWithPlan()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
|
|
94
103
|
*/
|
|
95
|
-
executeWithMetadata<T>(query: () => Promise<T>, onMetadata: (totalDbExecutionTime: number, totalResponseSize: number, printQueriesWithPlan: () => Promise<void>) => Promise<void> | void): Promise<T>;
|
|
104
|
+
executeWithMetadata<T>(query: () => Promise<T>, onMetadata: (totalDbExecutionTime: number, totalResponseSize: number, printQueriesWithPlan: () => Promise<void>) => Promise<void> | void, options?: MetadataQueryOptions): Promise<T>;
|
|
96
105
|
selectCacheable<TSelection extends SelectedFields>(fields: TSelection, cacheTTL?: number): MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
97
106
|
selectDistinctCacheable<TSelection extends SelectedFields>(fields: TSelection, cacheTTL?: number): MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
98
107
|
/**
|
|
@@ -473,6 +482,34 @@ declare class ForgeSQLORM implements ForgeSqlOperation {
|
|
|
473
482
|
update: <TTable extends MySqlTable>(table: TTable) => MySqlUpdateBuilder<TTable, MySqlRemoteQueryResultHKT, MySqlRemotePreparedQueryHKT>;
|
|
474
483
|
delete: <TTable extends MySqlTable>(table: TTable) => MySqlDeleteBase<TTable, MySqlRemoteQueryResultHKT, MySqlRemotePreparedQueryHKT, false, never>;
|
|
475
484
|
};
|
|
485
|
+
/**
|
|
486
|
+
* Provides access to Rovo integration - a secure pattern for natural-language analytics.
|
|
487
|
+
*
|
|
488
|
+
* Rovo enables secure execution of dynamic SQL queries with comprehensive security validations:
|
|
489
|
+
* - Only SELECT queries are allowed
|
|
490
|
+
* - Queries are restricted to a single table
|
|
491
|
+
* - JOINs, subqueries, and window functions are blocked
|
|
492
|
+
* - Row-Level Security (RLS) support for data isolation
|
|
493
|
+
*
|
|
494
|
+
* @returns {RovoIntegration} Rovo integration instance for secure dynamic queries
|
|
495
|
+
*
|
|
496
|
+
* @example
|
|
497
|
+
* ```typescript
|
|
498
|
+
* const rovo = forgeSQL.rovo();
|
|
499
|
+
* const settings = await rovo.rovoSettingBuilder(usersTable, accountId)
|
|
500
|
+
* .useRLS()
|
|
501
|
+
* .addRlsColumn(usersTable.id)
|
|
502
|
+
* .addRlsWherePart((alias) => `${alias}.id = '${accountId}'`)
|
|
503
|
+
* .finish()
|
|
504
|
+
* .build();
|
|
505
|
+
*
|
|
506
|
+
* const result = await rovo.dynamicIsolatedQuery(
|
|
507
|
+
* "SELECT id, name FROM users WHERE status = 'active'",
|
|
508
|
+
* settings
|
|
509
|
+
* );
|
|
510
|
+
* ```
|
|
511
|
+
*/
|
|
512
|
+
rovo(): RovoIntegration;
|
|
476
513
|
}
|
|
477
514
|
export default ForgeSQLORM;
|
|
478
515
|
//# sourceMappingURL=ForgeSQLORM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeSQLORM.d.ts","sourceRoot":"","sources":["../../src/core/ForgeSQLORM.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ForgeSQLORM.d.ts","sourceRoot":"","sources":["../../src/core/ForgeSQLORM.ts"],"names":[],"mappings":"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"}
|
package/dist/core/ForgeSQLORM.js
CHANGED
|
@@ -11,6 +11,7 @@ const cacheContextUtils_1 = require("../utils/cacheContextUtils");
|
|
|
11
11
|
const cacheUtils_1 = require("../utils/cacheUtils");
|
|
12
12
|
const metadataContextUtils_1 = require("../utils/metadataContextUtils");
|
|
13
13
|
const requestTypeContextUtils_1 = require("../utils/requestTypeContextUtils");
|
|
14
|
+
const Rovo_1 = require("./Rovo");
|
|
14
15
|
/**
|
|
15
16
|
* Implementation of ForgeSQLORM that uses Drizzle ORM for query building.
|
|
16
17
|
* This class provides a bridge between Forge SQL and Drizzle ORM, allowing
|
|
@@ -72,7 +73,15 @@ class ForgeSQLORMImpl {
|
|
|
72
73
|
* @param onMetadata - Callback function that receives aggregated execution metadata
|
|
73
74
|
* @param onMetadata.totalDbExecutionTime - Total database execution time across all operations in the query function (in milliseconds)
|
|
74
75
|
* @param onMetadata.totalResponseSize - Total response size across all operations (in bytes)
|
|
75
|
-
* @param onMetadata.
|
|
76
|
+
* @param onMetadata.printQueriesWithPlan - Function to analyze and print query execution plans. Supports two modes:
|
|
77
|
+
* - TopSlowest: Prints execution plans for the slowest queries from the current resolver (default)
|
|
78
|
+
* - SummaryTable: Uses CLUSTER_STATEMENTS_SUMMARY if within time window
|
|
79
|
+
* @param options - Optional configuration for query plan printing behavior
|
|
80
|
+
* @param options.mode - Query plan printing mode: 'TopSlowest' (default) or 'SummaryTable'
|
|
81
|
+
* @param options.summaryTableWindowTime - Time window in milliseconds for summary table queries (default: 15000ms). Only used when mode is 'SummaryTable'
|
|
82
|
+
* @param options.topQueries - Number of top slowest queries to analyze when mode is 'TopSlowest' (default: 1)
|
|
83
|
+
* @param options.showSlowestPlans - Whether to show execution plans for slowest queries in TopSlowest mode (default: true)
|
|
84
|
+
* @param options.normalizeQuery - Whether to normalize SQL queries by replacing parameter values with '?' placeholders (default: true). Set to false to disable normalization if it causes issues
|
|
76
85
|
* @returns Promise with the query result
|
|
77
86
|
*
|
|
78
87
|
* @example
|
|
@@ -84,12 +93,12 @@ class ForgeSQLORMImpl {
|
|
|
84
93
|
* const orders = await forgeSQL.selectFrom(ordersTable).where(eq(ordersTable.userId, usersTable.id));
|
|
85
94
|
* return { users, orders };
|
|
86
95
|
* },
|
|
87
|
-
* (totalDbExecutionTime, totalResponseSize,
|
|
96
|
+
* (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
88
97
|
* const threshold = 500; // ms baseline for this resolver
|
|
89
98
|
*
|
|
90
99
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
91
100
|
* console.warn(`[Performance Warning] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
92
|
-
* await
|
|
101
|
+
* await printQueriesWithPlan(); // Analyze and print query execution plans
|
|
93
102
|
* } else if (totalDbExecutionTime > threshold) {
|
|
94
103
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
95
104
|
* }
|
|
@@ -112,12 +121,12 @@ class ForgeSQLORMImpl {
|
|
|
112
121
|
* .where(eq(demoOrders.userId, demoUsers.id));
|
|
113
122
|
* return { users, orders };
|
|
114
123
|
* },
|
|
115
|
-
* async (totalDbExecutionTime, totalResponseSize,
|
|
124
|
+
* async (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
116
125
|
* const threshold = 500; // ms baseline for this resolver
|
|
117
126
|
*
|
|
118
127
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
119
128
|
* console.warn(`[Performance Warning fetch] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
120
|
-
* await
|
|
129
|
+
* await printQueriesWithPlan(); // Optionally log or capture diagnostics for further analysis
|
|
121
130
|
* } else if (totalDbExecutionTime > threshold) {
|
|
122
131
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
123
132
|
* }
|
|
@@ -133,9 +142,49 @@ class ForgeSQLORMImpl {
|
|
|
133
142
|
* });
|
|
134
143
|
* ```
|
|
135
144
|
*
|
|
136
|
-
* @
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* // Using TopSlowest mode with custom topQueries
|
|
148
|
+
* const result = await forgeSQL.executeWithMetadata(
|
|
149
|
+
* async () => {
|
|
150
|
+
* const users = await forgeSQL.selectFrom(usersTable);
|
|
151
|
+
* return users;
|
|
152
|
+
* },
|
|
153
|
+
* async (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
154
|
+
* if (totalDbExecutionTime > 1000) {
|
|
155
|
+
* await printQueriesWithPlan(); // Will print top 3 slowest queries
|
|
156
|
+
* }
|
|
157
|
+
* },
|
|
158
|
+
* {
|
|
159
|
+
* mode: 'TopSlowest', // Print top slowest queries (default)
|
|
160
|
+
* topQueries: 3, // Print top 3 slowest queries
|
|
161
|
+
* }
|
|
162
|
+
* );
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* // Using SummaryTable mode for query analysis
|
|
168
|
+
* const result = await forgeSQL.executeWithMetadata(
|
|
169
|
+
* async () => {
|
|
170
|
+
* const users = await forgeSQL.selectFrom(usersTable);
|
|
171
|
+
* return users;
|
|
172
|
+
* },
|
|
173
|
+
* async (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
174
|
+
* if (totalDbExecutionTime > 1000) {
|
|
175
|
+
* await printQueriesWithPlan(); // Will use CLUSTER_STATEMENTS_SUMMARY if within time window
|
|
176
|
+
* }
|
|
177
|
+
* },
|
|
178
|
+
* {
|
|
179
|
+
* mode: 'SummaryTable', // Use summary tables mode
|
|
180
|
+
* summaryTableWindowTime: 10000, // 10 second window
|
|
181
|
+
* }
|
|
182
|
+
* );
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `printQueriesWithPlan()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
|
|
137
186
|
*/
|
|
138
|
-
async executeWithMetadata(query, onMetadata) {
|
|
187
|
+
async executeWithMetadata(query, onMetadata, options) {
|
|
139
188
|
return metadataContextUtils_1.metadataQueryContext.run({
|
|
140
189
|
totalDbExecutionTime: 0,
|
|
141
190
|
totalResponseSize: 0,
|
|
@@ -144,6 +193,8 @@ class ForgeSQLORMImpl {
|
|
|
144
193
|
printQueriesWithPlan: async () => {
|
|
145
194
|
return;
|
|
146
195
|
},
|
|
196
|
+
options: options,
|
|
197
|
+
statistics: [],
|
|
147
198
|
}, async () => {
|
|
148
199
|
const result = await query();
|
|
149
200
|
const metadata = await (0, metadataContextUtils_1.getLastestMetadata)();
|
|
@@ -687,6 +738,36 @@ class ForgeSQLORMImpl {
|
|
|
687
738
|
with(...queries) {
|
|
688
739
|
return this.drizzle.with(...queries);
|
|
689
740
|
}
|
|
741
|
+
/**
|
|
742
|
+
* Provides access to Rovo integration - a secure pattern for natural-language analytics.
|
|
743
|
+
*
|
|
744
|
+
* Rovo enables secure execution of dynamic SQL queries with comprehensive security validations:
|
|
745
|
+
* - Only SELECT queries are allowed
|
|
746
|
+
* - Queries are restricted to a single table
|
|
747
|
+
* - JOINs, subqueries, and window functions are blocked
|
|
748
|
+
* - Row-Level Security (RLS) support for data isolation
|
|
749
|
+
*
|
|
750
|
+
* @returns {RovoIntegration} Rovo integration instance for secure dynamic queries
|
|
751
|
+
*
|
|
752
|
+
* @example
|
|
753
|
+
* ```typescript
|
|
754
|
+
* const rovo = forgeSQL.rovo();
|
|
755
|
+
* const settings = await rovo.rovoSettingBuilder(usersTable, accountId)
|
|
756
|
+
* .useRLS()
|
|
757
|
+
* .addRlsColumn(usersTable.id)
|
|
758
|
+
* .addRlsWherePart((alias) => `${alias}.id = '${accountId}'`)
|
|
759
|
+
* .finish()
|
|
760
|
+
* .build();
|
|
761
|
+
*
|
|
762
|
+
* const result = await rovo.dynamicIsolatedQuery(
|
|
763
|
+
* "SELECT id, name FROM users WHERE status = 'active'",
|
|
764
|
+
* settings
|
|
765
|
+
* );
|
|
766
|
+
* ```
|
|
767
|
+
*/
|
|
768
|
+
rovo() {
|
|
769
|
+
return new Rovo_1.Rovo(this, this.options);
|
|
770
|
+
}
|
|
690
771
|
}
|
|
691
772
|
/**
|
|
692
773
|
* Public class that acts as a wrapper around the private ForgeSQLORMImpl.
|
|
@@ -710,7 +791,15 @@ class ForgeSQLORM {
|
|
|
710
791
|
* @param onMetadata - Callback function that receives aggregated execution metadata
|
|
711
792
|
* @param onMetadata.totalDbExecutionTime - Total database execution time across all operations in the query function (in milliseconds)
|
|
712
793
|
* @param onMetadata.totalResponseSize - Total response size across all operations (in bytes)
|
|
713
|
-
* @param onMetadata.
|
|
794
|
+
* @param onMetadata.printQueriesWithPlan - Function to analyze and print query execution plans. Supports two modes:
|
|
795
|
+
* - TopSlowest: Prints execution plans for the slowest queries from the current resolver (default)
|
|
796
|
+
* - SummaryTable: Uses CLUSTER_STATEMENTS_SUMMARY if within time window
|
|
797
|
+
* @param options - Optional configuration for query plan printing behavior
|
|
798
|
+
* @param options.mode - Query plan printing mode: 'TopSlowest' (default) or 'SummaryTable'
|
|
799
|
+
* @param options.summaryTableWindowTime - Time window in milliseconds for summary table queries (default: 15000ms). Only used when mode is 'SummaryTable'
|
|
800
|
+
* @param options.topQueries - Number of top slowest queries to analyze when mode is 'TopSlowest' (default: 1)
|
|
801
|
+
* @param options.showSlowestPlans - Whether to show execution plans for slowest queries in TopSlowest mode (default: true)
|
|
802
|
+
* @param options.normalizeQuery - Whether to normalize SQL queries by replacing parameter values with '?' placeholders (default: true). Set to false to disable normalization if it causes issues
|
|
714
803
|
* @returns Promise with the query result
|
|
715
804
|
*
|
|
716
805
|
* @example
|
|
@@ -722,12 +811,12 @@ class ForgeSQLORM {
|
|
|
722
811
|
* const orders = await forgeSQL.selectFrom(ordersTable).where(eq(ordersTable.userId, usersTable.id));
|
|
723
812
|
* return { users, orders };
|
|
724
813
|
* },
|
|
725
|
-
* (totalDbExecutionTime, totalResponseSize,
|
|
814
|
+
* (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
726
815
|
* const threshold = 500; // ms baseline for this resolver
|
|
727
816
|
*
|
|
728
817
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
729
818
|
* console.warn(`[Performance Warning] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
730
|
-
* await
|
|
819
|
+
* await printQueriesWithPlan(); // Analyze and print query execution plans
|
|
731
820
|
* } else if (totalDbExecutionTime > threshold) {
|
|
732
821
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
733
822
|
* }
|
|
@@ -750,12 +839,12 @@ class ForgeSQLORM {
|
|
|
750
839
|
* .where(eq(demoOrders.userId, demoUsers.id));
|
|
751
840
|
* return { users, orders };
|
|
752
841
|
* },
|
|
753
|
-
* async (totalDbExecutionTime, totalResponseSize,
|
|
842
|
+
* async (totalDbExecutionTime, totalResponseSize, printQueriesWithPlan) => {
|
|
754
843
|
* const threshold = 500; // ms baseline for this resolver
|
|
755
844
|
*
|
|
756
845
|
* if (totalDbExecutionTime > threshold * 1.5) {
|
|
757
846
|
* console.warn(`[Performance Warning fetch] Resolver exceeded DB time: ${totalDbExecutionTime} ms`);
|
|
758
|
-
* await
|
|
847
|
+
* await printQueriesWithPlan(); // Optionally log or capture diagnostics for further analysis
|
|
759
848
|
* } else if (totalDbExecutionTime > threshold) {
|
|
760
849
|
* console.debug(`[Performance Debug] High DB time: ${totalDbExecutionTime} ms`);
|
|
761
850
|
* }
|
|
@@ -771,10 +860,10 @@ class ForgeSQLORM {
|
|
|
771
860
|
* });
|
|
772
861
|
* ```
|
|
773
862
|
*
|
|
774
|
-
* @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `
|
|
863
|
+
* @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `printQueriesWithPlan()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
|
|
775
864
|
*/
|
|
776
|
-
async executeWithMetadata(query, onMetadata) {
|
|
777
|
-
return this.ormInstance.executeWithMetadata(query, onMetadata);
|
|
865
|
+
async executeWithMetadata(query, onMetadata, options) {
|
|
866
|
+
return this.ormInstance.executeWithMetadata(query, onMetadata, options);
|
|
778
867
|
}
|
|
779
868
|
selectCacheable(fields, cacheTTL) {
|
|
780
869
|
return this.ormInstance.selectCacheable(fields, cacheTTL);
|
|
@@ -1186,6 +1275,36 @@ class ForgeSQLORM {
|
|
|
1186
1275
|
with(...queries) {
|
|
1187
1276
|
return this.ormInstance.getDrizzleQueryBuilder().with(...queries);
|
|
1188
1277
|
}
|
|
1278
|
+
/**
|
|
1279
|
+
* Provides access to Rovo integration - a secure pattern for natural-language analytics.
|
|
1280
|
+
*
|
|
1281
|
+
* Rovo enables secure execution of dynamic SQL queries with comprehensive security validations:
|
|
1282
|
+
* - Only SELECT queries are allowed
|
|
1283
|
+
* - Queries are restricted to a single table
|
|
1284
|
+
* - JOINs, subqueries, and window functions are blocked
|
|
1285
|
+
* - Row-Level Security (RLS) support for data isolation
|
|
1286
|
+
*
|
|
1287
|
+
* @returns {RovoIntegration} Rovo integration instance for secure dynamic queries
|
|
1288
|
+
*
|
|
1289
|
+
* @example
|
|
1290
|
+
* ```typescript
|
|
1291
|
+
* const rovo = forgeSQL.rovo();
|
|
1292
|
+
* const settings = await rovo.rovoSettingBuilder(usersTable, accountId)
|
|
1293
|
+
* .useRLS()
|
|
1294
|
+
* .addRlsColumn(usersTable.id)
|
|
1295
|
+
* .addRlsWherePart((alias) => `${alias}.id = '${accountId}'`)
|
|
1296
|
+
* .finish()
|
|
1297
|
+
* .build();
|
|
1298
|
+
*
|
|
1299
|
+
* const result = await rovo.dynamicIsolatedQuery(
|
|
1300
|
+
* "SELECT id, name FROM users WHERE status = 'active'",
|
|
1301
|
+
* settings
|
|
1302
|
+
* );
|
|
1303
|
+
* ```
|
|
1304
|
+
*/
|
|
1305
|
+
rovo() {
|
|
1306
|
+
return this.ormInstance.rovo();
|
|
1307
|
+
}
|
|
1189
1308
|
}
|
|
1190
1309
|
exports.default = ForgeSQLORM;
|
|
1191
1310
|
//# sourceMappingURL=ForgeSQLORM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeSQLORM.js","sourceRoot":"","sources":["../../src/core/ForgeSQLORM.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ForgeSQLORM.js","sourceRoot":"","sources":["../../src/core/ForgeSQLORM.ts"],"names":[],"mappings":";;AAAA,qEAAkE;AASlE,yEAAsE;AACtE,yDAKiC;AACjC,gEAAmE;AAGnE,mFASqD;AACrD,2EAAuE;AACvE,uEAAoE;AAOpE,kEAAmG;AACnG,oDAAuD;AAGvD,wEAIuC;AACvC,8EAA6E;AAE7E,iCAA8B;AAE9B;;;;GAIG;AACH,MAAM,eAAe;IACX,MAAM,CAAC,QAAQ,GAA2B,IAAI,CAAC;IACtC,OAAO,CAWtB;IACe,cAAc,CAAgC;IAC9C,eAAe,CAAoB;IACnC,iBAAiB,CAAwB;IACzC,eAAe,CAA0B;IACzC,OAAO,CAAqB;IAE7C;;;OAGG;IACH,YAAoB,OAA4B;QAC9C,IAAI,CAAC;YACH,MAAM,UAAU,GAAuB,OAAO,IAAI;gBAChD,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,KAAK;gBACf,wBAAwB,EAAE,KAAK;gBAC/B,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,GAAG;gBACb,oBAAoB,EAAE,KAAK;gBAC3B,yBAAyB,EAAE,YAAY;gBACvC,mBAAmB,EAAE,MAAM;aAC5B,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;YAC1B,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC9B,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;YACD,qDAAqD;YACrD,MAAM,aAAa,GAAG,IAAA,yCAAsB,EAC1C,IAAI,EACJ,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,cAAc,CAC1B,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,IAAA,4CAAwB,EACrC,IAAA,qBAAO,EAAC,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,EAC7D,UAAU,CACX,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,+CAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,eAAe,GAAG,IAAI,mDAAwB,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,oDAAwB,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,iDAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2HG;IACH,KAAK,CAAC,mBAAmB,CACvB,KAAuB,EACvB,UAIyB,EACzB,OAA8B;QAE9B,OAAO,2CAAoB,CAAC,GAAG,CAC7B;YACE,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK,IAAI,EAAE;gBAC/B,OAAO;YACT,CAAC;YACD,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,EAAE;SACf,EACD,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAA,yCAAkB,GAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,UAAU,CACd,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,iBAAiB,EAC1B,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CACX,sEAAsE,EACtE;oBACE,YAAY,EAAE,CAAC,EAAE,OAAO;oBACxB,UAAU,EAAE,CAAC,EAAE,KAAK;oBACpB,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB;oBACpD,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB;oBAC9C,SAAS,EAAE,QAAQ,EAAE,SAAS;iBAC/B,EACD,CAAC,CACF,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,uBAAuB,CAAC,YAAiC;QACvD,OAAO,IAAI,CAAC,qCAAqC,CAAO,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,qCAAqC,CAAI,YAA8B;QAC3E,OAAO,MAAM,IAAI,CAAC,0CAA0C,CAC1D,KAAK,IAAI,EAAE,CACT,MAAM,2CAAuB,CAAC,GAAG,CAC/B,2CAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,EACnE,KAAK,IAAI,EAAE;YACT,IAAI,CAAC;gBACH,OAAO,MAAM,YAAY,EAAE,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAA,6BAAgB,EACpB,KAAK,CAAC,IAAI,CAAC,2CAAuB,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,EAC5D,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CACJ,CAAC;IACJ,CAAC;IACD;;;;;;OAMG;IACH,KAAK,CAAC,0CAA0C,CAAI,YAA8B;QAChF,OAAO,MAAM,gDAA4B,CAAC,GAAG,CAC3C,gDAA4B,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EACxD,KAAK,IAAI,EAAE;YACT,OAAO,MAAM,YAAY,EAAE,CAAC;QAC9B,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,YAAiC;QACvD,OAAO,IAAI,CAAC,0CAA0C,CAAO,YAAY,CAAC,CAAC;IAC7E,CAAC;IACD;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IACD;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IACD;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,OAA4B;QAC7C,eAAe,CAAC,QAAQ,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,eAAe,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,iCAAiC;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB;QAYpB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,MAAkB;QAElB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CACZ,MAAkB;QAElB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CACb,MAAkB,EAClB,QAAiB;QAEjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,CACrB,MAAkB,EAClB,QAAiB;QAEjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAuB,KAAQ;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAuB,KAAQ;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAuB,KAAQ,EAAE,QAAiB;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAuB,KAAQ,EAAE,QAAiB;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAI,KAA0B;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAI,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,KAAK,CAAC,UAAU,CAAI,KAA0B;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAI,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,KAAK,CAAC,iBAAiB,CAAI,OAAyB;QAClD,OAAO,mDAAyB,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CACd,KAA0B,EAC1B,QAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAI,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,GAAG,OAAuB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI;QACF,OAAO,IAAI,WAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAGH;;;GAGG;AACH,MAAM,WAAW;IACE,WAAW,CAAoB;IAEhD,YAAY,OAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmFG;IACH,KAAK,CAAC,mBAAmB,CACvB,KAAuB,EACvB,UAIyB,EACzB,OAA8B;QAE9B,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,eAAe,CACb,MAAkB,EAClB,QAAiB;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB,CACrB,MAAkB,EAClB,QAAiB;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAuB,KAAQ;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAuB,KAAQ;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAuB,KAAQ,EAAE,QAAiB;QACnE,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAuB,KAAQ,EAAE,QAAiB;QAC3E,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAED,uBAAuB,CAAC,YAAiC;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IACD,qCAAqC,CAAI,YAA8B;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC,qCAAqC,CAAC,YAAY,CAAC,CAAC;IAC9E,CAAC;IACD;;;;;;OAMG;IACH,uBAAuB,CAAC,YAAiC;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,0CAA0C,CAAI,YAA8B;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,0CAA0C,CAAC,YAAY,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CACjB,KAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,MAAkB;QAElB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CACZ,MAAkB;QAElB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,iCAAiC;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,iCAAiC,EAAE,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CACL,KAA0B;QAE1B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,UAAU,CAAC,KAA0B;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,iBAAiB,CAAI,OAAyB;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CACd,KAA0B,EAC1B,QAAiB;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,GAAG,OAAuB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;CACF;AAED,kBAAe,WAAW,CAAC"}
|