taon-type-sql 18.0.17 → 18.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-type-sql.mjs","sources":["../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-condition-chain.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-column-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/query-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/other/query-ordering.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-join-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/value-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/comparable-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/number-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/basic-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/boolean-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/date-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/string-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/join/joined-tables-chain.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/join/joined-tables.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/select-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/table-condition-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/table-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query-source.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query-table.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/type-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/query-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/param-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/parameterized-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/sql-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/client/query-processor.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/client/mysql.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/index.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/taon-type-sql.ts"],"sourcesContent":["\n\nimport QueryTable from \"../query-table\";\nimport QueryConditionChain from \"./query-condition-chain\";\n\n\n\nabstract class QueryCondition<Table extends QueryTable<any, any>> {\n\n abstract and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2>;\n\n abstract or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2>;\n}\n\nexport default QueryCondition;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-condition.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport GenericsHelper from \"../helpers/generics-helper\";\nimport {ConditionChainType} from \"../helpers/internal-types\";\n\n\nexport default class QueryConditionChain<Table extends QueryTable<any, any>> extends QueryCondition<Table> {\n\n protected _$type: GenericsHelper<Table>;\n\n protected _sibling: QueryCondition<any>;\n protected _child: QueryCondition<any>;\n protected _chainType: ConditionChainType;\n protected _parenthesis = false;\n protected _negation = false;\n\n constructor(sibling: QueryCondition<any>, child: QueryCondition<any>, chainType: ConditionChainType) {\n super();\n this._sibling = sibling;\n this._child = child;\n this._chainType = chainType;\n }\n\n\n $() {\n this._parenthesis = true;\n return this;\n }\n\n not() {\n this._negation = true;\n return this;\n }\n\n and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'and');\n }\n\n or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-condition-chain.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport QueryConditionChain from \"./query-condition-chain\";\nimport {ConditionType} from \"../helpers/internal-types\";\n\n\nexport default class QueryColumnCondition<Table extends QueryTable<any, any>, T> extends QueryCondition<Table> {\n\n protected _column: QueryColumn<Table, T>;\n protected _type: ConditionType;\n protected _values: T[];\n\n constructor(column: QueryColumn<Table, T>, type: ConditionType, ...values: T[]) {\n super();\n this._column = column;\n this._type = type;\n this._values = values;\n }\n\n and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'and');\n }\n\n or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-column-condition.ts","\n\nimport QueryTable from \"../query-table\";\nimport NumberColumn from \"./number-column\";\nimport GenericsHelper from \"../helpers/generics-helper\";\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class QueryColumn<Table extends QueryTable<any, any>, T> {\n\n protected _$type: GenericsHelper<T>;\n protected _type: string;\n\n constructor(\n protected _table: Table,\n protected _name: ColumnName,\n protected _modifiers: ColumnModifier[] = []\n ) {}\n\n abstract count(): NumberColumn<Table>; // TODO I had to copy-paste the implementation to every child class to avoid a circular dependency\n\n as(alias: string): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'as', params: alias }));\n }\n\n isNull() {\n return new QueryColumnCondition<Table, T>(this, 'is-null');\n }\n\n isNotNull() {\n return new QueryColumnCondition<Table, T>(this, 'is-not-null');\n }\n}\n\nexport default QueryColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/query-column.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\n\n\nexport default class QueryOrdering<Table extends QueryTable<any, any>> {\n\n protected _column: QueryColumn<Table, any>;\n protected _direction: 'ASC' | 'DESC';\n protected _nullsPosition: 'FIRST' | 'LAST';\n\n constructor(column: QueryColumn<Table, any>, direction: 'ASC' | 'DESC') {\n this._column = column;\n this._direction = direction;\n }\n\n nullsFirst(): this {\n this._nullsPosition = 'FIRST';\n return this;\n }\n\n nullsLast(): this {\n this._nullsPosition = 'LAST';\n return this;\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/other/query-ordering.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport QueryConditionChain from \"./query-condition-chain\";\n\n\nexport default class QueryJoinCondition<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, T> extends QueryCondition<Table1 | Table2> {\n\n protected _column: QueryColumn<Table1, T>;\n protected _type: string;\n protected _otherColumn: QueryColumn<Table2, T>;\n\n constructor(column: QueryColumn<Table1, T>, type: string, otherColumn: QueryColumn<Table2, T>) {\n super();\n this._column = column;\n this._type = type;\n this._otherColumn = otherColumn;\n }\n\n and<Table3 extends QueryTable<any, any>>(condition: QueryCondition<Table3>): QueryConditionChain<Table1 | Table2 | Table3> {\n return new QueryConditionChain<Table1 | Table2 | Table3>(this, condition, 'and');\n }\n\n or<Table3 extends QueryTable<any, any>>(condition: QueryCondition<Table3>): QueryConditionChain<Table1 | Table2 | Table3> {\n return new QueryConditionChain<Table1 | Table2 | Table3>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-join-condition.ts","\n\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport QueryOrdering from \"../other/query-ordering\";\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"./query-column\";\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class ValueColumn<Table extends QueryTable<any, any>, T> extends QueryColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n asc() {\n return new QueryOrdering<Table>(this, 'ASC');\n }\n\n desc() {\n return new QueryOrdering<Table>(this, 'DESC');\n }\n\n eq<Table2 extends QueryTable<any, any>>(value: QueryColumn<Table2, T>): QueryJoinCondition<Table, Table2, T>;\n eq(value: T): QueryColumnCondition<Table, T>;\n eq<Table2 extends QueryTable<any, any>>(value: any): QueryCondition<any> {\n if (value instanceof QueryColumn) {\n return new QueryJoinCondition<Table, Table2, T>(this, 'eq', value);\n } else {\n return new QueryColumnCondition<Table, T>(this, 'eq', value);\n }\n }\n\n ne(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'ne', value);\n }\n}\n\nexport default ValueColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/value-column.ts","\n\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport QueryTable from \"../query-table\";\nimport ValueColumn from \"./value-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class ComparableColumn<Table extends QueryTable<any, any>, T> extends ValueColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n lt(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'lt', value);\n }\n\n gt(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'gt', value);\n }\n\n lte(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'lte', value);\n }\n\n gte(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'gte', value);\n }\n\n in(values: T[]) {\n return new QueryColumnCondition<Table, T>(this, 'in', ...values);\n }\n\n notIn(values: T[]) {\n return new QueryColumnCondition<Table, T>(this, 'not-in', ...values);\n }\n\n between(value1: T, value2: T) {\n return new QueryColumnCondition<Table, T>(this, 'between', value1, value2);\n }\n\n notBetween(value1: T, value2: T) {\n return new QueryColumnCondition<Table, T>(this, 'not-between', value1, value2);\n }\n\n\n\n min(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'min' }));\n }\n\n max(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'max' }));\n }\n}\n\nexport default ComparableColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/comparable-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class NumberColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, number> {\n\n protected _type = 'number';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n sum(): NumberColumn<Table> {\n return new NumberColumn<Table>(this._table, this._name, this._modifiers.concat({ name: 'sum' }));\n }\n\n avg(): NumberColumn<Table> {\n return new NumberColumn<Table>(this._table, this._name, this._modifiers.concat({ name: 'avg' }));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/number-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"./query-column\";\nimport NumberColumn from \"./number-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\n\nexport default class BasicColumn<Table extends QueryTable<any, any>, T> extends QueryColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/basic-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport NumberColumn from \"./number-column\";\nimport ValueColumn from \"./value-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class BooleanColumn<Table extends QueryTable<any, any>> extends ValueColumn<Table, boolean> {\n\n protected _type = 'boolean';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/boolean-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport NumberColumn from \"./number-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class DateColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, Date> {\n\n protected _type = 'date';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/date-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport NumberColumn from \"./number-column\";\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class StringColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, string> {\n\n protected _type = 'string';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n lower(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'lower' }));\n }\n\n upper(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'upper' }));\n }\n\n contains(value: string) {\n return this.like('%' + value + '%');\n }\n\n startsWith(value: string) {\n return this.like(value + '%');\n }\n\n endsWith(value: string) {\n return this.like('%' + value);\n }\n\n like(value: string) {\n return new QueryColumnCondition<Table, string>(this, 'like', value);\n }\n\n notLike(value: string) {\n return new QueryColumnCondition<Table, string>(this, 'not-like', value);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/string-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\nimport JoinedTables from \"./joined-tables\";\nimport {JoinType} from \"../helpers/internal-types\";\n\nexport default class JoinedTablesChain<Tables extends QueryTable<any, any>> {\n\n constructor(\n protected _table: QueryTable<any, any>,\n protected _modifier: JoinType,\n protected _parent: JoinedTables<Tables> | QueryTable<any, any>\n ) {}\n\n on(condition: QueryJoinCondition<Tables, Tables, any>): JoinedTables<Tables> {\n return new JoinedTables(condition, this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/join/joined-tables-chain.ts","\n\nimport QueryTable from \"../query-table\";\nimport JoinedTablesChain from \"./joined-tables-chain\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\n\n\nexport default class JoinedTables<Tables extends QueryTable<any, any>> {\n\n constructor(\n protected _condition: QueryJoinCondition<Tables, Tables, any>,\n protected _parent: JoinedTablesChain<Tables>\n ) {}\n\n innerJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'inner', this);\n }\n\n leftJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'left', this);\n }\n\n rightJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'right', this);\n }\n\n fullJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'full', this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/join/joined-tables.ts","\n\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryOrdering from \"../other/query-ordering\";\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class SelectQuery<Entity, Table extends QueryTable<Entity, any>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _tables: Table[]\n ) {}\n\n protected _distinct = false;\n protected _offset: number;\n protected _limit: number;\n protected _conditions: QueryCondition<Table>[] = [];\n protected _groupBy: QueryColumn<Table, any>[] = [];\n protected _having: QueryCondition<Table>[] = [];\n protected _orderings: (QueryColumn<Table, any> | QueryOrdering<Table>)[] = [];\n protected _columns: QueryColumn<Table, any>[] = [];\n protected _action: QueryAction;\n\n offset(offset: number): this {\n this._offset = offset;\n return this;\n }\n\n limit(limit: number): this {\n this._limit = limit;\n return this;\n }\n\n distinct(): this {\n this._distinct = true;\n return this;\n }\n\n where(...conditions: QueryCondition<Table>[]): this {\n this._conditions = conditions;\n return this;\n }\n\n groupBy(...columns: QueryColumn<Table, any>[]): this {\n this._groupBy = columns;\n return this;\n }\n\n having(...conditions: QueryCondition<Table>[]): this {\n this._having = conditions;\n return this;\n }\n\n orderBy(...orderings: (QueryColumn<Table, any> | QueryOrdering<Table>)[]): this {\n this._orderings = orderings;\n return this;\n }\n\n select(): Promise<Entity[]>\n select<T>(column: QueryColumn<Table, T>): Promise<T[]>\n select(...columns: QueryColumn<Table, any>[]): Promise<any[]>\n select(...columns: QueryColumn<Table, any>[]): Promise<any[]> {\n this._columns = columns;\n this._action = 'select';\n return this._queryProcessor(this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/select-query.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class TableConditionQuery<Entity, Table extends QueryTable<Entity, any>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _table: Table,\n protected _conditions: QueryCondition<Table>[]\n ) {}\n\n protected _columns: QueryColumn<Table, any>[] = [];\n protected _action: QueryAction;\n protected _entity: Entity | Partial<Entity>;\n\n update(entity: Partial<Entity>): Promise<number> {\n this._entity = entity;\n this._action = 'update';\n return this._queryProcessor(this);\n }\n\n delete(): Promise<number> {\n this._action = 'delete';\n return this._queryProcessor(this);\n }\n\n count(): Promise<number> {\n this._columns = [this._table.$all.count()];\n this._action = 'select';\n return this._queryProcessor(this).then((rows: number[]) => rows[0]);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/table-condition-query.ts","\n\nimport QueryTable from \"../query-table\";\nimport TableConditionQuery from \"./table-condition-query\";\nimport QueryCondition from \"../condition/query-condition\";\nimport ValueColumn from \"../column/value-column\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class TableQuery<Entity, Id, Table extends QueryTable<Entity, Id>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _table: Table\n ) {}\n\n protected _entity: Entity | Entity[] | Partial<Entity>;\n protected _action: QueryAction;\n protected _columns: QueryColumn<Table, any>[] = [];\n\n where(...conditions: QueryCondition<Table>[]) {\n return new TableConditionQuery<Entity, Table>(this._queryProcessor, this._table, conditions);\n }\n\n insert(entity: Entity): Promise<any> // returns the generated ID, but not other kinds of IDs, so the type is unknown (mysql limitations)\n insert(entities: Entity[]): Promise<void>\n insert(param: any): Promise<any> {\n this._entity = param;\n this._action = 'insert';\n return this._queryProcessor(this);\n }\n\n deleteAll(): Promise<number> {\n this._action = 'delete';\n return this._queryProcessor(this);\n }\n\n updateAll(entity: Partial<Entity>): Promise<number> {\n this._entity = entity;\n this._action = 'update';\n return this._queryProcessor(this);\n }\n\n countAll(): Promise<number> {\n this._columns = [this._table.$all.count()];\n this._action = 'select';\n return this._queryProcessor(this).then((rows: any[]) => rows[0]);\n }\n\n delete(id: Id): Promise<boolean> {\n return this._whereId(id).delete().then(count => count > 0);\n }\n\n update(id: Id, entity: Partial<Entity>): Promise<boolean> {\n return this._whereId(id).update(entity).then(count => count > 0);\n }\n\n get(id: Id): Promise<Entity | undefined> {\n let query = this._whereId(id);\n return this._queryProcessor({ _action: 'select', ...query })\n .then((rows: Entity[]) => rows[0]);\n }\n\n _whereId(id: Id): TableConditionQuery<Entity, Table> {\n\n let $id = (this._table as any).$id;\n if ($id instanceof ValueColumn) {\n return this.where($id.eq(id));\n } else {\n return this.where(...Object.keys($id).map(key => ((this._table as any)[key] as ValueColumn<Table, any>).eq((id as any)[key] as any)));\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/table-query.ts","\n\nimport QueryTable from './query-table';\nimport SelectQuery from './query/select-query';\nimport { QueryProcessor } from \"./helpers/internal-types\";\nimport JoinedTables from \"./join/joined-tables\";\nimport TableQuery from \"./query/table-query\";\n\n\nexport default class QuerySource {\n\n constructor(protected _queryProcessor: QueryProcessor) {}\n\n from<Entity, Table1 extends QueryTable<Entity, any>>(table1: Table1 & QueryTable<Entity, any>): SelectQuery<Entity, Table1>\n from<Tables extends QueryTable<any, any>>(tables: JoinedTables<Tables>): SelectQuery<any, Tables>\n from<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>>(table1: Table1, table2: Table2): SelectQuery<any, Table1 | Table2>\n from<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, Table3 extends QueryTable<any, any>>(table1: Table1, table2: Table2, table3: Table3): SelectQuery<any, Table1 | Table2 | Table3>\n from<Entity, Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, Table3 extends QueryTable<any, any>>(table1: any, table2?: any, table3?: any) {\n if (table3 != null) return new SelectQuery<any, Table1 | Table2 | Table3>(this._queryProcessor, [table1, table2, table3]);\n else if (table2 != null) return new SelectQuery<any, Table1 | Table2>(this._queryProcessor, [table1, table2]);\n return new SelectQuery<Entity, Table1>(this._queryProcessor, [table1]);\n }\n\n table<Entity, Id, Table extends QueryTable<Entity, Id>>(table: Table & QueryTable<Entity, Id>): TableQuery<Entity, Id, Table> {\n return new TableQuery<Entity, Id, Table>(this._queryProcessor, table);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query-source.ts","\n\nimport BasicColumn from \"./column/basic-column\";\nimport GenericsHelper from \"./helpers/generics-helper\";\nimport JoinedTablesChain from \"./join/joined-tables-chain\";\n\n\nabstract class QueryTable<Entity, Id> {\n\n constructor(protected _$name: string) {}\n\n protected _$type: GenericsHelper<Entity>;\n protected _$idType: GenericsHelper<Id>;\n\n\n\n $all = new BasicColumn<this, Entity>(this, '*');\n\n innerJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'inner', this);\n }\n\n leftJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'left', this);\n }\n\n rightJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'right', this);\n }\n\n fullJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'full', this);\n }\n}\n\nexport default QueryTable;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query-table.ts","\n\n\nexport function number(param: any): number {\n let result = Number(param);\n if (Number.isNaN(result)) throw new Error('Invalid number parameter in SQL query: ' + param);\n return result;\n}\n\nexport function boolean(param: any): boolean {\n if (typeof param === 'boolean') return param;\n if (param instanceof Boolean) return param.valueOf();\n if (param === 'true') return true;\n if (param === 'false') return false;\n throw new Error('Invalid boolean parameter in SQL query: ' + param);\n}\n\nexport function date(param: any): Date {\n if (param instanceof Date) return param; // @ts-ignore\n if (typeof param === 'number' || param instanceof Number) return new Date(param);\n if (typeof param === 'string' || param instanceof String) {\n if (Number.isNaN(Date.parse(String(param)))) throw new Error('Invalid date parameter in SQL query: ' + param); // @ts-ignore\n return new Date(param);\n }\n throw new Error('Invalid date parameter in SQL query: ' + param);\n}\n\nexport function string(param: any): string {\n if (typeof param === 'string') return param;\n if (param instanceof String) return param.valueOf();\n throw new Error('Invalid string parameter in SQL query: ' + param);\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/type-converter.ts","\n\nimport { string, number, date, boolean } from './type-converter';\nimport { QueryEngine, ConverterOptions } from \"./types\";\n\n\nexport function createQueryConverter(paramConverter: (param: any) => string, options: ConverterOptions, engine: QueryEngine) {\n\n return convertQuery;\n\n function convertQuery(query: any): string {\n if (query._action === 'select') return convertSelectQuery(query);\n if (query._action === 'delete') return convertDeleteQuery(query);\n if (query._action === 'update') return convertUpdateQuery(query);\n if (query._action === 'insert') return convertInsertQuery(query);\n throw new Error('Unknown query type:' + query._action);\n }\n\n function convertDeleteQuery(query: any): string {\n let s = 'DELETE FROM ' + convertTable(query._table);\n s += convertConditions(query._conditions);\n return s;\n }\n\n function convertUpdateQuery(query: any): string {\n let s = 'UPDATE ' + convertTable(query._table) + ' SET ';\n s += convertUpdateSetters(query._table, query._entity);\n s += convertConditions(query._conditions);\n return s;\n }\n\n function convertUpdateSetters(table: any, entity: any): string {\n return Object.keys(entity).sort().map(key => {\n let value = entity[key];\n let column = table[key];\n return convertColumnName(column) + ' = ' + convertParam(column, value);\n }).join(', ');\n }\n\n function convertInsertQuery(query: any): string {\n let items: any[] = Array.isArray(query._entity) ? query._entity : [query._entity];\n let keySet: Set<string> = items.reduce((set: Set<string>, item) => {\n Object.keys(item).forEach(key => set.add(key)); return set;\n }, new Set<string>());\n let keys = Array.from(keySet).sort();\n\n let s = 'INSERT INTO ' + convertTable(query._table) + ' ';\n s += '(' + keys.map(key => convertColumnName(query._table[key])).join(', ') + ')';\n s += options.lineBreak + 'VALUES ';\n s += items.map(item => convertInsertItem(query._table, item, keys))\n .map((row: string) => '(' + row + ')').join(', ');\n\n s += getPgInsertReturningIfNeeded(query);\n return s;\n }\n\n\n function getPgInsertReturningIfNeeded(query: any): string {\n if (engine === 'pg' && query._action === 'insert' && !Array.isArray(query._entity) &&\n query._table.$id && query._table.$id._table && query._table.$id._name) {\n return ' RETURNING ' + convertColumnName(query._table.$id);\n }\n return '';\n }\n\n function convertInsertItem(table: any, entity: any, keys: string[]): string {\n return keys.map(key => {\n let value = entity[key];\n let column = table[key];\n return convertParam(column, value);\n }).join(', ');\n }\n\n function convertSelectQuery(query: any): string {\n let s = 'SELECT ';\n if (query._distinct) {\n s += 'DISTINCT ';\n }\n\n if (query._columns == null || query._columns.length === 0) {\n s += '*'\n } else {\n s += query._columns.map((column: any) => convertColumn(column)).join(', ');\n }\n\n s += options.lineBreak + 'FROM ';\n if (query._tables) {\n s+= query._tables.map((table: any) => table._parent ? convertJoin(table) : convertTable(table)).join(', ');\n } else {\n s+= convertTable(query._table);\n }\n\n s += convertConditions(query._conditions);\n\n if (query._groupBy && query._groupBy.length > 0) {\n s += options.lineBreak + 'GROUP BY ';\n s += query._groupBy.map((column: any) => convertColumn(column)).join(', ');\n }\n s += convertConditions(query._having, 'HAVING');\n\n if (query._orderings && query._orderings.length > 0) {\n s += options.lineBreak + 'ORDER BY ';\n s += query._orderings.map((ordering: any) => convertOrdering(ordering)).join(', ');\n }\n if (query._limit != null) {\n s += options.lineBreak + 'LIMIT ' + number(query._limit);\n }\n if (query._offset != null) {\n s += options.lineBreak + 'OFFSET ' + number(query._offset);\n }\n return s;\n }\n\n function convertConditions(conditions: any[], keyword = 'WHERE'): string {\n let s = '';\n if (conditions && conditions.length > 0) {\n s += options.lineBreak + keyword + ' ';\n preprocessConditions(conditions);\n s += conditions.map(condition => convertCondition(condition, true)).join(' AND ');\n }\n return s;\n }\n\n function convertJoin(joinChain: any): string {\n let items: any[] = [];\n while (joinChain) {\n items.push(joinChain);\n joinChain = joinChain._parent;\n }\n\n let root = items[items.length - 1];\n let s = convertTable(root);\n\n for (let i = items.length - 2; i >= 0; i-= 2) {\n let table = items[i]._table;\n let modifier = items[i]._modifier;\n let condition = items[i - 1]._condition;\n let param = convertColumn(condition._otherColumn);\n s += ' ' + modifier.toUpperCase() + ' JOIN ' + convertTable(table) + ' ON ' +\n convertColumnCondition(condition, param);\n }\n\n return s;\n }\n\n function convertOrdering(ordering: any): string {\n if (ordering._column) {\n let s = convertColumn(ordering._column);\n\n if (ordering._nullsPosition != null) { // \"NULLS FIRST\" only exists in PG, this is the general solution\n s += ' IS NULL ' + (ordering._nullsPosition === 'FIRST' ? 'DESC' : 'ASC') + ', ' + s;\n }\n\n if (ordering._direction === 'ASC') s += ' ASC';\n if (ordering._direction === 'DESC') s += ' DESC';\n\n return s;\n } else {\n return convertColumn(ordering);\n }\n }\n\n function convertTable(table: any): string {\n return options.nameEscape + table._$name + options.nameEscape;\n }\n\n function convertColumn(column: any): string {\n let s = '';\n if (!(column._name === '*' && column._modifiers.length > 0 && column._modifiers[0].name === 'count')) {\n s += convertTable(column._table) + '.';\n }\n s += convertColumnName(column);\n return convertColumnModifiers(s, column);\n }\n\n function convertColumnModifiers(s: string, column: any): string {\n if (column._modifiers) {\n column._modifiers.forEach((modifier: any) => {\n let name = modifier.name;\n if (name === 'lower') s = 'LOWER(' + s + ')';\n else if (name === 'upper') s = 'UPPER(' + s + ')';\n else if (name === 'count') s = 'COUNT(' + s + ')';\n else if (name === 'sum') s = 'SUM(' + s + ')';\n else if (name === 'avg') s = 'AVG(' + s + ')';\n else if (name === 'min') s = 'MIN(' + s + ')';\n else if (name === 'max') s = 'MAX(' + s + ')';\n else if (name === 'as') s = s + ' AS ' + options.nameEscape + modifier.params + options.nameEscape;\n });\n }\n return s + '';\n }\n\n function convertColumnName(column: any): string {\n if (column._name === '*') return column._name;\n let name = typeof column._name === 'string' ? column._name : column._name.name;\n return options.nameEscape + name + options.nameEscape;\n }\n\n function preprocessConditions(conditions: any[]): void {\n conditions.forEach(condition => {\n if (conditions.length > 1 && condition._sibling) {\n condition._parenthesis = true;\n }\n preprocessParams(condition);\n });\n }\n\n\n function preprocessParams(condition: any): void {\n if (condition._sibling) {\n preprocessParams(condition._sibling);\n }\n if (!condition._sibling && !condition._child) {\n condition.__param = getConditionParam(condition);\n }\n if (condition._child) {\n preprocessParams(condition._child);\n }\n }\n\n function convertCondition(condition: any, root = false): string {\n if (!condition._sibling && !condition._child) {\n return convertColumnCondition(condition, condition.__param);\n }\n\n let s = '';\n if (condition._child) {\n s += convertCondition(condition._child);\n }\n if (condition._sibling) {\n s = convertCondition(condition._sibling, root) + ' ' + condition._chainType.toUpperCase() + ' ' + s;\n }\n if (condition._parenthesis || ((!root || condition._negation) && condition._child)) {\n s = '( ' + s + ' )';\n }\n if (condition._negation) {\n s = 'NOT ' + s;\n }\n return s;\n }\n\n function convertColumnCondition(condition: any, param: string): string {\n let s = convertColumn(condition._column);\n s += getConditionString(condition, param);\n return s;\n }\n\n function getConditionString(condition: any, param: string): string {\n switch (condition._type) {\n case 'eq': return ' = ' + param;\n case 'ne': return ' <> ' + param;\n case 'lt': return ' < ' + param;\n case 'gt': return ' > ' + param;\n case 'lte': return ' <= ' + param;\n case 'gte': return ' >= ' + param;\n case 'is-null': return ' IS NULL';\n case 'is-not-null': return ' IS NOT NULL';\n case 'like': return ' LIKE ' + param;\n case 'not-like': return ' NOT LIKE ' + param;\n case 'in': return ' IN (' + param + ')';\n case 'not-in': return ' NOT IN (' + param + ')';\n case 'between': return ' BETWEEN ' + param;\n case 'not-between': return ' NOT BETWEEN ' + param;\n default: return '';\n }\n }\n\n function getConditionParam(condition: any): string {\n let param = '';\n if (condition._otherColumn) {\n param = convertColumn(condition._otherColumn);\n } else {\n let _convertParam = (param: any) => convertParam(condition._column, param);\n\n if (condition._type === 'in' || condition._type === 'not-in') {\n param = condition._values.map((value: any) => _convertParam(value)).join(', ');\n } else if (condition._type === 'between' || condition._type === 'not-between') {\n param = _convertParam(condition._values[0]) + ' AND ' + _convertParam(condition._values[1]);\n } else if (condition._type !== 'is-null' && condition._type !== 'is-not-null') {\n param = _convertParam(condition._values[0]);\n }\n }\n return param;\n }\n\n function convertParam(column: any, param: any): string {\n if (param == null) return 'NULL';\n return paramConverter(getTypedParam(column._type, param));\n }\n\n function getTypedParam(type: string, param: any): any {\n if (type === 'number') return number(param);\n else if (type === 'boolean') return boolean(param);\n else if (type === 'date') return date(param);\n else if (type === 'string') return string(param);\n return param;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/query-converter.ts","\n\n\nexport function convertSubstitutionParam(param: any): string {\n if (param == null) return 'NULL';\n if (typeof param === 'string' || param instanceof String) {\n return `'${String(param)}'`;\n } else if (typeof param === 'boolean' || param instanceof Boolean) {\n return String(param).toUpperCase();\n } else if (param instanceof Date) {\n return `'${param.toISOString()}'`;\n } else if (typeof param === 'number' || param instanceof Number) {\n return String(param);\n }\n return `'${JSON.stringify(param)}'`;\n}\n\n\n\nexport function convertEscapedParam(param: any) {\n if (typeof param === 'object' && !(param == null || param instanceof String || param instanceof Number ||\n param instanceof Boolean || param instanceof Date)) {\n return JSON.stringify(param);\n }\n return param;\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/param-converter.ts","\n\nimport {createQueryConverter} from \"./query-converter\";\nimport {convertEscapedParam} from './param-converter';\nimport {QueryEngine, ConverterOptions} from \"./types\";\n\nlet pgParamConverter = (index: number) => '$' + index;\nlet mySqlParamConverter = (index: number) => '?';\n\nfunction convertSingleParam(param: any, params: any[], paramConverter: (param: any) => string): string {\n params.push(convertEscapedParam(param));\n return paramConverter(params.length);\n}\n\nexport function convertQueryToParameterizedSQL(query: any, options: ConverterOptions, engine: QueryEngine) {\n let params: any[] = [];\n\n let paramConverter = engine === 'mysql' ? mySqlParamConverter : pgParamConverter;\n let sql = createQueryConverter((param: any) => convertSingleParam(param, params, paramConverter), options, engine)(query);\n\n return { sql, params };\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/parameterized-converter.ts","\n\nimport {createQueryConverter} from \"./query-converter\";\nimport {convertSubstitutionParam} from './param-converter';\nimport {QueryEngine, ConverterOptions} from \"./types\";\n\nexport function convertQueryToSQL(query: any, options: ConverterOptions, engine: QueryEngine): string {\n return createQueryConverter((param: any) => convertSubstitutionParam(param), options, engine)(query);\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/sql-converter.ts","\n\nimport { Log, Level } from 'ng2-logger/browser';\nimport { convertQueryToParameterizedSQL } from '../converter/parameterized-converter';\nimport { convertQueryToSQL } from '../converter/sql-converter';\nimport { convertResult } from \"../converter/result-converter\";\nimport { QueryEngine, ConverterOptions } from '../converter/types';\nimport { QueryProcessor } from '../builder/helpers/internal-types';\nimport { Helpers } from 'tnp-core/browser';\n\nconst log = Log.create('query processor',\n\n)\n\nexport interface QueryProcessorOptions {\n lineBreaks?: boolean,\n parameterized?: boolean,\n logging?: boolean,\n logger?: (sql: string, params?: any[]) => void,\n identifierQuote?: string\n}\n\nconst DEFAULT_OPTIONS: QueryProcessorOptions = {\n lineBreaks: false,\n parameterized: true,\n logging: true,\n identifierQuote: '\"'\n};\n\nfunction mySqlTypeCast(field: any, next: any) {\n if (field.type == 'TINY' && field.length == 1) { // Boolean\n let value = field.string();\n if (value == '1') return true;\n if (value == '0') return false;\n return null;\n } else if (field.type == 'JSON') {\n let value = field.string();\n return value == null ? null : JSON.parse(value);\n }\n return next();\n}\n\nexport function createQueryProcessor(client: any, _options: QueryProcessorOptions = {}, engine: QueryEngine = 'pg'): QueryProcessor {\n\n let options: QueryProcessorOptions = Object.assign({}, DEFAULT_OPTIONS, _options);\n\n let queryOptions: ConverterOptions = {\n lineBreak: options.lineBreaks ? '\\n' : ' ',\n nameEscape: _options.identifierQuote || (engine === 'mysql' ? '`' : '\"')\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n return (query: any) => {\n if (options.parameterized) {\n let { sql, params } = convertQueryToParameterizedSQL(query, queryOptions, engine);\n\n return client.query(sql, params);\n\n\n } else {\n let sql = convertQueryToSQL(query, queryOptions, engine);\n\n return client.query(sql, undefined);\n\n\n }\n };\n}\n\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/client/query-processor.ts","\n\nimport QuerySource from \"../builder/query-source\";\nimport {QueryProcessorOptions, createQueryProcessor} from \"./query-processor\";\n\nexport default class MySqlQuerySource extends QuerySource {\n\n constructor(client: any, options: QueryProcessorOptions = {}) {\n super(createQueryProcessor(client, options, 'mysql'));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/client/mysql.ts","\n\n\n\n\nexport { default as BasicColumn } from './builder/column/basic-column';\nexport { default as BooleanColumn } from './builder/column/boolean-column';\nexport { default as ComparableColumn } from './builder/column/comparable-column';\nexport { default as DateColumn } from './builder/column/date-column';\nexport { default as NumberColumn } from './builder/column/number-column';\nexport { default as QueryColumn } from './builder/column/query-column';\nexport { default as StringColumn } from './builder/column/string-column';\nexport { default as ValueColumn } from './builder/column/value-column';\n\nexport { default as QueryColumnCondition } from './builder/condition/query-column-condition';\nexport { default as QueryCondition } from './builder/condition/query-condition';\nexport { default as QueryConditionChain } from './builder/condition/query-condition-chain';\nexport { default as QueryJoinCondition } from './builder/condition/query-join-condition';\n\nexport { default as JoinedTables } from './builder/join/joined-tables';\nexport { default as JoinedTablesChain } from './builder/join/joined-tables-chain';\n\nexport { default as QueryOrdering } from './builder/other/query-ordering';\n\nexport { default as SelectQuery } from './builder/query/select-query';\nexport { default as TableQuery } from './builder/query/table-query';\nexport { default as TableConditionQuery } from './builder/query/table-condition-query';\n\nexport { default as QuerySource } from './builder/query-source';\nexport { default as QueryTable } from './builder/query-table';\n\n\n\nexport { default as MySqlQuerySource } from './client/mysql';\n\n\nexport { QueryProcessorOptions } from './client/query-processor';\n\n\nexport type PropsEntitySQL<IEntityType> = { [prop in keyof Required<IEntityType>]: any; }\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taon-type-sql.mjs","sources":["../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-condition-chain.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-column-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/query-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/other/query-ordering.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/condition/query-join-condition.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/value-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/comparable-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/number-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/basic-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/boolean-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/date-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/column/string-column.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/join/joined-tables-chain.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/join/joined-tables.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/select-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/table-condition-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query/table-query.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query-source.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/builder/query-table.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/type-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/query-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/param-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/parameterized-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/converter/sql-converter.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/client/query-processor.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/client/mysql.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/lib/index.ts","../../../tmp-libs-for-dist/taon-type-sql/projects/taon-type-sql/src/taon-type-sql.ts"],"sourcesContent":["\n\nimport QueryTable from \"../query-table\";\nimport QueryConditionChain from \"./query-condition-chain\";\n\n\n\nabstract class QueryCondition<Table extends QueryTable<any, any>> {\n\n abstract and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2>;\n\n abstract or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2>;\n}\n\nexport default QueryCondition;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-condition.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport GenericsHelper from \"../helpers/generics-helper\";\nimport {ConditionChainType} from \"../helpers/internal-types\";\n\n\nexport default class QueryConditionChain<Table extends QueryTable<any, any>> extends QueryCondition<Table> {\n\n protected _$type: GenericsHelper<Table>;\n\n protected _sibling: QueryCondition<any>;\n protected _child: QueryCondition<any>;\n protected _chainType: ConditionChainType;\n protected _parenthesis = false;\n protected _negation = false;\n\n constructor(sibling: QueryCondition<any>, child: QueryCondition<any>, chainType: ConditionChainType) {\n super();\n this._sibling = sibling;\n this._child = child;\n this._chainType = chainType;\n }\n\n\n $() {\n this._parenthesis = true;\n return this;\n }\n\n not() {\n this._negation = true;\n return this;\n }\n\n and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'and');\n }\n\n or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-condition-chain.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport QueryConditionChain from \"./query-condition-chain\";\nimport {ConditionType} from \"../helpers/internal-types\";\n\n\nexport default class QueryColumnCondition<Table extends QueryTable<any, any>, T> extends QueryCondition<Table> {\n\n protected _column: QueryColumn<Table, T>;\n protected _type: ConditionType;\n protected _values: T[];\n\n constructor(column: QueryColumn<Table, T>, type: ConditionType, ...values: T[]) {\n super();\n this._column = column;\n this._type = type;\n this._values = values;\n }\n\n and<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'and');\n }\n\n or<Table2 extends QueryTable<any, any>>(condition: QueryCondition<Table2>): QueryConditionChain<Table | Table2> {\n return new QueryConditionChain<Table | Table2>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-column-condition.ts","\n\nimport QueryTable from \"../query-table\";\nimport NumberColumn from \"./number-column\";\nimport GenericsHelper from \"../helpers/generics-helper\";\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class QueryColumn<Table extends QueryTable<any, any>, T> {\n\n protected _$type: GenericsHelper<T>;\n protected _type: string;\n\n constructor(\n protected _table: Table,\n protected _name: ColumnName,\n protected _modifiers: ColumnModifier[] = []\n ) {}\n\n abstract count(): NumberColumn<Table>; // TODO I had to copy-paste the implementation to every child class to avoid a circular dependency\n\n as(alias: string): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'as', params: alias }));\n }\n\n isNull() {\n return new QueryColumnCondition<Table, T>(this, 'is-null');\n }\n\n isNotNull() {\n return new QueryColumnCondition<Table, T>(this, 'is-not-null');\n }\n}\n\nexport default QueryColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/query-column.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\n\n\nexport default class QueryOrdering<Table extends QueryTable<any, any>> {\n\n protected _column: QueryColumn<Table, any>;\n protected _direction: 'ASC' | 'DESC';\n protected _nullsPosition: 'FIRST' | 'LAST';\n\n constructor(column: QueryColumn<Table, any>, direction: 'ASC' | 'DESC') {\n this._column = column;\n this._direction = direction;\n }\n\n nullsFirst(): this {\n this._nullsPosition = 'FIRST';\n return this;\n }\n\n nullsLast(): this {\n this._nullsPosition = 'LAST';\n return this;\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/other/query-ordering.ts","\n\nimport QueryColumn from \"../column/query-column\";\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"./query-condition\";\nimport QueryConditionChain from \"./query-condition-chain\";\n\n\nexport default class QueryJoinCondition<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, T> extends QueryCondition<Table1 | Table2> {\n\n protected _column: QueryColumn<Table1, T>;\n protected _type: string;\n protected _otherColumn: QueryColumn<Table2, T>;\n\n constructor(column: QueryColumn<Table1, T>, type: string, otherColumn: QueryColumn<Table2, T>) {\n super();\n this._column = column;\n this._type = type;\n this._otherColumn = otherColumn;\n }\n\n and<Table3 extends QueryTable<any, any>>(condition: QueryCondition<Table3>): QueryConditionChain<Table1 | Table2 | Table3> {\n return new QueryConditionChain<Table1 | Table2 | Table3>(this, condition, 'and');\n }\n\n or<Table3 extends QueryTable<any, any>>(condition: QueryCondition<Table3>): QueryConditionChain<Table1 | Table2 | Table3> {\n return new QueryConditionChain<Table1 | Table2 | Table3>(this, condition, 'or');\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/condition/query-join-condition.ts","\n\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport QueryOrdering from \"../other/query-ordering\";\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"./query-column\";\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class ValueColumn<Table extends QueryTable<any, any>, T> extends QueryColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n asc() {\n return new QueryOrdering<Table>(this, 'ASC');\n }\n\n desc() {\n return new QueryOrdering<Table>(this, 'DESC');\n }\n\n eq<Table2 extends QueryTable<any, any>>(value: QueryColumn<Table2, T>): QueryJoinCondition<Table, Table2, T>;\n eq(value: T): QueryColumnCondition<Table, T>;\n eq<Table2 extends QueryTable<any, any>>(value: any): QueryCondition<any> {\n if (value instanceof QueryColumn) {\n return new QueryJoinCondition<Table, Table2, T>(this, 'eq', value);\n } else {\n return new QueryColumnCondition<Table, T>(this, 'eq', value);\n }\n }\n\n ne(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'ne', value);\n }\n}\n\nexport default ValueColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/value-column.ts","\n\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport QueryTable from \"../query-table\";\nimport ValueColumn from \"./value-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nabstract class ComparableColumn<Table extends QueryTable<any, any>, T> extends ValueColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n lt(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'lt', value);\n }\n\n gt(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'gt', value);\n }\n\n lte(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'lte', value);\n }\n\n gte(value: T) {\n return new QueryColumnCondition<Table, T>(this, 'gte', value);\n }\n\n in(values: T[]) {\n return new QueryColumnCondition<Table, T>(this, 'in', ...values);\n }\n\n notIn(values: T[]) {\n return new QueryColumnCondition<Table, T>(this, 'not-in', ...values);\n }\n\n between(value1: T, value2: T) {\n return new QueryColumnCondition<Table, T>(this, 'between', value1, value2);\n }\n\n notBetween(value1: T, value2: T) {\n return new QueryColumnCondition<Table, T>(this, 'not-between', value1, value2);\n }\n\n\n\n min(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'min' }));\n }\n\n max(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'max' }));\n }\n}\n\nexport default ComparableColumn;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/comparable-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class NumberColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, number> {\n\n protected _type = 'number';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n sum(): NumberColumn<Table> {\n return new NumberColumn<Table>(this._table, this._name, this._modifiers.concat({ name: 'sum' }));\n }\n\n avg(): NumberColumn<Table> {\n return new NumberColumn<Table>(this._table, this._name, this._modifiers.concat({ name: 'avg' }));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/number-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"./query-column\";\nimport NumberColumn from \"./number-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\n\nexport default class BasicColumn<Table extends QueryTable<any, any>, T> extends QueryColumn<Table, T> {\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/basic-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport NumberColumn from \"./number-column\";\nimport ValueColumn from \"./value-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class BooleanColumn<Table extends QueryTable<any, any>> extends ValueColumn<Table, boolean> {\n\n protected _type = 'boolean';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/boolean-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport NumberColumn from \"./number-column\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class DateColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, Date> {\n\n protected _type = 'date';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/date-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport ComparableColumn from \"./comparable-column\";\nimport NumberColumn from \"./number-column\";\nimport QueryColumnCondition from \"../condition/query-column-condition\";\nimport {ColumnModifier, ColumnName} from \"../helpers/internal-types\";\n\n\nexport default class StringColumn<Table extends QueryTable<any, any>> extends ComparableColumn<Table, string> {\n\n protected _type = 'string';\n\n constructor(table: Table, name: ColumnName, modifiers: ColumnModifier[] = []) {\n super(table, name, modifiers);\n }\n\n count(): NumberColumn<Table> {\n return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));\n }\n\n lower(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'lower' }));\n }\n\n upper(): this {\n return new (<any>this.constructor)(this._table, this._name, this._modifiers.concat({ name: 'upper' }));\n }\n\n contains(value: string) {\n return this.like('%' + value + '%');\n }\n\n startsWith(value: string) {\n return this.like(value + '%');\n }\n\n endsWith(value: string) {\n return this.like('%' + value);\n }\n\n like(value: string) {\n return new QueryColumnCondition<Table, string>(this, 'like', value);\n }\n\n notLike(value: string) {\n return new QueryColumnCondition<Table, string>(this, 'not-like', value);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/string-column.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\nimport JoinedTables from \"./joined-tables\";\nimport {JoinType} from \"../helpers/internal-types\";\n\nexport default class JoinedTablesChain<Tables extends QueryTable<any, any>> {\n\n constructor(\n protected _table: QueryTable<any, any>,\n protected _modifier: JoinType,\n protected _parent: JoinedTables<Tables> | QueryTable<any, any>\n ) {}\n\n on(condition: QueryJoinCondition<Tables, Tables, any>): JoinedTables<Tables> {\n return new JoinedTables(condition, this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/join/joined-tables-chain.ts","\n\nimport QueryTable from \"../query-table\";\nimport JoinedTablesChain from \"./joined-tables-chain\";\nimport QueryJoinCondition from \"../condition/query-join-condition\";\n\n\nexport default class JoinedTables<Tables extends QueryTable<any, any>> {\n\n constructor(\n protected _condition: QueryJoinCondition<Tables, Tables, any>,\n protected _parent: JoinedTablesChain<Tables>\n ) {}\n\n innerJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'inner', this);\n }\n\n leftJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'left', this);\n }\n\n rightJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'right', this);\n }\n\n fullJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<Tables | JoinTable> {\n return new JoinedTablesChain(table, 'full', this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/join/joined-tables.ts","\n\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryOrdering from \"../other/query-ordering\";\nimport QueryTable from \"../query-table\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class SelectQuery<Entity, Table extends QueryTable<Entity, any>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _tables: Table[]\n ) {}\n\n protected _distinct = false;\n protected _offset: number;\n protected _limit: number;\n protected _conditions: QueryCondition<Table>[] = [];\n protected _groupBy: QueryColumn<Table, any>[] = [];\n protected _having: QueryCondition<Table>[] = [];\n protected _orderings: (QueryColumn<Table, any> | QueryOrdering<Table>)[] = [];\n protected _columns: QueryColumn<Table, any>[] = [];\n protected _action: QueryAction;\n\n offset(offset: number): this {\n this._offset = offset;\n return this;\n }\n\n limit(limit: number): this {\n this._limit = limit;\n return this;\n }\n\n distinct(): this {\n this._distinct = true;\n return this;\n }\n\n where(...conditions: QueryCondition<Table>[]): this {\n this._conditions = conditions;\n return this;\n }\n\n groupBy(...columns: QueryColumn<Table, any>[]): this {\n this._groupBy = columns;\n return this;\n }\n\n having(...conditions: QueryCondition<Table>[]): this {\n this._having = conditions;\n return this;\n }\n\n orderBy(...orderings: (QueryColumn<Table, any> | QueryOrdering<Table>)[]): this {\n this._orderings = orderings;\n return this;\n }\n\n select(): Promise<Entity[]>\n select<T>(column: QueryColumn<Table, T>): Promise<T[]>\n select(...columns: QueryColumn<Table, any>[]): Promise<any[]>\n select(...columns: QueryColumn<Table, any>[]): Promise<any[]> {\n this._columns = columns;\n this._action = 'select';\n return this._queryProcessor(this);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/select-query.ts","\n\nimport QueryTable from \"../query-table\";\nimport QueryCondition from \"../condition/query-condition\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class TableConditionQuery<Entity, Table extends QueryTable<Entity, any>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _table: Table,\n protected _conditions: QueryCondition<Table>[]\n ) {}\n\n protected _columns: QueryColumn<Table, any>[] = [];\n protected _action: QueryAction;\n protected _entity: Entity | Partial<Entity>;\n\n update(entity: Partial<Entity>): Promise<number> {\n this._entity = entity;\n this._action = 'update';\n return this._queryProcessor(this);\n }\n\n delete(): Promise<number> {\n this._action = 'delete';\n return this._queryProcessor(this);\n }\n\n count(): Promise<number> {\n this._columns = [this._table.$all.count()];\n this._action = 'select';\n return this._queryProcessor(this).then((rows: number[]) => rows[0]);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/table-condition-query.ts","\n\nimport QueryTable from \"../query-table\";\nimport TableConditionQuery from \"./table-condition-query\";\nimport QueryCondition from \"../condition/query-condition\";\nimport ValueColumn from \"../column/value-column\";\nimport QueryColumn from \"../column/query-column\";\nimport { QueryProcessor, QueryAction } from \"../helpers/internal-types\";\n\n\nexport default class TableQuery<Entity, Id, Table extends QueryTable<Entity, Id>> {\n\n constructor(\n protected _queryProcessor: QueryProcessor,\n protected _table: Table\n ) {}\n\n protected _entity: Entity | Entity[] | Partial<Entity>;\n protected _action: QueryAction;\n protected _columns: QueryColumn<Table, any>[] = [];\n\n where(...conditions: QueryCondition<Table>[]) {\n return new TableConditionQuery<Entity, Table>(this._queryProcessor, this._table, conditions);\n }\n\n insert(entity: Entity): Promise<any> // returns the generated ID, but not other kinds of IDs, so the type is unknown (mysql limitations)\n insert(entities: Entity[]): Promise<void>\n insert(param: any): Promise<any> {\n this._entity = param;\n this._action = 'insert';\n return this._queryProcessor(this);\n }\n\n deleteAll(): Promise<number> {\n this._action = 'delete';\n return this._queryProcessor(this);\n }\n\n updateAll(entity: Partial<Entity>): Promise<number> {\n this._entity = entity;\n this._action = 'update';\n return this._queryProcessor(this);\n }\n\n countAll(): Promise<number> {\n this._columns = [this._table.$all.count()];\n this._action = 'select';\n return this._queryProcessor(this).then((rows: any[]) => rows[0]);\n }\n\n delete(id: Id): Promise<boolean> {\n return this._whereId(id).delete().then(count => count > 0);\n }\n\n update(id: Id, entity: Partial<Entity>): Promise<boolean> {\n return this._whereId(id).update(entity).then(count => count > 0);\n }\n\n get(id: Id): Promise<Entity | undefined> {\n let query = this._whereId(id);\n return this._queryProcessor({ _action: 'select', ...query })\n .then((rows: Entity[]) => rows[0]);\n }\n\n _whereId(id: Id): TableConditionQuery<Entity, Table> {\n\n let $id = (this._table as any).$id;\n if ($id instanceof ValueColumn) {\n return this.where($id.eq(id));\n } else {\n return this.where(...Object.keys($id).map(key => ((this._table as any)[key] as ValueColumn<Table, any>).eq((id as any)[key] as any)));\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query/table-query.ts","\n\nimport QueryTable from './query-table';\nimport SelectQuery from './query/select-query';\nimport { QueryProcessor } from \"./helpers/internal-types\";\nimport JoinedTables from \"./join/joined-tables\";\nimport TableQuery from \"./query/table-query\";\n\n\nexport default class QuerySource {\n\n constructor(protected _queryProcessor: QueryProcessor) {}\n\n from<Entity, Table1 extends QueryTable<Entity, any>>(table1: Table1 & QueryTable<Entity, any>): SelectQuery<Entity, Table1>\n from<Tables extends QueryTable<any, any>>(tables: JoinedTables<Tables>): SelectQuery<any, Tables>\n from<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>>(table1: Table1, table2: Table2): SelectQuery<any, Table1 | Table2>\n from<Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, Table3 extends QueryTable<any, any>>(table1: Table1, table2: Table2, table3: Table3): SelectQuery<any, Table1 | Table2 | Table3>\n from<Entity, Table1 extends QueryTable<any, any>, Table2 extends QueryTable<any, any>, Table3 extends QueryTable<any, any>>(table1: any, table2?: any, table3?: any) {\n if (table3 != null) return new SelectQuery<any, Table1 | Table2 | Table3>(this._queryProcessor, [table1, table2, table3]);\n else if (table2 != null) return new SelectQuery<any, Table1 | Table2>(this._queryProcessor, [table1, table2]);\n return new SelectQuery<Entity, Table1>(this._queryProcessor, [table1]);\n }\n\n table<Entity, Id, Table extends QueryTable<Entity, Id>>(table: Table & QueryTable<Entity, Id>): TableQuery<Entity, Id, Table> {\n return new TableQuery<Entity, Id, Table>(this._queryProcessor, table);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query-source.ts","\n\nimport BasicColumn from \"./column/basic-column\";\nimport GenericsHelper from \"./helpers/generics-helper\";\nimport JoinedTablesChain from \"./join/joined-tables-chain\";\n\n\nabstract class QueryTable<Entity, Id> {\n\n constructor(protected _$name: string) {}\n\n protected _$type: GenericsHelper<Entity>;\n protected _$idType: GenericsHelper<Id>;\n\n\n\n $all = new BasicColumn<this, Entity>(this, '*');\n\n innerJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'inner', this);\n }\n\n leftJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'left', this);\n }\n\n rightJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'right', this);\n }\n\n fullJoin<JoinTable extends QueryTable<any, any>>(table: JoinTable): JoinedTablesChain<this | JoinTable> {\n return new JoinedTablesChain<this | JoinTable>(table, 'full', this);\n }\n}\n\nexport default QueryTable;\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/builder/query-table.ts","\n\n\nexport function number(param: any): number {\n let result = Number(param);\n if (Number.isNaN(result)) throw new Error('Invalid number parameter in SQL query: ' + param);\n return result;\n}\n\nexport function boolean(param: any): boolean {\n if (typeof param === 'boolean') return param;\n if (param instanceof Boolean) return param.valueOf();\n if (param === 'true') return true;\n if (param === 'false') return false;\n throw new Error('Invalid boolean parameter in SQL query: ' + param);\n}\n\nexport function date(param: any): Date {\n if (param instanceof Date) return param; // @ts-ignore\n if (typeof param === 'number' || param instanceof Number) return new Date(param);\n if (typeof param === 'string' || param instanceof String) {\n if (Number.isNaN(Date.parse(String(param)))) throw new Error('Invalid date parameter in SQL query: ' + param); // @ts-ignore\n return new Date(param);\n }\n throw new Error('Invalid date parameter in SQL query: ' + param);\n}\n\nexport function string(param: any): string {\n if (typeof param === 'string') return param;\n if (param instanceof String) return param.valueOf();\n throw new Error('Invalid string parameter in SQL query: ' + param);\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/type-converter.ts","\n\nimport { string, number, date, boolean } from './type-converter';\nimport { QueryEngine, ConverterOptions } from \"./types\";\n\n\nexport function createQueryConverter(paramConverter: (param: any) => string, options: ConverterOptions, engine: QueryEngine) {\n\n return convertQuery;\n\n function convertQuery(query: any): string {\n if (query._action === 'select') return convertSelectQuery(query);\n if (query._action === 'delete') return convertDeleteQuery(query);\n if (query._action === 'update') return convertUpdateQuery(query);\n if (query._action === 'insert') return convertInsertQuery(query);\n throw new Error('Unknown query type:' + query._action);\n }\n\n function convertDeleteQuery(query: any): string {\n let s = 'DELETE FROM ' + convertTable(query._table);\n s += convertConditions(query._conditions);\n return s;\n }\n\n function convertUpdateQuery(query: any): string {\n let s = 'UPDATE ' + convertTable(query._table) + ' SET ';\n s += convertUpdateSetters(query._table, query._entity);\n s += convertConditions(query._conditions);\n return s;\n }\n\n function convertUpdateSetters(table: any, entity: any): string {\n return Object.keys(entity).sort().map(key => {\n let value = entity[key];\n let column = table[key];\n return convertColumnName(column) + ' = ' + convertParam(column, value);\n }).join(', ');\n }\n\n function convertInsertQuery(query: any): string {\n let items: any[] = Array.isArray(query._entity) ? query._entity : [query._entity];\n let keySet: Set<string> = items.reduce((set: Set<string>, item) => {\n Object.keys(item).forEach(key => set.add(key)); return set;\n }, new Set<string>());\n let keys = Array.from(keySet).sort();\n\n let s = 'INSERT INTO ' + convertTable(query._table) + ' ';\n s += '(' + keys.map(key => convertColumnName(query._table[key])).join(', ') + ')';\n s += options.lineBreak + 'VALUES ';\n s += items.map(item => convertInsertItem(query._table, item, keys))\n .map((row: string) => '(' + row + ')').join(', ');\n\n s += getPgInsertReturningIfNeeded(query);\n return s;\n }\n\n\n function getPgInsertReturningIfNeeded(query: any): string {\n if (engine === 'pg' && query._action === 'insert' && !Array.isArray(query._entity) &&\n query._table.$id && query._table.$id._table && query._table.$id._name) {\n return ' RETURNING ' + convertColumnName(query._table.$id);\n }\n return '';\n }\n\n function convertInsertItem(table: any, entity: any, keys: string[]): string {\n return keys.map(key => {\n let value = entity[key];\n let column = table[key];\n return convertParam(column, value);\n }).join(', ');\n }\n\n function convertSelectQuery(query: any): string {\n let s = 'SELECT ';\n if (query._distinct) {\n s += 'DISTINCT ';\n }\n\n if (query._columns == null || query._columns.length === 0) {\n s += '*'\n } else {\n s += query._columns.map((column: any) => convertColumn(column)).join(', ');\n }\n\n s += options.lineBreak + 'FROM ';\n if (query._tables) {\n s+= query._tables.map((table: any) => table._parent ? convertJoin(table) : convertTable(table)).join(', ');\n } else {\n s+= convertTable(query._table);\n }\n\n s += convertConditions(query._conditions);\n\n if (query._groupBy && query._groupBy.length > 0) {\n s += options.lineBreak + 'GROUP BY ';\n s += query._groupBy.map((column: any) => convertColumn(column)).join(', ');\n }\n s += convertConditions(query._having, 'HAVING');\n\n if (query._orderings && query._orderings.length > 0) {\n s += options.lineBreak + 'ORDER BY ';\n s += query._orderings.map((ordering: any) => convertOrdering(ordering)).join(', ');\n }\n if (query._limit != null) {\n s += options.lineBreak + 'LIMIT ' + number(query._limit);\n }\n if (query._offset != null) {\n s += options.lineBreak + 'OFFSET ' + number(query._offset);\n }\n return s;\n }\n\n function convertConditions(conditions: any[], keyword = 'WHERE'): string {\n let s = '';\n if (conditions && conditions.length > 0) {\n s += options.lineBreak + keyword + ' ';\n preprocessConditions(conditions);\n s += conditions.map(condition => convertCondition(condition, true)).join(' AND ');\n }\n return s;\n }\n\n function convertJoin(joinChain: any): string {\n let items: any[] = [];\n while (joinChain) {\n items.push(joinChain);\n joinChain = joinChain._parent;\n }\n\n let root = items[items.length - 1];\n let s = convertTable(root);\n\n for (let i = items.length - 2; i >= 0; i-= 2) {\n let table = items[i]._table;\n let modifier = items[i]._modifier;\n let condition = items[i - 1]._condition;\n let param = convertColumn(condition._otherColumn);\n s += ' ' + modifier.toUpperCase() + ' JOIN ' + convertTable(table) + ' ON ' +\n convertColumnCondition(condition, param);\n }\n\n return s;\n }\n\n function convertOrdering(ordering: any): string {\n if (ordering._column) {\n let s = convertColumn(ordering._column);\n\n if (ordering._nullsPosition != null) { // \"NULLS FIRST\" only exists in PG, this is the general solution\n s += ' IS NULL ' + (ordering._nullsPosition === 'FIRST' ? 'DESC' : 'ASC') + ', ' + s;\n }\n\n if (ordering._direction === 'ASC') s += ' ASC';\n if (ordering._direction === 'DESC') s += ' DESC';\n\n return s;\n } else {\n return convertColumn(ordering);\n }\n }\n\n function convertTable(table: any): string {\n return options.nameEscape + table._$name + options.nameEscape;\n }\n\n function convertColumn(column: any): string {\n let s = '';\n if (!(column._name === '*' && column._modifiers.length > 0 && column._modifiers[0].name === 'count')) {\n s += convertTable(column._table) + '.';\n }\n s += convertColumnName(column);\n return convertColumnModifiers(s, column);\n }\n\n function convertColumnModifiers(s: string, column: any): string {\n if (column._modifiers) {\n column._modifiers.forEach((modifier: any) => {\n let name = modifier.name;\n if (name === 'lower') s = 'LOWER(' + s + ')';\n else if (name === 'upper') s = 'UPPER(' + s + ')';\n else if (name === 'count') s = 'COUNT(' + s + ')';\n else if (name === 'sum') s = 'SUM(' + s + ')';\n else if (name === 'avg') s = 'AVG(' + s + ')';\n else if (name === 'min') s = 'MIN(' + s + ')';\n else if (name === 'max') s = 'MAX(' + s + ')';\n else if (name === 'as') s = s + ' AS ' + options.nameEscape + modifier.params + options.nameEscape;\n });\n }\n return s + '';\n }\n\n function convertColumnName(column: any): string {\n if (column._name === '*') return column._name;\n let name = typeof column._name === 'string' ? column._name : column._name.name;\n return options.nameEscape + name + options.nameEscape;\n }\n\n function preprocessConditions(conditions: any[]): void {\n conditions.forEach(condition => {\n if (conditions.length > 1 && condition._sibling) {\n condition._parenthesis = true;\n }\n preprocessParams(condition);\n });\n }\n\n\n function preprocessParams(condition: any): void {\n if (condition._sibling) {\n preprocessParams(condition._sibling);\n }\n if (!condition._sibling && !condition._child) {\n condition.__param = getConditionParam(condition);\n }\n if (condition._child) {\n preprocessParams(condition._child);\n }\n }\n\n function convertCondition(condition: any, root = false): string {\n if (!condition._sibling && !condition._child) {\n return convertColumnCondition(condition, condition.__param);\n }\n\n let s = '';\n if (condition._child) {\n s += convertCondition(condition._child);\n }\n if (condition._sibling) {\n s = convertCondition(condition._sibling, root) + ' ' + condition._chainType.toUpperCase() + ' ' + s;\n }\n if (condition._parenthesis || ((!root || condition._negation) && condition._child)) {\n s = '( ' + s + ' )';\n }\n if (condition._negation) {\n s = 'NOT ' + s;\n }\n return s;\n }\n\n function convertColumnCondition(condition: any, param: string): string {\n let s = convertColumn(condition._column);\n s += getConditionString(condition, param);\n return s;\n }\n\n function getConditionString(condition: any, param: string): string {\n switch (condition._type) {\n case 'eq': return ' = ' + param;\n case 'ne': return ' <> ' + param;\n case 'lt': return ' < ' + param;\n case 'gt': return ' > ' + param;\n case 'lte': return ' <= ' + param;\n case 'gte': return ' >= ' + param;\n case 'is-null': return ' IS NULL';\n case 'is-not-null': return ' IS NOT NULL';\n case 'like': return ' LIKE ' + param;\n case 'not-like': return ' NOT LIKE ' + param;\n case 'in': return ' IN (' + param + ')';\n case 'not-in': return ' NOT IN (' + param + ')';\n case 'between': return ' BETWEEN ' + param;\n case 'not-between': return ' NOT BETWEEN ' + param;\n default: return '';\n }\n }\n\n function getConditionParam(condition: any): string {\n let param = '';\n if (condition._otherColumn) {\n param = convertColumn(condition._otherColumn);\n } else {\n let _convertParam = (param: any) => convertParam(condition._column, param);\n\n if (condition._type === 'in' || condition._type === 'not-in') {\n param = condition._values.map((value: any) => _convertParam(value)).join(', ');\n } else if (condition._type === 'between' || condition._type === 'not-between') {\n param = _convertParam(condition._values[0]) + ' AND ' + _convertParam(condition._values[1]);\n } else if (condition._type !== 'is-null' && condition._type !== 'is-not-null') {\n param = _convertParam(condition._values[0]);\n }\n }\n return param;\n }\n\n function convertParam(column: any, param: any): string {\n if (param == null) return 'NULL';\n return paramConverter(getTypedParam(column._type, param));\n }\n\n function getTypedParam(type: string, param: any): any {\n if (type === 'number') return number(param);\n else if (type === 'boolean') return boolean(param);\n else if (type === 'date') return date(param);\n else if (type === 'string') return string(param);\n return param;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/query-converter.ts","\n\n\nexport function convertSubstitutionParam(param: any): string {\n if (param == null) return 'NULL';\n if (typeof param === 'string' || param instanceof String) {\n return `'${String(param)}'`;\n } else if (typeof param === 'boolean' || param instanceof Boolean) {\n return String(param).toUpperCase();\n } else if (param instanceof Date) {\n return `'${param.toISOString()}'`;\n } else if (typeof param === 'number' || param instanceof Number) {\n return String(param);\n }\n return `'${JSON.stringify(param)}'`;\n}\n\n\n\nexport function convertEscapedParam(param: any) {\n if (typeof param === 'object' && !(param == null || param instanceof String || param instanceof Number ||\n param instanceof Boolean || param instanceof Date)) {\n return JSON.stringify(param);\n }\n return param;\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/param-converter.ts","\n\nimport {createQueryConverter} from \"./query-converter\";\nimport {convertEscapedParam} from './param-converter';\nimport {QueryEngine, ConverterOptions} from \"./types\";\n\nlet pgParamConverter = (index: number) => '$' + index;\nlet mySqlParamConverter = (index: number) => '?';\n\nfunction convertSingleParam(param: any, params: any[], paramConverter: (param: any) => string): string {\n params.push(convertEscapedParam(param));\n return paramConverter(params.length);\n}\n\nexport function convertQueryToParameterizedSQL(query: any, options: ConverterOptions, engine: QueryEngine) {\n let params: any[] = [];\n\n let paramConverter = engine === 'mysql' ? mySqlParamConverter : pgParamConverter;\n let sql = createQueryConverter((param: any) => convertSingleParam(param, params, paramConverter), options, engine)(query);\n\n return { sql, params };\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/parameterized-converter.ts","\n\nimport {createQueryConverter} from \"./query-converter\";\nimport {convertSubstitutionParam} from './param-converter';\nimport {QueryEngine, ConverterOptions} from \"./types\";\n\nexport function convertQueryToSQL(query: any, options: ConverterOptions, engine: QueryEngine): string {\n return createQueryConverter((param: any) => convertSubstitutionParam(param), options, engine)(query);\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/converter/sql-converter.ts","\n\nimport { Log, Level } from 'ng2-logger/browser';\nimport { convertQueryToParameterizedSQL } from '../converter/parameterized-converter';\nimport { convertQueryToSQL } from '../converter/sql-converter';\nimport { convertResult } from \"../converter/result-converter\";\nimport { QueryEngine, ConverterOptions } from '../converter/types';\nimport { QueryProcessor } from '../builder/helpers/internal-types';\nimport { Helpers } from 'tnp-core/browser';\n\nconst log = Log.create('query processor',\n\n)\n\nexport interface QueryProcessorOptions {\n lineBreaks?: boolean,\n parameterized?: boolean,\n logging?: boolean,\n logger?: (sql: string, params?: any[]) => void,\n identifierQuote?: string\n}\n\nconst DEFAULT_OPTIONS: QueryProcessorOptions = {\n lineBreaks: false,\n parameterized: true,\n logging: true,\n identifierQuote: '\"'\n};\n\nfunction mySqlTypeCast(field: any, next: any) {\n if (field.type == 'TINY' && field.length == 1) { // Boolean\n let value = field.string();\n if (value == '1') return true;\n if (value == '0') return false;\n return null;\n } else if (field.type == 'JSON') {\n let value = field.string();\n return value == null ? null : JSON.parse(value);\n }\n return next();\n}\n\nexport function createQueryProcessor(client: any, _options: QueryProcessorOptions = {}, engine: QueryEngine = 'pg'): QueryProcessor {\n\n let options: QueryProcessorOptions = Object.assign({}, DEFAULT_OPTIONS, _options);\n\n let queryOptions: ConverterOptions = {\n lineBreak: options.lineBreaks ? '\\n' : ' ',\n nameEscape: _options.identifierQuote || (engine === 'mysql' ? '`' : '\"')\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n return (query: any) => {\n if (options.parameterized) {\n let { sql, params } = convertQueryToParameterizedSQL(query, queryOptions, engine);\n\n return client.query(sql, params);\n\n\n } else {\n let sql = convertQueryToSQL(query, queryOptions, engine);\n\n return client.query(sql, undefined);\n\n\n }\n };\n}\n\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/client/query-processor.ts","\n\nimport QuerySource from \"../builder/query-source\";\nimport {QueryProcessorOptions, createQueryProcessor} from \"./query-processor\";\n\nexport default class MySqlQuerySource extends QuerySource {\n\n constructor(client: any, options: QueryProcessorOptions = {}) {\n super(createQueryProcessor(client, options, 'mysql'));\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/client/mysql.ts","\n\n\n\n\nexport { default as BasicColumn } from './builder/column/basic-column';\nexport { default as BooleanColumn } from './builder/column/boolean-column';\nexport { default as ComparableColumn } from './builder/column/comparable-column';\nexport { default as DateColumn } from './builder/column/date-column';\nexport { default as NumberColumn } from './builder/column/number-column';\nexport { default as QueryColumn } from './builder/column/query-column';\nexport { default as StringColumn } from './builder/column/string-column';\nexport { default as ValueColumn } from './builder/column/value-column';\n\nexport { default as QueryColumnCondition } from './builder/condition/query-column-condition';\nexport { default as QueryCondition } from './builder/condition/query-condition';\nexport { default as QueryConditionChain } from './builder/condition/query-condition-chain';\nexport { default as QueryJoinCondition } from './builder/condition/query-join-condition';\n\nexport { default as JoinedTables } from './builder/join/joined-tables';\nexport { default as JoinedTablesChain } from './builder/join/joined-tables-chain';\n\nexport { default as QueryOrdering } from './builder/other/query-ordering';\n\nexport { default as SelectQuery } from './builder/query/select-query';\nexport { default as TableQuery } from './builder/query/table-query';\nexport { default as TableConditionQuery } from './builder/query/table-condition-query';\n\nexport { default as QuerySource } from './builder/query-source';\nexport { default as QueryTable } from './builder/query-table';\n\n\n\nexport { default as MySqlQuerySource } from './client/mysql';\n\n\nexport { QueryProcessorOptions } from './client/query-processor';\n\n\nexport type PropsEntitySQL<IEntityType> = { [prop in keyof Required<IEntityType>]: any; }\n\n ;({}); // @--end-of-file-for-module=taon-type-sql lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAOA,MAAe,cAAc,CAAA;AAK5B;AAIA;AAAC,CAAC,EAAE,EAAE;;ACRc,MAAA,mBAAwD,SAAQ,cAAqB,CAAA;AAUtG,IAAA,WAAA,CAAY,OAA4B,EAAE,KAA0B,EAAE,SAA6B,EAAA;AAC/F,QAAA,KAAK,EAAE;QAJD,IAAY,CAAA,YAAA,GAAG,KAAK;QACpB,IAAS,CAAA,SAAA,GAAG,KAAK;AAIvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;IAI/B,CAAC,GAAA;AACG,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,OAAO,IAAI;;IAGf,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,OAAO,IAAI;;AAGf,IAAA,GAAG,CAAsC,SAAiC,EAAA;QACtE,OAAO,IAAI,mBAAmB,CAAiB,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;;AAG1E,IAAA,EAAE,CAAsC,SAAiC,EAAA;QACrE,OAAO,IAAI,mBAAmB,CAAiB,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;AAE5E;AAEA;AAAC,CAAC,EAAE,EAAE;;ACpCc,MAAA,oBAA4D,SAAQ,cAAqB,CAAA;AAM1G,IAAA,WAAA,CAAY,MAA6B,EAAE,IAAmB,EAAE,GAAG,MAAW,EAAA;AAC1E,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;;AAGzB,IAAA,GAAG,CAAsC,SAAiC,EAAA;QACtE,OAAO,IAAI,mBAAmB,CAAiB,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;;AAG1E,IAAA,EAAE,CAAsC,SAAiC,EAAA;QACrE,OAAO,IAAI,mBAAmB,CAAiB,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;AAE5E;AAEA;AAAC,CAAC,EAAE,EAAE;;ACtBP,MAAe,WAAW,CAAA;AAKtB,IAAA,WAAA,CACc,MAAa,EACb,KAAiB,EACjB,aAA+B,EAAE,EAAA;QAFjC,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAU,CAAA,UAAA,GAAV,UAAU;;AAKxB,IAAA,EAAE,CAAC,KAAa,EAAA;AACZ,QAAA,OAAO,IAAU,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;;IAGtH,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,SAAS,CAAC;;IAG9D,SAAS,GAAA;AACL,QAAA,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,aAAa,CAAC;;AAErE;AAIA;AAAC,CAAC,EAAE,EAAE;;AC/BO,MAAO,aAAa,CAAA;IAM9B,WAAY,CAAA,MAA+B,EAAE,SAAyB,EAAA;AAClE,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;IAG/B,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;AAC7B,QAAA,OAAO,IAAI;;IAGf,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;AAC5B,QAAA,OAAO,IAAI;;AAGlB;AAGA;AAAC,CAAC,EAAE,EAAE;;ACtBc,MAAA,kBAAgG,SAAQ,cAA+B,CAAA;AAMxJ,IAAA,WAAA,CAAY,MAA8B,EAAE,IAAY,EAAE,WAAmC,EAAA;AACzF,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;;AAGnC,IAAA,GAAG,CAAsC,SAAiC,EAAA;QACtE,OAAO,IAAI,mBAAmB,CAA2B,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;;AAGpF,IAAA,EAAE,CAAsC,SAAiC,EAAA;QACrE,OAAO,IAAI,mBAAmB,CAA2B,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;AAEtF;AAEA;AAAC,CAAC,EAAE,EAAE;;ACnBP,MAAe,WAAmD,SAAQ,WAAqB,CAAA;AAE3F,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;;IAGjC,GAAG,GAAA;AACC,QAAA,OAAO,IAAI,aAAa,CAAQ,IAAI,EAAE,KAAK,CAAC;;IAGhD,IAAI,GAAA;AACA,QAAA,OAAO,IAAI,aAAa,CAAQ,IAAI,EAAE,MAAM,CAAC;;AAKjD,IAAA,EAAE,CAAsC,KAAU,EAAA;AAC9C,QAAA,IAAI,KAAK,YAAY,WAAW,EAAE;YAC9B,OAAO,IAAI,kBAAkB,CAAmB,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;aAC/D;YACH,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;;AAIpE,IAAA,EAAE,CAAC,KAAQ,EAAA;QACP,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;AAEnE;AAIA;AAAC,CAAC,EAAE,EAAE;;AClCP,MAAe,gBAAwD,SAAQ,WAAqB,CAAA;AAEhG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;;AAGjC,IAAA,EAAE,CAAC,KAAQ,EAAA;QACP,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;AAGhE,IAAA,EAAE,CAAC,KAAQ,EAAA;QACP,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;AAGhE,IAAA,GAAG,CAAC,KAAQ,EAAA;QACR,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;;AAGjE,IAAA,GAAG,CAAC,KAAQ,EAAA;QACR,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;;AAGjE,IAAA,EAAE,CAAC,MAAW,EAAA;QACV,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;;AAGpE,IAAA,KAAK,CAAC,MAAW,EAAA;QACb,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;;IAGxE,OAAO,CAAC,MAAS,EAAE,MAAS,EAAA;QACxB,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;;IAG9E,UAAU,CAAC,MAAS,EAAE,MAAS,EAAA;QAC3B,OAAO,IAAI,oBAAoB,CAAW,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;;IAKlF,GAAG,GAAA;QACC,OAAO,IAAU,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;IAGxG,GAAG,GAAA;QACC,OAAO,IAAU,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;AAE3G;AAIA;AAAC,CAAC,EAAE,EAAE;;ACpDc,MAAA,YAAiD,SAAQ,gBAA+B,CAAA;AAIzG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;QAHvB,IAAK,CAAA,KAAA,GAAG,QAAQ;;IAM1B,KAAK,GAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;IAG/F,GAAG,GAAA;QACC,OAAO,IAAI,YAAY,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;IAGpG,GAAG,GAAA;QACC,OAAO,IAAI,YAAY,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;AAEvG;AAEA;AAAC,CAAC,EAAE,EAAE;;ACnBc,MAAA,WAAmD,SAAQ,WAAqB,CAAA;AAEjG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;;IAGjC,KAAK,GAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAElG;AAEA;AAAC,CAAC,EAAE,EAAE;;ACZc,MAAA,aAAkD,SAAQ,WAA2B,CAAA;AAItG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;QAHvB,IAAK,CAAA,KAAA,GAAG,SAAS;;IAM3B,KAAK,GAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAGlG;AAEA;AAAC,CAAC,EAAE,EAAE;;ACdc,MAAA,UAA+C,SAAQ,gBAA6B,CAAA;AAIrG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;QAHvB,IAAK,CAAA,KAAA,GAAG,MAAM;;IAMxB,KAAK,GAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAGlG;AAEA;AAAC,CAAC,EAAE,EAAE;;ACbc,MAAA,YAAiD,SAAQ,gBAA+B,CAAA;AAIzG,IAAA,WAAA,CAAY,KAAY,EAAE,IAAgB,EAAE,YAA8B,EAAE,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;QAHvB,IAAK,CAAA,KAAA,GAAG,QAAQ;;IAM1B,KAAK,GAAA;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;IAG/F,KAAK,GAAA;QACD,OAAO,IAAU,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;IAG1G,KAAK,GAAA;QACD,OAAO,IAAU,IAAI,CAAC,WAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAG1G,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;;AAGvC,IAAA,UAAU,CAAC,KAAa,EAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;;AAGjC,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;;AAGjC,IAAA,IAAI,CAAC,KAAa,EAAA;QACd,OAAO,IAAI,oBAAoB,CAAgB,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;;AAGvE,IAAA,OAAO,CAAC,KAAa,EAAA;QACjB,OAAO,IAAI,oBAAoB,CAAgB,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;;AAE9E;AAEA;AAAC,CAAC,EAAE,EAAE;;AC3CO,MAAO,iBAAiB,CAAA;AAElC,IAAA,WAAA,CACc,MAA4B,EAC5B,SAAmB,EACnB,OAAoD,EAAA;QAFpD,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAO,CAAA,OAAA,GAAP,OAAO;;AAGrB,IAAA,EAAE,CAAC,SAAkD,EAAA;AACjD,QAAA,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;;AAE/C;AAEA;AAAC,CAAC,EAAE,EAAE;;ACbO,MAAO,YAAY,CAAA;IAE7B,WACc,CAAA,UAAmD,EACnD,OAAkC,EAAA;QADlC,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAO,CAAA,OAAA,GAAP,OAAO;;AAGrB,IAAA,SAAS,CAAyC,KAAgB,EAAA;QAC9D,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;;AAGtD,IAAA,QAAQ,CAAyC,KAAgB,EAAA;QAC7D,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;;AAGrD,IAAA,SAAS,CAAyC,KAAgB,EAAA;QAC9D,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;;AAGtD,IAAA,QAAQ,CAAyC,KAAgB,EAAA;QAC7D,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;;AAExD;AAEA;AAAC,CAAC,EAAE,EAAE;;ACtBO,MAAO,WAAW,CAAA;IAE5B,WACc,CAAA,eAA+B,EAC/B,OAAgB,EAAA;QADhB,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAO,CAAA,OAAA,GAAP,OAAO;QAGX,IAAS,CAAA,SAAA,GAAG,KAAK;QAGjB,IAAW,CAAA,WAAA,GAA4B,EAAE;QACzC,IAAQ,CAAA,QAAA,GAA8B,EAAE;QACxC,IAAO,CAAA,OAAA,GAA4B,EAAE;QACrC,IAAU,CAAA,UAAA,GAAuD,EAAE;QACnE,IAAQ,CAAA,QAAA,GAA8B,EAAE;;AAGlD,IAAA,MAAM,CAAC,MAAc,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,OAAO,IAAI;;AAGf,IAAA,KAAK,CAAC,KAAa,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,OAAO,IAAI;;IAGf,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,OAAO,IAAI;;IAGf,KAAK,CAAC,GAAG,UAAmC,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU;AAC7B,QAAA,OAAO,IAAI;;IAGf,OAAO,CAAC,GAAG,OAAkC,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,OAAO,IAAI;;IAGf,MAAM,CAAC,GAAG,UAAmC,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU;AACzB,QAAA,OAAO,IAAI;;IAGf,OAAO,CAAC,GAAG,SAA6D,EAAA;AACpE,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,OAAO,IAAI;;IAMf,MAAM,CAAC,GAAG,OAAkC,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAExC;AAEA;AAAC,CAAC,EAAE,EAAE;;AC/DO,MAAO,mBAAmB,CAAA;AAEpC,IAAA,WAAA,CACc,eAA+B,EAC/B,MAAa,EACb,WAAoC,EAAA;QAFpC,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAW,CAAA,WAAA,GAAX,WAAW;QAGf,IAAQ,CAAA,QAAA,GAA8B,EAAE;;AAIlD,IAAA,MAAM,CAAC,MAAuB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAGrC,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAGrC,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;;AAE1E;AAEA;AAAC,CAAC,EAAE,EAAE;;AC5BO,MAAO,UAAU,CAAA;IAE3B,WACc,CAAA,eAA+B,EAC/B,MAAa,EAAA;QADb,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAM,CAAA,MAAA,GAAN,MAAM;QAKV,IAAQ,CAAA,QAAA,GAA8B,EAAE;;IAElD,KAAK,CAAC,GAAG,UAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,mBAAmB,CAAgB,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;;AAKhG,IAAA,MAAM,CAAC,KAAU,EAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAGrC,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAGrC,IAAA,SAAS,CAAC,MAAuB,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAGrC,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;;AAGpE,IAAA,MAAM,CAAC,EAAM,EAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;;IAG9D,MAAM,CAAC,EAAM,EAAE,MAAuB,EAAA;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;;AAGpE,IAAA,GAAG,CAAC,EAAM,EAAA;QACN,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE;aACtD,IAAI,CAAC,CAAC,IAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;;AAG1C,IAAA,QAAQ,CAAC,EAAM,EAAA;AAEX,QAAA,IAAI,GAAG,GAAI,IAAI,CAAC,MAAc,CAAC,GAAG;AAClC,QAAA,IAAI,GAAG,YAAY,WAAW,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;aAC1B;AACH,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAM,IAAI,CAAC,MAAc,CAAC,GAAG,CAA6B,CAAC,EAAE,CAAE,EAAU,CAAC,GAAG,CAAQ,CAAC,CAAC,CAAC;;;AAGhJ;AAEA;AAAC,CAAC,EAAE,EAAE;;AClEO,MAAO,WAAW,CAAA;AAE5B,IAAA,WAAA,CAAsB,eAA+B,EAAA;QAA/B,IAAe,CAAA,eAAA,GAAf,eAAe;;AAMrC,IAAA,IAAI,CAAwH,MAAW,EAAE,MAAY,EAAE,MAAY,EAAA;QAC/J,IAAI,MAAM,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI,WAAW,CAAgC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aACpH,IAAI,MAAM,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI,WAAW,CAAuB,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7G,OAAO,IAAI,WAAW,CAAiB,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;;AAG1E,IAAA,KAAK,CAAmD,KAAqC,EAAA;QACzF,OAAO,IAAI,UAAU,CAAoB,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;;AAE5E;AAEA;AAAC,CAAC,EAAE,EAAE;;ACrBP,MAAe,UAAU,CAAA;AAErB,IAAA,WAAA,CAAsB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM;QAO5B,IAAI,CAAA,IAAA,GAAG,IAAI,WAAW,CAAe,IAAI,EAAE,GAAG,CAAC;;AAE/C,IAAA,SAAS,CAAyC,KAAgB,EAAA;QAC9D,OAAO,IAAI,iBAAiB,CAAmB,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;;AAGxE,IAAA,QAAQ,CAAyC,KAAgB,EAAA;QAC7D,OAAO,IAAI,iBAAiB,CAAmB,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;;AAGvE,IAAA,SAAS,CAAyC,KAAgB,EAAA;QAC9D,OAAO,IAAI,iBAAiB,CAAmB,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;;AAGxE,IAAA,QAAQ,CAAyC,KAAgB,EAAA;QAC7D,OAAO,IAAI,iBAAiB,CAAmB,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;;AAE1E;AAIA;AAAC,CAAC,EAAE,EAAE;;AClCD,SAAU,MAAM,CAAC,KAAU,EAAA;AAC/B,IAAA,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,KAAK,CAAC;AAC5F,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,OAAO,CAAC,KAAU,EAAA;IAChC,IAAI,OAAO,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,KAAK;IAC5C,IAAI,KAAK,YAAY,OAAO;AAAE,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE;IACpD,IAAI,KAAK,KAAK,MAAM;AAAE,QAAA,OAAO,IAAI;IACjC,IAAI,KAAK,KAAK,OAAO;AAAE,QAAA,OAAO,KAAK;AACnC,IAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,KAAK,CAAC;AACrE;AAEM,SAAU,IAAI,CAAC,KAAU,EAAA;IAC7B,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC;AACxC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM;AAAE,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;AACxD,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,KAAK,CAAC,CAAC;AAC9G,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;AAExB,IAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,KAAK,CAAC;AAClE;AAEM,SAAU,MAAM,CAAC,KAAU,EAAA;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,KAAK;IAC3C,IAAI,KAAK,YAAY,MAAM;AAAE,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE;AACnD,IAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,KAAK,CAAC;AACpE;AAEC;AAAC,CAAC,EAAE,EAAE;;SC3BS,oBAAoB,CAAC,cAAsC,EAAE,OAAyB,EAAE,MAAmB,EAAA;AAEvH,IAAA,OAAO,YAAY;IAEnB,SAAS,YAAY,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAChE,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAChE,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAChE,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC;;IAG1D,SAAS,kBAAkB,CAAC,KAAU,EAAA;QAClC,IAAI,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;AACnD,QAAA,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;AACzC,QAAA,OAAO,CAAC;;IAGZ,SAAS,kBAAkB,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO;QACxD,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;AACtD,QAAA,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;AACzC,QAAA,OAAO,CAAC;;AAGZ,IAAA,SAAS,oBAAoB,CAAC,KAAU,EAAE,MAAW,EAAA;AACjD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAG;AACxC,YAAA,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,YAAA,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;AACvB,YAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1E,SAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGjB,SAAS,kBAAkB,CAAC,KAAU,EAAA;QAClC,IAAI,KAAK,GAAU,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QACjF,IAAI,MAAM,GAAgB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAgB,EAAE,IAAI,KAAI;AAC9D,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAAE,YAAA,OAAO,GAAG;AAC9D,SAAC,EAAE,IAAI,GAAG,EAAU,CAAC;QACrB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AAEpC,QAAA,IAAI,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG;AACzD,QAAA,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;AACjF,QAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS;AAClC,QAAA,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,aAAA,GAAG,CAAC,CAAC,GAAW,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAErD,QAAA,CAAC,IAAI,4BAA4B,CAAC,KAAK,CAAC;AACxC,QAAA,OAAO,CAAC;;IAIZ,SAAS,4BAA4B,CAAC,KAAU,EAAA;AAC5C,QAAA,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9E,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACvE,OAAO,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE9D,QAAA,OAAO,EAAE;;AAGb,IAAA,SAAS,iBAAiB,CAAC,KAAU,EAAE,MAAW,EAAE,IAAc,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAG;AAClB,YAAA,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,YAAA,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;AACvB,YAAA,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;AACtC,SAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGjB,SAAS,kBAAkB,CAAC,KAAU,EAAA;QAClC,IAAI,CAAC,GAAG,SAAS;AACjB,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE;YACjB,CAAC,IAAI,WAAW;;AAGpB,QAAA,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,CAAC,IAAI,GAAG;;aACL;YACH,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAW,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG9E,QAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO;AAChC,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;aACvG;AACH,YAAA,CAAC,IAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;;AAGlC,QAAA,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;AAEzC,QAAA,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,YAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,WAAW;YACpC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAW,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;QAE9E,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;AAE/C,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,WAAW;YACpC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAa,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEtF,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACtB,YAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;;AAE5D,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;AACvB,YAAA,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;AAE9D,QAAA,OAAO,CAAC;;AAGZ,IAAA,SAAS,iBAAiB,CAAC,UAAiB,EAAE,OAAO,GAAG,OAAO,EAAA;QAC3D,IAAI,CAAC,GAAG,EAAE;QACV,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,GAAG;YACtC,oBAAoB,CAAC,UAAU,CAAC;YAChC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;AAErF,QAAA,OAAO,CAAC;;IAGZ,SAAS,WAAW,CAAC,SAAc,EAAA;QAC/B,IAAI,KAAK,GAAU,EAAE;QACrB,OAAO,SAAS,EAAE;AACd,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACrB,YAAA,SAAS,GAAG,SAAS,CAAC,OAAO;;QAGjC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;AAE1B,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAG,CAAC,EAAE;YAC1C,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACjC,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;YACvC,IAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC;AACjD,YAAA,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM;AACvE,gBAAA,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC;;AAGhD,QAAA,OAAO,CAAC;;IAGZ,SAAS,eAAe,CAAC,QAAa,EAAA;AAClC,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;YAEvC,IAAI,QAAQ,CAAC,cAAc,IAAI,IAAI,EAAE;gBACjC,CAAC,IAAI,WAAW,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC;;AAGxF,YAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK;gBAAE,CAAC,IAAI,MAAM;AAC9C,YAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM;gBAAE,CAAC,IAAI,OAAO;AAEhD,YAAA,OAAO,CAAC;;aACL;AACH,YAAA,OAAO,aAAa,CAAC,QAAQ,CAAC;;;IAItC,SAAS,YAAY,CAAC,KAAU,EAAA;QAC5B,OAAO,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU;;IAGjE,SAAS,aAAa,CAAC,MAAW,EAAA;QAC9B,IAAI,CAAC,GAAG,EAAE;AACV,QAAA,IAAI,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;YAClG,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG;;AAE1C,QAAA,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC;AAC9B,QAAA,OAAO,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC;;AAG5C,IAAA,SAAS,sBAAsB,CAAC,CAAS,EAAE,MAAW,EAAA;AAClD,QAAA,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;AACxC,gBAAA,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI;gBACxB,IAAI,IAAI,KAAK,OAAO;AAAE,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG;qBACvC,IAAI,IAAI,KAAK,OAAO;AAAE,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG;qBAC5C,IAAI,IAAI,KAAK,OAAO;AAAE,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG;qBAC5C,IAAI,IAAI,KAAK,KAAK;AAAE,oBAAA,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG;qBACxC,IAAI,IAAI,KAAK,KAAK;AAAE,oBAAA,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG;qBACxC,IAAI,IAAI,KAAK,KAAK;AAAE,oBAAA,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG;qBACxC,IAAI,IAAI,KAAK,KAAK;AAAE,oBAAA,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG;qBACxC,IAAI,IAAI,KAAK,IAAI;AAAE,oBAAA,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU;AACtG,aAAC,CAAC;;QAEN,OAAO,CAAC,GAAG,EAAE;;IAGjB,SAAS,iBAAiB,CAAC,MAAW,EAAA;AAClC,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG;YAAE,OAAO,MAAM,CAAC,KAAK;QAC7C,IAAI,IAAI,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI;QAC9E,OAAO,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU;;IAGzD,SAAS,oBAAoB,CAAC,UAAiB,EAAA;AAC3C,QAAA,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;YAC3B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE;AAC7C,gBAAA,SAAS,CAAC,YAAY,GAAG,IAAI;;YAEjC,gBAAgB,CAAC,SAAS,CAAC;AAC/B,SAAC,CAAC;;IAIN,SAAS,gBAAgB,CAAC,SAAc,EAAA;AACpC,QAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;AACpB,YAAA,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC;;QAExC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC1C,YAAA,SAAS,CAAC,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC;;AAEpD,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;AAClB,YAAA,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;;;AAI1C,IAAA,SAAS,gBAAgB,CAAC,SAAc,EAAE,IAAI,GAAG,KAAK,EAAA;QAClD,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,OAAO,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;;QAG/D,IAAI,CAAC,GAAG,EAAE;AACV,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;AAClB,YAAA,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;;AAE3C,QAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;YACpB,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC;;AAEvG,QAAA,IAAI,SAAS,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE;AAChF,YAAA,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;;AAEvB,QAAA,IAAI,SAAS,CAAC,SAAS,EAAE;AACrB,YAAA,CAAC,GAAG,MAAM,GAAG,CAAC;;AAElB,QAAA,OAAO,CAAC;;AAGZ,IAAA,SAAS,sBAAsB,CAAC,SAAc,EAAE,KAAa,EAAA;QACzD,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC;AACxC,QAAA,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC;AACzC,QAAA,OAAO,CAAC;;AAGZ,IAAA,SAAS,kBAAkB,CAAC,SAAc,EAAE,KAAa,EAAA;AACrD,QAAA,QAAQ,SAAS,CAAC,KAAK;AACnB,YAAA,KAAK,IAAI,EAAE,OAAO,KAAK,GAAG,KAAK;AAC/B,YAAA,KAAK,IAAI,EAAE,OAAO,MAAM,GAAG,KAAK;AAChC,YAAA,KAAK,IAAI,EAAE,OAAO,KAAK,GAAG,KAAK;AAC/B,YAAA,KAAK,IAAI,EAAE,OAAO,KAAK,GAAG,KAAK;AAC/B,YAAA,KAAK,KAAK,EAAE,OAAO,MAAM,GAAG,KAAK;AACjC,YAAA,KAAK,KAAK,EAAE,OAAO,MAAM,GAAG,KAAK;AACjC,YAAA,KAAK,SAAS,EAAE,OAAO,UAAU;AACjC,YAAA,KAAK,aAAa,EAAE,OAAO,cAAc;AACzC,YAAA,KAAK,MAAM,EAAE,OAAO,QAAQ,GAAG,KAAK;AACpC,YAAA,KAAK,UAAU,EAAE,OAAO,YAAY,GAAG,KAAK;YAC5C,KAAK,IAAI,EAAE,OAAO,OAAO,GAAG,KAAK,GAAG,GAAG;YACvC,KAAK,QAAQ,EAAE,OAAO,WAAW,GAAG,KAAK,GAAG,GAAG;AAC/C,YAAA,KAAK,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC1C,YAAA,KAAK,aAAa,EAAE,OAAO,eAAe,GAAG,KAAK;AAClD,YAAA,SAAS,OAAO,EAAE;;;IAI1B,SAAS,iBAAiB,CAAC,SAAc,EAAA;QACrC,IAAI,KAAK,GAAG,EAAE;AACd,QAAA,IAAI,SAAS,CAAC,YAAY,EAAE;AACxB,YAAA,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC;;aAC1C;AACH,YAAA,IAAI,aAAa,GAAG,CAAC,KAAU,KAAK,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;AAE1E,YAAA,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC1D,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAC3E,iBAAA,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,aAAa,EAAE;gBAC3E,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AACxF,iBAAA,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,aAAa,EAAE;gBAC3E,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;;AAGnD,QAAA,OAAO,KAAK;;AAGhB,IAAA,SAAS,YAAY,CAAC,MAAW,EAAE,KAAU,EAAA;QACzC,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,MAAM;QAChC,OAAO,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;AAG7D,IAAA,SAAS,aAAa,CAAC,IAAY,EAAE,KAAU,EAAA;QAC3C,IAAI,IAAI,KAAK,QAAQ;AAAE,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;aACtC,IAAI,IAAI,KAAK,SAAS;AAAE,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC;aAC7C,IAAI,IAAI,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC;aACvC,IAAI,IAAI,KAAK,QAAQ;AAAE,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AAChD,QAAA,OAAO,KAAK;;AAEpB;AAEC;AAAC,CAAC,EAAE,EAAE;;ACxSD,SAAU,wBAAwB,CAAC,KAAU,EAAA;IAC/C,IAAI,KAAK,IAAI,IAAI;AAAE,QAAA,OAAO,MAAM;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;AACtD,QAAA,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG;;SACxB,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,YAAY,OAAO,EAAE;AAC/D,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;;AAC/B,SAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AAC9B,QAAA,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG;;SAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;AAC7D,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;;IAExB,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG;AACvC;AAIM,SAAU,mBAAmB,CAAC,KAAU,EAAA;AAC1C,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,MAAM;QAClG,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAEhC,IAAA,OAAO,KAAK;AAChB;AAEC;AAAC,CAAC,EAAE,EAAE;;ACrBP,IAAI,gBAAgB,GAAG,CAAC,KAAa,KAAK,GAAG,GAAG,KAAK;AACrD,IAAI,mBAAmB,GAAG,CAAC,KAAa,KAAK,GAAG;AAEhD,SAAS,kBAAkB,CAAC,KAAU,EAAE,MAAa,EAAE,cAAsC,EAAA;IACzF,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACvC,IAAA,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC;SAEgB,8BAA8B,CAAC,KAAU,EAAE,OAAyB,EAAE,MAAmB,EAAA;IACrG,IAAI,MAAM,GAAU,EAAE;AAEtB,IAAA,IAAI,cAAc,GAAG,MAAM,KAAK,OAAO,GAAG,mBAAmB,GAAG,gBAAgB;IAChF,IAAI,GAAG,GAAG,oBAAoB,CAAC,CAAC,KAAU,KAAK,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAEzH,IAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAC1B;AAEC;AAAC,CAAC,EAAE,EAAE;;SCjBS,iBAAiB,CAAC,KAAU,EAAE,OAAyB,EAAE,MAAmB,EAAA;AACxF,IAAA,OAAO,oBAAoB,CAAC,CAAC,KAAU,KAAK,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AACxG;AAEC;AAAC,CAAC,EAAE,EAAE;;ACAP,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAEvC;AAUD,MAAM,eAAe,GAA0B;AAC7C,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,eAAe,EAAE;CAClB;AAED,SAAS,aAAa,CAAC,KAAU,EAAE,IAAS,EAAA;AAC1C,IAAA,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7C,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE;QAC1B,IAAI,KAAK,IAAI,GAAG;AAAE,YAAA,OAAO,IAAI;QAC7B,IAAI,KAAK,IAAI,GAAG;AAAE,YAAA,OAAO,KAAK;AAC9B,QAAA,OAAO,IAAI;;AACN,SAAA,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE;AAC/B,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE;AAC1B,QAAA,OAAO,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;IAEjD,OAAO,IAAI,EAAE;AACf;AAEM,SAAU,oBAAoB,CAAC,MAAW,EAAE,QAAkC,GAAA,EAAE,EAAE,MAAA,GAAsB,IAAI,EAAA;AAEhH,IAAA,IAAI,OAAO,GAA0B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC;AAEjF,IAAA,IAAI,YAAY,GAAqB;QACnC,SAAS,EAAE,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG;AAC1C,QAAA,UAAU,EAAE,QAAQ,CAAC,eAAe,KAAK,MAAM,KAAK,OAAO,GAAG,GAAG,GAAG,GAAG;KACxE;IA0BD,OAAO,CAAC,KAAU,KAAI;AACpB,QAAA,IAAI,OAAO,CAAC,aAAa,EAAE;AACzB,YAAA,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,8BAA8B,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC;YAEjF,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;;aAG3B;YACL,IAAI,GAAG,GAAG,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC;YAExD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;;AAIvC,KAAC;AACH;AAGC;AAAC,CAAC,EAAE,EAAE;;ACxFc,MAAA,gBAAiB,SAAQ,WAAW,CAAA;IAErD,WAAY,CAAA,MAAW,EAAE,OAAA,GAAiC,EAAE,EAAA;QACxD,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;;AAE5D;AAEA;AAAC,CAAC,EAAE,EAAE;;AC6BL,CAAC,EAAE,EAAE;;ACzCP;;AAEG;;;;"}
package/package.json CHANGED
@@ -23,16 +23,16 @@
23
23
  }
