@rudderjs/database 1.1.0 → 1.2.0
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 +70 -0
- package/dist/db.d.ts +21 -3
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +27 -5
- package/dist/db.js.map +1 -1
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/dist/native/adapter.d.ts +202 -0
- package/dist/native/adapter.d.ts.map +1 -0
- package/dist/native/adapter.js +440 -0
- package/dist/native/adapter.js.map +1 -0
- package/dist/native/compiler.d.ts +371 -0
- package/dist/native/compiler.d.ts.map +1 -0
- package/dist/native/compiler.js +978 -0
- package/dist/native/compiler.js.map +1 -0
- package/dist/native/dialect-mysql.d.ts +26 -0
- package/dist/native/dialect-mysql.d.ts.map +1 -0
- package/dist/native/dialect-mysql.js +188 -0
- package/dist/native/dialect-mysql.js.map +1 -0
- package/dist/native/dialect-pg.d.ts +26 -0
- package/dist/native/dialect-pg.d.ts.map +1 -0
- package/dist/native/dialect-pg.js +192 -0
- package/dist/native/dialect-pg.js.map +1 -0
- package/dist/native/dialect.d.ts +255 -0
- package/dist/native/dialect.d.ts.map +1 -0
- package/dist/native/dialect.js +237 -0
- package/dist/native/dialect.js.map +1 -0
- package/dist/native/driver.d.ts +37 -0
- package/dist/native/driver.d.ts.map +1 -0
- package/dist/native/driver.js +19 -0
- package/dist/native/driver.js.map +1 -0
- package/dist/native/drivers/better-sqlite3.d.ts +56 -0
- package/dist/native/drivers/better-sqlite3.d.ts.map +1 -0
- package/dist/native/drivers/better-sqlite3.js +171 -0
- package/dist/native/drivers/better-sqlite3.js.map +1 -0
- package/dist/native/drivers/mysql.d.ts +30 -0
- package/dist/native/drivers/mysql.d.ts.map +1 -0
- package/dist/native/drivers/mysql.js +176 -0
- package/dist/native/drivers/mysql.js.map +1 -0
- package/dist/native/drivers/postgres.d.ts +57 -0
- package/dist/native/drivers/postgres.d.ts.map +1 -0
- package/dist/native/drivers/postgres.js +155 -0
- package/dist/native/drivers/postgres.js.map +1 -0
- package/dist/native/errors.d.ts +43 -0
- package/dist/native/errors.d.ts.map +1 -0
- package/dist/native/errors.js +64 -0
- package/dist/native/errors.js.map +1 -0
- package/dist/native/index.d.ts +27 -0
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +55 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native/isolation.d.ts +14 -0
- package/dist/native/isolation.d.ts.map +1 -0
- package/dist/native/isolation.js +37 -0
- package/dist/native/isolation.js.map +1 -0
- package/dist/native/query-builder.d.ts +303 -0
- package/dist/native/query-builder.d.ts.map +1 -0
- package/dist/native/query-builder.js +984 -0
- package/dist/native/query-builder.js.map +1 -0
- package/dist/native/replica-picker.d.ts +22 -0
- package/dist/native/replica-picker.d.ts.map +1 -0
- package/dist/native/replica-picker.js +65 -0
- package/dist/native/replica-picker.js.map +1 -0
- package/dist/native/schema/alter-blueprint.d.ts +37 -0
- package/dist/native/schema/alter-blueprint.d.ts.map +1 -0
- package/dist/native/schema/alter-blueprint.js +56 -0
- package/dist/native/schema/alter-blueprint.js.map +1 -0
- package/dist/native/schema/blueprint.d.ts +151 -0
- package/dist/native/schema/blueprint.d.ts.map +1 -0
- package/dist/native/schema/blueprint.js +286 -0
- package/dist/native/schema/blueprint.js.map +1 -0
- package/dist/native/schema/column.d.ts +168 -0
- package/dist/native/schema/column.d.ts.map +1 -0
- package/dist/native/schema/column.js +190 -0
- package/dist/native/schema/column.js.map +1 -0
- package/dist/native/schema/ddl-compiler.d.ts +34 -0
- package/dist/native/schema/ddl-compiler.d.ts.map +1 -0
- package/dist/native/schema/ddl-compiler.js +352 -0
- package/dist/native/schema/ddl-compiler.js.map +1 -0
- package/dist/native/schema/inspect.d.ts +67 -0
- package/dist/native/schema/inspect.d.ts.map +1 -0
- package/dist/native/schema/inspect.js +312 -0
- package/dist/native/schema/inspect.js.map +1 -0
- package/dist/native/schema/introspect.d.ts +34 -0
- package/dist/native/schema/introspect.d.ts.map +1 -0
- package/dist/native/schema/introspect.js +101 -0
- package/dist/native/schema/introspect.js.map +1 -0
- package/dist/native/schema/migration.d.ts +8 -0
- package/dist/native/schema/migration.d.ts.map +1 -0
- package/dist/native/schema/migration.js +19 -0
- package/dist/native/schema/migration.js.map +1 -0
- package/dist/native/schema/migrator.d.ts +144 -0
- package/dist/native/schema/migrator.d.ts.map +1 -0
- package/dist/native/schema/migrator.js +239 -0
- package/dist/native/schema/migrator.js.map +1 -0
- package/dist/native/schema/rebuild.d.ts +11 -0
- package/dist/native/schema/rebuild.d.ts.map +1 -0
- package/dist/native/schema/rebuild.js +92 -0
- package/dist/native/schema/rebuild.js.map +1 -0
- package/dist/native/schema/schema-builder.d.ts +46 -0
- package/dist/native/schema/schema-builder.d.ts.map +1 -0
- package/dist/native/schema/schema-builder.js +153 -0
- package/dist/native/schema/schema-builder.js.map +1 -0
- package/dist/native/schema/schema-facade.d.ts +63 -0
- package/dist/native/schema/schema-facade.d.ts.map +1 -0
- package/dist/native/schema/schema-facade.js +124 -0
- package/dist/native/schema/schema-facade.js.map +1 -0
- package/dist/native/schema/schema-types.d.ts +27 -0
- package/dist/native/schema/schema-types.d.ts.map +1 -0
- package/dist/native/schema/schema-types.js +52 -0
- package/dist/native/schema/schema-types.js.map +1 -0
- package/dist/native/schema/types-generator.d.ts +73 -0
- package/dist/native/schema/types-generator.d.ts.map +1 -0
- package/dist/native/schema/types-generator.js +181 -0
- package/dist/native/schema/types-generator.js.map +1 -0
- package/dist/registry-bridge.d.ts +24 -4
- package/dist/registry-bridge.d.ts.map +1 -1
- package/dist/registry-bridge.js +20 -0
- package/dist/registry-bridge.js.map +1 -1
- package/dist/sticky.d.ts +22 -0
- package/dist/sticky.d.ts.map +1 -0
- package/dist/sticky.js +61 -0
- package/dist/sticky.js.map +1 -0
- package/package.json +32 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/native/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type LockOptions } from '@rudderjs/contracts';
|
|
2
|
+
import { type Dialect, type DatePart, type JsonPathSegment, type JsonPathWrite, type JsonValueKind } from './dialect.js';
|
|
3
|
+
import type { ColumnDefinition } from './schema/column.js';
|
|
4
|
+
/**
|
|
5
|
+
* MySQL {@link Dialect} — backtick-quoted identifiers, `?` placeholders, and
|
|
6
|
+
* **no** `RETURNING`. Maps the portable {@link ColumnDefinition} types to MySQL
|
|
7
|
+
* storage types (parent plan Part 2's column-type table).
|
|
8
|
+
*/
|
|
9
|
+
export declare class MysqlDialect implements Dialect {
|
|
10
|
+
readonly name: "mysql";
|
|
11
|
+
readonly supportsReturning = false;
|
|
12
|
+
quoteId(identifier: string): string;
|
|
13
|
+
placeholder(_index: number): string;
|
|
14
|
+
booleanLiteral(value: boolean): string;
|
|
15
|
+
dateExtract(part: DatePart, column: string): string;
|
|
16
|
+
jsonExtract(column: string, segments: readonly JsonPathSegment[], valueKind: JsonValueKind): string;
|
|
17
|
+
jsonNullComparison(column: string, segments: readonly JsonPathSegment[], negated: boolean): string;
|
|
18
|
+
jsonBoolean(value: boolean): unknown;
|
|
19
|
+
jsonContains(column: string, segments: readonly JsonPathSegment[], value: unknown, bind: (v: unknown) => string): string;
|
|
20
|
+
jsonLength(column: string, segments: readonly JsonPathSegment[]): string;
|
|
21
|
+
jsonSet(column: string, writes: readonly JsonPathWrite[], bind: (v: unknown) => string): string;
|
|
22
|
+
lockSql(mode: 'update' | 'shared', opts?: LockOptions): string;
|
|
23
|
+
upsertClause(uniqueBy: readonly string[], update: readonly string[]): string;
|
|
24
|
+
columnTypeSql(column: ColumnDefinition): string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dialect-mysql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect-mysql.d.ts","sourceRoot":"","sources":["../../src/native/dialect-mysql.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;;;GAIG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAGhC,QAAQ,CAAC,iBAAiB,SAAQ;IAElC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAQnC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOnC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAOtC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAcnD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM;IAYnG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAclG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAKpC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAMxH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM;IASxE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAa/F,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM;IAY9D,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAM5E,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAsDhD"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// ─── MySQL dialect (per-SQL-flavor) ────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// The MySQL half of the {@link Dialect} seam (Phase 7.8). PURE — string building
|
|
4
|
+
// only, no `node:`, no driver, no I/O; the MySQL `Driver` (`drivers/mysql.ts`)
|
|
5
|
+
// and information_schema introspection live elsewhere.
|
|
6
|
+
//
|
|
7
|
+
// MySQL diverges from Postgres in three load-bearing ways the rest of the engine
|
|
8
|
+
// branches on:
|
|
9
|
+
// - **No `RETURNING`** (`supportsReturning = false`). MySQL 8 can't return the
|
|
10
|
+
// written rows, so the query builder takes its no-RETURNING path: reads the
|
|
11
|
+
// auto-increment id / affected-row count from the driver's result metadata
|
|
12
|
+
// (see `AffectingExecutor` in `driver.js`) and re-SELECTs by primary key.
|
|
13
|
+
// - **Backtick identifier quoting** (`` `id` ``), not double quotes.
|
|
14
|
+
// - **No real boolean type** — booleans store as `tinyint(1)` integers, so a
|
|
15
|
+
// boolean default renders as `1`/`0` (same as SQLite). On READ the driver's
|
|
16
|
+
// typeCast maps `tinyint(1)` back to JS booleans (Postgres parity).
|
|
17
|
+
import { raw } from '@rudderjs/contracts';
|
|
18
|
+
import { NativeOrmError } from './errors.js';
|
|
19
|
+
import { validateIdentifier, quoteValueList, jsonPathLiteral, } from './dialect.js';
|
|
20
|
+
/**
|
|
21
|
+
* MySQL {@link Dialect} — backtick-quoted identifiers, `?` placeholders, and
|
|
22
|
+
* **no** `RETURNING`. Maps the portable {@link ColumnDefinition} types to MySQL
|
|
23
|
+
* storage types (parent plan Part 2's column-type table).
|
|
24
|
+
*/
|
|
25
|
+
export class MysqlDialect {
|
|
26
|
+
name = 'mysql';
|
|
27
|
+
// MySQL 8 has no INSERT/UPDATE/DELETE ... RETURNING. The query builder reads
|
|
28
|
+
// write results from the driver's metadata instead (AffectingExecutor).
|
|
29
|
+
supportsReturning = false;
|
|
30
|
+
quoteId(identifier) {
|
|
31
|
+
const segments = validateIdentifier(identifier);
|
|
32
|
+
// MySQL quotes with backticks. Double any embedded backtick defensively —
|
|
33
|
+
// the allowlist already forbids them.
|
|
34
|
+
return segments.map(s => `\`${s.replace(/`/g, '``')}\``).join('.');
|
|
35
|
+
}
|
|
36
|
+
// MySQL uses literal `?` positional placeholders (index ignored), like SQLite.
|
|
37
|
+
placeholder(_index) {
|
|
38
|
+
return '?';
|
|
39
|
+
}
|
|
40
|
+
// MySQL has no boolean type — `BOOLEAN` is an alias for `tinyint(1)`, stored as
|
|
41
|
+
// an integer, so a boolean default renders as the matching integer literal.
|
|
42
|
+
// On read the driver's typeCast maps `tinyint(1)` back to JS booleans.
|
|
43
|
+
booleanLiteral(value) {
|
|
44
|
+
return value ? '1' : '0';
|
|
45
|
+
}
|
|
46
|
+
// MySQL ships dedicated extraction functions: DATE()/TIME() return date/time
|
|
47
|
+
// values that compare against bound 'YYYY-MM-DD' / 'HH:MM:SS' text, and
|
|
48
|
+
// DAY()/MONTH()/YEAR() return integers.
|
|
49
|
+
dateExtract(part, column) {
|
|
50
|
+
switch (part) {
|
|
51
|
+
case 'date': return `DATE(${column})`;
|
|
52
|
+
case 'time': return `TIME(${column})`;
|
|
53
|
+
case 'day': return `DAY(${column})`;
|
|
54
|
+
case 'month': return `MONTH(${column})`;
|
|
55
|
+
case 'year': return `YEAR(${column})`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// JSON_UNQUOTE(JSON_EXTRACT(col, '$."a"."b"')) — text for strings, and MySQL's
|
|
59
|
+
// loose comparison coerces text numbers against a bound number. Booleans skip
|
|
60
|
+
// the UNQUOTE: the raw JSON_EXTRACT (json true/false) compares against the
|
|
61
|
+
// spliced SQL literal `true`/`false` — Laravel's MySQL grammar shape.
|
|
62
|
+
jsonExtract(column, segments, valueKind) {
|
|
63
|
+
const extract = `JSON_EXTRACT(${column}, ${jsonPathLiteral(segments)})`;
|
|
64
|
+
return valueKind === 'boolean' ? extract : `JSON_UNQUOTE(${extract})`;
|
|
65
|
+
}
|
|
66
|
+
// MySQL's JSON_EXTRACT returns a JSON `null` LITERAL (not SQL NULL) for an
|
|
67
|
+
// explicit json null — `extract IS NULL` alone matches missing keys only,
|
|
68
|
+
// and JSON_UNQUOTE would turn the literal into the STRING 'null'. Laravel's
|
|
69
|
+
// grammar shape unifies both as null: missing key → IS NULL, explicit null
|
|
70
|
+
// → JSON_TYPE(extract) = 'NULL'. The negation must AND the inverses (note
|
|
71
|
+
// JSON_TYPE(NULL) is NULL, so the != 'NULL' arm alone is three-valued —
|
|
72
|
+
// the IS NOT NULL arm keeps a missing key from slipping through).
|
|
73
|
+
jsonNullComparison(column, segments, negated) {
|
|
74
|
+
const extract = `JSON_EXTRACT(${column}, ${jsonPathLiteral(segments)})`;
|
|
75
|
+
return negated
|
|
76
|
+
? `(${extract} IS NOT NULL AND JSON_TYPE(${extract}) != 'NULL')`
|
|
77
|
+
: `(${extract} IS NULL OR JSON_TYPE(${extract}) = 'NULL')`;
|
|
78
|
+
}
|
|
79
|
+
// Paired with the no-UNQUOTE boolean extraction above — splice the SQL
|
|
80
|
+
// literal `true`/`false` (an Expression rides compileComparison's verbatim
|
|
81
|
+
// path; nothing user-controlled, so inlining is safe). A BOUND 'true' string
|
|
82
|
+
// does NOT work: in a comparison with a JSON value MySQL coerces a string
|
|
83
|
+
// comparand to a JSON *string* ("true"), never a boolean, so
|
|
84
|
+
// `JSON_EXTRACT(…) = ?` with 'true' matched nothing (verified on MySQL 8 —
|
|
85
|
+
// `= 'true'` → 0, `= true` → 1, `= CAST('true' AS JSON)` → 1).
|
|
86
|
+
jsonBoolean(value) {
|
|
87
|
+
return raw(value ? 'true' : 'false');
|
|
88
|
+
}
|
|
89
|
+
// Native JSON_CONTAINS(col, candidate[, path]) — candidate bound as JSON text.
|
|
90
|
+
jsonContains(column, segments, value, bind) {
|
|
91
|
+
const path = segments.length === 0 ? '' : `, ${jsonPathLiteral(segments)}`;
|
|
92
|
+
return `JSON_CONTAINS(${column}, ${bind(JSON.stringify(value))}${path})`;
|
|
93
|
+
}
|
|
94
|
+
// JSON_LENGTH(col[, path]).
|
|
95
|
+
jsonLength(column, segments) {
|
|
96
|
+
const path = segments.length === 0 ? '' : `, ${jsonPathLiteral(segments)}`;
|
|
97
|
+
return `JSON_LENGTH(${column}${path})`;
|
|
98
|
+
}
|
|
99
|
+
// JSON_SET takes (path, value) varargs — one call covers every write on the
|
|
100
|
+
// column. `CAST(? AS JSON)` parses the bound JSON text so all value types
|
|
101
|
+
// land as real JSON values (a bare bound string would store a JSON string —
|
|
102
|
+
// fine for strings, wrong for booleans/numbers/objects).
|
|
103
|
+
jsonSet(column, writes, bind) {
|
|
104
|
+
const args = writes
|
|
105
|
+
.map(w => `${jsonPathLiteral(w.segments)}, CAST(${bind(JSON.stringify(w.value))} AS JSON)`)
|
|
106
|
+
.join(', ');
|
|
107
|
+
return `JSON_SET(${column}, ${args})`;
|
|
108
|
+
}
|
|
109
|
+
// MySQL 8 row-level locking — suffix trails ORDER BY / LIMIT. `FOR SHARE`
|
|
110
|
+
// replaced the legacy `LOCK IN SHARE MODE` in 8.0.1 and is the form used
|
|
111
|
+
// here; `SKIP LOCKED` / `NOWAIT` arrived in the same release (8.0.1) and
|
|
112
|
+
// only attach to the FOR UPDATE/FOR SHARE forms (never the legacy one).
|
|
113
|
+
// NOWAIT raises ER_LOCK_NOWAIT (3572) instead of blocking. Mutual
|
|
114
|
+
// exclusivity is validated upstream by the QueryBuilder.
|
|
115
|
+
lockSql(mode, opts) {
|
|
116
|
+
const base = mode === 'shared' ? ' FOR SHARE' : ' FOR UPDATE';
|
|
117
|
+
if (opts?.skipLocked)
|
|
118
|
+
return `${base} SKIP LOCKED`;
|
|
119
|
+
if (opts?.noWait)
|
|
120
|
+
return `${base} NOWAIT`;
|
|
121
|
+
return base;
|
|
122
|
+
}
|
|
123
|
+
// MySQL has no ON CONFLICT target — it keys off whatever unique index the row
|
|
124
|
+
// collides with, so `uniqueBy` is ignored. `VALUES(col)` references the would-be
|
|
125
|
+
// inserted value (deprecated in 8.0.20+ but still supported and the widely
|
|
126
|
+
// compatible form). An empty `update` degrades to a no-op self-assignment on the
|
|
127
|
+
// first uniqueBy column so a conflicting row is left untouched (insert-or-ignore).
|
|
128
|
+
upsertClause(uniqueBy, update) {
|
|
129
|
+
const cols = update.length > 0 ? update : uniqueBy.slice(0, 1);
|
|
130
|
+
const sets = cols.map(c => `${this.quoteId(c)} = VALUES(${this.quoteId(c)})`).join(', ');
|
|
131
|
+
return `ON DUPLICATE KEY UPDATE ${sets}`;
|
|
132
|
+
}
|
|
133
|
+
columnTypeSql(column) {
|
|
134
|
+
if (column.autoIncrement) {
|
|
135
|
+
// MySQL requires an AUTO_INCREMENT column to be a key; bundling PRIMARY KEY
|
|
136
|
+
// here means the compiler appends no further modifiers (matching the
|
|
137
|
+
// SqliteDialect / PgDialect contract for auto-increment columns). Signed
|
|
138
|
+
// `bigint` (not UNSIGNED) so it matches `bigInteger` foreign keys — MySQL
|
|
139
|
+
// rejects an FK whose signedness differs from the referenced column.
|
|
140
|
+
return 'bigint AUTO_INCREMENT PRIMARY KEY';
|
|
141
|
+
}
|
|
142
|
+
switch (column.type) {
|
|
143
|
+
// A non-auto `increments` column is defensive (Blueprint always sets
|
|
144
|
+
// autoIncrement on increments) — fall back to a plain int.
|
|
145
|
+
case 'increments': return 'int';
|
|
146
|
+
case 'integer': return 'int';
|
|
147
|
+
case 'bigInteger': return 'bigint';
|
|
148
|
+
// MySQL has the full small-integer family natively.
|
|
149
|
+
case 'tinyInteger': return 'tinyint';
|
|
150
|
+
case 'smallInteger': return 'smallint';
|
|
151
|
+
case 'mediumInteger': return 'mediumint';
|
|
152
|
+
// `string` carries a length (Blueprint defaults it to 255); MySQL honours it.
|
|
153
|
+
case 'string': return `varchar(${column.length ?? 255})`;
|
|
154
|
+
case 'char': return `char(${column.length ?? 255})`;
|
|
155
|
+
case 'text': return 'text';
|
|
156
|
+
case 'mediumText': return 'mediumtext';
|
|
157
|
+
case 'longText': return 'longtext';
|
|
158
|
+
// BOOLEAN is a tinyint(1) alias; spell it out so introspection reads
|
|
159
|
+
// `tinyint` and a `boolean` cast refines it back to `boolean`.
|
|
160
|
+
case 'boolean': return 'tinyint(1)';
|
|
161
|
+
case 'date': return 'date';
|
|
162
|
+
case 'time': return column.precision === undefined ? 'time' : `time(${column.precision})`;
|
|
163
|
+
// MySQL distinguishes datetime (no tz, full range) from timestamp (UTC,
|
|
164
|
+
// 1970–2038, auto-update quirks). Map the portable types straight across.
|
|
165
|
+
case 'dateTime': return 'datetime';
|
|
166
|
+
case 'timestamp': return 'timestamp';
|
|
167
|
+
// MySQL has no jsonb — its `json` type is already binary-backed.
|
|
168
|
+
case 'json':
|
|
169
|
+
case 'jsonb': return 'json';
|
|
170
|
+
// MySQL has no native UUID/ULID type — store as fixed-width char.
|
|
171
|
+
case 'uuid': return 'char(36)';
|
|
172
|
+
case 'ulid': return 'char(26)';
|
|
173
|
+
case 'decimal': return `decimal(${column.precision ?? 8}, ${column.scale ?? 2})`;
|
|
174
|
+
case 'float': return 'double';
|
|
175
|
+
case 'double': return 'double';
|
|
176
|
+
case 'binary': return 'blob';
|
|
177
|
+
// MySQL has both enum and set natively.
|
|
178
|
+
case 'enum': return `enum(${quoteValueList(column.enumValues ?? [])})`;
|
|
179
|
+
case 'set': return `set(${quoteValueList(column.enumValues ?? [])})`;
|
|
180
|
+
default: {
|
|
181
|
+
// Exhaustiveness guard — a new ColumnType must extend this switch.
|
|
182
|
+
const unreachable = column.type;
|
|
183
|
+
throw new NativeOrmError('NATIVE_DDL_UNKNOWN_TYPE', `[RudderJS ORM native] No MySQL type mapping for column type ${JSON.stringify(unreachable)}.`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=dialect-mysql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect-mysql.js","sourceRoot":"","sources":["../../src/native/dialect-mysql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Dialect, type DatePart, type JsonPathSegment, type JsonPathWrite, type JsonValueKind } from './dialect.js';
|
|
2
|
+
import type { ColumnDefinition } from './schema/column.js';
|
|
3
|
+
import type { LockOptions } from '@rudderjs/contracts';
|
|
4
|
+
/**
|
|
5
|
+
* Postgres {@link Dialect} — `"`-quoted identifiers, `$1`/`$2`/… placeholders,
|
|
6
|
+
* `RETURNING` supported. Maps the portable {@link ColumnDefinition} types to
|
|
7
|
+
* Postgres storage types (parent plan Part 2's column-type table).
|
|
8
|
+
*/
|
|
9
|
+
export declare class PgDialect implements Dialect {
|
|
10
|
+
readonly name: "pg";
|
|
11
|
+
readonly supportsReturning = true;
|
|
12
|
+
quoteId(identifier: string): string;
|
|
13
|
+
placeholder(index: number): string;
|
|
14
|
+
booleanLiteral(value: boolean): string;
|
|
15
|
+
dateExtract(part: DatePart, column: string): string;
|
|
16
|
+
jsonExtract(column: string, segments: readonly JsonPathSegment[], valueKind: JsonValueKind): string;
|
|
17
|
+
jsonNullComparison(column: string, segments: readonly JsonPathSegment[], negated: boolean): string;
|
|
18
|
+
jsonBoolean(value: boolean): unknown;
|
|
19
|
+
jsonContains(column: string, segments: readonly JsonPathSegment[], value: unknown, bind: (v: unknown) => string): string;
|
|
20
|
+
jsonLength(column: string, segments: readonly JsonPathSegment[]): string;
|
|
21
|
+
jsonSet(column: string, writes: readonly JsonPathWrite[], bind: (v: unknown) => string): string;
|
|
22
|
+
lockSql(mode: 'update' | 'shared', opts?: LockOptions): string;
|
|
23
|
+
upsertClause(uniqueBy: readonly string[], update: readonly string[]): string;
|
|
24
|
+
columnTypeSql(column: ColumnDefinition): string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dialect-pg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect-pg.d.ts","sourceRoot":"","sources":["../../src/native/dialect-pg.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAiBtD;;;;GAIG;AACH,qBAAa,SAAU,YAAW,OAAO;IACvC,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAS;IAC7B,QAAQ,CAAC,iBAAiB,QAAO;IAEjC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAUnC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMlC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAStC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAcnD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM;IASnG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAKlG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAOpC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAMxH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM;IAYxE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAc/F,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM;IAS9D,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAO5E,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CA0DhD"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// ─── Postgres dialect (per-SQL-flavor) ─────────────────────
|
|
2
|
+
//
|
|
3
|
+
// The Postgres half of the {@link Dialect} seam (Phase 7.7). PURE — string
|
|
4
|
+
// building only, no `node:`, no driver, no I/O; the Postgres `Driver`
|
|
5
|
+
// (`drivers/postgres.ts`) and information_schema introspection live elsewhere.
|
|
6
|
+
//
|
|
7
|
+
// Postgres is the richest dialect: real `boolean`, `jsonb`, `timestamptz`,
|
|
8
|
+
// native `uuid`/`bytea`, sequence-backed `bigserial` identity, and `$n`
|
|
9
|
+
// positional placeholders. Identifiers are double-quoted (same as SQLite) and
|
|
10
|
+
// validated through the shared {@link validateIdentifier} security gate.
|
|
11
|
+
import { NativeOrmError } from './errors.js';
|
|
12
|
+
import { validateIdentifier, quoteValueList, } from './dialect.js';
|
|
13
|
+
/**
|
|
14
|
+
* Render a pg JSON arrow chain — `col->'a'->'b'`, with the LAST hop as `->>`
|
|
15
|
+
* (text) when `lastAsText`. String segments are single-quoted literals (safe:
|
|
16
|
+
* {@link parseJsonPath} rejected quotes/backslashes); numeric segments splice
|
|
17
|
+
* bare (`->0` = array index — quoting would make pg treat it as an object key).
|
|
18
|
+
*/
|
|
19
|
+
function pgJsonChain(column, segments, lastAsText) {
|
|
20
|
+
return column + segments
|
|
21
|
+
.map((s, i) => {
|
|
22
|
+
const op = lastAsText && i === segments.length - 1 ? '->>' : '->';
|
|
23
|
+
return typeof s === 'number' ? `${op}${s}` : `${op}'${s}'`;
|
|
24
|
+
})
|
|
25
|
+
.join('');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Postgres {@link Dialect} — `"`-quoted identifiers, `$1`/`$2`/… placeholders,
|
|
29
|
+
* `RETURNING` supported. Maps the portable {@link ColumnDefinition} types to
|
|
30
|
+
* Postgres storage types (parent plan Part 2's column-type table).
|
|
31
|
+
*/
|
|
32
|
+
export class PgDialect {
|
|
33
|
+
name = 'pg';
|
|
34
|
+
supportsReturning = true;
|
|
35
|
+
quoteId(identifier) {
|
|
36
|
+
const segments = validateIdentifier(identifier);
|
|
37
|
+
// Postgres folds unquoted identifiers to lowercase, so we always quote to
|
|
38
|
+
// preserve casing and let reserved words through. Double any embedded `"`
|
|
39
|
+
// defensively — the allowlist already forbids them.
|
|
40
|
+
return segments.map(s => `"${s.replace(/"/g, '""')}"`).join('.');
|
|
41
|
+
}
|
|
42
|
+
// Postgres uses 1-based positional placeholders ($1, $2, …); the query
|
|
43
|
+
// compiler feeds a zero-based index.
|
|
44
|
+
placeholder(index) {
|
|
45
|
+
return `$${index + 1}`;
|
|
46
|
+
}
|
|
47
|
+
// Postgres has a real boolean type — `DEFAULT 1` is a type error; it wants the
|
|
48
|
+
// `true`/`false` keyword.
|
|
49
|
+
booleanLiteral(value) {
|
|
50
|
+
return value ? 'true' : 'false';
|
|
51
|
+
}
|
|
52
|
+
// Postgres date-component extraction: `::date`/`::time` casts compare against
|
|
53
|
+
// a bound text value (the planner types the parameter from context), and
|
|
54
|
+
// `EXTRACT(... )::int` yields a real integer for `day`/`month`/`year`
|
|
55
|
+
// (EXTRACT alone returns `numeric`, which compares fine, but `::int` keeps
|
|
56
|
+
// the driver-returned value an int for any projection reuse).
|
|
57
|
+
dateExtract(part, column) {
|
|
58
|
+
switch (part) {
|
|
59
|
+
case 'date': return `${column}::date`;
|
|
60
|
+
case 'time': return `${column}::time`;
|
|
61
|
+
case 'day': return `EXTRACT(DAY FROM ${column})::int`;
|
|
62
|
+
case 'month': return `EXTRACT(MONTH FROM ${column})::int`;
|
|
63
|
+
case 'year': return `EXTRACT(YEAR FROM ${column})::int`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Arrow chain with a text (`->>`) last hop, cast when the comparison value
|
|
67
|
+
// is typed: `::numeric` so `>`/`<` compare numbers (text '10' < '9'),
|
|
68
|
+
// `::boolean` so a bound JS boolean compares ('true'/'false' text coerces).
|
|
69
|
+
// Text comparisons stay uncast — the planner types the parameter from context.
|
|
70
|
+
jsonExtract(column, segments, valueKind) {
|
|
71
|
+
const chain = pgJsonChain(column, segments, true);
|
|
72
|
+
if (valueKind === 'number')
|
|
73
|
+
return `(${chain})::numeric`;
|
|
74
|
+
if (valueKind === 'boolean')
|
|
75
|
+
return `(${chain})::boolean`;
|
|
76
|
+
return chain;
|
|
77
|
+
}
|
|
78
|
+
// `->>` surfaces BOTH a missing key and an explicit json null as SQL NULL —
|
|
79
|
+
// the plain IS [NOT] NULL on the (uncast) text chain is correct.
|
|
80
|
+
jsonNullComparison(column, segments, negated) {
|
|
81
|
+
return `${this.jsonExtract(column, segments, 'text')} IS ${negated ? 'NOT ' : ''}NULL`;
|
|
82
|
+
}
|
|
83
|
+
// The extraction is `::boolean`-cast — bind the JS boolean itself.
|
|
84
|
+
jsonBoolean(value) {
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
// jsonb containment: `(col->'a')::jsonb @> $n::jsonb`, the value bound as
|
|
88
|
+
// JSON text. The `->` chain (no `->>`) keeps the LHS json; `::jsonb` covers
|
|
89
|
+
// plain-json columns (no-op on jsonb, which our `json` column type maps to).
|
|
90
|
+
jsonContains(column, segments, value, bind) {
|
|
91
|
+
const lhs = segments.length === 0 ? column : pgJsonChain(column, segments, false);
|
|
92
|
+
return `(${lhs})::jsonb @> ${bind(JSON.stringify(value))}::jsonb`;
|
|
93
|
+
}
|
|
94
|
+
// jsonb_array_length over the (cast) arrow chain — matches Laravel's pg grammar.
|
|
95
|
+
jsonLength(column, segments) {
|
|
96
|
+
const lhs = segments.length === 0 ? column : pgJsonChain(column, segments, false);
|
|
97
|
+
return `jsonb_array_length((${lhs})::jsonb)`;
|
|
98
|
+
}
|
|
99
|
+
// jsonb_set takes a single text[] path — nest one wrap per write. Path
|
|
100
|
+
// elements are single-quoted literals (safe: parseJsonPath rejected quotes/
|
|
101
|
+
// backslashes); numeric segments render as their text form ('0'), which
|
|
102
|
+
// jsonb_set treats as an array index against a JSON array. The bound value
|
|
103
|
+
// is JSON text re-typed via `::jsonb` (the PostgresDriver's json type
|
|
104
|
+
// override passes the pre-stringified text verbatim — #871). `(col)::jsonb`
|
|
105
|
+
// covers plain-json columns (no-op on jsonb, which our `json` type maps to).
|
|
106
|
+
jsonSet(column, writes, bind) {
|
|
107
|
+
let expr = `(${column})::jsonb`;
|
|
108
|
+
for (const w of writes) {
|
|
109
|
+
const path = `ARRAY[${w.segments.map(s => `'${s}'`).join(', ')}]`;
|
|
110
|
+
expr = `jsonb_set(${expr}, ${path}, ${bind(JSON.stringify(w.value))}::jsonb)`;
|
|
111
|
+
}
|
|
112
|
+
return expr;
|
|
113
|
+
}
|
|
114
|
+
// Real row-level pessimistic locking — the suffix trails ORDER BY / LIMIT.
|
|
115
|
+
// `FOR UPDATE` blocks concurrent writers; `FOR SHARE` blocks only writers.
|
|
116
|
+
// Wait behavior: `SKIP LOCKED` skips rows another transaction holds (the
|
|
117
|
+
// job-reservation pattern), `NOWAIT` raises 55P03 instead of blocking.
|
|
118
|
+
// Mutual exclusivity is validated upstream by the QueryBuilder.
|
|
119
|
+
lockSql(mode, opts) {
|
|
120
|
+
const base = mode === 'shared' ? ' FOR SHARE' : ' FOR UPDATE';
|
|
121
|
+
if (opts?.skipLocked)
|
|
122
|
+
return `${base} SKIP LOCKED`;
|
|
123
|
+
if (opts?.noWait)
|
|
124
|
+
return `${base} NOWAIT`;
|
|
125
|
+
return base;
|
|
126
|
+
}
|
|
127
|
+
// Postgres shares SQLite's `ON CONFLICT (target) DO UPDATE`/`DO NOTHING` form,
|
|
128
|
+
// referencing the rejected row via the `excluded` pseudo-table.
|
|
129
|
+
upsertClause(uniqueBy, update) {
|
|
130
|
+
const target = uniqueBy.map(c => this.quoteId(c)).join(', ');
|
|
131
|
+
if (update.length === 0)
|
|
132
|
+
return `ON CONFLICT (${target}) DO NOTHING`;
|
|
133
|
+
const sets = update.map(c => `${this.quoteId(c)} = excluded.${this.quoteId(c)}`).join(', ');
|
|
134
|
+
return `ON CONFLICT (${target}) DO UPDATE SET ${sets}`;
|
|
135
|
+
}
|
|
136
|
+
columnTypeSql(column) {
|
|
137
|
+
if (column.autoIncrement) {
|
|
138
|
+
// `bigserial` is the sequence-backed auto-increment column; bundling the
|
|
139
|
+
// PRIMARY KEY here means the compiler appends no further modifiers (matching
|
|
140
|
+
// the SqliteDialect contract for auto-increment columns).
|
|
141
|
+
return 'bigserial PRIMARY KEY';
|
|
142
|
+
}
|
|
143
|
+
switch (column.type) {
|
|
144
|
+
// A non-auto `increments` column is defensive (Blueprint always sets
|
|
145
|
+
// autoIncrement on increments) — fall back to a plain `serial`.
|
|
146
|
+
case 'increments': return 'serial';
|
|
147
|
+
case 'integer': return 'integer';
|
|
148
|
+
case 'bigInteger': return 'bigint';
|
|
149
|
+
// pg has no tinyint/mediumint — smallint covers tiny/small, integer covers medium.
|
|
150
|
+
case 'tinyInteger':
|
|
151
|
+
case 'smallInteger': return 'smallint';
|
|
152
|
+
case 'mediumInteger': return 'integer';
|
|
153
|
+
// `string` carries a length (Blueprint defaults it to 255); pg honours it.
|
|
154
|
+
case 'string': return `varchar(${column.length ?? 255})`;
|
|
155
|
+
case 'char': return `char(${column.length ?? 255})`;
|
|
156
|
+
// pg has no mediumtext/longtext — `text` is unbounded and covers both.
|
|
157
|
+
case 'text':
|
|
158
|
+
case 'mediumText':
|
|
159
|
+
case 'longText': return 'text';
|
|
160
|
+
case 'boolean': return 'boolean';
|
|
161
|
+
case 'date': return 'date';
|
|
162
|
+
// Optional fractional-seconds precision → time(p); plain time otherwise.
|
|
163
|
+
case 'time': return column.precision === undefined ? 'time' : `time(${column.precision})`;
|
|
164
|
+
// Both dateTime and timestamp map to timestamptz — timezone-aware is the
|
|
165
|
+
// safer default and matches the plan's column-type table.
|
|
166
|
+
case 'dateTime':
|
|
167
|
+
case 'timestamp': return 'timestamptz';
|
|
168
|
+
// json maps to jsonb (binary, indexable) — the pg-idiomatic default; jsonb
|
|
169
|
+
// is explicit.
|
|
170
|
+
case 'json':
|
|
171
|
+
case 'jsonb': return 'jsonb';
|
|
172
|
+
case 'uuid': return 'uuid';
|
|
173
|
+
case 'ulid': return 'char(26)';
|
|
174
|
+
case 'decimal': return `numeric(${column.precision ?? 8}, ${column.scale ?? 2})`;
|
|
175
|
+
case 'float': return 'double precision';
|
|
176
|
+
case 'double': return 'double precision';
|
|
177
|
+
case 'binary': return 'bytea';
|
|
178
|
+
// pg has no native enum-by-value-list inline; mirror Laravel's pg grammar:
|
|
179
|
+
// a varchar + CHECK (… IN (…)). `set` has no pg equivalent.
|
|
180
|
+
case 'enum':
|
|
181
|
+
return `varchar(255) CHECK (${this.quoteId(column.name)} IN (${quoteValueList(column.enumValues ?? [])}))`;
|
|
182
|
+
case 'set':
|
|
183
|
+
throw new NativeOrmError('NATIVE_DDL_UNSUPPORTED_TYPE', `[RudderJS ORM native] Postgres has no SET column type ("${column.name}"). Use enum(), a json column, or a join table.`);
|
|
184
|
+
default: {
|
|
185
|
+
// Exhaustiveness guard — a new ColumnType must extend this switch.
|
|
186
|
+
const unreachable = column.type;
|
|
187
|
+
throw new NativeOrmError('NATIVE_DDL_UNKNOWN_TYPE', `[RudderJS ORM native] No Postgres type mapping for column type ${JSON.stringify(unreachable)}.`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=dialect-pg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect-pg.js","sourceRoot":"","sources":["../../src/native/dialect-pg.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,sEAAsE;AACtE,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,yEAAyE;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,kBAAkB,EAClB,cAAc,GAMf,MAAM,cAAc,CAAA;AAIrB;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,QAAoC,EAAE,UAAmB;IAC5F,OAAO,MAAM,GAAG,QAAQ;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,UAAU,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACjE,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;IAC5D,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,IAAa,CAAA;IACpB,iBAAiB,GAAG,IAAI,CAAA;IAEjC,OAAO,CAAC,UAAkB;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,0EAA0E;QAC1E,0EAA0E;QAC1E,oDAAoD;QACpD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClE,CAAC;IAED,uEAAuE;IACvE,qCAAqC;IACrC,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,+EAA+E;IAC/E,0BAA0B;IAC1B,cAAc,CAAC,KAAc;QAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACjC,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,8DAA8D;IAC9D,WAAW,CAAC,IAAc,EAAE,MAAc;QACxC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAE,OAAO,GAAG,MAAM,QAAQ,CAAA;YACtC,KAAK,MAAM,CAAC,CAAE,OAAO,GAAG,MAAM,QAAQ,CAAA;YACtC,KAAK,KAAK,CAAC,CAAG,OAAO,oBAAoB,MAAM,QAAQ,CAAA;YACvD,KAAK,OAAO,CAAC,CAAC,OAAO,sBAAsB,MAAM,QAAQ,CAAA;YACzD,KAAK,MAAM,CAAC,CAAE,OAAO,qBAAqB,MAAM,QAAQ,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,4EAA4E;IAC5E,+EAA+E;IAC/E,WAAW,CAAC,MAAc,EAAE,QAAoC,EAAE,SAAwB;QACxF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,SAAS,KAAK,QAAQ;YAAG,OAAO,IAAI,KAAK,YAAY,CAAA;QACzD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,KAAK,YAAY,CAAA;QACzD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,kBAAkB,CAAC,MAAc,EAAE,QAAoC,EAAE,OAAgB;QACvF,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;IACxF,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,KAAc;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,YAAY,CAAC,MAAc,EAAE,QAAoC,EAAE,KAAc,EAAE,IAA4B;QAC7G,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACjF,OAAO,IAAI,GAAG,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAA;IACnE,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,MAAc,EAAE,QAAoC;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACjF,OAAO,uBAAuB,GAAG,WAAW,CAAA;IAC9C,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,2EAA2E;IAC3E,sEAAsE;IACtE,4EAA4E;IAC5E,6EAA6E;IAC7E,OAAO,CAAC,MAAc,EAAE,MAAgC,EAAE,IAA4B;QACpF,IAAI,IAAI,GAAG,IAAI,MAAM,UAAU,CAAA;QAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;YACjE,IAAI,GAAG,aAAa,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAA;QAC/E,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,uEAAuE;IACvE,gEAAgE;IAChE,OAAO,CAAC,IAAyB,EAAE,IAAkB;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAA;QAC7D,IAAI,IAAI,EAAE,UAAU;YAAE,OAAO,GAAG,IAAI,cAAc,CAAA;QAClD,IAAI,IAAI,EAAE,MAAM;YAAE,OAAO,GAAG,IAAI,SAAS,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+EAA+E;IAC/E,gEAAgE;IAChE,YAAY,CAAC,QAA2B,EAAE,MAAyB;QACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,MAAM,cAAc,CAAA;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3F,OAAO,gBAAgB,MAAM,mBAAmB,IAAI,EAAE,CAAA;IACxD,CAAC;IAED,aAAa,CAAC,MAAwB;QACpC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,yEAAyE;YACzE,6EAA6E;YAC7E,0DAA0D;YAC1D,OAAO,uBAAuB,CAAA;QAChC,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,qEAAqE;YACrE,gEAAgE;YAChE,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAA;YAClC,KAAK,SAAS,CAAC,CAAI,OAAO,SAAS,CAAA;YACnC,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAA;YAClC,mFAAmF;YACnF,KAAK,aAAa,CAAC;YACnB,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,CAAA;YACtC,KAAK,eAAe,CAAC,CAAC,OAAO,SAAS,CAAA;YACtC,2EAA2E;YAC3E,KAAK,QAAQ,CAAC,CAAK,OAAO,WAAW,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;YAC5D,KAAK,MAAM,CAAC,CAAO,OAAO,QAAQ,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;YACzD,uEAAuE;YACvE,KAAK,MAAM,CAAC;YACZ,KAAK,YAAY,CAAC;YAClB,KAAK,UAAU,CAAC,CAAG,OAAO,MAAM,CAAA;YAChC,KAAK,SAAS,CAAC,CAAI,OAAO,SAAS,CAAA;YACnC,KAAK,MAAM,CAAC,CAAO,OAAO,MAAM,CAAA;YAChC,yEAAyE;YACzE,KAAK,MAAM,CAAC,CAAO,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,SAAS,GAAG,CAAA;YAC/F,yEAAyE;YACzE,0DAA0D;YAC1D,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC,CAAE,OAAO,aAAa,CAAA;YACvC,2EAA2E;YAC3E,eAAe;YACf,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC,CAAM,OAAO,OAAO,CAAA;YACjC,KAAK,MAAM,CAAC,CAAO,OAAO,MAAM,CAAA;YAChC,KAAK,MAAM,CAAC,CAAO,OAAO,UAAU,CAAA;YACpC,KAAK,SAAS,CAAC,CAAI,OAAO,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAA;YACnF,KAAK,OAAO,CAAC,CAAM,OAAO,kBAAkB,CAAA;YAC5C,KAAK,QAAQ,CAAC,CAAK,OAAO,kBAAkB,CAAA;YAC5C,KAAK,QAAQ,CAAC,CAAK,OAAO,OAAO,CAAA;YACjC,2EAA2E;YAC3E,4DAA4D;YAC5D,KAAK,MAAM;gBACT,OAAO,uBAAuB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,cAAc,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAA;YAC5G,KAAK,KAAK;gBACR,MAAM,IAAI,cAAc,CACtB,6BAA6B,EAC7B,2DAA2D,MAAM,CAAC,IAAI,iDAAiD,CACxH,CAAA;YACH,OAAO,CAAC,CAAC,CAAC;gBACR,mEAAmE;gBACnE,MAAM,WAAW,GAAU,MAAM,CAAC,IAAI,CAAA;gBACtC,MAAM,IAAI,cAAc,CAAC,yBAAyB,EAAE,kEAAkE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACvJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|