drizzle-orm 0.11.5 → 0.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -3
- package/builders/joinBuilders/builders/selectWithTwoJoins.js.map +1 -1
- package/package.json +2 -3
- package/serializer/serializer.d.ts +0 -0
- package/serializer/serializer.js +0 -295
- package/serializer/serializer.js.map +0 -1
- package/test.d.ts +0 -1
- package/test.js +0 -193
- package/test.js.map +0 -1
- package/utils/escape.d.ts +0 -2
- package/utils/escape.js +0 -9
- package/utils/escape.js.map +0 -1
|
@@ -58,9 +58,6 @@ class SelectTRBWithTwoJoins extends abstractJoinBuilder_1.default {
|
|
|
58
58
|
const response = this.fullOrPartial(this._table.mapServiceToDb(), result, this._partial);
|
|
59
59
|
const objects = this.fullOrPartial(parent, result, this._joinedPartial, 1);
|
|
60
60
|
const objectsTwo = this.fullOrPartial(parentTwo, result, this._joinedPartial1, 2);
|
|
61
|
-
console.log(objects);
|
|
62
|
-
console.log(objectsTwo);
|
|
63
|
-
console.log(response);
|
|
64
61
|
return new selectResponseTwoJoins_1.default(response, objects, objectsTwo);
|
|
65
62
|
}
|
|
66
63
|
joins() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectWithTwoJoins.js","sourceRoot":"","sources":["../../../../src/builders/joinBuilders/builders/selectWithTwoJoins.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"selectWithTwoJoins.js","sourceRoot":"","sources":["../../../../src/builders/joinBuilders/builders/selectWithTwoJoins.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzle-orm",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,6 +38,5 @@
|
|
|
38
38
|
"ts": "tsc",
|
|
39
39
|
"lint": "eslint ./src --ext .ts",
|
|
40
40
|
"run": "ts-node src/docs/cases/simple_update.ts"
|
|
41
|
-
}
|
|
42
|
-
"readme": "## DrizzleORM\nDrizzleORM is a TypeScript ORM library with a [drizzle-kit](https://www.npmjs.com/package/drizzle-kit) CLI companion for automatic SQL migrations generation. It's meant to be a library, not a framework, stay as an opt-in solution all the time at any levels. We try to follow SQL-like syntax whenever possible, be strongly typed ground top and fail in compile time, not in runtime. We implemented best in class `joins` and second to none `migrations generation`. Library has almost zero dependencies and being battle tested on production projects by multiple teams 🚀\n\n| database | support |\n|:-- | :---: |\n| PostgreSQL | ✅ |\n| MySQL | ⏳ |\n| DynamoDB | ⏳ |\n| SQLite | ⏳ |\n| MS SQL | ⏳ |\n| CockroachDB | ⏳ |\n\n### Installation\n```bash\nnpm install drizzle-orm drizzle-kit\n```\n\n### Quick start\n```typescript\nimport { drizzle, PgTable } from 'drizzle-orm'\n\nexport class UsersTable extends PgTable<UsersTable> {\n public id = this.serial('id').primaryKey();\n public fullName = this.text('full_name');\n public phone = this.varchar('phone', { size: 256 });\n\n public tableName(): string {\n return 'users';\n }\n}\nexport type User = InferType<UsersTable>\n\nconst db = await drizzle.connect(\"postgres://user:password@host:port/db\");\nconst usersTable = new UsersTable(db);\n\nconst users: User[] = await usersTable.select().execute();\n```\n\n### Connecting to database\n```typescript\n\nconst db = await drizzle.connect(\"postgres://user:password@host:port/db\");\nconst db = await drizzle.connect({\n host: \"127.0.0.1\",\n port: 5432,\n user: \"postgres\",\n password: \"postgres\",\n db: \"db_name\",\n});\n```\n\n### SQL schema declaration\nWith `drizzle-orm` you declare SQL schema in typescritp. You can have either one `schema.ts` file with all declarations or you can group them logically in multiple files. We prefer to use single file schema.\n```\n📦project\n ├ 📂src\n │ ├ 📂data\n │ │ └ 📜schema.ts\n │ └ ...\n ├ ...\n └ 📜package.json\n \n## or multiple schema files\n├ 📂data\n ├ 📜users.ts\n ├ 📜countries.ts\n ├ 📜cities.ts\n ├ 📜products.ts\n ├ 📜clients.ts\n ├ 📜enums.ts\n └ 📜etc.ts\n```\nThis is how you declare SQL schema in `schema.ts`. You can declare tables, indexes and constraints, foreign keys and enums. Please pay attention to `export` keyword, they are mandatory if you'll be using drizzle-kit SQL migrations generator.\n```typescript\n// declaring enum in database\nexport const popularityEnum = createEnum({ alias: 'popularity', values: ['unknown', 'known', 'popular'] });\n\nexport class CountriesTable extends PgTable<CountriesTable> {\n id = this.serial(\"id\").primaryKey();\n name = this.varchar(\"name\", { size: 256 })\n\t\n // declaring index\n nameIndex = this.uniqueIndex(this.name)\n\n public tableName(): string {\n return 'countries';\n }\n}\n\nexport class CitiesTable extends PgTable<CitiesTable> {\n id = this.serial(\"id\").primaryKey();\n name = this.varchar(\"name\", { size: 256 })\n countryId = this.int(\"country_id\").foreignKey(CountriesTable, (country) => country.id)\n\n // declaring enum column in table\n popularity = this.type(popularityEnum, \"popularity\")\n\n public tableName(): string {\n return 'cities';\n }\n}\n```\nThe list of all possible types. You can also create custom types - !!see here!!.\n```typescript\nexport const enum = createEnum({ alias: \"database-name\", values: [\"value1\", \"value2\", \"value3\"] });\ntype(enum, \"...\")\n\nsmallint(\"...\")\nint(\"...\")\nbigint(\"...\", maxBytes: \"max_bytes_53\")\nbigint(\"...\", maxBytes: \"max_bytes_64\")\n\nbool(\"...\")\ntext(\"...\");\nvarchar(\"...\");\nvarchar(\"...\", { size: 256 });\n\nserial(\"...\");\nbigserial(\"...\", maxBytes: \"max_bytes_53\");\nbigserial(\"...\", maxBytes: \"max_bytes_64\");\n\ndecimal(\"...\", { precision: 100, scale: 2 });\n\njsonb<...>(\"...\");\njsonb<string[]>(\"...\");\n\ntime(\"...\")\ntimestamp(\"...\") // with timezone\ntimestamptz(\"...\"); // without timezone\ntimestamp(\"...\").defaultValue(Defaults.CURRENT_TIMESTAMP)\n\nindex(column);\nindex([column1, column2, ...]);\nuniqueIndex(column);\nuniqueIndex([column1, column2, ...]);\n\n\ncolumn.primaryKey()\ncolumn.notNull()\ncolumn.defaultValue(...)\n\n// 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT'\ncolumn.foreignKey(Table, (table) => table.column, { onDelete: \"CASCADE\", onUpdate: \"CASCADE\" });\n```\n\n### Create Read Update Delete\nQuerying, sorting and filtering. We also support partial select.\n```typescript\nconst db = await drizzle.connect(\"...\")\nconst table = new UsersTable(db);\n\nconst result: User[] = await table.select().execute();\nawait table.select().where(\n eq(table.id, 42)\n).execute();\n\n// you can combine filters with eq(...) or or(...)\nawait table.select().where(\n and([eq(table.id, 42), eq(table.name, \"Dan\")])\n).execute();\n\nawait table.select().where(\n or([eq(table.id, 42), eq(table.id, 1)])\n).execute();\n\n// partial select\nconst result = await table.select({\n mapped1: table.id,\n mapped2: table.name,\n}).execute();\nconst { mapped1, mapped2 } = result[0];\n\n// limit offset & order by\nawait table.select().limit(10).offset(10).execute()\nawait table.select().orderBy((table) => table.name, Order.ASC)\nawait table.select().orderBy((table) => table.name, Order.DESC)\n\n// list of all filter operators\neq(table.column, value)\nnotEq(table.column, value)\nless(table.column, value)\nlessEq(table.column, value)\ngreater(table.column, value)\ngreaterEq(table.column, value)\nisNull(table.column)\nisNotNull(table.column)\n\ninArray(table.column, [...values])\nlike(table.column, value)\nraw(\"raw sql filter\")\n\nand(exressions: Expr[])\nor(exressions: Expr[])\n```\nInserting\n```typescript\nconst result = await usersTable.insert({\n name: \"Andrew\",\n createdAt: new Date(),\n}).execute();\n\nconst result = await usersTable.insertMany([{\n name: \"Andrew\",\n createdAt: new Date(),\n}, {\n name: \"Dan\",\n createdAt: new Date(),\n}]).execute();\n\n//await usersTable.insert({\n// name: \"Dan\"\n//})\n//.onConflict(\n//\t(table) => table.name,\n//\t{ name: 'name value to be upserted' }\n//).execute();\n```\n\nUpdate and Delete\n```typescript\nawait usersTable.update()\n .where(eq(usersTable.name, 'Dan'))\n .set({ name: 'Mr. Dan' })\n .execute();\n\t\nawait usersTable.delete()\n .where(eq(usersTable.name, 'Dan'))\n .execute();\n```\n\n### Joins\nLast but not least. Probably the most powerful feature in the library🚀\nMany-to-one\n```typescript\nconst usersTable = new UsersTable(db);\nconst citiesTable = new CitiesTable(db);\n\nconst result = await citiesTable.select()\n .leftJoin(usersTable, (cities, users) => eq(cities.userId, users.id))\n .where((cities, users) => eq(cities.id, 1))\n .execute();\n\nconst citiesWithUsers: { city: City, user: User }[] = result.map((city, user) => ({ city, user }));\n```\nMany-to-many\n```typescript\nexport class UsersTable extends PgTable<UsersTable> {\n id = this.serial(\"id\").primaryKey();\n\tname = this.varchar(\"name\");\n}\n\nexport class ChatGroupsTable extends PgTable<ChatGroupsTable> {\n id = this.serial(\"id\").primaryKey();\n}\n\nexport class ManyToManyTable extends PgTable<ManyToManyTable> {\n userId = this.int('user_id').foreignKey(UsersTable, (table) => table.id, { onDelete: 'CASCADE' });\n groupId = this.int('group_id').foreignKey(ChatGroupsTable, (table) => table.id, { onDelete: 'CASCADE' });\n}\n\n...\nconst usersTable = new UsersTable(db);\nconst chatGroupsTable = new ChatGroupsTable(db);\nconst manyToManyTable = new ManyToManyTable(db);\n\n// querying user group with id 1 and all the participants(users)\nconst usersWithUserGroups = await manyToManyTable.select()\n .leftJoin(usersTable, (manyToMany, users) => eq(manyToManyTable.userId, users.id))\n .leftJoin(chatGroupsTable, (manyToMany, _users, chatGroups) => eq(manyToManyTable.groupId, chatGroups.id))\n .where((manyToMany, _users, userGroups) => eq(userGroups.id, 1))\n .execute();\n```\n\n### Join using partial field select\n##### Join Cities with Users getting only needed fields form request\n```typescript\n await citiesTable.select({\n id: citiesTable.id,\n userId: citiesTable.userId,\n })\n .leftJoin(usersTable, (cities, users) => eq(cities.userId, users.id))\n .where((cities, users) => eq(cities.id, 1))\n .execute();\n\nconst citiesWithUserObject = userWithCities.map((city, user) => ({ ...city, user }));\n```\n### Another join examples with different callback ON statements\n```typescript\nawait citiesTable.select()\n .leftJoin(usersTable, (cities, _users) => eq(cities.id, 13))\n .where((cities, _users) => eq(cities.location, 'q'))\n .execute();\n// Join statement generated from query\n// LEFT JOIN users AS users_1\n// ON cities.\"id\"=$1\n// WHERE cities.\"page\"=$2\n//\n// Values: [13, 'q']\n\nawait citiesTable.select()\n .leftJoin(usersTable, (cities, _users) => and([\n eq(cities.id, 13), notEq(cities.id, 14),\n ]))\n .execute();\n// Join statement generated from query\n// LEFT JOIN users AS users_1\n// ON (cities.\"id\"=$1 and cities.\"id\"!=$2)\n//\n// Values: [13, 14]\n\nawait citiesTable.select()\n .leftJoin(usersTable, (_cities, _users) => raw('<custom expression after ON statement>'))\n .where((cities, _users) => eq(cities.location, 'location'))\n .execute();\n// Join statement generated from query\n// LEFT JOIN users AS users_1\n// ON <custom expression after ON statement>\n// WHERE cities.\"page\"=$1\n// \n// Values: ['location']\n```\n\n\n## Migrations\n#### To run migrations generated by drizzle-kit you could use `Migrator` class\n##### Provide drizzle-kit config path\n```typescript\nawait drizzle.migrator(db).migrate('src/drizzle.config.yaml');\n```\n##### Another possibility is to provide object with path to folder with migrations\n```typescript\nawait drizzle.migrator(db).migrate({ migrationFolder: 'drizzle' });\n```\n\n\n## Raw query usage\n#### If you have some complex queries to execute and drizzle-orm can't handle them yet, then you could use `rawQuery` execution\n\n\n##### Execute custom raw query\n```typescript\nconst res: QueryResult<any> = await db.session().execute('SELECT * FROM users WHERE user.id = $1', [1]);\n```"
|
|
41
|
+
}
|
|
43
42
|
}
|
|
File without changes
|
package/serializer/serializer.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable max-len */
|
|
3
|
-
// /* eslint-disable max-classes-per-file */
|
|
4
|
-
// /* eslint-disable import/no-named-as-default-member */
|
|
5
|
-
// /* eslint-disable import/no-named-as-default */
|
|
6
|
-
// /* eslint-disable no-param-reassign */
|
|
7
|
-
// /* eslint-disable no-restricted-syntax */
|
|
8
|
-
// import { Column } from '../columns';
|
|
9
|
-
// import ColumnType from '../columns/types/columnType';
|
|
10
|
-
// import { DB } from '../db';
|
|
11
|
-
// import TableIndex from '../indexes/tableIndex';
|
|
12
|
-
// import { AbstractTable } from '../tables';
|
|
13
|
-
// import Enum from '../types/type';
|
|
14
|
-
// export interface EnumsAsObject {
|
|
15
|
-
// [name: string]: {
|
|
16
|
-
// name: string,
|
|
17
|
-
// values: string[]
|
|
18
|
-
// }
|
|
19
|
-
// }
|
|
20
|
-
// export interface ColumnAsObject {
|
|
21
|
-
// [name: string]: {
|
|
22
|
-
// name?: string;
|
|
23
|
-
// type?: string;
|
|
24
|
-
// primaryKey?: boolean;
|
|
25
|
-
// unique?: boolean;
|
|
26
|
-
// default?: any;
|
|
27
|
-
// notNull?: boolean;
|
|
28
|
-
// references?: string;
|
|
29
|
-
// };
|
|
30
|
-
// }
|
|
31
|
-
// export interface IndexColumnAsObject {
|
|
32
|
-
// [name: string]: {
|
|
33
|
-
// name?: string;
|
|
34
|
-
// };
|
|
35
|
-
// }
|
|
36
|
-
// export interface IndexAsObject {
|
|
37
|
-
// [name: string]: {
|
|
38
|
-
// name?: string;
|
|
39
|
-
// columns?: ColumnAsObject;
|
|
40
|
-
// isUnique?: boolean
|
|
41
|
-
// };
|
|
42
|
-
// }
|
|
43
|
-
// export interface TableAsObject {
|
|
44
|
-
// [name: string]: {
|
|
45
|
-
// name: string;
|
|
46
|
-
// columns: ColumnAsObject;
|
|
47
|
-
// indexes: {
|
|
48
|
-
// [name: string]: {
|
|
49
|
-
// name?: string;
|
|
50
|
-
// type?: string;
|
|
51
|
-
// };
|
|
52
|
-
// };
|
|
53
|
-
// };
|
|
54
|
-
// }
|
|
55
|
-
// // eslint-disable-next-line max-len
|
|
56
|
-
// const serialiseForeignKey = (fkName:string, table:string, column:string, onDelete?:string, onUpdate?:string) => `${fkName};${table};${column};${onDelete ?? ''};${onUpdate ?? ''}`;
|
|
57
|
-
// export default class MigrationSerializer {
|
|
58
|
-
// public generate = (tables: AbstractTable<any>[], enums: Enum<any>[]) => {
|
|
59
|
-
// const result: TableAsObject = {};
|
|
60
|
-
// for (const table of tables) {
|
|
61
|
-
// const tableEntries = Object.entries(table);
|
|
62
|
-
// const columnToReturn: ColumnAsObject = {};
|
|
63
|
-
// const indexToReturn: IndexAsObject = {};
|
|
64
|
-
// for (const properties of tableEntries) {
|
|
65
|
-
// const value = properties[1];
|
|
66
|
-
// if (value instanceof TableIndex) {
|
|
67
|
-
// const columns = value.getColumns();
|
|
68
|
-
// const name = value.indexName();
|
|
69
|
-
// const indexColumnToReturn: IndexColumnAsObject = {};
|
|
70
|
-
// for (const column of columns) {
|
|
71
|
-
// const columnName = column.getColumnName();
|
|
72
|
-
// indexColumnToReturn[columnName] = {
|
|
73
|
-
// name: columnName,
|
|
74
|
-
// };
|
|
75
|
-
// }
|
|
76
|
-
// indexToReturn[name] = {
|
|
77
|
-
// name,
|
|
78
|
-
// columns: indexColumnToReturn,
|
|
79
|
-
// isUnique: value.isUnique(),
|
|
80
|
-
// };
|
|
81
|
-
// }
|
|
82
|
-
// if (value instanceof Column) {
|
|
83
|
-
// columnToReturn[value.getColumnName()] = {
|
|
84
|
-
// name: value.getColumnName(),
|
|
85
|
-
// type: (value.getColumnType() as ColumnType).getDbName(),
|
|
86
|
-
// primaryKey: !!value.primaryKeyName,
|
|
87
|
-
// // unique: !!value.uniqueKeyName,
|
|
88
|
-
// // default: value.getDefaultValue() === null ? undefined : value.getDefaultValue(),
|
|
89
|
-
// notNull: !value.isNullableFlag,
|
|
90
|
-
// };
|
|
91
|
-
// if (value.getDefaultValue() !== undefined && value.getDefaultValue() !== null) {
|
|
92
|
-
// columnToReturn[value.getColumnName()].default = value.getDefaultValue().toJSON();
|
|
93
|
-
// }
|
|
94
|
-
// if (value.uniqueKeyName) {
|
|
95
|
-
// const indexName = `${value.getParent().tableName()}_${value.getColumnName()}_index`;
|
|
96
|
-
// const indexColumnToReturn: IndexColumnAsObject = {};
|
|
97
|
-
// indexColumnToReturn[value.getColumnName()] = {
|
|
98
|
-
// name: value.getColumnName(),
|
|
99
|
-
// };
|
|
100
|
-
// indexToReturn[indexName] = {
|
|
101
|
-
// name: indexName,
|
|
102
|
-
// columns: indexColumnToReturn,
|
|
103
|
-
// isUnique: true,
|
|
104
|
-
// };
|
|
105
|
-
// }
|
|
106
|
-
// const referenced = value.getReferenced();
|
|
107
|
-
// if (referenced) {
|
|
108
|
-
// const fkName = `${value.getParent().tableName()}_${value.getColumnName()}_fkey`;
|
|
109
|
-
// const tableParentName = referenced.getParentName();
|
|
110
|
-
// const column = referenced.getColumnName();
|
|
111
|
-
// const onDelete = value.getOnDelete();
|
|
112
|
-
// const onUpdate = value.getOnUpdate();
|
|
113
|
-
// // eslint-disable-next-line max-len
|
|
114
|
-
// const referenceString = serialiseForeignKey(fkName, tableParentName, column, onDelete, onUpdate);
|
|
115
|
-
// columnToReturn[value.getColumnName()].references = referenceString;
|
|
116
|
-
// }
|
|
117
|
-
// }
|
|
118
|
-
// }
|
|
119
|
-
// result[table.tableName()] = {
|
|
120
|
-
// name: table.tableName(),
|
|
121
|
-
// columns: columnToReturn,
|
|
122
|
-
// indexes: indexToReturn,
|
|
123
|
-
// };
|
|
124
|
-
// }
|
|
125
|
-
// const enumsToReturn = enums.reduce<{[key:string]: Enum<any>}>((map, obj) => {
|
|
126
|
-
// const key = obj.name;
|
|
127
|
-
// const newValues = obj.values.reduce((mapped, value) => {
|
|
128
|
-
// mapped[value] = value;
|
|
129
|
-
// return mapped;
|
|
130
|
-
// }, {});
|
|
131
|
-
// map[key] = { name: obj.name, values: newValues };
|
|
132
|
-
// return map;
|
|
133
|
-
// }, {});
|
|
134
|
-
// return { version: '2', tables: result, enums: enumsToReturn };
|
|
135
|
-
// };
|
|
136
|
-
// public fromDatabase = async (db: DB) => {
|
|
137
|
-
// const result: TableAsObject = {};
|
|
138
|
-
// const allTables = await db.session().execute('SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema != \'pg_catalog\' and table_schema != \'information_schema\';');
|
|
139
|
-
// for await (const row of allTables.rows) {
|
|
140
|
-
// try {
|
|
141
|
-
// // const tableSchema = row.table_schema;
|
|
142
|
-
// const tableName = row.table_name;
|
|
143
|
-
// const columnToReturn: ColumnAsObject = {};
|
|
144
|
-
// const indexToReturn: IndexAsObject = {};
|
|
145
|
-
// const tableResponse = await db.session().execute(`SELECT a.attrelid::regclass::text, a.attname
|
|
146
|
-
// , CASE WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[])
|
|
147
|
-
// AND EXISTS (
|
|
148
|
-
// SELECT FROM pg_attrdef ad
|
|
149
|
-
// WHERE ad.adrelid = a.attrelid
|
|
150
|
-
// AND ad.adnum = a.attnum
|
|
151
|
-
// AND pg_get_expr(ad.adbin, ad.adrelid)
|
|
152
|
-
// = 'nextval('''
|
|
153
|
-
// || (pg_get_serial_sequence (a.attrelid::regclass::text
|
|
154
|
-
// , a.attname))::regclass
|
|
155
|
-
// || '''::regclass)'
|
|
156
|
-
// )
|
|
157
|
-
// THEN CASE a.atttypid
|
|
158
|
-
// WHEN 'int'::regtype THEN 'serial'
|
|
159
|
-
// WHEN 'int8'::regtype THEN 'bigserial'
|
|
160
|
-
// WHEN 'int2'::regtype THEN 'smallserial'
|
|
161
|
-
// END
|
|
162
|
-
// ELSE format_type(a.atttypid, a.atttypmod)
|
|
163
|
-
// END AS data_type, INFORMATION_SCHEMA.COLUMNS.table_name, INFORMATION_SCHEMA.COLUMNS.column_name, INFORMATION_SCHEMA.COLUMNS.column_default
|
|
164
|
-
// FROM pg_attribute a
|
|
165
|
-
// JOIN INFORMATION_SCHEMA.COLUMNS ON INFORMATION_SCHEMA.COLUMNS.column_name = a.attname
|
|
166
|
-
// WHERE a.attrelid = '${tableName}'::regclass and INFORMATION_SCHEMA.COLUMNS.table_name = '${tableName}'
|
|
167
|
-
// AND a.attnum > 0
|
|
168
|
-
// AND NOT a.attisdropped
|
|
169
|
-
// ORDER BY a.attnum;`);
|
|
170
|
-
// const tableConstraints = await db.session().execute(`SELECT c.column_name, c.data_type, constraint_type, constraint_name
|
|
171
|
-
// FROM information_schema.table_constraints tc
|
|
172
|
-
// JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
|
|
173
|
-
// JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
|
|
174
|
-
// AND tc.table_name = c.table_name AND ccu.column_name = c.column_name
|
|
175
|
-
// WHERE tc.table_name = '${tableName}';`);
|
|
176
|
-
// const tableForeignKeys = await db.session().execute(`SELECT
|
|
177
|
-
// tc.table_schema,
|
|
178
|
-
// tc.constraint_name,
|
|
179
|
-
// tc.table_name,
|
|
180
|
-
// kcu.column_name,
|
|
181
|
-
// ccu.table_schema AS foreign_table_schema,
|
|
182
|
-
// ccu.table_name AS foreign_table_name,
|
|
183
|
-
// ccu.column_name AS foreign_column_name,
|
|
184
|
-
// rc.delete_rule, rc.update_rule
|
|
185
|
-
// FROM
|
|
186
|
-
// information_schema.table_constraints AS tc
|
|
187
|
-
// JOIN information_schema.key_column_usage AS kcu
|
|
188
|
-
// ON tc.constraint_name = kcu.constraint_name
|
|
189
|
-
// AND tc.table_schema = kcu.table_schema
|
|
190
|
-
// JOIN information_schema.constraint_column_usage AS ccu
|
|
191
|
-
// ON ccu.constraint_name = tc.constraint_name
|
|
192
|
-
// AND ccu.table_schema = tc.table_schema
|
|
193
|
-
// JOIN information_schema.referential_constraints AS rc
|
|
194
|
-
// ON ccu.constraint_name = rc.constraint_name
|
|
195
|
-
// WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='${tableName}';`);
|
|
196
|
-
// const mappedRefernces: { [name: string]: string } = {};
|
|
197
|
-
// for (const fk of tableForeignKeys.rows) {
|
|
198
|
-
// // const tableFrom = fk.table_name;
|
|
199
|
-
// const columnFrom = fk.column_name;
|
|
200
|
-
// const tableTo = fk.foreign_table_name;
|
|
201
|
-
// const columnTo = fk.foreign_column_name;
|
|
202
|
-
// const foreignKeyName = fk.constraint_name;
|
|
203
|
-
// const onUpdate = fk.update_rule;
|
|
204
|
-
// const onDelete = fk.delete_rule;
|
|
205
|
-
// // eslint-disable-next-line max-len
|
|
206
|
-
// const references = serialiseForeignKey(foreignKeyName, tableTo, columnTo, onDelete, onUpdate);
|
|
207
|
-
// mappedRefernces[columnFrom] = references;
|
|
208
|
-
// }
|
|
209
|
-
// for (const columnResponse of tableResponse.rows) {
|
|
210
|
-
// const columnName = columnResponse.attname;
|
|
211
|
-
// const columnType = columnResponse.data_type;
|
|
212
|
-
// const primaryKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'PRIMARY KEY');
|
|
213
|
-
// const uniqueKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'UNIQUE');
|
|
214
|
-
// const defaultValue: string = columnResponse.column_default === null
|
|
215
|
-
// ? undefined : columnResponse.column_default;
|
|
216
|
-
// const isSerial = columnType === 'serial';
|
|
217
|
-
// columnToReturn[columnName] = {
|
|
218
|
-
// name: columnName,
|
|
219
|
-
// type: columnType,
|
|
220
|
-
// primaryKey: !!primaryKey[0],
|
|
221
|
-
// unique: !!uniqueKey[0],
|
|
222
|
-
// default: isSerial ? undefined : defaultValue,
|
|
223
|
-
// notNull: !columnResponse.is_nullable,
|
|
224
|
-
// references: mappedRefernces[columnName] ?? undefined,
|
|
225
|
-
// };
|
|
226
|
-
// }
|
|
227
|
-
// const dbIndexes = await db.session().execute(`select
|
|
228
|
-
// t.relname as table_name,
|
|
229
|
-
// i.relname as index_name,
|
|
230
|
-
// a.attname as column_name
|
|
231
|
-
// from
|
|
232
|
-
// pg_class t,
|
|
233
|
-
// pg_class i,
|
|
234
|
-
// pg_index ix,
|
|
235
|
-
// pg_attribute a
|
|
236
|
-
// where
|
|
237
|
-
// t.oid = ix.indrelid
|
|
238
|
-
// and i.oid = ix.indexrelid
|
|
239
|
-
// and a.attrelid = t.oid
|
|
240
|
-
// and a.attnum = ANY(ix.indkey)
|
|
241
|
-
// and t.relkind = 'r'
|
|
242
|
-
// and t.relname = '${tableName}'
|
|
243
|
-
// order by
|
|
244
|
-
// t.relname,
|
|
245
|
-
// i.relname;`);
|
|
246
|
-
// for (const dbIndex of dbIndexes.rows) {
|
|
247
|
-
// const indexName = dbIndex.index_name;
|
|
248
|
-
// const indexColumnName = dbIndex.column_name;
|
|
249
|
-
// if (indexToReturn[indexName] !== undefined && indexToReturn[indexName] !== null) {
|
|
250
|
-
// indexToReturn[indexName]!.columns![indexColumnName] = {
|
|
251
|
-
// name: indexColumnName,
|
|
252
|
-
// };
|
|
253
|
-
// } else {
|
|
254
|
-
// indexToReturn[indexName] = {
|
|
255
|
-
// name: indexName,
|
|
256
|
-
// columns: {
|
|
257
|
-
// [indexColumnName]: {
|
|
258
|
-
// name: indexColumnName,
|
|
259
|
-
// },
|
|
260
|
-
// },
|
|
261
|
-
// };
|
|
262
|
-
// }
|
|
263
|
-
// }
|
|
264
|
-
// result[tableName] = {
|
|
265
|
-
// name: tableName,
|
|
266
|
-
// columns: columnToReturn,
|
|
267
|
-
// indexes: indexToReturn,
|
|
268
|
-
// };
|
|
269
|
-
// } catch (e) {
|
|
270
|
-
// console.log(e);
|
|
271
|
-
// }
|
|
272
|
-
// }
|
|
273
|
-
// const allEnums = await db.session().execute(`select n.nspname as enum_schema,
|
|
274
|
-
// t.typname as enum_name,
|
|
275
|
-
// e.enumlabel as enum_value
|
|
276
|
-
// from pg_type t
|
|
277
|
-
// join pg_enum e on t.oid = e.enumtypid
|
|
278
|
-
// join pg_catalog.pg_namespace n ON n.oid = t.typnamespace;`);
|
|
279
|
-
// const enumsToReturn: EnumsAsObject = {};
|
|
280
|
-
// for (const dbEnum of allEnums.rows) {
|
|
281
|
-
// const enumName = dbEnum.enum_name;
|
|
282
|
-
// const enumValue = dbEnum.enum_value;
|
|
283
|
-
// if (enumsToReturn[enumName] !== undefined && enumsToReturn[enumName] !== null) {
|
|
284
|
-
// enumsToReturn[enumName].values.push(enumValue);
|
|
285
|
-
// } else {
|
|
286
|
-
// enumsToReturn[enumName] = {
|
|
287
|
-
// name: enumName,
|
|
288
|
-
// values: [enumValue],
|
|
289
|
-
// };
|
|
290
|
-
// }
|
|
291
|
-
// }
|
|
292
|
-
// return { version: '2', tables: result, enums: enumsToReturn };
|
|
293
|
-
// };
|
|
294
|
-
// }
|
|
295
|
-
//# sourceMappingURL=serializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/serializer/serializer.ts"],"names":[],"mappings":"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"}
|
package/test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/test.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/* eslint-disable max-len */
|
|
7
|
-
const dbConnector_1 = __importDefault(require("./db/dbConnector"));
|
|
8
|
-
const usersTable_1 = __importDefault(require("./docs/tables/usersTable"));
|
|
9
|
-
const citiesTable_1 = __importDefault(require("./docs/tables/citiesTable"));
|
|
10
|
-
const userGroupsTable_1 = __importDefault(require("./docs/tables/userGroupsTable"));
|
|
11
|
-
const static_1 = require("./builders/requestBuilders/where/static");
|
|
12
|
-
const usersToUserGroups_1 = __importDefault(require("./docs/tables/usersToUserGroups"));
|
|
13
|
-
const _1 = require(".");
|
|
14
|
-
(async () => {
|
|
15
|
-
try {
|
|
16
|
-
const db = await new dbConnector_1.default()
|
|
17
|
-
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
18
|
-
.connect();
|
|
19
|
-
const db1 = await _1.drizzle.connect('postgresql://postgres@127.0.0.1/migrator');
|
|
20
|
-
const db2 = await _1.drizzle.connect({ host: '127.0.0.1', database: 'migrator' });
|
|
21
|
-
const f = await db2.session().execute('SELECT * FROM users');
|
|
22
|
-
// console.log(JSON.stringify(f, null, 2));
|
|
23
|
-
// console.log(db2);
|
|
24
|
-
// db.useLogger(new ConsoleLogger());
|
|
25
|
-
const citiesTable = new citiesTable_1.default(db);
|
|
26
|
-
const usersTable = new usersTable_1.default(db);
|
|
27
|
-
const userGroupsTable = new userGroupsTable_1.default(db);
|
|
28
|
-
const usersToUserGroupsTable = new usersToUserGroups_1.default(db);
|
|
29
|
-
console.log('columns: ', citiesTable.getColumns());
|
|
30
|
-
console.log('fk: ', citiesTable.getForeignKeys());
|
|
31
|
-
console.log('indexes', citiesTable.getIndexes());
|
|
32
|
-
// const subquery = usersTable.select({ id: usersTable.id, name: usersTable.fullName })
|
|
33
|
-
// .innerJoin(citiesTable, (users, _cities) => eq(users.id, citiesTable.userId))
|
|
34
|
-
// .where((users, _cities) => eq(users.name, 'Jake'))
|
|
35
|
-
// .asSubquery();
|
|
36
|
-
// const res = await citiesTable.select({
|
|
37
|
-
// id: citiesTable.id, title: citiesTable.location,
|
|
38
|
-
// }).where(inArray(usersTable.id, subquery)).execute();
|
|
39
|
-
// // group case
|
|
40
|
-
// const usersWithUserGroups = await usersToUserGroupsTable.select()
|
|
41
|
-
// .where(eq(userGroupsTable.id, 1))
|
|
42
|
-
// .leftJoinV1(UsersTable,
|
|
43
|
-
// (userToGroup) => userToGroup.userId,
|
|
44
|
-
// (users) => users.id,
|
|
45
|
-
// {
|
|
46
|
-
// id: usersTable.id,
|
|
47
|
-
// })
|
|
48
|
-
// .leftJoin(UsersToUserGroupsTable, UserGroupsTable,
|
|
49
|
-
// (userToGroup) => userToGroup.groupId,
|
|
50
|
-
// (userGroup) => userGroup.id,
|
|
51
|
-
// {
|
|
52
|
-
// id: userGroupsTable.id,
|
|
53
|
-
// })
|
|
54
|
-
// .execute();
|
|
55
|
-
await citiesTable.select({
|
|
56
|
-
id: citiesTable.id,
|
|
57
|
-
userId: citiesTable.userId,
|
|
58
|
-
})
|
|
59
|
-
.leftJoin(usersTable, (cities, users) => static_1.eq(cities.userId, users.id))
|
|
60
|
-
.where((cities, users) => static_1.eq(cities.id, 1))
|
|
61
|
-
.execute();
|
|
62
|
-
await citiesTable.select({
|
|
63
|
-
id: citiesTable.id,
|
|
64
|
-
userId: citiesTable.userId,
|
|
65
|
-
})
|
|
66
|
-
.leftJoin(usersTable, (cities, users) => static_1.onEq(cities.userId, users.id))
|
|
67
|
-
.where((cities, _users) => static_1.eq(cities.id, 1))
|
|
68
|
-
.execute();
|
|
69
|
-
const usersWithUserGroups = await usersToUserGroupsTable.select()
|
|
70
|
-
.leftJoin(usersTable, (usersToUserGroups, users) => static_1.onEq(usersToUserGroups.userId, users.id))
|
|
71
|
-
.leftJoin(userGroupsTable, (usersToUserGroups, _users, userGroups) => static_1.onEq(usersToUserGroups.groupId, userGroups.id))
|
|
72
|
-
.where((usersToUserGroups, _users, userGroups) => static_1.eq(userGroups.id, 2))
|
|
73
|
-
.execute();
|
|
74
|
-
// const usersWithUserGroups1 = await usersToUserGroupsTable.select()
|
|
75
|
-
// .where(eq(userGroupsTable.id, 2))
|
|
76
|
-
// .leftJoin(usersTable, (usersToUserGroups, users) => onEq(usersToUserGroups.userId, users.id))
|
|
77
|
-
// .leftJoin(userGroupsTable, (usersToUserGroups, _users, userGroups) => onEq(usersToUserGroups.groupId, userGroups.id))
|
|
78
|
-
// .execute();
|
|
79
|
-
const userWithCities = await citiesTable.select()
|
|
80
|
-
.leftJoin(usersTable, (cities, users) => static_1.eq(cities.userId, users.id))
|
|
81
|
-
// .where((cities, _users) => eq(cities.id, 1))
|
|
82
|
-
.execute();
|
|
83
|
-
await citiesTable.select()
|
|
84
|
-
.leftJoin(usersTable, (cities, _users) => static_1.eq(cities.id, 13))
|
|
85
|
-
.where((cities, _users) => static_1.eq(cities.location, 'q'))
|
|
86
|
-
.execute();
|
|
87
|
-
await citiesTable.select()
|
|
88
|
-
.leftJoin(usersTable, (cities, _users) => static_1.and([
|
|
89
|
-
static_1.eq(cities.id, 13), static_1.notEq(cities.id, 14),
|
|
90
|
-
]))
|
|
91
|
-
.execute();
|
|
92
|
-
const res1 = userWithCities.map((args, arg2) => ({ city: args, user: arg2 }));
|
|
93
|
-
// console.log(res1);
|
|
94
|
-
await citiesTable.select()
|
|
95
|
-
.leftJoin(usersTable, (_cities, _users) => static_1.raw('<custom expression after ON statement>'))
|
|
96
|
-
.where((cities, _users) => static_1.eq(cities.location, 'location'))
|
|
97
|
-
.execute();
|
|
98
|
-
// const newJoinRes1 = await citiesTable.select()
|
|
99
|
-
// .leftJoin(usersTable, (cities, firstJoinUsers) => onEq(cities.userId, firstJoinUsers.id))
|
|
100
|
-
// .execute();
|
|
101
|
-
// const res1 = newJoinRes1.map((args, arg2) => ({ city: args, user: arg2 }));
|
|
102
|
-
// console.log(res1);
|
|
103
|
-
// const newJoinRes2 = await citiesTable.select({ customId: citiesTable.userId })
|
|
104
|
-
// .leftJoin(usersTable, (cities, firstJoinUsers) => onEq(cities.customId, firstJoinUsers.id))
|
|
105
|
-
// .execute();
|
|
106
|
-
// const res2 = newJoinRes2.map((args, arg2) => ({ city: args, user: arg2 }));
|
|
107
|
-
// console.log(res2);
|
|
108
|
-
// const joinsWithPartialObjectResponse = await citiesTable.select({ customUserId: citiesTable.userId })
|
|
109
|
-
// .leftJoin(usersTable,
|
|
110
|
-
// (cities, partialUsers) => onEq(cities.customUserId, partialUsers.customId),
|
|
111
|
-
// { customId: usersTable.id })
|
|
112
|
-
// .leftJoin(usersTable,
|
|
113
|
-
// (_cities, partialUsers, anotherUsersJoin) => onEq(partialUsers.customId, anotherUsersJoin.anotherId),
|
|
114
|
-
// { anotherId: usersTable.id })
|
|
115
|
-
// .execute();
|
|
116
|
-
// const newJoinRes3 = await citiesTable.select()
|
|
117
|
-
// .leftJoin(usersTable, (cities, firstJoinUsers) => onEq(cities.userId, firstJoinUsers.customUserId), { customUserId: usersTable.id })
|
|
118
|
-
// .execute();
|
|
119
|
-
// const res3 = newJoinRes3.map((args, arg2) => ({ city: args, user: arg2 }));
|
|
120
|
-
// console.log(res3);
|
|
121
|
-
// const newJoinRes4 = await citiesTable.select({ customId: citiesTable.userId })
|
|
122
|
-
// .leftJoin(usersTable, (cities, firstJoinUsers) => onEq(cities.customId, firstJoinUsers.customUserId), { customUserId: usersTable.id })
|
|
123
|
-
// .execute();
|
|
124
|
-
// const res4 = newJoinRes4.map((args, arg2) => ({ city: args, user: arg2 }));
|
|
125
|
-
// console.log(res4);
|
|
126
|
-
// const newJoinRes5 = await usersToUserGroupsTable.select()
|
|
127
|
-
// .leftJoin(usersTable, (usersToUserGroup, users) => onEq(usersToUserGroup.userId, users.id))
|
|
128
|
-
// .leftJoin(userGroupsTable, (usersToUserGroup, user, userGroup) => onEq(usersToUserGroup.groupId, userGroup.id))
|
|
129
|
-
// .execute();
|
|
130
|
-
// const res5 = newJoinRes5.map((_u, user, group) => ({
|
|
131
|
-
// user,
|
|
132
|
-
// group,
|
|
133
|
-
// }));
|
|
134
|
-
// console.log(res5);
|
|
135
|
-
// const newJoinRes6 = await usersToUserGroupsTable.select()
|
|
136
|
-
// .leftJoin(usersTable, (usersToUserGroup, users) => onEq(usersToUserGroup.userId, users.id))
|
|
137
|
-
// .leftJoin(userGroupsTable, (usersToUserGroup, userGroup) => onEq(usersToUserGroup.groupId, userGroup.id))
|
|
138
|
-
// .leftJoin(usersTable, (usersToUserGroup, users, usersToUserGroup1, users1) => onEq(usersToUserGroup.userId, users.id))
|
|
139
|
-
// .leftJoin(userGroupsTable, (usersToUserGroup, user, usersToUserGroup1, users1, userGroupsTable2) => onEq(usersToUserGroup.groupId, usersToUserGroup1.id))
|
|
140
|
-
// .leftJoin(usersTable, (usersToUserGroup, user, usersToUserGroup1, users1, userGroupsTable2, users2) => onEq(usersToUserGroup.userId, users1.id))
|
|
141
|
-
// .leftJoin(userGroupsTable, (usersToUserGroup, user, usersToUserGroup1, users1, userGroupsTable2, users2, userGroupsTable3) => onEq(users1.id, userGroupsTable3.id))
|
|
142
|
-
// .execute();
|
|
143
|
-
// const res6 = newJoinRes5.map((_u, user, group) => ({
|
|
144
|
-
// user,
|
|
145
|
-
// group,
|
|
146
|
-
// }));
|
|
147
|
-
// console.log(res6);
|
|
148
|
-
// const res = await citiesTable.update()
|
|
149
|
-
// // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
150
|
-
// .where(eq(citiesTable.location, 'YR'))
|
|
151
|
-
// .set({
|
|
152
|
-
// metadata: [{
|
|
153
|
-
// fallback_image: true,
|
|
154
|
-
// team_image: 'https://files.slack.com/files-pri/T016CCC3FE3-F03461UR9M5/clinic_team_photo_1.jpg?pub_secret=560c098bfb',
|
|
155
|
-
// image_alt_text: 'Generic Physiotherapy Clinic image 1',
|
|
156
|
-
// logo: '',
|
|
157
|
-
// logo_alt_text: ''
|
|
158
|
-
// }],
|
|
159
|
-
// })
|
|
160
|
-
// // .leftJoin(CitiesTable, UsersTable, (table) => table.userId, (table) => table.id)
|
|
161
|
-
// // .leftJoin(UsersTable, UsersTable, (table) => table.id, (table) => table.id)
|
|
162
|
-
// .execute();
|
|
163
|
-
// console.log(res);
|
|
164
|
-
// const ser = new MigrationSerializer();
|
|
165
|
-
// const res = ser.generate([usersTable as AbstractTable<UsersTable>], []);
|
|
166
|
-
// console.log(JSON.stringify(res, null, 2));
|
|
167
|
-
// const f = {
|
|
168
|
-
// id: count(usersTable.id),
|
|
169
|
-
// };
|
|
170
|
-
// type d = ExtractModel<typeof f>;
|
|
171
|
-
// const res = await usersTable.select()
|
|
172
|
-
// .leftJoin(UsersTable, (table) => table.id, (table) => table.id)
|
|
173
|
-
// .leftJoin(UsersTable, CitiesTable, (table) => table.id, (table) => table.id)
|
|
174
|
-
// .execute();
|
|
175
|
-
// const res = await usersTable.select()
|
|
176
|
-
// // .groupBy((table, join1, join2, join3) => [table.id, join1.id, join1.phone])
|
|
177
|
-
// .leftJoin(UsersTable, (table) => table.foundationDate, (table) => table.id)
|
|
178
|
-
// .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
179
|
-
// .leftJoin(UsersTable, UsersTable, (table) => table.role, (table) => table.id)
|
|
180
|
-
// // .groupBy({
|
|
181
|
-
// // usersTable: usersTable.id,
|
|
182
|
-
// // firstJoin: [usersTable.id],
|
|
183
|
-
// // secondJoin: usersTable.id,
|
|
184
|
-
// // thirdJoin: usersTable.id,
|
|
185
|
-
// // })
|
|
186
|
-
// .execute();
|
|
187
|
-
// console.log(res);
|
|
188
|
-
}
|
|
189
|
-
catch (e) {
|
|
190
|
-
console.log(e);
|
|
191
|
-
}
|
|
192
|
-
})();
|
|
193
|
-
//# sourceMappingURL=test.js.map
|
package/test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
package/utils/escape.d.ts
DELETED
package/utils/escape.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.shouldEscape = exports.escape = void 0;
|
|
4
|
-
const escape = (data, strategy) => `${strategy}${data}${strategy}`;
|
|
5
|
-
exports.escape = escape;
|
|
6
|
-
const shouldEscape = (value) => typeof value === 'string'
|
|
7
|
-
|| value instanceof Date || value === Object(value);
|
|
8
|
-
exports.shouldEscape = shouldEscape;
|
|
9
|
-
//# sourceMappingURL=escape.js.map
|
package/utils/escape.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/utils/escape.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;AAA7E,QAAA,MAAM,UAAuE;AAEnF,MAAM,YAAY,GAAG,CAAC,KAAU,EAAW,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ;OAC3E,KAAK,YAAY,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AADvC,QAAA,YAAY,gBAC2B"}
|