24
24
  },
25
25
  "name": "taon-type-sql",
26
- "version": "18.0.17",
26
+ "version": "18.0.19",
27
27
  "typings": "dist/index.d.ts",
28
28
  "repository": {
29
29
  "type": "git",
30
30
  "url": "https://github.com/ggmod/type-sql.git"
31
31
  },
32
32
  "dependencies": {
33
- "tnp-core": "~18.0.43"
33
+ "tnp-core": "~18.0.46"
34
34
  },
35
35
  "devDependencies": {},
36
- "lastBuildTagHash": "5e829ae0f6f31f9a4bc71e678e16e6b9ab8bd5c5",
36
+ "lastBuildTagHash": "a0d8c898c13b734c43bf963ce57d71cc613364a5",
37
37
  "main": "dist/app.electron.js"
38
38
  }
@@ -30,14 +30,14 @@
30
30
  }
31
31
  },
32
32
  "name": "taon-type-sql",
33
- "version": "18.0.17",
33
+ "version": "18.0.19",
34
34
  "typings": "dist/index.d.ts",
35
35
  "repository": {
36
36
  "type": "git",
37
37
  "url": "https://github.com/ggmod/type-sql.git"
38
38
  },
39
39
  "dependencies": {
40
- "tnp-core": "~18.0.43"
40
+ "tnp-core": "~18.0.46"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@angular-builders/custom-webpack": "~18.0.0",
@@ -203,13 +203,14 @@
203
203
  "image-focus": "1.2.1",
204
204
  "immer": "10.0.2",
205
205
  "immutable": "4.3.7",
206
- "incremental-compiler": "~18.0.17",
206
+ "incremental-compiler": "~18.0.20",
207
207
  "inquirer": "7.3.3",
208
208
  "inquirer-autocomplete-prompt": "1.4.0",
209
209
  "inquirer-autocomplete-standalone": "0.8.1",
210
210
  "inquirer-select-pro": "1.0.0-alpha.7",
211
+ "inquirer-toggle": "1.0.1",
211
212
  "is-elevated": "3.0.0",
212
- "isomorphic-region-loader": "~18.0.17",
213
+ "isomorphic-region-loader": "~18.0.19",
213
214
  "istanbul-instrumenter-loader": "3.0.1",
214
215
  "jest": "29.7.0",
215
216
  "jest-date-mock": "1.0.10",
@@ -220,8 +221,8 @@
220
221
  "joi": "17.13.3",
221
222
  "jscodeshift": "0.6.3",
222
223
  "json-stringify-safe": "5.0.1",
223
- "json10": "~18.0.17",
224
- "json10-writer": "~18.0.17",
224
+ "json10": "~18.0.19",
225
+ "json10-writer": "~18.0.19",
225
226
  "json5": "2.2.3",
226
227
  "json5-writer": "0.2.0",
227
228
  "jszip": "3.10.1",
@@ -230,9 +231,9 @@
230
231
  "localforage": "1.10.0",
231
232
  "lockfile": "1.0.4",
232
233
  "lodash": "4.17.21",
233
- "lodash-walk-object": "~18.0.17",
234
+ "lodash-walk-object": "~18.0.19",
234
235
  "lowdb": "7.0.1",
235
- "magic-renamer": "~18.0.17",
236
+ "magic-renamer": "~18.0.19",
236
237
  "material-design-icons": "3.0.1",
237
238
  "method-override": "2.3.10",
238
239
  "minimist": "1.2.8",
@@ -243,11 +244,11 @@
243
244
  "ng-in-viewport": "16.1.0",
244
245
  "ng-lock": "18.0.1",
245
246
  "ng-packagr": "18.1.0",
246
- "ng-talkback": "~18.0.16",
247
- "ng2-logger": "~18.0.19",
247
+ "ng-talkback": "~18.0.18",
248
+ "ng2-logger": "~18.0.21",
248
249
  "ng2-pdfjs-viewer": "18.0.0",
249
- "ng2-rest": "~18.0.17",
250
- "ng2-rest-swagger-generator": "18.0.14",
250
+ "ng2-rest": "~18.0.19",
251
+ "ng2-rest-swagger-generator": "18.0.16",
251
252
  "ngx-ace-wrapper": "17.0.0",
252
253
  "ngx-editor": "17.5.4",
253
254
  "ngx-highlightjs": "12.0.0",
@@ -261,7 +262,7 @@
261
262
  "ngx-scrolltop": "18.0.0",
262
263
  "ngx-store": "3.1.1",
263
264
  "ngx-typed-js": "2.1.1",
264
- "node-cli-tester": "~18.0.16",
265
+ "node-cli-tester": "~18.0.18",
265
266
  "node-localstorage": "2.1.6",
266
267
  "node-notifier": "10.0.1",
267
268
  "node-polyfill-webpack-plugin": "2.0.1",
@@ -292,7 +293,7 @@
292
293
  "q": "1.5.1",
293
294
  "rallax.js": "2.0.4",
294
295
  "randomcolor": "0.5.3",
295
- "record-replay-req-res-scenario": "~18.0.16",
296
+ "record-replay-req-res-scenario": "~18.0.18",
296
297
  "reflect-metadata": "0.2.2",
297
298
  "rimraf": "2.6.2",
298
299
  "rxjs": "~7.8.1",
@@ -306,22 +307,22 @@
306
307
  "sql-template-strings": "2.2.2",
307
308
  "sql-template-tag": "5.2.1",
308
309
  "sql.js": "1.8.0",
309
- "static-columns": "~18.0.18",
310
+ "static-columns": "~18.0.20",
310
311
  "string-similarity": "4.0.4",
311
312
  "sudo-block": "3.0.0",
312
313
  "supertest": "7.0.0",
313
314
  "sweetalert2": "11.7.32",
314
315
  "systeminformation": "3.45.7",
315
316
  "taon": "^18",
316
- "taon-storage": "18.0.25",
317
- "taon-type-sql": "18.0.16",
318
- "taon-typeorm": "18.0.15",
317
+ "taon-storage": "18.0.27",
318
+ "taon-type-sql": "18.0.18",
319
+ "taon-typeorm": "18.0.17",
319
320
  "task.js": "0.1.5",
320
321
  "threads": "1.7.0",
321
- "tnp": "~18.0.19",
322
- "tnp-config": "~18.0.19",
323
- "tnp-helpers": "~18.0.17",
324
- "tnp-models": "~18.0.18",
322
+ "tnp": "~18.0.24",
323
+ "tnp-config": "~18.0.21",
324
+ "tnp-helpers": "~18.0.19",
325
+ "tnp-models": "~18.0.20",
325
326
  "ts-debug": "1.3.0",
326
327
  "ts-json-schema-generator": "2.3.0-next.5",
327
328
  "ts-loader": "2.3.1",
@@ -333,14 +334,14 @@
333
334
  "typedoc": "0.26.5",
334
335
  "typedoc-plugin-markdown": "4.2.3",
335
336
  "typescript": "~5.5.4",
336
- "typescript-class-helpers": "~18.0.18",
337
+ "typescript-class-helpers": "~18.0.20",
337
338
  "typescript-formatter": "~7.2.2",
338
339
  "typescript-string-enums": "~1.0.0",
339
340
  "underscore": "1.13.7",
340
341
  "uuid": "10.0.0",
341
342
  "validator": "13.5.2",
342
343
  "video.js": "8.3.0",
343
- "vpn-split": "~18.0.15",
344
+ "vpn-split": "~18.0.17",
344
345
  "vscode": "1.1.37",
345
346
  "wait-on": "8.0.1",
346
347
  "watch": "1.0.2",
@@ -350,18 +351,18 @@
350
351
  "yup": "1.3.3",
351
352
  "zone.js": "~0.13.0"
352
353
  },
