velocious 1.0.567 → 1.0.568
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -1
- package/build/database/drivers/base-table.js +4 -3
- package/build/database/drivers/base.js +28 -0
- package/build/database/drivers/index-metadata.js +28 -0
- package/build/database/drivers/mssql/column.js +2 -34
- package/build/database/drivers/mssql/columns-index.js +37 -0
- package/build/database/drivers/mssql/table.js +55 -11
- package/build/database/drivers/mysql/sql/alter-table.js +13 -0
- package/build/database/drivers/pgsql/column.js +2 -27
- package/build/database/drivers/pgsql/columns-index.js +37 -0
- package/build/database/drivers/pgsql/table.js +61 -10
- package/build/database/drivers/sqlite/sql/alter-table.js +18 -0
- package/build/database/migration/index.js +92 -3
- package/build/database/query/alter-table-base.js +20 -1
- package/build/database/record/attachments/normalize-input.js +38 -10
- package/build/database/record/attachments/storage-drivers/filesystem.js +33 -2
- package/build/database/record/attachments/storage-drivers/native.js +17 -2
- package/build/database/record/attachments/storage-drivers/s3.js +27 -7
- package/build/database/record/attachments/store.js +159 -43
- package/build/database/table-data/table-foreign-key.js +9 -1
- package/build/environment-handlers/base.js +1 -1
- package/build/environment-handlers/node/attachment-path-source.js +144 -0
- package/build/environment-handlers/node.js +28 -3
- package/build/src/database/drivers/base-table.d.ts.map +1 -1
- package/build/src/database/drivers/base-table.js +4 -3
- package/build/src/database/drivers/base.d.ts +7 -0
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +24 -1
- package/build/src/database/drivers/index-metadata.d.ts +41 -0
- package/build/src/database/drivers/index-metadata.d.ts.map +1 -0
- package/build/src/database/drivers/index-metadata.js +26 -0
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +3 -31
- package/build/src/database/drivers/mssql/columns-index.d.ts +41 -0
- package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/columns-index.js +35 -1
- package/build/src/database/drivers/mssql/table.d.ts +42 -0
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +49 -12
- package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/alter-table.js +12 -1
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.js +3 -24
- package/build/src/database/drivers/pgsql/columns-index.d.ts +41 -0
- package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/columns-index.js +35 -1
- package/build/src/database/drivers/pgsql/table.d.ts +42 -0
- package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/table.js +54 -11
- package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/alter-table.js +15 -1
- package/build/src/database/migration/index.d.ts +35 -1
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +78 -4
- package/build/src/database/query/alter-table-base.d.ts +6 -0
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +18 -2
- package/build/src/database/record/attachments/normalize-input.d.ts +33 -4
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/normalize-input.js +39 -11
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +2 -5
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.js +28 -3
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +2 -6
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.js +14 -3
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -6
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +29 -8
- package/build/src/database/record/attachments/store.d.ts +27 -0
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +144 -44
- package/build/src/database/table-data/table-foreign-key.d.ts +9 -1
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.js +9 -2
- package/build/src/environment-handlers/base.d.ts +2 -5
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +2 -2
- package/build/src/environment-handlers/node/attachment-path-source.d.ts +64 -0
- package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -0
- package/build/src/environment-handlers/node/attachment-path-source.js +116 -0
- package/build/src/environment-handlers/node.d.ts +12 -0
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +24 -4
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/database/drivers/base-table.js +4 -3
- package/src/database/drivers/base.js +28 -0
- package/src/database/drivers/index-metadata.js +28 -0
- package/src/database/drivers/mssql/column.js +2 -34
- package/src/database/drivers/mssql/columns-index.js +37 -0
- package/src/database/drivers/mssql/table.js +55 -11
- package/src/database/drivers/mysql/sql/alter-table.js +13 -0
- package/src/database/drivers/pgsql/column.js +2 -27
- package/src/database/drivers/pgsql/columns-index.js +37 -0
- package/src/database/drivers/pgsql/table.js +61 -10
- package/src/database/drivers/sqlite/sql/alter-table.js +18 -0
- package/src/database/migration/index.js +92 -3
- package/src/database/query/alter-table-base.js +20 -1
- package/src/database/record/attachments/normalize-input.js +38 -10
- package/src/database/record/attachments/storage-drivers/filesystem.js +33 -2
- package/src/database/record/attachments/storage-drivers/native.js +17 -2
- package/src/database/record/attachments/storage-drivers/s3.js +27 -7
- package/src/database/record/attachments/store.js +159 -43
- package/src/database/table-data/table-foreign-key.js +9 -1
- package/src/environment-handlers/base.js +1 -1
- package/src/environment-handlers/node/attachment-path-source.js +144 -0
- package/src/environment-handlers/node.js +28 -3
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseColumnsIndex from "../base-columns-index.js";
|
|
3
|
+
import TableIndex from "../../table-data/table-index.js";
|
|
4
|
+
/**
|
|
5
|
+
* PgsqlColumnsIndexDataType type.
|
|
6
|
+
* @typedef {object} PgsqlColumnsIndexDataType
|
|
7
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
8
|
+
* @property {string} index_name - Index name.
|
|
9
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
10
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
11
|
+
* @property {string} table_name - Table name.
|
|
12
|
+
*/
|
|
3
13
|
export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumnsIndex {
|
|
14
|
+
/**
|
|
15
|
+
* Runs constructor.
|
|
16
|
+
* @param {import("../base-table.js").default} table - Table.
|
|
17
|
+
* @param {PgsqlColumnsIndexDataType} data - Grouped index metadata.
|
|
18
|
+
*/
|
|
19
|
+
constructor(table, data) {
|
|
20
|
+
super(table, data);
|
|
21
|
+
this.indexData = data;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Runs get column names.
|
|
25
|
+
* @returns {string[]} - Ordered index column names.
|
|
26
|
+
*/
|
|
27
|
+
getColumnNames() { return this.indexData.columnNames; }
|
|
28
|
+
/**
|
|
29
|
+
* Runs get table data index.
|
|
30
|
+
* @returns {TableIndex} - Table-data index.
|
|
31
|
+
*/
|
|
32
|
+
getTableDataIndex() {
|
|
33
|
+
return new TableIndex(this.getColumnNames(), {
|
|
34
|
+
name: this.getName(),
|
|
35
|
+
unique: this.isUnique()
|
|
36
|
+
});
|
|
37
|
+
}
|
|
4
38
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL3Bnc3FsL2NvbHVtbnMtaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sMEJBQTBCLENBQUE7QUFDdkQsT0FBTyxVQUFVLE1BQU0saUNBQWlDLENBQUE7QUFFeEQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLG1DQUFvQyxTQUFRLGdCQUFnQjtJQUMvRTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uc0luZGV4IGZyb20gXCIuLi9iYXNlLWNvbHVtbnMtaW5kZXguanNcIlxuaW1wb3J0IFRhYmxlSW5kZXggZnJvbSBcIi4uLy4uL3RhYmxlLWRhdGEvdGFibGUtaW5kZXguanNcIlxuXG4vKipcbiAqIFBnc3FsQ29sdW1uc0luZGV4RGF0YVR5cGUgdHlwZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBnc3FsQ29sdW1uc0luZGV4RGF0YVR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGNvbHVtbk5hbWVzIC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaW5kZXhfbmFtZSAtIEluZGV4IG5hbWUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3ByaW1hcnlfa2V5IC0gV2hldGhlciB0aGUgaW5kZXggaXMgcHJpbWFyeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNfdW5pcXVlIC0gV2hldGhlciB0aGUgaW5kZXggaXMgdW5pcXVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRhYmxlX25hbWUgLSBUYWJsZSBuYW1lLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1Bnc3FsQ29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbnNJbmRleCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UtdGFibGUuanNcIikuZGVmYXVsdH0gdGFibGUgLSBUYWJsZS5cbiAgICogQHBhcmFtIHtQZ3NxbENvbHVtbnNJbmRleERhdGFUeXBlfSBkYXRhIC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBkYXRhKSB7XG4gICAgc3VwZXIodGFibGUsIGRhdGEpXG4gICAgdGhpcy5pbmRleERhdGEgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29sdW1uIG5hbWVzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gICAqL1xuICBnZXRDb2x1bW5OYW1lcygpIHsgcmV0dXJuIHRoaXMuaW5kZXhEYXRhLmNvbHVtbk5hbWVzIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdGFibGUgZGF0YSBpbmRleC5cbiAgICogQHJldHVybnMge1RhYmxlSW5kZXh9IC0gVGFibGUtZGF0YSBpbmRleC5cbiAgICovXG4gIGdldFRhYmxlRGF0YUluZGV4KCkge1xuICAgIHJldHVybiBuZXcgVGFibGVJbmRleCh0aGlzLmdldENvbHVtbk5hbWVzKCksIHtcbiAgICAgIG5hbWU6IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgdW5pcXVlOiB0aGlzLmlzVW5pcXVlKClcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PgsqlGroupedIndexDataType type.
|
|
3
|
+
* @typedef {object} PgsqlGroupedIndexDataType
|
|
4
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
5
|
+
* @property {string} index_name - Index name.
|
|
6
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
7
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
8
|
+
* @property {string} table_name - Table name.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Groups ordered PostgreSQL index rows into one metadata value per index.
|
|
12
|
+
* @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
|
|
13
|
+
* @returns {PgsqlGroupedIndexDataType[]} - Grouped index metadata.
|
|
14
|
+
*/
|
|
15
|
+
export function groupPgsqlIndexRows(indexRows: import("../index-metadata.js").IndexMetadataType[]): PgsqlGroupedIndexDataType[];
|
|
1
16
|
export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
|
|
2
17
|
/**
|
|
3
18
|
* Runs constructor.
|
|
@@ -9,8 +24,35 @@ export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
|
|
|
9
24
|
driver: import("../base.js").default;
|
|
10
25
|
getColumns(): Promise<Column[]>;
|
|
11
26
|
getForeignKeys(): Promise<ForeignKey[]>;
|
|
27
|
+
getIndexes(): Promise<ColumnsIndex[]>;
|
|
12
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* PgsqlGroupedIndexDataType type.
|
|
31
|
+
*/
|
|
32
|
+
export type PgsqlGroupedIndexDataType = {
|
|
33
|
+
/**
|
|
34
|
+
* - Ordered index column names.
|
|
35
|
+
*/
|
|
36
|
+
columnNames: string[];
|
|
37
|
+
/**
|
|
38
|
+
* - Index name.
|
|
39
|
+
*/
|
|
40
|
+
index_name: string;
|
|
41
|
+
/**
|
|
42
|
+
* - Whether the index is primary.
|
|
43
|
+
*/
|
|
44
|
+
is_primary_key: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* - Whether the index is unique.
|
|
47
|
+
*/
|
|
48
|
+
is_unique: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* - Table name.
|
|
51
|
+
*/
|
|
52
|
+
table_name: string;
|
|
53
|
+
};
|
|
13
54
|
import BaseTable from "../base-table.js";
|
|
14
55
|
import Column from "./column.js";
|
|
15
56
|
import ForeignKey from "./foreign-key.js";
|
|
57
|
+
import ColumnsIndex from "./columns-index.js";
|
|
16
58
|
//# sourceMappingURL=table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/table.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/table.js"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,+CAHW,OAAO,sBAAsB,EAAE,iBAAiB,EAAE,GAChD,yBAAyB,EAAE,CA6BvC;AAED;IACE;;;;OAIG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAMhC;IAFC,6BAAgB;IAChB,qCAAoB;IAGtB,gCAqCC;IAED,wCAoCC;IAED,sCAmCC;CASF;;;;;;;;iBA9Ka,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;sBAbE,kBAAkB;mBACrB,aAAa;uBAET,kBAAkB;yBADhB,oBAAoB"}
|
|
@@ -3,6 +3,44 @@ import BaseTable from "../base-table.js";
|
|
|
3
3
|
import Column from "./column.js";
|
|
4
4
|
import ColumnsIndex from "./columns-index.js";
|
|
5
5
|
import ForeignKey from "./foreign-key.js";
|
|
6
|
+
import { normalizeIndexMetadataRow } from "../index-metadata.js";
|
|
7
|
+
/**
|
|
8
|
+
* PgsqlGroupedIndexDataType type.
|
|
9
|
+
* @typedef {object} PgsqlGroupedIndexDataType
|
|
10
|
+
* @property {string[]} columnNames - Ordered index column names.
|
|
11
|
+
* @property {string} index_name - Index name.
|
|
12
|
+
* @property {boolean} is_primary_key - Whether the index is primary.
|
|
13
|
+
* @property {boolean} is_unique - Whether the index is unique.
|
|
14
|
+
* @property {string} table_name - Table name.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Groups ordered PostgreSQL index rows into one metadata value per index.
|
|
18
|
+
* @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
|
|
19
|
+
* @returns {PgsqlGroupedIndexDataType[]} - Grouped index metadata.
|
|
20
|
+
*/
|
|
21
|
+
export function groupPgsqlIndexRows(indexRows) {
|
|
22
|
+
/** @type {Map<string, PgsqlGroupedIndexDataType>} */
|
|
23
|
+
const indexDataByName = new Map();
|
|
24
|
+
/** @type {PgsqlGroupedIndexDataType[]} */
|
|
25
|
+
const groupedIndexData = [];
|
|
26
|
+
for (const indexRow of indexRows) {
|
|
27
|
+
const existingIndexData = indexDataByName.get(indexRow.index_name);
|
|
28
|
+
if (existingIndexData) {
|
|
29
|
+
existingIndexData.columnNames.push(indexRow.column_name);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const indexData = {
|
|
33
|
+
columnNames: [indexRow.column_name],
|
|
34
|
+
index_name: indexRow.index_name,
|
|
35
|
+
is_primary_key: indexRow.is_primary_key,
|
|
36
|
+
is_unique: indexRow.is_unique,
|
|
37
|
+
table_name: indexRow.table_name
|
|
38
|
+
};
|
|
39
|
+
indexDataByName.set(indexRow.index_name, indexData);
|
|
40
|
+
groupedIndexData.push(indexData);
|
|
41
|
+
}
|
|
42
|
+
return groupedIndexData;
|
|
43
|
+
}
|
|
6
44
|
export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
|
|
7
45
|
/**
|
|
8
46
|
* Runs constructor.
|
|
@@ -87,21 +125,26 @@ export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
|
|
|
87
125
|
const options = this.getOptions();
|
|
88
126
|
const indexesRows = await this.getDriver().query(`
|
|
89
127
|
SELECT
|
|
90
|
-
|
|
91
|
-
pg_index.indexrelid::regclass
|
|
92
|
-
pg_class.
|
|
93
|
-
|
|
94
|
-
pg_index.
|
|
95
|
-
pg_index.indisunique as is_unique
|
|
128
|
+
index_attribute.attname AS column_name,
|
|
129
|
+
pg_index.indexrelid::regclass AS index_name,
|
|
130
|
+
pg_class.relname AS table_name,
|
|
131
|
+
pg_index.indisprimary AS is_primary_key,
|
|
132
|
+
pg_index.indisunique AS is_unique
|
|
96
133
|
FROM pg_index
|
|
97
134
|
JOIN pg_class ON pg_class.oid = pg_index.indrelid
|
|
98
|
-
JOIN
|
|
135
|
+
JOIN LATERAL unnest(pg_index.indkey) WITH ORDINALITY AS index_columns(attribute_number, ordinal_position) ON true
|
|
136
|
+
JOIN pg_attribute AS index_attribute ON index_attribute.attrelid = pg_class.oid AND index_attribute.attnum = index_columns.attribute_number
|
|
99
137
|
WHERE
|
|
100
|
-
pg_class.relname = ${options.quote(this.getName())}
|
|
138
|
+
pg_class.relname = ${options.quote(this.getName())} AND
|
|
139
|
+
index_columns.ordinal_position <= pg_index.indnkeyatts
|
|
140
|
+
ORDER BY
|
|
141
|
+
pg_index.indexrelid,
|
|
142
|
+
index_columns.ordinal_position
|
|
101
143
|
`);
|
|
102
144
|
const indexes = [];
|
|
103
|
-
|
|
104
|
-
|
|
145
|
+
const indexRows = indexesRows.map((indexRow) => normalizeIndexMetadataRow(indexRow));
|
|
146
|
+
for (const indexData of groupPgsqlIndexRows(indexRows)) {
|
|
147
|
+
const columnsIndex = new ColumnsIndex(this, indexData);
|
|
105
148
|
indexes.push(columnsIndex);
|
|
106
149
|
}
|
|
107
150
|
return indexes;
|
|
@@ -115,4 +158,4 @@ export default class VelociousDatabaseDriversPgsqlTable extends BaseTable {
|
|
|
115
158
|
return this.data.table_name;
|
|
116
159
|
}
|
|
117
160
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9wZ3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0NBQW1DLFNBQVEsU0FBUztJQUN2RTs7OztPQUlHO0lBQ0gsWUFBWSxNQUFNLEVBQUUsSUFBSTtRQUN0QixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0F1QlgsSUFBSSxDQUFDLE9BQU8sRUFBRTtPQUN6QyxDQUFDLENBQUE7WUFDRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFFbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUVyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ3RCLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDakcsTUFBTSxHQUFHLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQW9CVSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztPQUMzRCxDQUFBO1lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTtZQUV0QixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtnQkFFaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM5QixDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBRWpDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7OytCQVl4QixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztPQUNyRCxDQUFDLENBQUE7WUFFRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO2dCQUVyRCxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQzVCLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VUYWJsZSBmcm9tIFwiLi4vYmFzZS10YWJsZS5qc1wiXG5pbXBvcnQgQ29sdW1uIGZyb20gXCIuL2NvbHVtbi5qc1wiXG5pbXBvcnQgQ29sdW1uc0luZGV4IGZyb20gXCIuL2NvbHVtbnMtaW5kZXguanNcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRyaXZlciwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIGFzeW5jIGdldENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiY29sdW1uc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRyaXZlci5xdWVyeShgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgIGNvbHVtbnMuKixcbiAgICAgICAgICBDQVNFIFdIRU4ga2V5X2NvbHVtbl91c2FnZS5jb2x1bW5fbmFtZSBJUyBOT1QgTlVMTCBUSEVOIDEgRUxTRSAwIEVORCBBUyBpc19wcmltYXJ5X2tleSxcbiAgICAgICAgICBjb2xfZGVzY3JpcHRpb24oKGNvbHVtbnMudGFibGVfc2NoZW1hIHx8ICcuJyB8fCBjb2x1bW5zLnRhYmxlX25hbWUpOjpyZWdjbGFzcywgY29sdW1ucy5vcmRpbmFsX3Bvc2l0aW9uKSBBUyBjb2x1bW5fY29tbWVudFxuXG4gICAgICAgIEZST01cbiAgICAgICAgICBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBBUyBjb2x1bW5zXG5cbiAgICAgICAgTEVGVCBKT0lOIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZV9jb25zdHJhaW50cyBBUyB0YWJsZV9jb25zdHJhaW50cyBPTlxuICAgICAgICAgIHRhYmxlX2NvbnN0cmFpbnRzLnRhYmxlX25hbWUgPSBjb2x1bW5zLnRhYmxlX25hbWUgQU5EXG4gICAgICAgICAgdGFibGVfY29uc3RyYWludHMudGFibGVfc2NoZW1hID0gY29sdW1ucy50YWJsZV9zY2hlbWEgQU5EXG4gICAgICAgICAgdGFibGVfY29uc3RyYWludHMuY29uc3RyYWludF90eXBlID0gJ1BSSU1BUlkgS0VZJ1xuXG4gICAgICAgIExFRlQgSk9JTiBpbmZvcm1hdGlvbl9zY2hlbWEua2V5X2NvbHVtbl91c2FnZSBBUyBrZXlfY29sdW1uX3VzYWdlIE9OXG4gICAgICAgICAga2V5X2NvbHVtbl91c2FnZS5jb25zdHJhaW50X25hbWUgPSB0YWJsZV9jb25zdHJhaW50cy5jb25zdHJhaW50X25hbWUgQU5EXG4gICAgICAgICAga2V5X2NvbHVtbl91c2FnZS50YWJsZV9zY2hlbWEgPSB0YWJsZV9jb25zdHJhaW50cy50YWJsZV9zY2hlbWEgQU5EXG4gICAgICAgICAga2V5X2NvbHVtbl91c2FnZS50YWJsZV9uYW1lID0gY29sdW1ucy50YWJsZV9uYW1lIEFORFxuICAgICAgICAgIGtleV9jb2x1bW5fdXNhZ2UuY29sdW1uX25hbWUgPSBjb2x1bW5zLmNvbHVtbl9uYW1lXG5cbiAgICAgICAgV0hFUkVcbiAgICAgICAgICBjb2x1bW5zLnRhYmxlX2NhdGFsb2cgPSBDVVJSRU5UX0RBVEFCQVNFKCkgQU5EXG4gICAgICAgICAgY29sdW1ucy50YWJsZV9zY2hlbWEgPSAncHVibGljJyBBTkRcbiAgICAgICAgICBjb2x1bW5zLnRhYmxlX25hbWUgPSAnJHt0aGlzLmdldE5hbWUoKX0nXG4gICAgICBgKVxuICAgICAgY29uc3QgY29sdW1ucyA9IFtdXG5cbiAgICAgIGZvciAoY29uc3QgZGF0YSBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb2x1bW5zXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEZvcmVpZ25LZXlzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLl9jYWNoZWRUYWJsZVNjaGVtYU1ldGFkYXRhKHRoaXMuZ2V0TmFtZSgpLCBcImZvcmVpZ25LZXlzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgdGMuY29uc3RyYWludF9uYW1lLFxuICAgICAgICAgIHRjLnRhYmxlX25hbWUsXG4gICAgICAgICAga2N1LmNvbHVtbl9uYW1lLFxuICAgICAgICAgIGNjdS50YWJsZV9uYW1lIEFTIGZvcmVpZ25fdGFibGVfbmFtZSxcbiAgICAgICAgICBjY3UuY29sdW1uX25hbWUgQVMgZm9yZWlnbl9jb2x1bW5fbmFtZVxuXG4gICAgICAgIEZST01cbiAgICAgICAgICBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVfY29uc3RyYWludHMgQVMgdGNcblxuICAgICAgICBKT0lOIGluZm9ybWF0aW9uX3NjaGVtYS5rZXlfY29sdW1uX3VzYWdlIEFTIGtjdSBPTlxuICAgICAgICAgIHRjLmNvbnN0cmFpbnRfbmFtZSA9IGtjdS5jb25zdHJhaW50X25hbWVcblxuICAgICAgICBKT0lOIGluZm9ybWF0aW9uX3NjaGVtYS5jb25zdHJhaW50X2NvbHVtbl91c2FnZSBBUyBjY3VcbiAgICAgICAgICBPTiBjY3UuY29uc3RyYWludF9uYW1lID0gdGMuY29uc3RyYWludF9uYW1lXG5cbiAgICAgICAgV0hFUkVcbiAgICAgICAgICBjb25zdHJhaW50X3R5cGUgPSAnRk9SRUlHTiBLRVknIEFORFxuICAgICAgICAgIHRjLnRhYmxlX2NhdGFsb2cgPSBDVVJSRU5UX0RBVEFCQVNFKCkgQU5EXG4gICAgICAgICAgdGMudGFibGVfbmFtZSA9ICR7dGhpcy5nZXREcml2ZXIoKS5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBgXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgICBjb25zdCBmb3JlaWduS2V5cyA9IFtdXG5cbiAgICAgIGZvciAoY29uc3QgZm9yZWlnbktleVJvdyBvZiBmb3JlaWduS2V5Um93cykge1xuICAgICAgICBjb25zdCBmb3JlaWduS2V5ID0gbmV3IEZvcmVpZ25LZXkoZm9yZWlnbktleVJvdylcblxuICAgICAgICBmb3JlaWduS2V5cy5wdXNoKGZvcmVpZ25LZXkpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3JlaWduS2V5c1xuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLl9jYWNoZWRUYWJsZVNjaGVtYU1ldGFkYXRhKHRoaXMuZ2V0TmFtZSgpLCBcImluZGV4ZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpXG5cbiAgICAgIGNvbnN0IGluZGV4ZXNSb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgIHBnX2F0dHJpYnV0ZS5hdHRuYW1lIEFTIGNvbHVtbl9uYW1lLFxuICAgICAgICAgIHBnX2luZGV4LmluZGV4cmVsaWQ6OnJlZ2NsYXNzIGFzIGluZGV4X25hbWUsXG4gICAgICAgICAgcGdfY2xhc3MucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UgYXMgc2NoZW1hX25hbWUsXG4gICAgICAgICAgcGdfY2xhc3MucmVsbmFtZSBhcyB0YWJsZV9uYW1lLFxuICAgICAgICAgIHBnX2luZGV4LmluZGlzcHJpbWFyeSBhcyBpc19wcmltYXJ5X2tleSxcbiAgICAgICAgICBwZ19pbmRleC5pbmRpc3VuaXF1ZSBhcyBpc191bmlxdWVcbiAgICAgICAgRlJPTSBwZ19pbmRleFxuICAgICAgICBKT0lOIHBnX2NsYXNzIE9OIHBnX2NsYXNzLm9pZCA9IHBnX2luZGV4LmluZHJlbGlkXG4gICAgICAgIEpPSU4gcGdfYXR0cmlidXRlIE9OIHBnX2F0dHJpYnV0ZS5hdHRyZWxpZCA9IHBnX2NsYXNzLm9pZCBBTkQgcGdfYXR0cmlidXRlLmF0dG51bSA9IEFOWShwZ19pbmRleC5pbmRrZXkpXG4gICAgICAgIFdIRVJFXG4gICAgICAgICAgcGdfY2xhc3MucmVsbmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBgKVxuXG4gICAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgICAgZm9yIChjb25zdCBpbmRleFJvdyBvZiBpbmRleGVzUm93cykge1xuICAgICAgICBjb25zdCBjb2x1bW5zSW5kZXggPSBuZXcgQ29sdW1uc0luZGV4KHRoaXMsIGluZGV4Um93KVxuXG4gICAgICAgIGluZGV4ZXMucHVzaChjb2x1bW5zSW5kZXgpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmRleGVzXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0YWJsZSBuYW1lLlxuICAgKi9cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnRhYmxlX25hbWVcbiAgfVxufVxuIl19
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9wZ3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWhFOzs7Ozs7OztHQVFHO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFTO0lBQzNDLHFEQUFxRDtJQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ2pDLDBDQUEwQztJQUMxQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtJQUUzQixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFbEUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3hELFNBQVE7UUFDVixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUc7WUFDaEIsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUNuQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDL0IsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjO1lBQ3ZDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7U0FDaEMsQ0FBQTtR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S0FBSyxNQUFNLFNBQVMsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBRXRELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDNUIsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFBO1FBQ2hCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZVRhYmxlIGZyb20gXCIuLi9iYXNlLXRhYmxlLmpzXCJcbmltcG9ydCBDb2x1bW4gZnJvbSBcIi4vY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQgRm9yZWlnbktleSBmcm9tIFwiLi9mb3JlaWduLWtleS5qc1wiXG5pbXBvcnQgeyBub3JtYWxpemVJbmRleE1ldGFkYXRhUm93IH0gZnJvbSBcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCJcblxuLyoqXG4gKiBQZ3NxbEdyb3VwZWRJbmRleERhdGFUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQZ3NxbEdyb3VwZWRJbmRleERhdGFUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBjb2x1bW5OYW1lcyAtIE9yZGVyZWQgaW5kZXggY29sdW1uIG5hbWVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGluZGV4X25hbWUgLSBJbmRleCBuYW1lLlxuICogQHByb3BlcnR5IHtib29sZWFufSBpc19wcmltYXJ5X2tleSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHByaW1hcnkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3VuaXF1ZSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHVuaXF1ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0YWJsZV9uYW1lIC0gVGFibGUgbmFtZS5cbiAqL1xuXG4vKipcbiAqIEdyb3VwcyBvcmRlcmVkIFBvc3RncmVTUUwgaW5kZXggcm93cyBpbnRvIG9uZSBtZXRhZGF0YSB2YWx1ZSBwZXIgaW5kZXguXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCIpLkluZGV4TWV0YWRhdGFUeXBlW119IGluZGV4Um93cyAtIE9yZGVyZWQgaW5kZXggbWV0YWRhdGEgcm93cy5cbiAqIEByZXR1cm5zIHtQZ3NxbEdyb3VwZWRJbmRleERhdGFUeXBlW119IC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwUGdzcWxJbmRleFJvd3MoaW5kZXhSb3dzKSB7XG4gIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgUGdzcWxHcm91cGVkSW5kZXhEYXRhVHlwZT59ICovXG4gIGNvbnN0IGluZGV4RGF0YUJ5TmFtZSA9IG5ldyBNYXAoKVxuICAvKiogQHR5cGUge1Bnc3FsR3JvdXBlZEluZGV4RGF0YVR5cGVbXX0gKi9cbiAgY29uc3QgZ3JvdXBlZEluZGV4RGF0YSA9IFtdXG5cbiAgZm9yIChjb25zdCBpbmRleFJvdyBvZiBpbmRleFJvd3MpIHtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4RGF0YSA9IGluZGV4RGF0YUJ5TmFtZS5nZXQoaW5kZXhSb3cuaW5kZXhfbmFtZSlcblxuICAgIGlmIChleGlzdGluZ0luZGV4RGF0YSkge1xuICAgICAgZXhpc3RpbmdJbmRleERhdGEuY29sdW1uTmFtZXMucHVzaChpbmRleFJvdy5jb2x1bW5fbmFtZSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhEYXRhID0ge1xuICAgICAgY29sdW1uTmFtZXM6IFtpbmRleFJvdy5jb2x1bW5fbmFtZV0sXG4gICAgICBpbmRleF9uYW1lOiBpbmRleFJvdy5pbmRleF9uYW1lLFxuICAgICAgaXNfcHJpbWFyeV9rZXk6IGluZGV4Um93LmlzX3ByaW1hcnlfa2V5LFxuICAgICAgaXNfdW5pcXVlOiBpbmRleFJvdy5pc191bmlxdWUsXG4gICAgICB0YWJsZV9uYW1lOiBpbmRleFJvdy50YWJsZV9uYW1lXG4gICAgfVxuXG4gICAgaW5kZXhEYXRhQnlOYW1lLnNldChpbmRleFJvdy5pbmRleF9uYW1lLCBpbmRleERhdGEpXG4gICAgZ3JvdXBlZEluZGV4RGF0YS5wdXNoKGluZGV4RGF0YSlcbiAgfVxuXG4gIHJldHVybiBncm91cGVkSW5kZXhEYXRhXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1Bnc3FsVGFibGUgZXh0ZW5kcyBCYXNlVGFibGUge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLmRlZmF1bHR9IGRyaXZlciAtIERhdGFiYXNlIGRyaXZlciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBkYXRhIC0gRGF0YSBwYXlsb2FkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZHJpdmVyLCBkYXRhKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlclxuICB9XG5cbiAgYXN5bmMgZ2V0Q29sdW1ucygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJjb2x1bW5zXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgY29sdW1ucy4qLFxuICAgICAgICAgIENBU0UgV0hFTiBrZXlfY29sdW1uX3VzYWdlLmNvbHVtbl9uYW1lIElTIE5PVCBOVUxMIFRIRU4gMSBFTFNFIDAgRU5EIEFTIGlzX3ByaW1hcnlfa2V5LFxuICAgICAgICAgIGNvbF9kZXNjcmlwdGlvbigoY29sdW1ucy50YWJsZV9zY2hlbWEgfHwgJy4nIHx8IGNvbHVtbnMudGFibGVfbmFtZSk6OnJlZ2NsYXNzLCBjb2x1bW5zLm9yZGluYWxfcG9zaXRpb24pIEFTIGNvbHVtbl9jb21tZW50XG5cbiAgICAgICAgRlJPTVxuICAgICAgICAgIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIEFTIGNvbHVtbnNcblxuICAgICAgICBMRUZUIEpPSU4gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlX2NvbnN0cmFpbnRzIEFTIHRhYmxlX2NvbnN0cmFpbnRzIE9OXG4gICAgICAgICAgdGFibGVfY29uc3RyYWludHMudGFibGVfbmFtZSA9IGNvbHVtbnMudGFibGVfbmFtZSBBTkRcbiAgICAgICAgICB0YWJsZV9jb25zdHJhaW50cy50YWJsZV9zY2hlbWEgPSBjb2x1bW5zLnRhYmxlX3NjaGVtYSBBTkRcbiAgICAgICAgICB0YWJsZV9jb25zdHJhaW50cy5jb25zdHJhaW50X3R5cGUgPSAnUFJJTUFSWSBLRVknXG5cbiAgICAgICAgTEVGVCBKT0lOIGluZm9ybWF0aW9uX3NjaGVtYS5rZXlfY29sdW1uX3VzYWdlIEFTIGtleV9jb2x1bW5fdXNhZ2UgT05cbiAgICAgICAgICBrZXlfY29sdW1uX3VzYWdlLmNvbnN0cmFpbnRfbmFtZSA9IHRhYmxlX2NvbnN0cmFpbnRzLmNvbnN0cmFpbnRfbmFtZSBBTkRcbiAgICAgICAgICBrZXlfY29sdW1uX3VzYWdlLnRhYmxlX3NjaGVtYSA9IHRhYmxlX2NvbnN0cmFpbnRzLnRhYmxlX3NjaGVtYSBBTkRcbiAgICAgICAgICBrZXlfY29sdW1uX3VzYWdlLnRhYmxlX25hbWUgPSBjb2x1bW5zLnRhYmxlX25hbWUgQU5EXG4gICAgICAgICAga2V5X2NvbHVtbl91c2FnZS5jb2x1bW5fbmFtZSA9IGNvbHVtbnMuY29sdW1uX25hbWVcblxuICAgICAgICBXSEVSRVxuICAgICAgICAgIGNvbHVtbnMudGFibGVfY2F0YWxvZyA9IENVUlJFTlRfREFUQUJBU0UoKSBBTkRcbiAgICAgICAgICBjb2x1bW5zLnRhYmxlX3NjaGVtYSA9ICdwdWJsaWMnIEFORFxuICAgICAgICAgIGNvbHVtbnMudGFibGVfbmFtZSA9ICcke3RoaXMuZ2V0TmFtZSgpfSdcbiAgICAgIGApXG4gICAgICBjb25zdCBjb2x1bW5zID0gW11cblxuICAgICAgZm9yIChjb25zdCBkYXRhIG9mIHJlc3VsdCkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uKHRoaXMsIGRhdGEpXG5cbiAgICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbHVtbnNcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0Rm9yZWlnbktleXMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiZm9yZWlnbktleXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3FsID0gYFxuICAgICAgICBTRUxFQ1RcbiAgICAgICAgICB0Yy5jb25zdHJhaW50X25hbWUsXG4gICAgICAgICAgdGMudGFibGVfbmFtZSxcbiAgICAgICAgICBrY3UuY29sdW1uX25hbWUsXG4gICAgICAgICAgY2N1LnRhYmxlX25hbWUgQVMgZm9yZWlnbl90YWJsZV9uYW1lLFxuICAgICAgICAgIGNjdS5jb2x1bW5fbmFtZSBBUyBmb3JlaWduX2NvbHVtbl9uYW1lXG5cbiAgICAgICAgRlJPTVxuICAgICAgICAgIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZV9jb25zdHJhaW50cyBBUyB0Y1xuXG4gICAgICAgIEpPSU4gaW5mb3JtYXRpb25fc2NoZW1hLmtleV9jb2x1bW5fdXNhZ2UgQVMga2N1IE9OXG4gICAgICAgICAgdGMuY29uc3RyYWludF9uYW1lID0ga2N1LmNvbnN0cmFpbnRfbmFtZVxuXG4gICAgICAgIEpPSU4gaW5mb3JtYXRpb25fc2NoZW1hLmNvbnN0cmFpbnRfY29sdW1uX3VzYWdlIEFTIGNjdVxuICAgICAgICAgIE9OIGNjdS5jb25zdHJhaW50X25hbWUgPSB0Yy5jb25zdHJhaW50X25hbWVcblxuICAgICAgICBXSEVSRVxuICAgICAgICAgIGNvbnN0cmFpbnRfdHlwZSA9ICdGT1JFSUdOIEtFWScgQU5EXG4gICAgICAgICAgdGMudGFibGVfY2F0YWxvZyA9IENVUlJFTlRfREFUQUJBU0UoKSBBTkRcbiAgICAgICAgICB0Yy50YWJsZV9uYW1lID0gJHt0aGlzLmdldERyaXZlcigpLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgIGBcblxuICAgICAgY29uc3QgZm9yZWlnbktleVJvd3MgPSBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KHNxbClcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgICAgZm9yIChjb25zdCBmb3JlaWduS2V5Um93IG9mIGZvcmVpZ25LZXlSb3dzKSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBuZXcgRm9yZWlnbktleShmb3JlaWduS2V5Um93KVxuXG4gICAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcmVpZ25LZXlzXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiaW5kZXhlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcblxuICAgICAgY29uc3QgaW5kZXhlc1Jvd3MgPSBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgaW5kZXhfYXR0cmlidXRlLmF0dG5hbWUgQVMgY29sdW1uX25hbWUsXG4gICAgICAgICAgcGdfaW5kZXguaW5kZXhyZWxpZDo6cmVnY2xhc3MgQVMgaW5kZXhfbmFtZSxcbiAgICAgICAgICBwZ19jbGFzcy5yZWxuYW1lIEFTIHRhYmxlX25hbWUsXG4gICAgICAgICAgcGdfaW5kZXguaW5kaXNwcmltYXJ5IEFTIGlzX3ByaW1hcnlfa2V5LFxuICAgICAgICAgIHBnX2luZGV4LmluZGlzdW5pcXVlIEFTIGlzX3VuaXF1ZVxuICAgICAgICBGUk9NIHBnX2luZGV4XG4gICAgICAgIEpPSU4gcGdfY2xhc3MgT04gcGdfY2xhc3Mub2lkID0gcGdfaW5kZXguaW5kcmVsaWRcbiAgICAgICAgSk9JTiBMQVRFUkFMIHVubmVzdChwZ19pbmRleC5pbmRrZXkpIFdJVEggT1JESU5BTElUWSBBUyBpbmRleF9jb2x1bW5zKGF0dHJpYnV0ZV9udW1iZXIsIG9yZGluYWxfcG9zaXRpb24pIE9OIHRydWVcbiAgICAgICAgSk9JTiBwZ19hdHRyaWJ1dGUgQVMgaW5kZXhfYXR0cmlidXRlIE9OIGluZGV4X2F0dHJpYnV0ZS5hdHRyZWxpZCA9IHBnX2NsYXNzLm9pZCBBTkQgaW5kZXhfYXR0cmlidXRlLmF0dG51bSA9IGluZGV4X2NvbHVtbnMuYXR0cmlidXRlX251bWJlclxuICAgICAgICBXSEVSRVxuICAgICAgICAgIHBnX2NsYXNzLnJlbG5hbWUgPSAke29wdGlvbnMucXVvdGUodGhpcy5nZXROYW1lKCkpfSBBTkRcbiAgICAgICAgICBpbmRleF9jb2x1bW5zLm9yZGluYWxfcG9zaXRpb24gPD0gcGdfaW5kZXguaW5kbmtleWF0dHNcbiAgICAgICAgT1JERVIgQllcbiAgICAgICAgICBwZ19pbmRleC5pbmRleHJlbGlkLFxuICAgICAgICAgIGluZGV4X2NvbHVtbnMub3JkaW5hbF9wb3NpdGlvblxuICAgICAgYClcblxuICAgICAgY29uc3QgaW5kZXhlcyA9IFtdXG5cbiAgICAgIGNvbnN0IGluZGV4Um93cyA9IGluZGV4ZXNSb3dzLm1hcCgoaW5kZXhSb3cpID0+IG5vcm1hbGl6ZUluZGV4TWV0YWRhdGFSb3coaW5kZXhSb3cpKVxuXG4gICAgICBmb3IgKGNvbnN0IGluZGV4RGF0YSBvZiBncm91cFBnc3FsSW5kZXhSb3dzKGluZGV4Um93cykpIHtcbiAgICAgICAgY29uc3QgY29sdW1uc0luZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCBpbmRleERhdGEpXG5cbiAgICAgICAgaW5kZXhlcy5wdXNoKGNvbHVtbnNJbmRleClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluZGV4ZXNcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5hbWUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRhYmxlIG5hbWUuXG4gICAqL1xuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEudGFibGVfbmFtZVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/sqlite/sql/alter-table.js"],"names":[],"mappings":"AAUA;IAaI,eAA8B;IA+ChC;;;;;;OAMG;IACH,qCAJW,SAAS,kBACT,SAAS,GACP;QAAC,eAAe,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAC,
|
|
1
|
+
{"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/sqlite/sql/alter-table.js"],"names":[],"mappings":"AAUA;IAaI,eAA8B;IA+ChC;;;;;;OAMG;IACH,qCAJW,SAAS,kBACT,SAAS,GACP;QAAC,eAAe,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAC,CAwG9E;IAED;;;;;;;OAOG;IACH,oCAJW,eAAe,iBACf,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjB,eAAe,CAgB3B;CACF;2BA1M0B,oCAAoC;mBAC5C,uBAAuB;sBAEpB,8BAA8B;4BACxB,0CAA0C"}
|
|
@@ -120,21 +120,34 @@ export default class VelociousDatabaseConnectionDriversSqliteSqlAlterTable exten
|
|
|
120
120
|
const seenForeignKeyNames = new Set();
|
|
121
121
|
for (const currentForeignKey of currentTableData.getForeignKeys()) {
|
|
122
122
|
const alterForeignKey = alterTableData.getForeignKeys().find((foreignKey) => foreignKey.getName() == currentForeignKey.getName());
|
|
123
|
+
if (alterForeignKey?.getDropForeignKey()) {
|
|
124
|
+
const targetColumnName = columnRenames.get(currentForeignKey.getColumnName()) || currentForeignKey.getColumnName();
|
|
125
|
+
const targetColumn = targetTableData.getColumns().find((column) => column.getActualName() == targetColumnName);
|
|
126
|
+
if (targetColumn)
|
|
127
|
+
targetColumn.setForeignKey(undefined);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
123
130
|
const finalForeignKey = this._renameForeignKeyColumn(alterForeignKey || currentForeignKey, columnRenames);
|
|
124
131
|
seenForeignKeyNames.add(finalForeignKey.getName());
|
|
125
132
|
targetTableData.addForeignKey(finalForeignKey);
|
|
126
133
|
}
|
|
127
134
|
for (const alterForeignKey of alterTableData.getForeignKeys()) {
|
|
135
|
+
if (alterForeignKey.getDropForeignKey())
|
|
136
|
+
continue;
|
|
128
137
|
if (seenForeignKeyNames.has(alterForeignKey.getName()))
|
|
129
138
|
continue;
|
|
130
139
|
targetTableData.addForeignKey(this._renameForeignKeyColumn(alterForeignKey, columnRenames));
|
|
131
140
|
}
|
|
141
|
+
const targetColumnNames = new Set(targetTableData.getColumns().map((column) => column.getActualName()));
|
|
132
142
|
for (const currentIndex of currentTableData.getIndexes()) {
|
|
133
143
|
const renamedColumns = currentIndex.getColumns().map((columnName) => {
|
|
134
144
|
if (typeof columnName != "string")
|
|
135
145
|
return columnName;
|
|
136
146
|
return columnRenames.get(columnName) || columnName;
|
|
137
147
|
});
|
|
148
|
+
const indexColumnNames = renamedColumns.map((column) => typeof column == "string" ? column : column.getName());
|
|
149
|
+
if (indexColumnNames.some((columnName) => !targetColumnNames.has(columnName)))
|
|
150
|
+
continue;
|
|
138
151
|
targetTableData.addIndex(new TableIndex(renamedColumns, {
|
|
139
152
|
name: currentIndex.getName(),
|
|
140
153
|
unique: currentIndex.getUnique()
|
|
@@ -156,6 +169,7 @@ export default class VelociousDatabaseConnectionDriversSqliteSqlAlterTable exten
|
|
|
156
169
|
return foreignKey;
|
|
157
170
|
return new TableForeignKey({
|
|
158
171
|
columnName: renamed,
|
|
172
|
+
dropForeignKey: foreignKey.getDropForeignKey(),
|
|
159
173
|
isNewForeignKey: foreignKey.getIsNewForeignKey(),
|
|
160
174
|
name: foreignKey.getName(),
|
|
161
175
|
referencedColumnName: foreignKey.getReferencedColumnName(),
|
|
@@ -164,4 +178,4 @@ export default class VelociousDatabaseConnectionDriversSqliteSqlAlterTable exten
|
|
|
164
178
|
});
|
|
165
179
|
}
|
|
166
180
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9zcWxpdGUvc3FsL2FsdGVyLXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGNBQWMsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMvRCxPQUFPLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQTtBQUMxQyxPQUFPLGFBQWEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNoRSxPQUFPLFNBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUNwRCxPQUFPLGVBQWUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUN0RSxPQUFPLFVBQVUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRCxPQUFPLGNBQWMsTUFBTSx1QkFBdUIsQ0FBQTtBQUVsRCxNQUFNLENBQUMsT0FBTyxPQUFPLHFEQUFzRCxTQUFRLGNBQWM7SUFDL0Y7Ozs7O09BS0c7SUFDSCxZQUFZLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUMxQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLENBQUMsU0FBUyxZQUFZLFNBQVMsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtRQUV0RixLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUMvQixNQUFNLEVBQUMsU0FBUyxFQUFFLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQTtR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WUFBWSxFQUFFO1NBQ3JDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQWx0ZXJUYWJsZUJhc2UgZnJvbSBcIi4uLy4uLy4uL3F1ZXJ5L2FsdGVyLXRhYmxlLWJhc2UuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vLi4vLi4vLi4vbG9nZ2VyLmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuaW1wb3J0IFRhYmxlRGF0YSBmcm9tIFwiLi4vLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiXG5pbXBvcnQgVGFibGVGb3JlaWduS2V5IGZyb20gXCIuLi8uLi8uLi90YWJsZS1kYXRhL3RhYmxlLWZvcmVpZ24ta2V5LmpzXCJcbmltcG9ydCBUYWJsZUluZGV4IGZyb20gXCIuLi8uLi8uLi90YWJsZS1kYXRhL3RhYmxlLWluZGV4LmpzXCJcbmltcG9ydCBUYWJsZVJlYnVpbGRlciBmcm9tIFwiLi4vdGFibGUtcmVidWlsZGVyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VDb25uZWN0aW9uRHJpdmVyc1NxbGl0ZVNxbEFsdGVyVGFibGUgZXh0ZW5kcyBBbHRlclRhYmxlQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLnRhYmxlRGF0YSAtIFRhYmxlIGRhdGEuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7ZHJpdmVyLCB0YWJsZURhdGEsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBpZiAoISh0YWJsZURhdGEgaW5zdGFuY2VvZiBUYWJsZURhdGEpKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHRhYmxlIGRhdGEgd2FzIGdpdmVuXCIpXG5cbiAgICBzdXBlcih7ZHJpdmVyLCB0YWJsZURhdGF9KVxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMudGFibGVEYXRhID0gdGFibGVEYXRhXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0byBzcWxzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cy5cbiAgICovXG4gIGFzeW5jIHRvU1FMcygpIHtcbiAgICBjb25zdCBkcml2ZXIgPSB0aGlzLmdldERyaXZlcigpXG4gICAgY29uc3Qge3RhYmxlRGF0YTogYWx0ZXJUYWJsZURhdGF9ID0gdGhpc1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IGFsdGVyVGFibGVEYXRhLmdldE5hbWUoKVxuICAgIGNvbnN0IHRhYmxlID0gYXdhaXQgZHJpdmVyLmdldFRhYmxlQnlOYW1lKHRhYmxlTmFtZSlcblxuICAgIGlmICghdGFibGUpIHRocm93IG5ldyBFcnJvcihgVGFibGUgJHt0YWJsZU5hbWV9IGRvZXMgbm90IGV4aXN0YClcblxuICAgIGNvbnN0IGN1cnJlbnRUYWJsZURhdGEgPSBhd2FpdCB0YWJsZS5nZXRUYWJsZURhdGEoKVxuICAgIGNvbnN0IHt0YXJnZXRUYWJsZURhdGEsIGNvbHVtblBhaXJzfSA9IHRoaXMuX2J1aWxkVGFyZ2V0U2NoZW1hKGN1cnJlbnRUYWJsZURhdGEsIGFsdGVyVGFibGVEYXRhKVxuXG4gICAgY29uc3QgcmVidWlsZGVyID0gbmV3IFRhYmxlUmVidWlsZGVyKHtcbiAgICAgIGNvbHVtblBhaXJzLFxuICAgICAgZHJpdmVyLFxuICAgICAgb3JpZ2luYWxUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICAgIHRhcmdldFRhYmxlRGF0YVxuICAgIH0pXG5cbiAgICBjb25zdCByZWJ1aWxkU1FMcyA9IGF3YWl0IHJlYnVpbGRlci50b1NRTHMoKVxuICAgIGNvbnN0IHNxbHMgPSBbXVxuXG4gICAgLy8gUFJBR01BIGZvcmVpZ25fa2V5cyBjYW4gb25seSBiZSB0b2dnbGVkIG91dHNpZGUgYW4gYWN0aXZlIHRyYW5zYWN0aW9uOyB3aGVuIHRoZVxuICAgIC8vIGNhbGxlciBpcyBhbHJlYWR5IGluc2lkZSBvbmUgdGhlc2UgYmVjb21lIG5vLW9wcyAobWF0Y2hpbmcgcHJpb3IgYmVoYXZpb3IpLiBPdXRzaWRlXG4gICAgLy8gYSB0cmFuc2FjdGlvbiB0aGV5IHByb3RlY3QgdGhlIHJlYnVpbGQgZnJvbSBjcm9zcy10YWJsZSBGSyBlbmZvcmNlbWVudCBkdXJpbmcgdGhlXG4gICAgLy8gRFJPUC9SRU5BTUUgc3dhcC4gQ2FwdHVyZSB0aGUgcHJpb3Igc3RhdGUgc28gd2UgcmVzdG9yZSBpdCBpbnN0ZWFkIG9mIHVuY29uZGl0aW9uYWxseVxuICAgIC8vIGZvcmNpbmcgT04g4oCUIGNhbGxlcnMgdGhhdCBkZWxpYmVyYXRlbHkgZGlzYWJsZWQgRksgZW5mb3JjZW1lbnQgKGUuZy4gYnVsayBkYXRhIGZpeGVzKVxuICAgIC8vIHNob3VsZG4ndCBiZSBzaWxlbnRseSBmbGlwcGVkIGJhY2sgb24gYnkgYSBtaWdyYXRpb24uXG4gICAgY29uc3QgcHJpb3JTdGF0ZSA9IGF3YWl0IGRyaXZlci5xdWVyeShcIlBSQUdNQSBmb3JlaWduX2tleXNcIilcbiAgICBjb25zdCB3YXNFbmFibGVkID0gcHJpb3JTdGF0ZVswXT8uZm9yZWlnbl9rZXlzID09IDFcblxuICAgIHNxbHMucHVzaChcIlBSQUdNQSBmb3JlaWduX2tleXMgPSBPRkZcIilcblxuICAgIGZvciAoY29uc3Qgc3FsIG9mIHJlYnVpbGRTUUxzKSBzcWxzLnB1c2goc3FsKVxuXG4gICAgc3Fscy5wdXNoKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gJHt3YXNFbmFibGVkID8gXCJPTlwiIDogXCJPRkZcIn1gKVxuXG4gICAgcmV0dXJuIHNxbHNcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgdGhlIGN1cnJlbnQgc2NoZW1hIHdpdGggdGhlIGFsdGVyIHJlcXVlc3QgdG8gcHJvZHVjZSB0aGUgZGVzaXJlZCBmaW5hbCBzY2hlbWFcbiAgICogYW5kIHRoZSBjb2x1bW4gY29weSBwbGFuLlxuICAgKiBAcGFyYW0ge1RhYmxlRGF0YX0gY3VycmVudFRhYmxlRGF0YSAtIEN1cnJlbnQgc2NoZW1hIGFzIGludHJvc3BlY3RlZCBmcm9tIHRoZSBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHtUYWJsZURhdGF9IGFsdGVyVGFibGVEYXRhIC0gQWx0ZXIgcmVxdWVzdDogbmV3IGNvbHVtbnMgKGBpc05ld0NvbHVtbmApLCByZW5hbWVzIChgbmV3TmFtZWApLCBkcm9wcyAoYGRyb3BDb2x1bW5gKSwgbW9kaWZpZXMsIGFuZCBuZXcgZm9yZWlnbiBrZXlzLlxuICAgKiBAcmV0dXJucyB7e3RhcmdldFRhYmxlRGF0YTogVGFibGVEYXRhLCBjb2x1bW5QYWlyczogQXJyYXk8W3N0cmluZywgc3RyaW5nXT59fSAtIFRoZSBtZXJnZWQgdGFyZ2V0IHNjaGVtYSBhbmQgdGhlIFtvbGROYW1lLCBuZXdOYW1lXSBwYWlycyBmb3IgSU5TRVJULi4uU0VMRUNULlxuICAgKi9cbiAgX2J1aWxkVGFyZ2V0U2NoZW1hKGN1cnJlbnRUYWJsZURhdGEsIGFsdGVyVGFibGVEYXRhKSB7XG4gICAgY29uc3QgdGFyZ2V0VGFibGVEYXRhID0gbmV3IFRhYmxlRGF0YShjdXJyZW50VGFibGVEYXRhLmdldE5hbWUoKSlcbiAgICAvKipcbiAgICAgKiBDb2x1bW4gcGFpcnMuXG4gICAgICogQHR5cGUge0FycmF5PFtzdHJpbmcsIHN0cmluZ10+fSAqL1xuICAgIGNvbnN0IGNvbHVtblBhaXJzID0gW11cbiAgICBjb25zdCBhbHRlckNvbHVtbnMgPSBhbHRlclRhYmxlRGF0YS5nZXRDb2x1bW5zKClcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChjdXJyZW50VGFibGVEYXRhLmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmdldE5hbWUoKSkpXG4gICAgLyoqXG4gICAgICogQ29sdW1uIHJlbmFtZXMuXG4gICAgICogQHR5cGUge01hcDxzdHJpbmcsIHN0cmluZz59ICovXG4gICAgY29uc3QgY29sdW1uUmVuYW1lcyA9IG5ldyBNYXAoKVxuXG4gICAgZm9yIChjb25zdCBhbHRlckNvbHVtbiBvZiBhbHRlckNvbHVtbnMpIHtcbiAgICAgIGlmIChhbHRlckNvbHVtbi5pc05ld0NvbHVtbigpKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBuZXdOYW1lID0gYWx0ZXJDb2x1bW4uZ2V0TmV3TmFtZSgpXG5cbiAgICAgIGlmIChuZXdOYW1lKSBjb2x1bW5SZW5hbWVzLnNldChhbHRlckNvbHVtbi5nZXROYW1lKCksIG5ld05hbWUpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjdXJyZW50Q29sdW1uIG9mIGN1cnJlbnRUYWJsZURhdGEuZ2V0Q29sdW1ucygpKSB7XG4gICAgICBjb25zdCBhbHRlckNvbHVtbiA9IGFsdGVyQ29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5nZXROYW1lKCkgPT0gY3VycmVudENvbHVtbi5nZXROYW1lKCkgJiYgIWNvbHVtbi5pc05ld0NvbHVtbigpKVxuXG4gICAgICBpZiAoYWx0ZXJDb2x1bW4/LmdldERyb3BDb2x1bW4oKSkgY29udGludWVcblxuICAgICAgbGV0IHRhcmdldENvbHVtblxuXG4gICAgICBpZiAoYWx0ZXJDb2x1bW4pIHtcbiAgICAgICAgLy8gVGhlIGFsdGVyIHJlcXVlc3Qgc3VwcGxpZXMgYSBwYXJ0aWFsIGNvbHVtbiBzcGVjIChlLmcuIGp1c3QgYSByZW5hbWUgb3IgYSB0eXBlIGNoYW5nZSk7XG4gICAgICAgIC8vIGluaGVyaXQgdW5zZXQgcHJvcGVydGllcyBmcm9tIHRoZSBjdXJyZW50IGNvbHVtbiBzbyB3ZSBkb24ndCBsb3NlIGV4aXN0aW5nIGRlZmluaXRpb25zLlxuICAgICAgICBhbHRlckNvbHVtbi5zZXRBdXRvSW5jcmVtZW50KGFsdGVyQ29sdW1uLmdldEF1dG9JbmNyZW1lbnQoKSB8fCBjdXJyZW50Q29sdW1uLmdldEF1dG9JbmNyZW1lbnQoKSlcbiAgICAgICAgaWYgKGFsdGVyQ29sdW1uLmdldERlZmF1bHQoKSA9PT0gdW5kZWZpbmVkKSBhbHRlckNvbHVtbi5zZXREZWZhdWx0KGN1cnJlbnRDb2x1bW4uZ2V0RGVmYXVsdCgpKVxuICAgICAgICBpZiAoIWFsdGVyQ29sdW1uLmdldEluZGV4KCkpIGFsdGVyQ29sdW1uLnNldEluZGV4KGN1cnJlbnRDb2x1bW4uZ2V0SW5kZXgoKSlcbiAgICAgICAgaWYgKCFhbHRlckNvbHVtbi5nZXRGb3JlaWduS2V5KCkpIGFsdGVyQ29sdW1uLnNldEZvcmVpZ25LZXkoY3VycmVudENvbHVtbi5nZXRGb3JlaWduS2V5KCkpXG4gICAgICAgIGlmIChhbHRlckNvbHVtbi5nZXRNYXhMZW5ndGgoKSA9PT0gdW5kZWZpbmVkKSBhbHRlckNvbHVtbi5zZXRNYXhMZW5ndGgoY3VycmVudENvbHVtbi5nZXRNYXhMZW5ndGgoKSlcbiAgICAgICAgYWx0ZXJDb2x1bW4uc2V0UHJpbWFyeUtleShhbHRlckNvbHVtbi5nZXRQcmltYXJ5S2V5KCkgfHwgY3VycmVudENvbHVtbi5nZXRQcmltYXJ5S2V5KCkpXG4gICAgICAgIGlmICghYWx0ZXJDb2x1bW4uZ2V0VHlwZSgpKSBhbHRlckNvbHVtbi5zZXRUeXBlKGN1cnJlbnRDb2x1bW4uZ2V0VHlwZSgpKVxuXG4gICAgICAgIHRhcmdldENvbHVtbiA9IGFsdGVyQ29sdW1uXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRDb2x1bW4gPSBjdXJyZW50Q29sdW1uXG4gICAgICB9XG5cbiAgICAgIHRhcmdldFRhYmxlRGF0YS5hZGRDb2x1bW4odGFyZ2V0Q29sdW1uKVxuICAgICAgY29sdW1uUGFpcnMucHVzaChbY3VycmVudENvbHVtbi5nZXROYW1lKCksIHRhcmdldENvbHVtbi5nZXROZXdOYW1lKCkgfHwgdGFyZ2V0Q29sdW1uLmdldE5hbWUoKV0pXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhbHRlckNvbHVtbiBvZiBhbHRlckNvbHVtbnMpIHtcbiAgICAgIGlmICghYWx0ZXJDb2x1bW4uaXNOZXdDb2x1bW4oKSkgY29udGludWVcbiAgICAgIGlmIChleGlzdGluZ05hbWVzLmhhcyhhbHRlckNvbHVtbi5nZXROYW1lKCkpKSBjb250aW51ZVxuXG4gICAgICB0YXJnZXRUYWJsZURhdGEuYWRkQ29sdW1uKGFsdGVyQ29sdW1uKVxuICAgIH1cblxuICAgIGNvbnN0IHNlZW5Gb3JlaWduS2V5TmFtZXMgPSBuZXcgU2V0KClcblxuICAgIGZvciAoY29uc3QgY3VycmVudEZvcmVpZ25LZXkgb2YgY3VycmVudFRhYmxlRGF0YS5nZXRGb3JlaWduS2V5cygpKSB7XG4gICAgICBjb25zdCBhbHRlckZvcmVpZ25LZXkgPSBhbHRlclRhYmxlRGF0YS5nZXRGb3JlaWduS2V5cygpLmZpbmQoKGZvcmVpZ25LZXkpID0+IGZvcmVpZ25LZXkuZ2V0TmFtZSgpID09IGN1cnJlbnRGb3JlaWduS2V5LmdldE5hbWUoKSlcbiAgICAgIGNvbnN0IGZpbmFsRm9yZWlnbktleSA9IHRoaXMuX3JlbmFtZUZvcmVpZ25LZXlDb2x1bW4oYWx0ZXJGb3JlaWduS2V5IHx8IGN1cnJlbnRGb3JlaWduS2V5LCBjb2x1bW5SZW5hbWVzKVxuXG4gICAgICBzZWVuRm9yZWlnbktleU5hbWVzLmFkZChmaW5hbEZvcmVpZ25LZXkuZ2V0TmFtZSgpKVxuICAgICAgdGFyZ2V0VGFibGVEYXRhLmFkZEZvcmVpZ25LZXkoZmluYWxGb3JlaWduS2V5KVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYWx0ZXJGb3JlaWduS2V5IG9mIGFsdGVyVGFibGVEYXRhLmdldEZvcmVpZ25LZXlzKCkpIHtcbiAgICAgIGlmIChzZWVuRm9yZWlnbktleU5hbWVzLmhhcyhhbHRlckZvcmVpZ25LZXkuZ2V0TmFtZSgpKSkgY29udGludWVcblxuICAgICAgdGFyZ2V0VGFibGVEYXRhLmFkZEZvcmVpZ25LZXkodGhpcy5fcmVuYW1lRm9yZWlnbktleUNvbHVtbihhbHRlckZvcmVpZ25LZXksIGNvbHVtblJlbmFtZXMpKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgY3VycmVudEluZGV4IG9mIGN1cnJlbnRUYWJsZURhdGEuZ2V0SW5kZXhlcygpKSB7XG4gICAgICBjb25zdCByZW5hbWVkQ29sdW1ucyA9IGN1cnJlbnRJbmRleC5nZXRDb2x1bW5zKCkubWFwKChjb2x1bW5OYW1lKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29sdW1uTmFtZSAhPSBcInN0cmluZ1wiKSByZXR1cm4gY29sdW1uTmFtZVxuXG4gICAgICAgIHJldHVybiBjb2x1bW5SZW5hbWVzLmdldChjb2x1bW5OYW1lKSB8fCBjb2x1bW5OYW1lXG4gICAgICB9KVxuXG4gICAgICB0YXJnZXRUYWJsZURhdGEuYWRkSW5kZXgobmV3IFRhYmxlSW5kZXgocmVuYW1lZENvbHVtbnMsIHtcbiAgICAgICAgbmFtZTogY3VycmVudEluZGV4LmdldE5hbWUoKSxcbiAgICAgICAgdW5pcXVlOiBjdXJyZW50SW5kZXguZ2V0VW5pcXVlKClcbiAgICAgIH0pKVxuICAgIH1cblxuICAgIHJldHVybiB7dGFyZ2V0VGFibGVEYXRhLCBjb2x1bW5QYWlyc31cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmb3JlaWduIGtleSB3aXRoIGl0cyBjb2x1bW4gbmFtZSB1cGRhdGVkIHdoZW4gdGhlIGNvbHVtbiB3YXMgcmVuYW1lZCBpbiB0aGVcbiAgICogYWx0ZXIgcmVxdWVzdC4gU1FMaXRlIHJlLWNyZWF0ZXMgdGhlIGNvbnN0cmFpbnQgaW5zaWRlIHRoZSByZWJ1aWx0IENSRUFURSBUQUJMRSwgc28gYVxuICAgKiBzdGFsZSBjb2x1bW4gbmFtZSB0aGVyZSB3b3VsZCByZWZlcmVuY2UgYSBjb2x1bW4gdGhhdCBubyBsb25nZXIgZXhpc3RzLlxuICAgKiBAcGFyYW0ge1RhYmxlRm9yZWlnbktleX0gZm9yZWlnbktleSAtIEZvcmVpZ24ga2V5IHRvIGV2YWx1YXRlLlxuICAgKiBAcGFyYW0ge01hcDxzdHJpbmcsIHN0cmluZz59IGNvbHVtblJlbmFtZXMgLSBNYXAgb2Ygb2xkIOKGkiBuZXcgY29sdW1uIG5hbWVzIGZyb20gdGhlIGFsdGVyIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIHtUYWJsZUZvcmVpZ25LZXl9IC0gVGhlIG9yaWdpbmFsIGZvcmVpZ24ga2V5LCBvciBhIGZyZXNoIGluc3RhbmNlIHdpdGggdGhlIHJlbmFtZWQgY29sdW1uLlxuICAgKi9cbiAgX3JlbmFtZUZvcmVpZ25LZXlDb2x1bW4oZm9yZWlnbktleSwgY29sdW1uUmVuYW1lcykge1xuICAgIGNvbnN0IHJlbmFtZWQgPSBjb2x1bW5SZW5hbWVzLmdldChmb3JlaWduS2V5LmdldENvbHVtbk5hbWUoKSlcblxuICAgIGlmICghcmVuYW1lZCkgcmV0dXJuIGZvcmVpZ25LZXlcblxuICAgIHJldHVybiBuZXcgVGFibGVGb3JlaWduS2V5KHtcbiAgICAgIGNvbHVtbk5hbWU6IHJlbmFtZWQsXG4gICAgICBpc05ld0ZvcmVpZ25LZXk6IGZvcmVpZ25LZXkuZ2V0SXNOZXdGb3JlaWduS2V5KCksXG4gICAgICBuYW1lOiBmb3JlaWduS2V5LmdldE5hbWUoKSxcbiAgICAgIHJlZmVyZW5jZWRDb2x1bW5OYW1lOiBmb3JlaWduS2V5LmdldFJlZmVyZW5jZWRDb2x1bW5OYW1lKCksXG4gICAgICByZWZlcmVuY2VkVGFibGVOYW1lOiBmb3JlaWduS2V5LmdldFJlZmVyZW5jZWRUYWJsZU5hbWUoKSxcbiAgICAgIHRhYmxlTmFtZTogZm9yZWlnbktleS5nZXRUYWJsZU5hbWUoKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9zcWxpdGUvc3FsL2FsdGVyLXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGNBQWMsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMvRCxPQUFPLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQTtBQUMxQyxPQUFPLGFBQWEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNoRSxPQUFPLFNBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUNwRCxPQUFPLGVBQWUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUN0RSxPQUFPLFVBQVUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRCxPQUFPLGNBQWMsTUFBTSx1QkFBdUIsQ0FBQTtBQUVsRCxNQUFNLENBQUMsT0FBTyxPQUFPLHFEQUFzRCxTQUFRLGNBQWM7SUFDL0Y7Ozs7O09BS0c7SUFDSCxZQUFZLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUMxQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLENBQUMsU0FBUyxZQUFZLFNBQVMsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtRQUV0RixLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUMvQixNQUFNLEVBQUMsU0FBUyxFQUFFLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQTtR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a1xuXG5pbXBvcnQgQWx0ZXJUYWJsZUJhc2UgZnJvbSBcIi4uLy4uLy4uL3F1ZXJ5L2FsdGVyLXRhYmxlLWJhc2UuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vLi4vLi4vLi4vbG9nZ2VyLmpzXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuaW1wb3J0IFRhYmxlRGF0YSBmcm9tIFwiLi4vLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiXG5pbXBvcnQgVGFibGVGb3JlaWduS2V5IGZyb20gXCIuLi8uLi8uLi90YWJsZS1kYXRhL3RhYmxlLWZvcmVpZ24ta2V5LmpzXCJcbmltcG9ydCBUYWJsZUluZGV4IGZyb20gXCIuLi8uLi8uLi90YWJsZS1kYXRhL3RhYmxlLWluZGV4LmpzXCJcbmltcG9ydCBUYWJsZVJlYnVpbGRlciBmcm9tIFwiLi4vdGFibGUtcmVidWlsZGVyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VDb25uZWN0aW9uRHJpdmVyc1NxbGl0ZVNxbEFsdGVyVGFibGUgZXh0ZW5kcyBBbHRlclRhYmxlQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vdGFibGUtZGF0YS9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLnRhYmxlRGF0YSAtIFRhYmxlIGRhdGEuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7ZHJpdmVyLCB0YWJsZURhdGEsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBpZiAoISh0YWJsZURhdGEgaW5zdGFuY2VvZiBUYWJsZURhdGEpKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHRhYmxlIGRhdGEgd2FzIGdpdmVuXCIpXG5cbiAgICBzdXBlcih7ZHJpdmVyLCB0YWJsZURhdGF9KVxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMudGFibGVEYXRhID0gdGFibGVEYXRhXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0byBzcWxzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cy5cbiAgICovXG4gIGFzeW5jIHRvU1FMcygpIHtcbiAgICBjb25zdCBkcml2ZXIgPSB0aGlzLmdldERyaXZlcigpXG4gICAgY29uc3Qge3RhYmxlRGF0YTogYWx0ZXJUYWJsZURhdGF9ID0gdGhpc1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IGFsdGVyVGFibGVEYXRhLmdldE5hbWUoKVxuICAgIGNvbnN0IHRhYmxlID0gYXdhaXQgZHJpdmVyLmdldFRhYmxlQnlOYW1lKHRhYmxlTmFtZSlcblxuICAgIGlmICghdGFibGUpIHRocm93IG5ldyBFcnJvcihgVGFibGUgJHt0YWJsZU5hbWV9IGRvZXMgbm90IGV4aXN0YClcblxuICAgIGNvbnN0IGN1cnJlbnRUYWJsZURhdGEgPSBhd2FpdCB0YWJsZS5nZXRUYWJsZURhdGEoKVxuICAgIGNvbnN0IHt0YXJnZXRUYWJsZURhdGEsIGNvbHVtblBhaXJzfSA9IHRoaXMuX2J1aWxkVGFyZ2V0U2NoZW1hKGN1cnJlbnRUYWJsZURhdGEsIGFsdGVyVGFibGVEYXRhKVxuXG4gICAgY29uc3QgcmVidWlsZGVyID0gbmV3IFRhYmxlUmVidWlsZGVyKHtcbiAgICAgIGNvbHVtblBhaXJzLFxuICAgICAgZHJpdmVyLFxuICAgICAgb3JpZ2luYWxUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICAgIHRhcmdldFRhYmxlRGF0YVxuICAgIH0pXG5cbiAgICBjb25zdCByZWJ1aWxkU1FMcyA9IGF3YWl0IHJlYnVpbGRlci50b1NRTHMoKVxuICAgIGNvbnN0IHNxbHMgPSBbXVxuXG4gICAgLy8gUFJBR01BIGZvcmVpZ25fa2V5cyBjYW4gb25seSBiZSB0b2dnbGVkIG91dHNpZGUgYW4gYWN0aXZlIHRyYW5zYWN0aW9uOyB3aGVuIHRoZVxuICAgIC8vIGNhbGxlciBpcyBhbHJlYWR5IGluc2lkZSBvbmUgdGhlc2UgYmVjb21lIG5vLW9wcyAobWF0Y2hpbmcgcHJpb3IgYmVoYXZpb3IpLiBPdXRzaWRlXG4gICAgLy8gYSB0cmFuc2FjdGlvbiB0aGV5IHByb3RlY3QgdGhlIHJlYnVpbGQgZnJvbSBjcm9zcy10YWJsZSBGSyBlbmZvcmNlbWVudCBkdXJpbmcgdGhlXG4gICAgLy8gRFJPUC9SRU5BTUUgc3dhcC4gQ2FwdHVyZSB0aGUgcHJpb3Igc3RhdGUgc28gd2UgcmVzdG9yZSBpdCBpbnN0ZWFkIG9mIHVuY29uZGl0aW9uYWxseVxuICAgIC8vIGZvcmNpbmcgT04g4oCUIGNhbGxlcnMgdGhhdCBkZWxpYmVyYXRlbHkgZGlzYWJsZWQgRksgZW5mb3JjZW1lbnQgKGUuZy4gYnVsayBkYXRhIGZpeGVzKVxuICAgIC8vIHNob3VsZG4ndCBiZSBzaWxlbnRseSBmbGlwcGVkIGJhY2sgb24gYnkgYSBtaWdyYXRpb24uXG4gICAgY29uc3QgcHJpb3JTdGF0ZSA9IGF3YWl0IGRyaXZlci5xdWVyeShcIlBSQUdNQSBmb3JlaWduX2tleXNcIilcbiAgICBjb25zdCB3YXNFbmFibGVkID0gcHJpb3JTdGF0ZVswXT8uZm9yZWlnbl9rZXlzID09IDFcblxuICAgIHNxbHMucHVzaChcIlBSQUdNQSBmb3JlaWduX2tleXMgPSBPRkZcIilcblxuICAgIGZvciAoY29uc3Qgc3FsIG9mIHJlYnVpbGRTUUxzKSBzcWxzLnB1c2goc3FsKVxuXG4gICAgc3Fscy5wdXNoKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gJHt3YXNFbmFibGVkID8gXCJPTlwiIDogXCJPRkZcIn1gKVxuXG4gICAgcmV0dXJuIHNxbHNcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgdGhlIGN1cnJlbnQgc2NoZW1hIHdpdGggdGhlIGFsdGVyIHJlcXVlc3QgdG8gcHJvZHVjZSB0aGUgZGVzaXJlZCBmaW5hbCBzY2hlbWFcbiAgICogYW5kIHRoZSBjb2x1bW4gY29weSBwbGFuLlxuICAgKiBAcGFyYW0ge1RhYmxlRGF0YX0gY3VycmVudFRhYmxlRGF0YSAtIEN1cnJlbnQgc2NoZW1hIGFzIGludHJvc3BlY3RlZCBmcm9tIHRoZSBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHtUYWJsZURhdGF9IGFsdGVyVGFibGVEYXRhIC0gQWx0ZXIgcmVxdWVzdDogbmV3IGNvbHVtbnMgKGBpc05ld0NvbHVtbmApLCByZW5hbWVzIChgbmV3TmFtZWApLCBkcm9wcyAoYGRyb3BDb2x1bW5gKSwgbW9kaWZpZXMsIGFuZCBuZXcgZm9yZWlnbiBrZXlzLlxuICAgKiBAcmV0dXJucyB7e3RhcmdldFRhYmxlRGF0YTogVGFibGVEYXRhLCBjb2x1bW5QYWlyczogQXJyYXk8W3N0cmluZywgc3RyaW5nXT59fSAtIFRoZSBtZXJnZWQgdGFyZ2V0IHNjaGVtYSBhbmQgdGhlIFtvbGROYW1lLCBuZXdOYW1lXSBwYWlycyBmb3IgSU5TRVJULi4uU0VMRUNULlxuICAgKi9cbiAgX2J1aWxkVGFyZ2V0U2NoZW1hKGN1cnJlbnRUYWJsZURhdGEsIGFsdGVyVGFibGVEYXRhKSB7XG4gICAgY29uc3QgdGFyZ2V0VGFibGVEYXRhID0gbmV3IFRhYmxlRGF0YShjdXJyZW50VGFibGVEYXRhLmdldE5hbWUoKSlcbiAgICAvKipcbiAgICAgKiBDb2x1bW4gcGFpcnMuXG4gICAgICogQHR5cGUge0FycmF5PFtzdHJpbmcsIHN0cmluZ10+fSAqL1xuICAgIGNvbnN0IGNvbHVtblBhaXJzID0gW11cbiAgICBjb25zdCBhbHRlckNvbHVtbnMgPSBhbHRlclRhYmxlRGF0YS5nZXRDb2x1bW5zKClcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChjdXJyZW50VGFibGVEYXRhLmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmdldE5hbWUoKSkpXG4gICAgLyoqXG4gICAgICogQ29sdW1uIHJlbmFtZXMuXG4gICAgICogQHR5cGUge01hcDxzdHJpbmcsIHN0cmluZz59ICovXG4gICAgY29uc3QgY29sdW1uUmVuYW1lcyA9IG5ldyBNYXAoKVxuXG4gICAgZm9yIChjb25zdCBhbHRlckNvbHVtbiBvZiBhbHRlckNvbHVtbnMpIHtcbiAgICAgIGlmIChhbHRlckNvbHVtbi5pc05ld0NvbHVtbigpKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBuZXdOYW1lID0gYWx0ZXJDb2x1bW4uZ2V0TmV3TmFtZSgpXG5cbiAgICAgIGlmIChuZXdOYW1lKSBjb2x1bW5SZW5hbWVzLnNldChhbHRlckNvbHVtbi5nZXROYW1lKCksIG5ld05hbWUpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjdXJyZW50Q29sdW1uIG9mIGN1cnJlbnRUYWJsZURhdGEuZ2V0Q29sdW1ucygpKSB7XG4gICAgICBjb25zdCBhbHRlckNvbHVtbiA9IGFsdGVyQ29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5nZXROYW1lKCkgPT0gY3VycmVudENvbHVtbi5nZXROYW1lKCkgJiYgIWNvbHVtbi5pc05ld0NvbHVtbigpKVxuXG4gICAgICBpZiAoYWx0ZXJDb2x1bW4/LmdldERyb3BDb2x1bW4oKSkgY29udGludWVcblxuICAgICAgbGV0IHRhcmdldENvbHVtblxuXG4gICAgICBpZiAoYWx0ZXJDb2x1bW4pIHtcbiAgICAgICAgLy8gVGhlIGFsdGVyIHJlcXVlc3Qgc3VwcGxpZXMgYSBwYXJ0aWFsIGNvbHVtbiBzcGVjIChlLmcuIGp1c3QgYSByZW5hbWUgb3IgYSB0eXBlIGNoYW5nZSk7XG4gICAgICAgIC8vIGluaGVyaXQgdW5zZXQgcHJvcGVydGllcyBmcm9tIHRoZSBjdXJyZW50IGNvbHVtbiBzbyB3ZSBkb24ndCBsb3NlIGV4aXN0aW5nIGRlZmluaXRpb25zLlxuICAgICAgICBhbHRlckNvbHVtbi5zZXRBdXRvSW5jcmVtZW50KGFsdGVyQ29sdW1uLmdldEF1dG9JbmNyZW1lbnQoKSB8fCBjdXJyZW50Q29sdW1uLmdldEF1dG9JbmNyZW1lbnQoKSlcbiAgICAgICAgaWYgKGFsdGVyQ29sdW1uLmdldERlZmF1bHQoKSA9PT0gdW5kZWZpbmVkKSBhbHRlckNvbHVtbi5zZXREZWZhdWx0KGN1cnJlbnRDb2x1bW4uZ2V0RGVmYXVsdCgpKVxuICAgICAgICBpZiAoIWFsdGVyQ29sdW1uLmdldEluZGV4KCkpIGFsdGVyQ29sdW1uLnNldEluZGV4KGN1cnJlbnRDb2x1bW4uZ2V0SW5kZXgoKSlcbiAgICAgICAgaWYgKCFhbHRlckNvbHVtbi5nZXRGb3JlaWduS2V5KCkpIGFsdGVyQ29sdW1uLnNldEZvcmVpZ25LZXkoY3VycmVudENvbHVtbi5nZXRGb3JlaWduS2V5KCkpXG4gICAgICAgIGlmIChhbHRlckNvbHVtbi5nZXRNYXhMZW5ndGgoKSA9PT0gdW5kZWZpbmVkKSBhbHRlckNvbHVtbi5zZXRNYXhMZW5ndGgoY3VycmVudENvbHVtbi5nZXRNYXhMZW5ndGgoKSlcbiAgICAgICAgYWx0ZXJDb2x1bW4uc2V0UHJpbWFyeUtleShhbHRlckNvbHVtbi5nZXRQcmltYXJ5S2V5KCkgfHwgY3VycmVudENvbHVtbi5nZXRQcmltYXJ5S2V5KCkpXG4gICAgICAgIGlmICghYWx0ZXJDb2x1bW4uZ2V0VHlwZSgpKSBhbHRlckNvbHVtbi5zZXRUeXBlKGN1cnJlbnRDb2x1bW4uZ2V0VHlwZSgpKVxuXG4gICAgICAgIHRhcmdldENvbHVtbiA9IGFsdGVyQ29sdW1uXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRDb2x1bW4gPSBjdXJyZW50Q29sdW1uXG4gICAgICB9XG5cbiAgICAgIHRhcmdldFRhYmxlRGF0YS5hZGRDb2x1bW4odGFyZ2V0Q29sdW1uKVxuICAgICAgY29sdW1uUGFpcnMucHVzaChbY3VycmVudENvbHVtbi5nZXROYW1lKCksIHRhcmdldENvbHVtbi5nZXROZXdOYW1lKCkgfHwgdGFyZ2V0Q29sdW1uLmdldE5hbWUoKV0pXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhbHRlckNvbHVtbiBvZiBhbHRlckNvbHVtbnMpIHtcbiAgICAgIGlmICghYWx0ZXJDb2x1bW4uaXNOZXdDb2x1bW4oKSkgY29udGludWVcbiAgICAgIGlmIChleGlzdGluZ05hbWVzLmhhcyhhbHRlckNvbHVtbi5nZXROYW1lKCkpKSBjb250aW51ZVxuXG4gICAgICB0YXJnZXRUYWJsZURhdGEuYWRkQ29sdW1uKGFsdGVyQ29sdW1uKVxuICAgIH1cblxuICAgIGNvbnN0IHNlZW5Gb3JlaWduS2V5TmFtZXMgPSBuZXcgU2V0KClcblxuICAgIGZvciAoY29uc3QgY3VycmVudEZvcmVpZ25LZXkgb2YgY3VycmVudFRhYmxlRGF0YS5nZXRGb3JlaWduS2V5cygpKSB7XG4gICAgICBjb25zdCBhbHRlckZvcmVpZ25LZXkgPSBhbHRlclRhYmxlRGF0YS5nZXRGb3JlaWduS2V5cygpLmZpbmQoKGZvcmVpZ25LZXkpID0+IGZvcmVpZ25LZXkuZ2V0TmFtZSgpID09IGN1cnJlbnRGb3JlaWduS2V5LmdldE5hbWUoKSlcblxuICAgICAgaWYgKGFsdGVyRm9yZWlnbktleT8uZ2V0RHJvcEZvcmVpZ25LZXkoKSkge1xuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW5OYW1lID0gY29sdW1uUmVuYW1lcy5nZXQoY3VycmVudEZvcmVpZ25LZXkuZ2V0Q29sdW1uTmFtZSgpKSB8fCBjdXJyZW50Rm9yZWlnbktleS5nZXRDb2x1bW5OYW1lKClcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29sdW1uID0gdGFyZ2V0VGFibGVEYXRhLmdldENvbHVtbnMoKS5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5nZXRBY3R1YWxOYW1lKCkgPT0gdGFyZ2V0Q29sdW1uTmFtZSlcblxuICAgICAgICBpZiAodGFyZ2V0Q29sdW1uKSB0YXJnZXRDb2x1bW4uc2V0Rm9yZWlnbktleSh1bmRlZmluZWQpXG5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmluYWxGb3JlaWduS2V5ID0gdGhpcy5fcmVuYW1lRm9yZWlnbktleUNvbHVtbihhbHRlckZvcmVpZ25LZXkgfHwgY3VycmVudEZvcmVpZ25LZXksIGNvbHVtblJlbmFtZXMpXG5cbiAgICAgIHNlZW5Gb3JlaWduS2V5TmFtZXMuYWRkKGZpbmFsRm9yZWlnbktleS5nZXROYW1lKCkpXG4gICAgICB0YXJnZXRUYWJsZURhdGEuYWRkRm9yZWlnbktleShmaW5hbEZvcmVpZ25LZXkpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhbHRlckZvcmVpZ25LZXkgb2YgYWx0ZXJUYWJsZURhdGEuZ2V0Rm9yZWlnbktleXMoKSkge1xuICAgICAgaWYgKGFsdGVyRm9yZWlnbktleS5nZXREcm9wRm9yZWlnbktleSgpKSBjb250aW51ZVxuICAgICAgaWYgKHNlZW5Gb3JlaWduS2V5TmFtZXMuaGFzKGFsdGVyRm9yZWlnbktleS5nZXROYW1lKCkpKSBjb250aW51ZVxuXG4gICAgICB0YXJnZXRUYWJsZURhdGEuYWRkRm9yZWlnbktleSh0aGlzLl9yZW5hbWVGb3JlaWduS2V5Q29sdW1uKGFsdGVyRm9yZWlnbktleSwgY29sdW1uUmVuYW1lcykpXG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0Q29sdW1uTmFtZXMgPSBuZXcgU2V0KHRhcmdldFRhYmxlRGF0YS5nZXRDb2x1bW5zKCkubWFwKChjb2x1bW4pID0+IGNvbHVtbi5nZXRBY3R1YWxOYW1lKCkpKVxuXG4gICAgZm9yIChjb25zdCBjdXJyZW50SW5kZXggb2YgY3VycmVudFRhYmxlRGF0YS5nZXRJbmRleGVzKCkpIHtcbiAgICAgIGNvbnN0IHJlbmFtZWRDb2x1bW5zID0gY3VycmVudEluZGV4LmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbk5hbWUpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5OYW1lICE9IFwic3RyaW5nXCIpIHJldHVybiBjb2x1bW5OYW1lXG5cbiAgICAgICAgcmV0dXJuIGNvbHVtblJlbmFtZXMuZ2V0KGNvbHVtbk5hbWUpIHx8IGNvbHVtbk5hbWVcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGluZGV4Q29sdW1uTmFtZXMgPSByZW5hbWVkQ29sdW1ucy5tYXAoKGNvbHVtbikgPT4gdHlwZW9mIGNvbHVtbiA9PSBcInN0cmluZ1wiID8gY29sdW1uIDogY29sdW1uLmdldE5hbWUoKSlcblxuICAgICAgaWYgKGluZGV4Q29sdW1uTmFtZXMuc29tZSgoY29sdW1uTmFtZSkgPT4gIXRhcmdldENvbHVtbk5hbWVzLmhhcyhjb2x1bW5OYW1lKSkpIGNvbnRpbnVlXG5cbiAgICAgIHRhcmdldFRhYmxlRGF0YS5hZGRJbmRleChuZXcgVGFibGVJbmRleChyZW5hbWVkQ29sdW1ucywge1xuICAgICAgICBuYW1lOiBjdXJyZW50SW5kZXguZ2V0TmFtZSgpLFxuICAgICAgICB1bmlxdWU6IGN1cnJlbnRJbmRleC5nZXRVbmlxdWUoKVxuICAgICAgfSkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHt0YXJnZXRUYWJsZURhdGEsIGNvbHVtblBhaXJzfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZvcmVpZ24ga2V5IHdpdGggaXRzIGNvbHVtbiBuYW1lIHVwZGF0ZWQgd2hlbiB0aGUgY29sdW1uIHdhcyByZW5hbWVkIGluIHRoZVxuICAgKiBhbHRlciByZXF1ZXN0LiBTUUxpdGUgcmUtY3JlYXRlcyB0aGUgY29uc3RyYWludCBpbnNpZGUgdGhlIHJlYnVpbHQgQ1JFQVRFIFRBQkxFLCBzbyBhXG4gICAqIHN0YWxlIGNvbHVtbiBuYW1lIHRoZXJlIHdvdWxkIHJlZmVyZW5jZSBhIGNvbHVtbiB0aGF0IG5vIGxvbmdlciBleGlzdHMuXG4gICAqIEBwYXJhbSB7VGFibGVGb3JlaWduS2V5fSBmb3JlaWduS2V5IC0gRm9yZWlnbiBrZXkgdG8gZXZhbHVhdGUuXG4gICAqIEBwYXJhbSB7TWFwPHN0cmluZywgc3RyaW5nPn0gY29sdW1uUmVuYW1lcyAtIE1hcCBvZiBvbGQg4oaSIG5ldyBjb2x1bW4gbmFtZXMgZnJvbSB0aGUgYWx0ZXIgcmVxdWVzdC5cbiAgICogQHJldHVybnMge1RhYmxlRm9yZWlnbktleX0gLSBUaGUgb3JpZ2luYWwgZm9yZWlnbiBrZXksIG9yIGEgZnJlc2ggaW5zdGFuY2Ugd2l0aCB0aGUgcmVuYW1lZCBjb2x1bW4uXG4gICAqL1xuICBfcmVuYW1lRm9yZWlnbktleUNvbHVtbihmb3JlaWduS2V5LCBjb2x1bW5SZW5hbWVzKSB7XG4gICAgY29uc3QgcmVuYW1lZCA9IGNvbHVtblJlbmFtZXMuZ2V0KGZvcmVpZ25LZXkuZ2V0Q29sdW1uTmFtZSgpKVxuXG4gICAgaWYgKCFyZW5hbWVkKSByZXR1cm4gZm9yZWlnbktleVxuXG4gICAgcmV0dXJuIG5ldyBUYWJsZUZvcmVpZ25LZXkoe1xuICAgICAgY29sdW1uTmFtZTogcmVuYW1lZCxcbiAgICAgIGRyb3BGb3JlaWduS2V5OiBmb3JlaWduS2V5LmdldERyb3BGb3JlaWduS2V5KCksXG4gICAgICBpc05ld0ZvcmVpZ25LZXk6IGZvcmVpZ25LZXkuZ2V0SXNOZXdGb3JlaWduS2V5KCksXG4gICAgICBuYW1lOiBmb3JlaWduS2V5LmdldE5hbWUoKSxcbiAgICAgIHJlZmVyZW5jZWRDb2x1bW5OYW1lOiBmb3JlaWduS2V5LmdldFJlZmVyZW5jZWRDb2x1bW5OYW1lKCksXG4gICAgICByZWZlcmVuY2VkVGFibGVOYW1lOiBmb3JlaWduS2V5LmdldFJlZmVyZW5jZWRUYWJsZU5hbWUoKSxcbiAgICAgIHRhYmxlTmFtZTogZm9yZWlnbktleS5nZXRUYWJsZU5hbWUoKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -153,6 +153,24 @@ export default class VelociousDatabaseMigration {
|
|
|
153
153
|
*/
|
|
154
154
|
referencedTableName?: string | undefined;
|
|
155
155
|
}): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* RemoveForeignKeyArgsType type.
|
|
158
|
+
* @typedef {object} RemoveForeignKeyArgsType
|
|
159
|
+
* @property {string} [columnName] - Override the derived foreign-key column name.
|
|
160
|
+
*/
|
|
161
|
+
/**
|
|
162
|
+
* Runs remove foreign key.
|
|
163
|
+
* @param {string} tableName - Table the foreign key lives on.
|
|
164
|
+
* @param {string} referenceName - Singular reference name used to derive the FK column.
|
|
165
|
+
* @param {RemoveForeignKeyArgsType} [args] - Optional overrides.
|
|
166
|
+
* @returns {Promise<void>} - Resolves when complete.
|
|
167
|
+
*/
|
|
168
|
+
removeForeignKey(tableName: string, referenceName: string, args?: {
|
|
169
|
+
/**
|
|
170
|
+
* - Override the derived foreign-key column name.
|
|
171
|
+
*/
|
|
172
|
+
columnName?: string | undefined;
|
|
173
|
+
}): Promise<void>;
|
|
156
174
|
/**
|
|
157
175
|
* Runs add reference.
|
|
158
176
|
* @param {string} tableName - Table name.
|
|
@@ -170,13 +188,29 @@ export default class VelociousDatabaseMigration {
|
|
|
170
188
|
type?: string | undefined;
|
|
171
189
|
unique?: boolean | undefined;
|
|
172
190
|
}): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* RemoveReferenceArgsType type.
|
|
193
|
+
* @typedef {object} RemoveReferenceArgsType
|
|
194
|
+
* @property {string} [columnName] - Override the derived reference column name.
|
|
195
|
+
* @property {string} [indexName] - Explicit generated index name to remove.
|
|
196
|
+
*/
|
|
173
197
|
/**
|
|
174
198
|
* Runs remove reference.
|
|
175
199
|
* @param {string} tableName - Table name.
|
|
176
200
|
* @param {string} referenceName - Reference name.
|
|
201
|
+
* @param {RemoveReferenceArgsType} [args] - Optional overrides.
|
|
177
202
|
* @returns {Promise<void>} - Resolves when complete.
|
|
178
203
|
*/
|
|
179
|
-
removeReference(tableName: string, referenceName: string
|
|
204
|
+
removeReference(tableName: string, referenceName: string, args?: {
|
|
205
|
+
/**
|
|
206
|
+
* - Override the derived reference column name.
|
|
207
|
+
*/
|
|
208
|
+
columnName?: string | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* - Explicit generated index name to remove.
|
|
211
|
+
*/
|
|
212
|
+
indexName?: string | undefined;
|
|
213
|
+
}): Promise<void>;
|
|
180
214
|
/**
|
|
181
215
|
* Runs change column null.
|
|
182
216
|
* @param {string} tableName - Table name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/migration/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/migration/index.js"],"names":[],"mappings":"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"}
|