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.
Files changed (36) hide show
  1. package/README.md +550 -21
  2. package/dist/core/ForgeSQLORM.d.ts +45 -8
  3. package/dist/core/ForgeSQLORM.d.ts.map +1 -1
  4. package/dist/core/ForgeSQLORM.js +134 -15
  5. package/dist/core/ForgeSQLORM.js.map +1 -1
  6. package/dist/core/ForgeSQLQueryBuilder.d.ts +192 -5
  7. package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
  8. package/dist/core/ForgeSQLQueryBuilder.js.map +1 -1
  9. package/dist/core/Rovo.d.ts +116 -0
  10. package/dist/core/Rovo.d.ts.map +1 -0
  11. package/dist/core/Rovo.js +647 -0
  12. package/dist/core/Rovo.js.map +1 -0
  13. package/dist/utils/forgeDriver.d.ts +3 -2
  14. package/dist/utils/forgeDriver.d.ts.map +1 -1
  15. package/dist/utils/forgeDriver.js +20 -16
  16. package/dist/utils/forgeDriver.js.map +1 -1
  17. package/dist/utils/metadataContextUtils.d.ts +27 -1
  18. package/dist/utils/metadataContextUtils.d.ts.map +1 -1
  19. package/dist/utils/metadataContextUtils.js +215 -12
  20. package/dist/utils/metadataContextUtils.js.map +1 -1
  21. package/dist/webtriggers/index.d.ts +1 -0
  22. package/dist/webtriggers/index.d.ts.map +1 -1
  23. package/dist/webtriggers/index.js +1 -0
  24. package/dist/webtriggers/index.js.map +1 -1
  25. package/dist/webtriggers/topSlowestStatementLastHourTrigger.d.ts +60 -0
  26. package/dist/webtriggers/topSlowestStatementLastHourTrigger.d.ts.map +1 -0
  27. package/dist/webtriggers/topSlowestStatementLastHourTrigger.js +55 -0
  28. package/dist/webtriggers/topSlowestStatementLastHourTrigger.js.map +1 -0
  29. package/package.json +13 -11
  30. package/src/core/ForgeSQLORM.ts +142 -14
  31. package/src/core/ForgeSQLQueryBuilder.ts +213 -4
  32. package/src/core/Rovo.ts +765 -0
  33. package/src/utils/forgeDriver.ts +34 -19
  34. package/src/utils/metadataContextUtils.ts +267 -12
  35. package/src/webtriggers/index.ts +1 -0
  36. 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.printQueries - Function to analyze and print query execution plans from CLUSTER_STATEMENTS_SUMMARY
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, printQueries) => {
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 printQueries(); // Analyze and print query execution plans
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, printQueries) => {
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 printQueries(); // Optionally log or capture diagnostics for further analysis
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 `printQueries()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
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":"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"}
1
+ {"version":3,"file":"ForgeSQLORM.d.ts","sourceRoot":"","sources":["../../src/core/ForgeSQLORM.ts"],"names":[],"mappings":"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"}
@@ -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.printQueries - Function to analyze and print query execution plans from CLUSTER_STATEMENTS_SUMMARY
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, printQueries) => {
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 printQueries(); // Analyze and print query execution plans
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, printQueries) => {
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 printQueries(); // Optionally log or capture diagnostics for further analysis
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
- * @note **Important**: When multiple resolvers are running concurrently, their query data may also appear in `printQueries()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
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.printQueries - Function to analyze and print query execution plans from CLUSTER_STATEMENTS_SUMMARY
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, printQueries) => {
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 printQueries(); // Analyze and print query execution plans
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, printQueries) => {
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 printQueries(); // Optionally log or capture diagnostics for further analysis
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 `printQueries()` analysis, as it queries the global `CLUSTER_STATEMENTS_SUMMARY` table.
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":"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"}