353
- "lastBuildTagHash": "5e829ae0f6f31f9a4bc71e678e16e6b9ab8bd5c5",
354
+ "lastBuildTagHash": "a0d8c898c13b734c43bf963ce57d71cc613364a5",
354
355
  "main": "dist/app.electron.js"
355
356
  },
356
357
  "build": {
357
- "number": 174,
358
- "date": "2024-12-31T17:56:52.000Z",
359
- "hash": "ca2be7aa64e20ab54cdab9bb6efa99efe1551b55"
358
+ "number": 177,
359
+ "date": "2025-01-15T02:42:31.000Z",
360
+ "hash": "fa866de96e12d6837d7abd9cf1b9ace36f4b5b43"
360
361
  },
361
362
  "currentProjectName": "taon-type-sql",
362
363
  "currentProjectGenericName": "taon-type-sql",
363
364
  "currentProjectType": "isomorphic-lib",
364
- "currentFrameworkVersion": "18.0.19",
365
+ "currentFrameworkVersion": "18.0.24",
365
366
  "isStandaloneProject": true,
366
367
  "isSmartContainer": false,
367
368
  "pathesTsconfig": "\"paths\": {\"taon-type-sql\":[\"./src/lib\"],\"taon-type-sql/*\":[\"./src/lib/*\"]},",