forge-sql-orm 2.1.24 → 2.1.26
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 +126 -23
- package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.js +38 -1
- package/dist/core/ForgeSQLQueryBuilder.js.map +1 -1
- package/dist/core/VectorTiDB.d.ts +120 -0
- package/dist/core/VectorTiDB.d.ts.map +1 -0
- package/dist/core/VectorTiDB.js +169 -0
- package/dist/core/VectorTiDB.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/utils/cacheUtils.d.ts +13 -1
- package/dist/utils/cacheUtils.d.ts.map +1 -1
- package/dist/utils/cacheUtils.js +60 -47
- package/dist/utils/cacheUtils.js.map +1 -1
- package/dist/webtriggers/clearCacheSchedulerTrigger.d.ts +24 -4
- package/dist/webtriggers/clearCacheSchedulerTrigger.d.ts.map +1 -1
- package/dist/webtriggers/clearCacheSchedulerTrigger.js +24 -4
- package/dist/webtriggers/clearCacheSchedulerTrigger.js.map +1 -1
- package/package.json +13 -13
- package/src/core/ForgeSQLQueryBuilder.ts +48 -5
- package/src/core/VectorTiDB.ts +192 -0
- package/src/core/index.ts +1 -0
- package/src/utils/cacheUtils.ts +70 -47
- package/src/webtriggers/clearCacheSchedulerTrigger.ts +24 -4
package/README.md
CHANGED
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
- ✅ **Optimistic Locking** Ensures data consistency by preventing conflicts when multiple users update the same record
|
|
45
45
|
- ✅ **Query Plan Analysis**: Detailed execution plan analysis and optimization insights
|
|
46
46
|
- ✅ **Rovo Integration** Secure pattern for natural-language analytics with comprehensive security validations, Row-Level Security (RLS) support, and dynamic SQL query execution
|
|
47
|
+
- ✅ **TiDB `VECTOR` type & vector SQL helpers** — Drizzle column type `vectorTiDBType` plus `vecCosineDistance`, `vecL2Distance`, `vecDims`, and related helpers for **SQL with AI** (embeddings storage and similarity search)
|
|
47
48
|
|
|
48
49
|
## Table of Contents
|
|
49
50
|
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
- [Automatic Error Analysis](#automatic-error-analysis) - Automatic timeout and OOM error detection with execution plans
|
|
85
86
|
- [Slow Query Monitoring](#slow-query-monitoring) - Scheduled monitoring of slow queries with execution plans
|
|
86
87
|
- [Date and Time Types](#date-and-time-types)
|
|
88
|
+
- [TiDB vector types (AI / similarity search)](#tidb-vector-types-ai--similarity-search)
|
|
87
89
|
|
|
88
90
|
### 🛠️ Development Tools
|
|
89
91
|
|
|
@@ -102,6 +104,7 @@
|
|
|
102
104
|
- [Organization Tracker Example](examples/forge-sql-orm-example-org-tracker)
|
|
103
105
|
- [Checklist Example](examples/forge-sql-orm-example-checklist)
|
|
104
106
|
- [Cache Example](examples/forge-sql-orm-example-cache) - Advanced caching capabilities with performance monitoring
|
|
107
|
+
- [Vector / AI SQL Example](examples/forge-sql-orm-example-vector) - `VECTOR` columns, embeddings, cosine-distance search (TiDB-compatible)
|
|
105
108
|
- [Rovo Integration Example](https://github.com/vzakharchenko/Forge-Secure-Notes-for-Jira) - Real-world Rovo AI agent implementation with secure natural-language analytics
|
|
106
109
|
|
|
107
110
|
### 📚 Reference
|
|
@@ -708,10 +711,12 @@ The diagram below shows how Evict Cache works in Forge-SQL-ORM:
|
|
|
708
711
|
|
|
709
712
|
The diagram below shows how Scheduled Expiration Cleanup works:
|
|
710
713
|
|
|
714
|
+
**Note:** forge-sql-orm uses Forge KVS TTL feature (`{ ttl: { unit: "SECONDS", value: number } }`) to mark entries as expired. However, **actual deletion is asynchronous and may take up to 48 hours**. During this window, read operations may still return expired results. The scheduler trigger proactively cleans up expired entries to prevent cache growth from impacting INSERT/UPDATE performance.
|
|
715
|
+
|
|
711
716
|
1. A periodic scheduler (Forge trigger) runs cache cleanup independently of data modifications.
|
|
712
717
|
2. forge-sql-orm queries the cache entity by the expiration index to find entries with expiration < now.
|
|
713
718
|
3. Entries are deleted in batches (up to 25 per transaction) until the page is empty; pagination is done with a cursor (e.g., 100 per page).
|
|
714
|
-
4. This keeps the cache footprint small and prevents stale data accumulation.
|
|
719
|
+
4. This keeps the cache footprint small and prevents stale data accumulation, especially important when cache size impacts data modification performance.
|
|
715
720
|
|
|
716
721
|

|
|
717
722
|
|
|
@@ -734,6 +739,12 @@ The diagram below shows how Cache Context works:
|
|
|
734
739
|
**@forge/kvs Limits:**
|
|
735
740
|
Please review the [official @forge/kvs quotas and limits](https://developer.atlassian.com/platform/forge/platform-quotas-and-limits/#kvs-and-custom-entity-store-quotas) before implementing caching.
|
|
736
741
|
|
|
742
|
+
**TTL Limitations:**
|
|
743
|
+
|
|
744
|
+
- **Maximum TTL**: The maximum supported TTL is 1 year from the time the expiry is set.
|
|
745
|
+
- **Asynchronous deletion**: Expired data is not removed immediately upon expiry. Deletion may take up to 48 hours. During this window, read operations may still return expired results.
|
|
746
|
+
- **Performance impact**: If cache grows large, expired entries can impact INSERT/UPDATE performance. Use the Clear Cache Scheduler Trigger to proactively clean up expired entries.
|
|
747
|
+
|
|
737
748
|
**Caching Guidelines:**
|
|
738
749
|
|
|
739
750
|
- Don't cache everything - be selective about what to cache
|
|
@@ -741,6 +752,7 @@ Please review the [official @forge/kvs quotas and limits](https://developer.atla
|
|
|
741
752
|
- Consider data size and frequency of changes
|
|
742
753
|
- Monitor cache usage to stay within quotas
|
|
743
754
|
- Use appropriate TTL values
|
|
755
|
+
- If cache growth impacts performance, configure the Clear Cache Scheduler Trigger
|
|
744
756
|
|
|
745
757
|
**⚠️ Important Cache Limitations:**
|
|
746
758
|
|
|
@@ -754,10 +766,11 @@ npm install @forge/kvs -S
|
|
|
754
766
|
|
|
755
767
|
### Step 2: Configure Manifest
|
|
756
768
|
|
|
757
|
-
Add the storage entity configuration
|
|
769
|
+
Add the storage entity configuration to your `manifest.yml`. The `scheduledTrigger` is **optional** - only configure it if your cache grows large and impacts INSERT/UPDATE performance:
|
|
758
770
|
|
|
759
771
|
```yaml
|
|
760
772
|
modules:
|
|
773
|
+
# Optional: Only needed if cache growth impacts INSERT/UPDATE performance
|
|
761
774
|
scheduledTrigger:
|
|
762
775
|
- key: clear-cache-trigger
|
|
763
776
|
function: clearCache
|
|
@@ -814,7 +827,7 @@ const forgeSQL = new ForgeSQL(options);
|
|
|
814
827
|
- The `cacheEntityName` must exactly match the `name` in your manifest storage entities
|
|
815
828
|
- The entity attributes (`sql`, `expiration`, `data`) are required for proper cache functionality
|
|
816
829
|
- Indexes on `sql` and `expiration` improve cache lookup performance
|
|
817
|
-
- Cache data is
|
|
830
|
+
- Cache data uses Forge KVS TTL for expiration (deletion is asynchronous, may take up to 48 hours)
|
|
818
831
|
- No additional permissions are required beyond standard Forge app permissions
|
|
819
832
|
|
|
820
833
|
### Complete Setup Examples
|
|
@@ -862,6 +875,7 @@ npm install forge-sql-orm @forge/sql @forge/kvs drizzle-orm -S
|
|
|
862
875
|
|
|
863
876
|
```yaml
|
|
864
877
|
modules:
|
|
878
|
+
# Optional: Only needed if cache growth impacts INSERT/UPDATE performance
|
|
865
879
|
scheduledTrigger:
|
|
866
880
|
- key: clear-cache-trigger
|
|
867
881
|
function: clearCache
|
|
@@ -1060,6 +1074,7 @@ where Cache context - allows you to batch cache invalidation events and bypass c
|
|
|
1060
1074
|
npm pkg set scripts.models:create="forge-sql-orm-cli generate:model --output src/entities --saveEnv"
|
|
1061
1075
|
npm pkg set scripts.migration:create="forge-sql-orm-cli migrations:create --force --output src/migration --entitiesPath src/entities"
|
|
1062
1076
|
npm pkg set scripts.migration:update="forge-sql-orm-cli migrations:update --entitiesPath src/entities --output src/migration"
|
|
1077
|
+
npm pkg set scripts.schema:create="forge-sql-orm-cli schema:create --entitiesPath src/entities"
|
|
1063
1078
|
```
|
|
1064
1079
|
|
|
1065
1080
|
_(This is done only once when setting up the project)_
|
|
@@ -1254,6 +1269,78 @@ Our custom types provide:
|
|
|
1254
1269
|
|
|
1255
1270
|
Each type ensures that the data is properly formatted according to Forge SQL's requirements while providing a clean, type-safe interface for your application code.
|
|
1256
1271
|
|
|
1272
|
+
---
|
|
1273
|
+
|
|
1274
|
+
## TiDB vector types (AI / similarity search)
|
|
1275
|
+
|
|
1276
|
+
Forge SQL ORM exposes **TiDB-compatible** `VECTOR` columns and vector functions so you can store **embeddings** and run **similarity search** in SQL—typical for **AI** features (semantic search, RAG-style retrieval) built on Forge SQL.
|
|
1277
|
+
|
|
1278
|
+
### Schema: `vectorTiDBType`
|
|
1279
|
+
|
|
1280
|
+
Use the Drizzle custom column type from `forge-sql-orm` (same patterns as `text()`, `int()`, …). With a fixed dimension, DDL becomes `VECTOR(n)`; without it, `VECTOR`.
|
|
1281
|
+
|
|
1282
|
+
Explicit **SQL column name** + options:
|
|
1283
|
+
|
|
1284
|
+
```typescript
|
|
1285
|
+
embedding: vectorTiDBType("embedding", { dimension: 1536 }).notNull(),
|
|
1286
|
+
```
|
|
1287
|
+
|
|
1288
|
+
Config only (column name is the **property key** in `mysqlTable`):
|
|
1289
|
+
|
|
1290
|
+
```typescript
|
|
1291
|
+
embedding: vectorTiDBType({ dimension: 1536 }).notNull(),
|
|
1292
|
+
```
|
|
1293
|
+
|
|
1294
|
+
Full example:
|
|
1295
|
+
|
|
1296
|
+
```typescript
|
|
1297
|
+
import { int, mysqlTable, primaryKey, text } from "drizzle-orm/mysql-core";
|
|
1298
|
+
import { vectorTiDBType } from "forge-sql-orm";
|
|
1299
|
+
|
|
1300
|
+
export const documents = mysqlTable(
|
|
1301
|
+
"documents",
|
|
1302
|
+
{
|
|
1303
|
+
id: int().autoincrement().notNull(),
|
|
1304
|
+
body: text().notNull(),
|
|
1305
|
+
embedding: vectorTiDBType("embedding", { dimension: 1536 }).notNull(),
|
|
1306
|
+
},
|
|
1307
|
+
(table) => [primaryKey({ columns: [table.id], name: "id" })],
|
|
1308
|
+
);
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
Values in application code are **`number[]`**; the driver maps them to the textual form TiDB expects.
|
|
1312
|
+
|
|
1313
|
+
### Queries: distance helpers
|
|
1314
|
+
|
|
1315
|
+
Helpers build the same expressions as TiDB’s vector functions (e.g. `VEC_COSINE_DISTANCE`). Use them inside `forgeSQL.select()`, `where()`, `orderBy()`, etc.
|
|
1316
|
+
|
|
1317
|
+
```typescript
|
|
1318
|
+
import { asc, sql } from "drizzle-orm";
|
|
1319
|
+
import { vecCosineDistance } from "forge-sql-orm";
|
|
1320
|
+
import { documents } from "./schema";
|
|
1321
|
+
|
|
1322
|
+
const queryVector = [0.1, 0.2, 0.3];
|
|
1323
|
+
|
|
1324
|
+
const distanceAlias = sql.raw("distance");
|
|
1325
|
+
const distance = sql<number>`${vecCosineDistance(documents.embedding, queryVector)} AS \`${distanceAlias}\``;
|
|
1326
|
+
|
|
1327
|
+
const nearest = await forgeSQL
|
|
1328
|
+
.select({
|
|
1329
|
+
id: documents.id,
|
|
1330
|
+
body: documents.body,
|
|
1331
|
+
distance,
|
|
1332
|
+
})
|
|
1333
|
+
.from(documents)
|
|
1334
|
+
.orderBy(asc(distanceAlias))
|
|
1335
|
+
.limit(10);
|
|
1336
|
+
```
|
|
1337
|
+
|
|
1338
|
+
Also available (see `src/core/VectorTiDB.ts`): `vecFromText`, `vecAsText`, `vecDims`, `vecL2Norm`, `vecL2Distance`, `vecL1Distance`, `vecNegativeInnerProduct`.
|
|
1339
|
+
|
|
1340
|
+
### Example app
|
|
1341
|
+
|
|
1342
|
+
See **[examples/forge-sql-orm-example-vector](examples/forge-sql-orm-example-vector)** for a full Forge app (migrations, resolvers, UI) aligned with [Get Started with Vector Search via SQL](https://docs.pingcap.com/tidb/stable/vector-search-get-started-using-sql).
|
|
1343
|
+
|
|
1257
1344
|
# Connection to ORM
|
|
1258
1345
|
|
|
1259
1346
|
```js
|
|
@@ -1681,7 +1768,7 @@ This multi-level approach provides optimal performance by checking the fastest c
|
|
|
1681
1768
|
|
|
1682
1769
|
### Cache Configuration
|
|
1683
1770
|
|
|
1684
|
-
The caching system uses Atlassian Forge's Custom entity store to persist cache data. Each cache entry is stored as a custom entity with
|
|
1771
|
+
The caching system uses Atlassian Forge's Custom entity store to persist cache data. Each cache entry is stored as a custom entity with TTL management via Forge KVS. Note that expired data deletion is asynchronous and may take up to 48 hours. If cache growth impacts INSERT/UPDATE performance, use the Clear Cache Scheduler Trigger for proactive cleanup.
|
|
1685
1772
|
|
|
1686
1773
|
```typescript
|
|
1687
1774
|
const options = {
|
|
@@ -1706,7 +1793,7 @@ const forgeSQL = new ForgeSQL(options);
|
|
|
1706
1793
|
The caching system leverages Forge's Custom entity store to provide:
|
|
1707
1794
|
|
|
1708
1795
|
- **Persistent Storage**: Cache data survives app restarts and deployments
|
|
1709
|
-
- **
|
|
1796
|
+
- **TTL Support**: Uses Forge KVS TTL feature for expiration (deletion is asynchronous, may take up to 48 hours)
|
|
1710
1797
|
- **Efficient Retrieval**: Fast key-based lookups using Forge's optimized storage
|
|
1711
1798
|
- **Data Serialization**: Automatic handling of complex objects and query results
|
|
1712
1799
|
- **Batch Operations**: Efficient bulk cache operations for better performance
|
|
@@ -1905,18 +1992,18 @@ const userResolver = async (req) => {
|
|
|
1905
1992
|
|
|
1906
1993
|
#### Local Cache (Level 1) vs Global Cache (Level 2)
|
|
1907
1994
|
|
|
1908
|
-
| Feature | Local Cache (Level 1) | Global Cache (Level 2)
|
|
1909
|
-
| ------------------ | ------------------------------------- |
|
|
1910
|
-
| **Storage** | In-memory (Node.js process) | Persistent (KVS Custom Entities)
|
|
1911
|
-
| **Scope** | Single forge invocation | Cross-invocation (between calls)
|
|
1912
|
-
| **Persistence** | No (cleared on invocation end) | Yes (survives app redeploy)
|
|
1913
|
-
| **Performance** | Very fast (memory access) | Fast (KVS optimized storage)
|
|
1914
|
-
| **Memory Usage** | Low (invocation-scoped) | Higher (persistent storage)
|
|
1915
|
-
| **Use Case** | Invocation optimization | Cross-invocation data sharing
|
|
1916
|
-
| **Configuration** | None required | Requires KVS setup
|
|
1917
|
-
| **TTL Support** | No (invocation-scoped) | Yes (
|
|
1918
|
-
| **Cache Eviction** | Automatic on DML operations | Manual or scheduled cleanup
|
|
1919
|
-
| **Best For** | Repeated queries in single invocation | Frequently accessed data across invocations
|
|
1995
|
+
| Feature | Local Cache (Level 1) | Global Cache (Level 2) |
|
|
1996
|
+
| ------------------ | ------------------------------------- | ------------------------------------------------------------------- |
|
|
1997
|
+
| **Storage** | In-memory (Node.js process) | Persistent (KVS Custom Entities) |
|
|
1998
|
+
| **Scope** | Single forge invocation | Cross-invocation (between calls) |
|
|
1999
|
+
| **Persistence** | No (cleared on invocation end) | Yes (survives app redeploy) |
|
|
2000
|
+
| **Performance** | Very fast (memory access) | Fast (KVS optimized storage) |
|
|
2001
|
+
| **Memory Usage** | Low (invocation-scoped) | Higher (persistent storage) |
|
|
2002
|
+
| **Use Case** | Invocation optimization | Cross-invocation data sharing |
|
|
2003
|
+
| **Configuration** | None required | Requires KVS setup |
|
|
2004
|
+
| **TTL Support** | No (invocation-scoped) | Yes (TTL via Forge KVS, async deletion up to 48h) |
|
|
2005
|
+
| **Cache Eviction** | Automatic on DML operations | Manual or scheduled cleanup (optional if cache impacts performance) |
|
|
2006
|
+
| **Best For** | Repeated queries in single invocation | Frequently accessed data across invocations |
|
|
1920
2007
|
|
|
1921
2008
|
#### Integration with Global Cache (Level 2)
|
|
1922
2009
|
|
|
@@ -2352,6 +2439,7 @@ The CLI tool provides the following main commands:
|
|
|
2352
2439
|
- `migrations:create` - Create new migration files
|
|
2353
2440
|
- `migrations:update` - Update existing migrations with schema changes
|
|
2354
2441
|
- `migrations:drop` - Create migration to drop tables
|
|
2442
|
+
- `schema:create` - Apply schema directly from Drizzle models to database
|
|
2355
2443
|
|
|
2356
2444
|
### Installation
|
|
2357
2445
|
|
|
@@ -2369,6 +2457,7 @@ Add the following scripts to your `package.json`:
|
|
|
2369
2457
|
npm pkg set scripts.models:create="forge-sql-orm-cli generate:model --output src/entities --saveEnv"
|
|
2370
2458
|
npm pkg set scripts.migration:create="forge-sql-orm-cli migrations:create --force --output src/migration --entitiesPath src/entities"
|
|
2371
2459
|
npm pkg set scripts.migration:update="forge-sql-orm-cli migrations:update --entitiesPath src/entities --output src/migration"
|
|
2460
|
+
npm pkg set scripts.schema:create="forge-sql-orm-cli schema:create --entitiesPath src/entities"
|
|
2372
2461
|
```
|
|
2373
2462
|
|
|
2374
2463
|
### Basic Usage
|
|
@@ -2384,6 +2473,9 @@ npm run migration:create
|
|
|
2384
2473
|
|
|
2385
2474
|
# Update migration
|
|
2386
2475
|
npm run migration:update
|
|
2476
|
+
|
|
2477
|
+
# Apply schema directly from Drizzle models
|
|
2478
|
+
npm run schema:create
|
|
2387
2479
|
```
|
|
2388
2480
|
|
|
2389
2481
|
**Note:** The CLI tool is designed to work as a local dependency through npm scripts. Configuration is saved to `.env` file using the `--saveEnv` flag, so you only need to provide database credentials once.
|
|
@@ -2519,12 +2611,22 @@ SET foreign_key_checks = 1;
|
|
|
2519
2611
|
|
|
2520
2612
|
### 4. Clear Cache Scheduler Trigger
|
|
2521
2613
|
|
|
2522
|
-
This trigger automatically cleans up expired cache entries based on their TTL (Time To Live).
|
|
2614
|
+
This trigger automatically cleans up expired cache entries based on their TTL (Time To Live).
|
|
2523
2615
|
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2616
|
+
**⚠️ Important:** While Forge KVS uses TTL to mark entries as expired, **actual deletion is asynchronous and may take up to 48 hours**. During this window, read operations may still return expired results. If your cache grows large and impacts INSERT/UPDATE performance, you should use this scheduler trigger to proactively clean up expired entries.
|
|
2617
|
+
|
|
2618
|
+
**When to use:**
|
|
2619
|
+
|
|
2620
|
+
- Your cache grows large over time
|
|
2621
|
+
- INSERT/UPDATE operations are slowing down due to cache size
|
|
2622
|
+
- You need strict expiry semantics (immediate cleanup)
|
|
2623
|
+
- You want to reduce storage costs proactively
|
|
2624
|
+
|
|
2625
|
+
**When optional:**
|
|
2626
|
+
|
|
2627
|
+
- Small cache footprint
|
|
2628
|
+
- No performance impact on data modifications
|
|
2629
|
+
- You can tolerate expired entries being returned for up to 48 hours
|
|
2528
2630
|
|
|
2529
2631
|
```typescript
|
|
2530
2632
|
// Example usage in your Forge app
|
|
@@ -2537,9 +2639,10 @@ export const clearCache = () => {
|
|
|
2537
2639
|
};
|
|
2538
2640
|
```
|
|
2539
2641
|
|
|
2540
|
-
Configure in `manifest.yml
|
|
2642
|
+
Configure in `manifest.yml` (optional - only if cache growth impacts INSERT/UPDATE performance):
|
|
2541
2643
|
|
|
2542
2644
|
```yaml
|
|
2645
|
+
# Optional: Only needed if cache growth impacts INSERT/UPDATE performance
|
|
2543
2646
|
scheduledTrigger:
|
|
2544
2647
|
- key: clear-cache-trigger
|
|
2545
2648
|
function: clearCache
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeSQLQueryBuilder.d.ts","sourceRoot":"","sources":["../../src/core/ForgeSQLQueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,aAAa,EAEb,kBAAkB,EAClB,UAAU,EACV,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACpB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,gCAAgC,EAChC,yCAAyC,EACzC,wBAAwB,EACxB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,IAAI,CAAC;AACZ,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI,eAAe,CACtE,kBAAkB,CAAC,CAAC,CAAC,EACrB,uBAAuB,CAAC,CAAC,CAAC,EAC1B,QAAQ,EACR,2BAA2B,EAC3B,kBAAkB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,EAC9F,KAAK,EACL,KAAK,EACL;KACG,CAAC,IAAI,MAAM;SACT,GAAG,IAAI,MAAM,uBAAuB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC9F,GAAG;SACD,GAAG,IAAI,MAAM,uBAAuB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC9F,CAAC,CAAC,CAAC;CACL,EAAE,EACH,GAAG,CACJ,CAAC;AACF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D;;;OAGG;IACH,sBAAsB,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;QACvE,aAAa,EAAE,iBAAiB,CAAC;QACjC,qBAAqB,EAAE,yBAAyB,CAAC;QACjD,YAAY,EAAE,YAAY,CAAC;QAC3B,sBAAsB,EAAE,0BAA0B,CAAC;QACnD,8BAA8B,EAAE,kCAAkC,CAAC;QACnE,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;QAChD,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;QAChD,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;QAChD,UAAU,EAAE,wBAAwB,CAAC;QACrC,kBAAkB,EAAE,gCAAgC,CAAC;QACrD,mBAAmB,EAAE,iCAAiC,CAAC;QACvD,2BAA2B,EAAE,yCAAyC,CAAC;KACxE,CAAC;IAEF;;;OAGG;IACH,oBAAoB,IAAI,6BAA6B,CAAC;IAEtD;;;OAGG;IACH,KAAK,IAAI,iBAAiB,CAAC;IAE3B;;;OAGG;IACH,OAAO,IAAI,qBAAqB,CAAC;IAEjC;;;;;;;;;OASG;IACH,iCAAiC,IAAI,uBAAuB,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI,IAAI,eAAe,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,sBAAsB,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;QACvE,aAAa,EAAE,iBAAiB,CAAC;QACjC,qBAAqB,EAAE,yBAAyB,CAAC;QACjD,YAAY,EAAE,YAAY,CAAC;QAC3B,sBAAsB,EAAE,0BAA0B,CAAC;QACnD,8BAA8B,EAAE,kCAAkC,CAAC;QACnE,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;QAChD,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;QAChD,mBAAmB,EAAE,uBAAuB,CAAC;QAC7C,sBAAsB,EAAE,uBAAuB,CAAC;KACjD,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,UAAU,SAAS,cAAc,EACtC,MAAM,EAAE,UAAU,GACjB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAE/D;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,UAAU,SAAS,cAAc,EAC9C,MAAM,EAAE,UAAU,GACjB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAC/D;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE5E;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,UAAU,SAAS,cAAc,EAC/C,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAE/D;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAEhG;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,CAAC,UAAU,SAAS,cAAc,EACvD,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAE/D;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,CAAC,SAAS,UAAU,EAC9C,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE3B;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,SAAS,UAAU,EAC9B,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IAEtF;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAM,SAAS,UAAU,EAC3C,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IAEtF;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,SAAS,UAAU,EAC9B,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IAEtF;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAM,SAAS,UAAU,EAC3C,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IAEtF;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,SAAS,UAAU,EAC9B,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IACnF;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAM,SAAS,UAAU,EAC3C,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,MAAM,EAAE,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;IAEnF;;;;;;;OAOG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;;;OAOG;IACH,qCAAqC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,0CAA0C,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmFG;IACH,mBAAmB,CAAC,CAAC,EACnB,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,UAAU,EAAE,CACV,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAAC;IACd;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,UAAU,GAAG,MAAM,GACzB,OAAO,CAAC,oBAAoB,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,UAAU,CAAC,CAAC,EACV,KAAK,EAAE,UAAU,GAAG,MAAM,GACzB,OAAO,CAAC,oBAAoB,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACH,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,CAAC,EAChB,KAAK,EAAE,UAAU,GAAG,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG;QAChC,MAAM,EAAE;YACN,IAAI,kBAAkB,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YAC/D,CAAC,UAAU,SAAS,cAAc,EAChC,MAAM,EAAE,UAAU,GACjB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;SAChE,CAAC;QACF,cAAc,EAAE;YACd,IAAI,kBAAkB,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YAC/D,CAAC,UAAU,SAAS,cAAc,EAChC,MAAM,EAAE,UAAU,GACjB,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;SAChE,CAAC;KACH,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,SAAS,aAAa,EAC5B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAC7B,cAAc,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,SAAS,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7E;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,CAAC,SAAS,aAAa,EAChC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACpC,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,CAAC,SAAS,aAAa,EAClC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACxC,MAAM,EAAE,CAAC,EACT,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,6BAA6B;IAClE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAErE;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE/E;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEtF;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAErD;;;;;;OAMG;IACH,qBAAqB,CACnB,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,CAAC,EAAE,IAAI,EACf,MAAM,CAAC,EAAE,IAAI,GACZ,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAE3C;;;;;;OAMG;IACH,wBAAwB,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,CAAC,EAAE,IAAI,EACf,MAAM,CAAC,EAAE,IAAI,GACZ,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,CAAC,0BAA0B,CAAC,EAC1E,KAAK,EAAE,CAAC,GACP,OAAO,CACR,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CACxF,CAAC;IAEF;;;;;;;OAOG;IACH,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtF;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,IAAI,MAAM,CAAC;IAExB;;;;OAIG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;;;OAIG;IACH,YAAY,IAAI,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtC;;;;OAIG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;IAEhE;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;IAElD;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;IAEnD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,WAAW,CAAC;IAEnE;;;;OAIG;IACH,MAAM,IAAI,6BAA6B,CAAC;CACzC;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;;;OAaG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAAC;IAC/F;;;;;;;;;;;;;OAaG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAAC;IAC/F;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,6BAA6B,CAAC;IACjG;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CACjB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,6BAA6B,CAAC;IAEjC;;;;OAIG;IACH,MAAM,IAAI,WAAW,CAAC;IAEtB;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,6BAA6B,CAAC;IAE3F;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,6BAA6B,CAAC;IAE3F;;;;;;;OAOG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAuBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBApBT,MAAM;;;;;;;;;;iBAAN,MAAM;;;;;;;;;CAwB5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAhCV,MAAM;;;;;;;;;;iBAAN,MAAM;;;;;;;;;CAoC5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;iBA5CL,MAAM;;;;;;;;;;iBAAN,MAAM;;;;;;;;;CA4CmD,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;iBApDL,MAAM;;;;;;;;;;iBAAN,MAAM;;;;;;;;;CAoDqD,CAAC"}
|
|
1
|
+
{"version":3,"file":"ForgeSQLQueryBuilder.d.ts","sourceRoot":"","sources":["../../src/core/ForgeSQLQueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,26 @@ const sqlUtils_1 = require("../utils/sqlUtils");
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a custom type for date/time fields with specified format and timestamp validation.
|
|
8
8
|
*/
|
|
9
|
+
function normalizeDateOnlyValue(value) {
|
|
10
|
+
if (typeof value !== "string") {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
const trimmedValue = value.trim();
|
|
14
|
+
const dotSeparatedMatch = /^(\d{2})\.(\d{2})\.(\d{4})$/.exec(trimmedValue);
|
|
15
|
+
if (dotSeparatedMatch) {
|
|
16
|
+
const [, day, month, year] = dotSeparatedMatch;
|
|
17
|
+
return `${year}-${month}-${day} 00:00:00.000`;
|
|
18
|
+
}
|
|
19
|
+
const slashSeparatedMatch = /^(\d{2})\/(\d{2})\/(\d{4})$/.exec(trimmedValue);
|
|
20
|
+
if (slashSeparatedMatch) {
|
|
21
|
+
const [, day, month, year] = slashSeparatedMatch;
|
|
22
|
+
return `${year}-${month}-${day} 00:00:00.000`;
|
|
23
|
+
}
|
|
24
|
+
if (trimmedValue.length === 10) {
|
|
25
|
+
return `${trimmedValue} 00:00:00.000`;
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
9
29
|
function createDateCustomType(dataType, format, isTimeStamp) {
|
|
10
30
|
return (0, mysql_core_1.customType)({
|
|
11
31
|
dataType() {
|
|
@@ -15,6 +35,9 @@ function createDateCustomType(dataType, format, isTimeStamp) {
|
|
|
15
35
|
return (0, sqlUtils_1.formatDateTime)(value, format, isTimeStamp);
|
|
16
36
|
},
|
|
17
37
|
fromDriver(value) {
|
|
38
|
+
if (value === null || value === undefined) {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
18
41
|
return (0, sqlUtils_1.parseDateTime)(value, format);
|
|
19
42
|
},
|
|
20
43
|
});
|
|
@@ -25,7 +48,21 @@ function createDateCustomType(dataType, format, isTimeStamp) {
|
|
|
25
48
|
*
|
|
26
49
|
* @type {CustomType}
|
|
27
50
|
*/
|
|
28
|
-
exports.forgeDateTimeString =
|
|
51
|
+
exports.forgeDateTimeString = (0, mysql_core_1.customType)({
|
|
52
|
+
dataType() {
|
|
53
|
+
return "datetime";
|
|
54
|
+
},
|
|
55
|
+
toDriver(value) {
|
|
56
|
+
return (0, sqlUtils_1.formatDateTime)(value, "yyyy-MM-dd' 'HH:mm:ss.SSS", false);
|
|
57
|
+
},
|
|
58
|
+
fromDriver(value) {
|
|
59
|
+
if (value === null || value === undefined) {
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
const normalizedValue = normalizeDateOnlyValue(value);
|
|
63
|
+
return (0, sqlUtils_1.parseDateTime)(normalizedValue, "yyyy-MM-dd' 'HH:mm:ss.SSS");
|
|
64
|
+
},
|
|
65
|
+
});
|
|
29
66
|
/**
|
|
30
67
|
* Custom type for MySQL timestamp fields.
|
|
31
68
|
* Handles conversion between JavaScript Date objects and MySQL timestamp strings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeSQLQueryBuilder.js","sourceRoot":"","sources":["../../src/core/ForgeSQLQueryBuilder.ts"],"names":[],"mappings":";;;AAEA,uDAOgC;AAMhC,gDAAkE;AAkvClE;;GAEG;AACH,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAc,EAAE,WAAoB;IAClF,OAAO,IAAA,uBAAU,EAId;QACD,QAAQ;YACN,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,KAAW;YAClB,OAAO,IAAA,yBAAc,EAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,UAAU,CAAC,KAAc;YACvB,OAAO,IAAA,wBAAa,EAAC,KAAe,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"file":"ForgeSQLQueryBuilder.js","sourceRoot":"","sources":["../../src/core/ForgeSQLQueryBuilder.ts"],"names":[],"mappings":";;;AAEA,uDAOgC;AAMhC,gDAAkE;AAkvClE;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAElC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC;QAC/C,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,eAAe,CAAC;IAChD,CAAC;IAED,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7E,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,mBAAmB,CAAC;QACjD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,eAAe,CAAC;IAChD,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,GAAG,YAAY,eAAe,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAc,EAAE,WAAoB;IAClF,OAAO,IAAA,uBAAU,EAId;QACD,QAAQ;YACN,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,KAAW;YAClB,OAAO,IAAA,yBAAc,EAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,UAAU,CAAC,KAAc;YACvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,KAAwB,CAAC;YAClC,CAAC;YACD,OAAO,IAAA,wBAAa,EAAC,KAAe,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,IAAA,uBAAU,EAI1C;IACD,QAAQ;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,QAAQ,CAAC,KAAW;QAClB,OAAO,IAAA,yBAAc,EAAC,KAAK,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,UAAU,CAAC,KAAc;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAwB,CAAC;QAClC,CAAC;QACD,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,IAAA,wBAAa,EAAC,eAAyB,EAAE,2BAA2B,CAAC,CAAC;IAC/E,CAAC;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACU,QAAA,oBAAoB,GAAG,oBAAoB,CACtD,WAAW,EACX,2BAA2B,EAC3B,IAAI,CACL,CAAC;AAEF;;;;;GAKG;AACU,QAAA,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAEjF;;;;;GAKG;AACU,QAAA,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { type SQL, type AnyColumn } from "drizzle-orm";
|
|
2
|
+
type VectorConfig = {
|
|
3
|
+
dimension?: number;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Input accepted by TiDB vector SQL helpers.
|
|
7
|
+
*
|
|
8
|
+
* - `number[]`: converted to `VEC_FROM_TEXT('[...]')`
|
|
9
|
+
* - `string`: treated as raw SQL vector expression, for example:
|
|
10
|
+
* `CAST('[0.3, 0.5, -0.1]' AS VECTOR)`
|
|
11
|
+
* - `SQL` / `AnyColumn`: passed through as-is
|
|
12
|
+
*/
|
|
13
|
+
type VectorInput = string | number[] | SQL | AnyColumn;
|
|
14
|
+
/**
|
|
15
|
+
* TiDB `VECTOR` column type (same call shapes as other Drizzle MySQL builders).
|
|
16
|
+
*
|
|
17
|
+
* - `vectorTiDBType('embedding', { dimension: 1536 })` — SQL column name + fixed dimension (`VECTOR(1536)`).
|
|
18
|
+
* - `vectorTiDBType({ dimension: 1536 })` — config only; column name comes from the object key in `mysqlTable`.
|
|
19
|
+
* - `vectorTiDBType('embedding')` or `vectorTiDBType()` — `VECTOR` without a fixed size in DDL.
|
|
20
|
+
*
|
|
21
|
+
* Values are `number[]` in application code; the driver maps to TiDB’s text form.
|
|
22
|
+
*/
|
|
23
|
+
export declare const vectorTiDBType: {
|
|
24
|
+
(): import("drizzle-orm/mysql-core").MySqlCustomColumnBuilder<{
|
|
25
|
+
name: "";
|
|
26
|
+
dataType: "custom";
|
|
27
|
+
columnType: "MySqlCustomColumn";
|
|
28
|
+
data: number[];
|
|
29
|
+
driverParam: string;
|
|
30
|
+
enumValues: undefined;
|
|
31
|
+
}>;
|
|
32
|
+
<TConfig extends Record<string, any> & VectorConfig>(fieldConfig?: TConfig | undefined): import("drizzle-orm/mysql-core").MySqlCustomColumnBuilder<{
|
|
33
|
+
name: "";
|
|
34
|
+
dataType: "custom";
|
|
35
|
+
columnType: "MySqlCustomColumn";
|
|
36
|
+
data: number[];
|
|
37
|
+
driverParam: string;
|
|
38
|
+
enumValues: undefined;
|
|
39
|
+
}>;
|
|
40
|
+
<TName extends string>(dbName: TName, fieldConfig?: VectorConfig | undefined): import("drizzle-orm/mysql-core").MySqlCustomColumnBuilder<{
|
|
41
|
+
name: TName;
|
|
42
|
+
dataType: "custom";
|
|
43
|
+
columnType: "MySqlCustomColumn";
|
|
44
|
+
data: number[];
|
|
45
|
+
driverParam: string;
|
|
46
|
+
enumValues: undefined;
|
|
47
|
+
}>;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Converts a text representation of a vector into a TiDB VECTOR expression.
|
|
51
|
+
*
|
|
52
|
+
* TiDB function: `VEC_FROM_TEXT(string)`.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* vecFromText("[1, 2, 3]")
|
|
56
|
+
*/
|
|
57
|
+
export declare function vecFromText(text: string): SQL;
|
|
58
|
+
/**
|
|
59
|
+
* Converts a vector value/expression to its normalized string representation.
|
|
60
|
+
*
|
|
61
|
+
* TiDB function: `VEC_AS_TEXT(vector)`.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* vecAsText(table.embedding)
|
|
65
|
+
*/
|
|
66
|
+
export declare function vecAsText(vector: VectorInput): SQL<string>;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the dimension (number of elements) of a vector.
|
|
69
|
+
*
|
|
70
|
+
* TiDB function: `VEC_DIMS(vector)`.
|
|
71
|
+
*
|
|
72
|
+
* Accepts vector column/expression, `sql.raw(...)`, raw SQL string expression,
|
|
73
|
+
* or `number[]`.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* vecDims(table.embedding)
|
|
77
|
+
* vecDims(sql.raw("CAST('[0.3, 0.5, -0.1]' AS VECTOR)"))
|
|
78
|
+
* vecDims("CAST('[0.3, 0.5, -0.1]' AS VECTOR)")
|
|
79
|
+
*/
|
|
80
|
+
export declare function vecDims(vector: VectorInput): SQL<number>;
|
|
81
|
+
/**
|
|
82
|
+
* Calculates L2 norm (Euclidean norm) of a vector.
|
|
83
|
+
*
|
|
84
|
+
* TiDB function: `VEC_L2_NORM(vector)`.
|
|
85
|
+
*/
|
|
86
|
+
export declare function vecL2Norm(vector: VectorInput): SQL<number>;
|
|
87
|
+
/**
|
|
88
|
+
* Calculates L2 distance (Euclidean distance) between two vectors.
|
|
89
|
+
*
|
|
90
|
+
* TiDB function: `VEC_L2_DISTANCE(vector1, vector2)`.
|
|
91
|
+
*
|
|
92
|
+
* Both vectors must have the same dimensions.
|
|
93
|
+
*/
|
|
94
|
+
export declare function vecL2Distance(left: VectorInput, right: VectorInput): SQL<number>;
|
|
95
|
+
/**
|
|
96
|
+
* Calculates cosine distance between two vectors.
|
|
97
|
+
*
|
|
98
|
+
* TiDB function: `VEC_COSINE_DISTANCE(vector1, vector2)`.
|
|
99
|
+
*
|
|
100
|
+
* Both vectors must have the same dimensions.
|
|
101
|
+
*/
|
|
102
|
+
export declare function vecCosineDistance(left: VectorInput, right: VectorInput): SQL<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Calculates negative inner product distance between two vectors.
|
|
105
|
+
*
|
|
106
|
+
* TiDB function: `VEC_NEGATIVE_INNER_PRODUCT(vector1, vector2)`.
|
|
107
|
+
*
|
|
108
|
+
* Both vectors must have the same dimensions.
|
|
109
|
+
*/
|
|
110
|
+
export declare function vecNegativeInnerProduct(left: VectorInput, right: VectorInput): SQL<number>;
|
|
111
|
+
/**
|
|
112
|
+
* Calculates L1 distance (Manhattan distance) between two vectors.
|
|
113
|
+
*
|
|
114
|
+
* TiDB function: `VEC_L1_DISTANCE(vector1, vector2)`.
|
|
115
|
+
*
|
|
116
|
+
* Both vectors must have the same dimensions.
|
|
117
|
+
*/
|
|
118
|
+
export declare function vecL1Distance(left: VectorInput, right: VectorInput): SQL<number>;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=VectorTiDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorTiDB.d.ts","sourceRoot":"","sources":["../../src/core/VectorTiDB.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE5D,KAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAyCF;;;;;;;GAOG;AACH,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;AAYvD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAsBzB,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAE7C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAE1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAExD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAEpF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAE1F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAEhF"}
|