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.
Files changed (108) hide show
  1. package/README.md +29 -1
  2. package/build/database/drivers/base-table.js +4 -3
  3. package/build/database/drivers/base.js +28 -0
  4. package/build/database/drivers/index-metadata.js +28 -0
  5. package/build/database/drivers/mssql/column.js +2 -34
  6. package/build/database/drivers/mssql/columns-index.js +37 -0
  7. package/build/database/drivers/mssql/table.js +55 -11
  8. package/build/database/drivers/mysql/sql/alter-table.js +13 -0
  9. package/build/database/drivers/pgsql/column.js +2 -27
  10. package/build/database/drivers/pgsql/columns-index.js +37 -0
  11. package/build/database/drivers/pgsql/table.js +61 -10
  12. package/build/database/drivers/sqlite/sql/alter-table.js +18 -0
  13. package/build/database/migration/index.js +92 -3
  14. package/build/database/query/alter-table-base.js +20 -1
  15. package/build/database/record/attachments/normalize-input.js +38 -10
  16. package/build/database/record/attachments/storage-drivers/filesystem.js +33 -2
  17. package/build/database/record/attachments/storage-drivers/native.js +17 -2
  18. package/build/database/record/attachments/storage-drivers/s3.js +27 -7
  19. package/build/database/record/attachments/store.js +159 -43
  20. package/build/database/table-data/table-foreign-key.js +9 -1
  21. package/build/environment-handlers/base.js +1 -1
  22. package/build/environment-handlers/node/attachment-path-source.js +144 -0
  23. package/build/environment-handlers/node.js +28 -3
  24. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  25. package/build/src/database/drivers/base-table.js +4 -3
  26. package/build/src/database/drivers/base.d.ts +7 -0
  27. package/build/src/database/drivers/base.d.ts.map +1 -1
  28. package/build/src/database/drivers/base.js +24 -1
  29. package/build/src/database/drivers/index-metadata.d.ts +41 -0
  30. package/build/src/database/drivers/index-metadata.d.ts.map +1 -0
  31. package/build/src/database/drivers/index-metadata.js +26 -0
  32. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  33. package/build/src/database/drivers/mssql/column.js +3 -31
  34. package/build/src/database/drivers/mssql/columns-index.d.ts +41 -0
  35. package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
  36. package/build/src/database/drivers/mssql/columns-index.js +35 -1
  37. package/build/src/database/drivers/mssql/table.d.ts +42 -0
  38. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  39. package/build/src/database/drivers/mssql/table.js +49 -12
  40. package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
  41. package/build/src/database/drivers/mysql/sql/alter-table.js +12 -1
  42. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  43. package/build/src/database/drivers/pgsql/column.js +3 -24
  44. package/build/src/database/drivers/pgsql/columns-index.d.ts +41 -0
  45. package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
  46. package/build/src/database/drivers/pgsql/columns-index.js +35 -1
  47. package/build/src/database/drivers/pgsql/table.d.ts +42 -0
  48. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  49. package/build/src/database/drivers/pgsql/table.js +54 -11
  50. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
  51. package/build/src/database/drivers/sqlite/sql/alter-table.js +15 -1
  52. package/build/src/database/migration/index.d.ts +35 -1
  53. package/build/src/database/migration/index.d.ts.map +1 -1
  54. package/build/src/database/migration/index.js +78 -4
  55. package/build/src/database/query/alter-table-base.d.ts +6 -0
  56. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  57. package/build/src/database/query/alter-table-base.js +18 -2
  58. package/build/src/database/record/attachments/normalize-input.d.ts +33 -4
  59. package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
  60. package/build/src/database/record/attachments/normalize-input.js +39 -11
  61. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +2 -5
  62. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
  63. package/build/src/database/record/attachments/storage-drivers/filesystem.js +28 -3
  64. package/build/src/database/record/attachments/storage-drivers/native.d.ts +2 -6
  65. package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
  66. package/build/src/database/record/attachments/storage-drivers/native.js +14 -3
  67. package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -6
  68. package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
  69. package/build/src/database/record/attachments/storage-drivers/s3.js +29 -8
  70. package/build/src/database/record/attachments/store.d.ts +27 -0
  71. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  72. package/build/src/database/record/attachments/store.js +144 -44
  73. package/build/src/database/table-data/table-foreign-key.d.ts +9 -1
  74. package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
  75. package/build/src/database/table-data/table-foreign-key.js +9 -2
  76. package/build/src/environment-handlers/base.d.ts +2 -5
  77. package/build/src/environment-handlers/base.d.ts.map +1 -1
  78. package/build/src/environment-handlers/base.js +2 -2
  79. package/build/src/environment-handlers/node/attachment-path-source.d.ts +64 -0
  80. package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -0
  81. package/build/src/environment-handlers/node/attachment-path-source.js +116 -0
  82. package/build/src/environment-handlers/node.d.ts +12 -0
  83. package/build/src/environment-handlers/node.d.ts.map +1 -1
  84. package/build/src/environment-handlers/node.js +24 -4
  85. package/build/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/src/database/drivers/base-table.js +4 -3
  88. package/src/database/drivers/base.js +28 -0
  89. package/src/database/drivers/index-metadata.js +28 -0
  90. package/src/database/drivers/mssql/column.js +2 -34
  91. package/src/database/drivers/mssql/columns-index.js +37 -0
  92. package/src/database/drivers/mssql/table.js +55 -11
  93. package/src/database/drivers/mysql/sql/alter-table.js +13 -0
  94. package/src/database/drivers/pgsql/column.js +2 -27
  95. package/src/database/drivers/pgsql/columns-index.js +37 -0
  96. package/src/database/drivers/pgsql/table.js +61 -10
  97. package/src/database/drivers/sqlite/sql/alter-table.js +18 -0
  98. package/src/database/migration/index.js +92 -3
  99. package/src/database/query/alter-table-base.js +20 -1
  100. package/src/database/record/attachments/normalize-input.js +38 -10
  101. package/src/database/record/attachments/storage-drivers/filesystem.js +33 -2
  102. package/src/database/record/attachments/storage-drivers/native.js +17 -2
  103. package/src/database/record/attachments/storage-drivers/s3.js +27 -7
  104. package/src/database/record/attachments/store.js +159 -43
  105. package/src/database/table-data/table-foreign-key.js +9 -1
  106. package/src/environment-handlers/base.js +1 -1
  107. package/src/environment-handlers/node/attachment-path-source.js +144 -0
  108. package/src/environment-handlers/node.js +28 -3
@@ -0,0 +1,41 @@
1
+ /**
2
+ * IndexMetadataType type.
3
+ * @typedef {object} IndexMetadataType
4
+ * @property {string} column_name - Index column name.
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
+ * Normalizes one untrusted database index metadata row.
12
+ * @param {import("./base.js").QueryRowType} row - Database index metadata row.
13
+ * @returns {IndexMetadataType} - Validated index metadata.
14
+ */
15
+ export function normalizeIndexMetadataRow(row: import("./base.js").QueryRowType): IndexMetadataType;
16
+ /**
17
+ * IndexMetadataType type.
18
+ */
19
+ export type IndexMetadataType = {
20
+ /**
21
+ * - Index column name.
22
+ */
23
+ column_name: string;
24
+ /**
25
+ * - Index name.
26
+ */
27
+ index_name: string;
28
+ /**
29
+ * - Whether the index is primary.
30
+ */
31
+ is_primary_key: boolean;
32
+ /**
33
+ * - Whether the index is unique.
34
+ */
35
+ is_unique: boolean;
36
+ /**
37
+ * - Table name.
38
+ */
39
+ table_name: string;
40
+ };
41
+ //# sourceMappingURL=index-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-metadata.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/index-metadata.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,+CAHW,OAAO,WAAW,EAAE,YAAY,GAC9B,iBAAiB,CAU7B;;;;;;;;iBApBa,MAAM;;;;gBACN,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM"}
@@ -0,0 +1,26 @@
1
+ // @ts-check
2
+ import { forcedBoolean, forcedString } from "typanic";
3
+ /**
4
+ * IndexMetadataType type.
5
+ * @typedef {object} IndexMetadataType
6
+ * @property {string} column_name - Index column name.
7
+ * @property {string} index_name - Index name.
8
+ * @property {boolean} is_primary_key - Whether the index is primary.
9
+ * @property {boolean} is_unique - Whether the index is unique.
10
+ * @property {string} table_name - Table name.
11
+ */
12
+ /**
13
+ * Normalizes one untrusted database index metadata row.
14
+ * @param {import("./base.js").QueryRowType} row - Database index metadata row.
15
+ * @returns {IndexMetadataType} - Validated index metadata.
16
+ */
17
+ export function normalizeIndexMetadataRow(row) {
18
+ return {
19
+ column_name: forcedString(row.column_name, "index column_name"),
20
+ index_name: forcedString(row.index_name, "index index_name"),
21
+ is_primary_key: forcedBoolean(row.is_primary_key, "index is_primary_key"),
22
+ is_unique: forcedBoolean(row.is_unique, "index is_unique"),
23
+ table_name: forcedString(row.table_name, "index table_name")
24
+ };
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9pbmRleC1tZXRhZGF0YS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFckQ7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEdBQUc7SUFDM0MsT0FBTztRQUNMLFdBQVcsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztRQUMvRCxVQUFVLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUM7UUFDNUQsY0FBYyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO1FBQ3pFLFNBQVMsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztRQUMxRCxVQUFVLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUM7S0FDN0QsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHsgZm9yY2VkQm9vbGVhbiwgZm9yY2VkU3RyaW5nIH0gZnJvbSBcInR5cGFuaWNcIlxuXG4vKipcbiAqIEluZGV4TWV0YWRhdGFUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBJbmRleE1ldGFkYXRhVHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbHVtbl9uYW1lIC0gSW5kZXggY29sdW1uIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaW5kZXhfbmFtZSAtIEluZGV4IG5hbWUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3ByaW1hcnlfa2V5IC0gV2hldGhlciB0aGUgaW5kZXggaXMgcHJpbWFyeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNfdW5pcXVlIC0gV2hldGhlciB0aGUgaW5kZXggaXMgdW5pcXVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRhYmxlX25hbWUgLSBUYWJsZSBuYW1lLlxuICovXG5cbi8qKlxuICogTm9ybWFsaXplcyBvbmUgdW50cnVzdGVkIGRhdGFiYXNlIGluZGV4IG1ldGFkYXRhIHJvdy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLmpzXCIpLlF1ZXJ5Um93VHlwZX0gcm93IC0gRGF0YWJhc2UgaW5kZXggbWV0YWRhdGEgcm93LlxuICogQHJldHVybnMge0luZGV4TWV0YWRhdGFUeXBlfSAtIFZhbGlkYXRlZCBpbmRleCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUluZGV4TWV0YWRhdGFSb3cocm93KSB7XG4gIHJldHVybiB7XG4gICAgY29sdW1uX25hbWU6IGZvcmNlZFN0cmluZyhyb3cuY29sdW1uX25hbWUsIFwiaW5kZXggY29sdW1uX25hbWVcIiksXG4gICAgaW5kZXhfbmFtZTogZm9yY2VkU3RyaW5nKHJvdy5pbmRleF9uYW1lLCBcImluZGV4IGluZGV4X25hbWVcIiksXG4gICAgaXNfcHJpbWFyeV9rZXk6IGZvcmNlZEJvb2xlYW4ocm93LmlzX3ByaW1hcnlfa2V5LCBcImluZGV4IGlzX3ByaW1hcnlfa2V5XCIpLFxuICAgIGlzX3VuaXF1ZTogZm9yY2VkQm9vbGVhbihyb3cuaXNfdW5pcXVlLCBcImluZGV4IGlzX3VuaXF1ZVwiKSxcbiAgICB0YWJsZV9uYW1lOiBmb3JjZWRTdHJpbmcocm93LnRhYmxlX25hbWUsIFwiaW5kZXggdGFibGVfbmFtZVwiKVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/column.js"],"names":[],"mappings":"AAMA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IA0CpB,oBAAwE;IACxE,eAAsD;IAatD,eAAoD;CACrD;uBAtEsB,mBAAmB"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/column.js"],"names":[],"mappings":"AAKA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IAYpB,oBAAwE;IACxE,eAAsD;IAatD,eAAoD;CACrD;uBAvCsB,mBAAmB"}
@@ -1,6 +1,5 @@
1
1
  // @ts-check
2
2
  import BaseColumn from "../base-column.js";
3
- import ColumnsIndex from "./columns-index.js";
4
3
  import { digg } from "diggerize";
5
4
  export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
6
5
  /**
@@ -15,35 +14,8 @@ export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
15
14
  }
16
15
  getAutoIncrement() { return digg(this, "data", "isIdentity") === 1; }
17
16
  async getIndexes() {
18
- const options = this.getOptions();
19
- const sql = `
20
- SELECT
21
- sys.tables.name AS TableName,
22
- sys.columns.name AS ColumnName,
23
- sys.indexes.name AS index_name,
24
- sys.indexes.type_desc AS IndexType,
25
- sys.index_columns.is_included_column AS IsIncludedColumn,
26
- sys.indexes.is_unique,
27
- sys.indexes.is_primary_key,
28
- sys.indexes.is_unique_constraint
29
- FROM sys.indexes
30
- INNER JOIN sys.index_columns ON sys.indexes.object_id = sys.index_columns.object_id AND sys.indexes.index_id = sys.index_columns.index_id
31
- INNER JOIN sys.columns ON sys.index_columns.object_id = sys.columns.object_id AND sys.index_columns.column_id = sys.columns.column_id
32
- INNER JOIN sys.tables ON sys.indexes.object_id = sys.tables.object_id
33
- WHERE
34
- sys.tables.name = ${options.quote(this.getTable().getName())} AND
35
- sys.columns.name = ${options.quote(this.getName())}
36
- ORDER BY
37
- sys.indexes.name,
38
- sys.index_columns.key_ordinal
39
- `;
40
- const rows = await this.getDriver().query(sql);
41
- const indexes = [];
42
- for (const row of rows) {
43
- const index = new ColumnsIndex(this.getTable(), row);
44
- indexes.push(index);
45
- }
46
- return indexes;
17
+ const indexes = await this.getTable().getIndexes();
18
+ return indexes.filter((index) => index.getColumnNames().includes(this.getName()));
47
19
  }
48
20
  getDefault() { return digg(this, "data", "COLUMN_DEFAULT"); }
49
21
  getMaxLength() { return digg(this, "data", "CHARACTER_MAXIMUM_LENGTH"); }
@@ -60,4 +32,4 @@ export default class VelociousDatabaseDriversMssqlColumn extends BaseColumn {
60
32
  getPrimaryKey() { return digg(this, "data", "isIdentity") === 1; }
61
33
  getType() { return digg(this, "data", "DATA_TYPE"); }
62
34
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvbXNzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLFlBQVksTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFcEUsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsTUFBTSxHQUFHLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs0QkFlWSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs2QkFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Ozs7S0FJckQsQ0FBQTtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFFcEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQzVELFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUV0RCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFBLENBQUMsQ0FBQztDQUNyRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZUNvbHVtbiBmcm9tIFwiLi4vYmFzZS1jb2x1bW4uanNcIlxuaW1wb3J0IENvbHVtbnNJbmRleCBmcm9tIFwiLi9jb2x1bW5zLWluZGV4LmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsQ29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UtdGFibGUuanNcIikuZGVmYXVsdH0gdGFibGUgLSBUYWJsZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBkYXRhKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgfVxuXG4gIGdldEF1dG9JbmNyZW1lbnQoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzSWRlbnRpdHlcIikgPT09IDEgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpXG4gICAgY29uc3Qgc3FsID0gYFxuICAgICAgU0VMRUNUXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSBBUyBUYWJsZU5hbWUsXG4gICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgQVMgQ29sdW1uTmFtZSxcbiAgICAgICAgc3lzLmluZGV4ZXMubmFtZSBBUyBpbmRleF9uYW1lLFxuICAgICAgICBzeXMuaW5kZXhlcy50eXBlX2Rlc2MgQVMgSW5kZXhUeXBlLFxuICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gQVMgSXNJbmNsdWRlZENvbHVtbixcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlLFxuICAgICAgICBzeXMuaW5kZXhlcy5pc19wcmltYXJ5X2tleSxcbiAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlX2NvbnN0cmFpbnRcbiAgICAgIEZST00gc3lzLmluZGV4ZXNcbiAgICAgIElOTkVSIEpPSU4gc3lzLmluZGV4X2NvbHVtbnMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLmluZGV4X2NvbHVtbnMub2JqZWN0X2lkIEFORCBzeXMuaW5kZXhlcy5pbmRleF9pZCA9IHN5cy5pbmRleF9jb2x1bW5zLmluZGV4X2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIE9OIHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCA9IHN5cy5jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4X2NvbHVtbnMuY29sdW1uX2lkID0gc3lzLmNvbHVtbnMuY29sdW1uX2lkXG4gICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLnRhYmxlcy5vYmplY3RfaWRcbiAgICAgIFdIRVJFXG4gICAgICAgIHN5cy50YWJsZXMubmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpKX0gQU5EXG4gICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgPSAke29wdGlvbnMucXVvdGUodGhpcy5nZXROYW1lKCkpfVxuICAgICAgT1JERVIgQllcbiAgICAgICAgc3lzLmluZGV4ZXMubmFtZSxcbiAgICAgICAgc3lzLmluZGV4X2NvbHVtbnMua2V5X29yZGluYWxcbiAgICBgXG5cbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgY29uc3QgaW5kZXhlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcy5nZXRUYWJsZSgpLCByb3cpXG5cbiAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiQ09MVU1OX0RFRkFVTFRcIikgfVxuICBnZXRNYXhMZW5ndGgoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkNIQVJBQ1RFUl9NQVhJTVVNX0xFTkdUSFwiKSB9XG4gIGdldE5hbWUoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkNPTFVNTl9OQU1FXCIpIH1cblxuICBnZXROdWxsKCkge1xuICAgIGNvbnN0IG51bGxWYWx1ZSA9IGRpZ2codGhpcywgXCJkYXRhXCIsIFwiSVNfTlVMTEFCTEVcIilcblxuICAgIGlmIChudWxsVmFsdWUgPT0gXCJOT1wiKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBnZXRQcmltYXJ5S2V5KCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJpc0lkZW50aXR5XCIpID09PSAxIH1cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiREFUQV9UWVBFXCIpIH1cbn1cblxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvbXNzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFcEUsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDNUQsWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDeEUsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXRELE9BQU87UUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVuRCxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDakUsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUEsQ0FBQyxDQUFDO0NBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uIGZyb20gXCIuLi9iYXNlLWNvbHVtbi5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJpc0lkZW50aXR5XCIpID09PSAxIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IGluZGV4ZXMgPSBhd2FpdCB0aGlzLmdldFRhYmxlKCkuZ2V0SW5kZXhlcygpXG5cbiAgICByZXR1cm4gaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PiBpbmRleC5nZXRDb2x1bW5OYW1lcygpLmluY2x1ZGVzKHRoaXMuZ2V0TmFtZSgpKSlcbiAgfVxuXG4gIGdldERlZmF1bHQoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkNPTFVNTl9ERUZBVUxUXCIpIH1cbiAgZ2V0TWF4TGVuZ3RoKCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJDSEFSQUNURVJfTUFYSU1VTV9MRU5HVEhcIikgfVxuICBnZXROYW1lKCkgeyByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJDT0xVTU5fTkFNRVwiKSB9XG5cbiAgZ2V0TnVsbCgpIHtcbiAgICBjb25zdCBudWxsVmFsdWUgPSBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIklTX05VTExBQkxFXCIpXG5cbiAgICBpZiAobnVsbFZhbHVlID09IFwiTk9cIikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiaXNJZGVudGl0eVwiKSA9PT0gMSB9XG4gIGdldFR5cGUoKSB7IHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcIkRBVEFfVFlQRVwiKSB9XG59XG4iXX0=
@@ -1,4 +1,45 @@
1
+ /**
2
+ * MssqlColumnsIndexDataType type.
3
+ * @typedef {object} MssqlColumnsIndexDataType
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
+ */
1
10
  export default class VelociousDatabaseDriversMssqlColumnsIndex extends BaseColumnsIndex {
11
+ /**
12
+ * Runs constructor.
13
+ * @param {import("../base-table.js").default} table - Table.
14
+ * @param {MssqlColumnsIndexDataType} data - Grouped index metadata.
15
+ */
16
+ constructor(table: import("../base-table.js").default, data: MssqlColumnsIndexDataType);
17
+ indexData: MssqlColumnsIndexDataType;
2
18
  }
19
+ /**
20
+ * MssqlColumnsIndexDataType type.
21
+ */
22
+ export type MssqlColumnsIndexDataType = {
23
+ /**
24
+ * - Ordered index column names.
25
+ */
26
+ columnNames: string[];
27
+ /**
28
+ * - Index name.
29
+ */
30
+ index_name: string;
31
+ /**
32
+ * - Whether the index is primary.
33
+ */
34
+ is_primary_key: boolean;
35
+ /**
36
+ * - Whether the index is unique.
37
+ */
38
+ is_unique: boolean;
39
+ /**
40
+ * - Table name.
41
+ */
42
+ table_name: string;
43
+ };
3
44
  import BaseColumnsIndex from "../base-columns-index.js";
4
45
  //# sourceMappingURL=columns-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/columns-index.js"],"names":[],"mappings":"AAIA;CACC;6BAH4B,0BAA0B"}
1
+ {"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/columns-index.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,yBAAyB,EAKnC;IADC,qCAAqB;CAmBxB;;;;;;;;iBAlCa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;6BAVS,0BAA0B"}
@@ -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
+ * MssqlColumnsIndexDataType type.
6
+ * @typedef {object} MssqlColumnsIndexDataType
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 VelociousDatabaseDriversMssqlColumnsIndex extends BaseColumnsIndex {
14
+ /**
15
+ * Runs constructor.
16
+ * @param {import("../base-table.js").default} table - Table.
17
+ * @param {MssqlColumnsIndexDataType} 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL2NvbHVtbnMtaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sMEJBQTBCLENBQUE7QUFFdkQsTUFBTSxDQUFDLE9BQU8sT0FBTyx5Q0FBMEMsU0FBUSxnQkFBZ0I7Q0FDdEYiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb2x1bW5zSW5kZXggZnJvbSBcIi4uL2Jhc2UtY29sdW1ucy1pbmRleC5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsQ29sdW1uc0luZGV4IGV4dGVuZHMgQmFzZUNvbHVtbnNJbmRleCB7XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kcml2ZXJzL21zc3FsL2NvbHVtbnMtaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZ0JBQWdCLE1BQU0sMEJBQTBCLENBQUE7QUFDdkQsT0FBTyxVQUFVLE1BQU0saUNBQWlDLENBQUE7QUFFeEQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLHlDQUEwQyxTQUFRLGdCQUFnQjtJQUNyRjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uc0luZGV4IGZyb20gXCIuLi9iYXNlLWNvbHVtbnMtaW5kZXguanNcIlxuaW1wb3J0IFRhYmxlSW5kZXggZnJvbSBcIi4uLy4uL3RhYmxlLWRhdGEvdGFibGUtaW5kZXguanNcIlxuXG4vKipcbiAqIE1zc3FsQ29sdW1uc0luZGV4RGF0YVR5cGUgdHlwZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1zc3FsQ29sdW1uc0luZGV4RGF0YVR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGNvbHVtbk5hbWVzIC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaW5kZXhfbmFtZSAtIEluZGV4IG5hbWUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3ByaW1hcnlfa2V5IC0gV2hldGhlciB0aGUgaW5kZXggaXMgcHJpbWFyeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNfdW5pcXVlIC0gV2hldGhlciB0aGUgaW5kZXggaXMgdW5pcXVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRhYmxlX25hbWUgLSBUYWJsZSBuYW1lLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsQ29sdW1uc0luZGV4IGV4dGVuZHMgQmFzZUNvbHVtbnNJbmRleCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Jhc2UtdGFibGUuanNcIikuZGVmYXVsdH0gdGFibGUgLSBUYWJsZS5cbiAgICogQHBhcmFtIHtNc3NxbENvbHVtbnNJbmRleERhdGFUeXBlfSBkYXRhIC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlLCBkYXRhKSB7XG4gICAgc3VwZXIodGFibGUsIGRhdGEpXG4gICAgdGhpcy5pbmRleERhdGEgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29sdW1uIG5hbWVzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IC0gT3JkZXJlZCBpbmRleCBjb2x1bW4gbmFtZXMuXG4gICAqL1xuICBnZXRDb2x1bW5OYW1lcygpIHsgcmV0dXJuIHRoaXMuaW5kZXhEYXRhLmNvbHVtbk5hbWVzIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdGFibGUgZGF0YSBpbmRleC5cbiAgICogQHJldHVybnMge1RhYmxlSW5kZXh9IC0gVGFibGUtZGF0YSBpbmRleC5cbiAgICovXG4gIGdldFRhYmxlRGF0YUluZGV4KCkge1xuICAgIHJldHVybiBuZXcgVGFibGVJbmRleCh0aGlzLmdldENvbHVtbk5hbWVzKCksIHtcbiAgICAgIG5hbWU6IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgdW5pcXVlOiB0aGlzLmlzVW5pcXVlKClcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -1,3 +1,18 @@
1
+ /**
2
+ * MssqlGroupedIndexDataType type.
3
+ * @typedef {object} MssqlGroupedIndexDataType
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 SQL Server index rows into one metadata value per index.
12
+ * @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
13
+ * @returns {MssqlGroupedIndexDataType[]} - Grouped index metadata.
14
+ */
15
+ export function groupMssqlIndexRows(indexRows: import("../index-metadata.js").IndexMetadataType[]): MssqlGroupedIndexDataType[];
1
16
  export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
2
17
  /**
3
18
  * Runs constructor.
@@ -9,8 +24,35 @@ export default class VelociousDatabaseDriversMssqlTable 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
+ * MssqlGroupedIndexDataType type.
31
+ */
32
+ export type MssqlGroupedIndexDataType = {
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/mssql/table.js"],"names":[],"mappings":"AAQA;IACE;;;;OAIG;IACH,oBAHW,OAAO,YAAY,EAAE,OAAO,QAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAMhC;IAFC,6BAAgB;IAChB,qCAAoB;IAGtB,gCAmBC;IAED,wCAsCC;CAiEF;sBA9IqB,kBAAkB;mBACrB,aAAa;uBAGT,kBAAkB"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/mssql/table.js"],"names":[],"mappings":"AASA;;;;;;;;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,gCAmBC;IAED,wCAsCC;IAED,sCAkCC;CA4BF;;;;;;;;iBAhLa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;sBAdE,kBAAkB;mBACrB,aAAa;uBAGT,kBAAkB;yBAFhB,oBAAoB"}
@@ -4,6 +4,44 @@ import Column from "./column.js";
4
4
  import ColumnsIndex from "./columns-index.js";
5
5
  import { digg } from "diggerize";
6
6
  import ForeignKey from "./foreign-key.js";
7
+ import { normalizeIndexMetadataRow } from "../index-metadata.js";
8
+ /**
9
+ * MssqlGroupedIndexDataType type.
10
+ * @typedef {object} MssqlGroupedIndexDataType
11
+ * @property {string[]} columnNames - Ordered index column names.
12
+ * @property {string} index_name - Index name.
13
+ * @property {boolean} is_primary_key - Whether the index is primary.
14
+ * @property {boolean} is_unique - Whether the index is unique.
15
+ * @property {string} table_name - Table name.
16
+ */
17
+ /**
18
+ * Groups ordered SQL Server index rows into one metadata value per index.
19
+ * @param {import("../index-metadata.js").IndexMetadataType[]} indexRows - Ordered index metadata rows.
20
+ * @returns {MssqlGroupedIndexDataType[]} - Grouped index metadata.
21
+ */
22
+ export function groupMssqlIndexRows(indexRows) {
23
+ /** @type {Map<string, MssqlGroupedIndexDataType>} */
24
+ const indexDataByName = new Map();
25
+ /** @type {MssqlGroupedIndexDataType[]} */
26
+ const groupedIndexData = [];
27
+ for (const indexRow of indexRows) {
28
+ const existingIndexData = indexDataByName.get(indexRow.index_name);
29
+ if (existingIndexData) {
30
+ existingIndexData.columnNames.push(indexRow.column_name);
31
+ continue;
32
+ }
33
+ const indexData = {
34
+ columnNames: [indexRow.column_name],
35
+ index_name: indexRow.index_name,
36
+ is_primary_key: indexRow.is_primary_key,
37
+ is_unique: indexRow.is_unique,
38
+ table_name: indexRow.table_name
39
+ };
40
+ indexDataByName.set(indexRow.index_name, indexData);
41
+ groupedIndexData.push(indexData);
42
+ }
43
+ return groupedIndexData;
44
+ }
7
45
  export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
8
46
  /**
9
47
  * Runs constructor.
@@ -36,7 +74,7 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
36
74
  return await this.getDriver()._cachedTableSchemaMetadata(this.getName(), "foreignKeys", async () => {
37
75
  const sql = `
38
76
  SELECT
39
- fk.name AS ForeignKeyName,
77
+ fk.name AS CONSTRAINT_NAME,
40
78
  tp.name AS ParentTable,
41
79
  ref.name AS ReferencedTable,
42
80
  cp.name AS ParentColumn,
@@ -56,7 +94,7 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
56
94
  ON fkc.referenced_object_id = cref.object_id
57
95
  AND fkc.referenced_column_id = cref.column_id
58
96
  WHERE tp.name = ${this.driver.quote(this.getName())}
59
- ORDER BY ForeignKeyName, ParentTable, ReferencedTable;
97
+ ORDER BY CONSTRAINT_NAME, ParentTable, ReferencedTable;
60
98
  `;
61
99
  const foreignKeyRows = await this.driver.query(sql);
62
100
  const foreignKeys = [];
@@ -72,28 +110,27 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
72
110
  const options = this.getOptions();
73
111
  const sql = `
74
112
  SELECT
75
- sys.tables.name AS TableName,
76
- sys.columns.name AS ColumnName,
113
+ sys.tables.name AS table_name,
114
+ sys.columns.name AS column_name,
77
115
  sys.indexes.name AS index_name,
78
- sys.indexes.type_desc AS IndexType,
79
- sys.index_columns.is_included_column AS IsIncludedColumn,
80
116
  sys.indexes.is_unique,
81
- sys.indexes.is_primary_key,
82
- sys.indexes.is_unique_constraint
117
+ sys.indexes.is_primary_key
83
118
  FROM sys.indexes
84
119
  INNER JOIN sys.index_columns ON sys.indexes.object_id = sys.index_columns.object_id AND sys.indexes.index_id = sys.index_columns.index_id
85
120
  INNER JOIN sys.columns ON sys.index_columns.object_id = sys.columns.object_id AND sys.index_columns.column_id = sys.columns.column_id
86
121
  INNER JOIN sys.tables ON sys.indexes.object_id = sys.tables.object_id
87
122
  WHERE
88
- sys.tables.name = ${options.quote(this.getName())}
123
+ sys.tables.name = ${options.quote(this.getName())} AND
124
+ sys.index_columns.is_included_column = 0
89
125
  ORDER BY
90
126
  sys.indexes.name,
91
127
  sys.index_columns.key_ordinal
92
128
  `;
93
129
  const rows = await this.getDriver().query(sql);
94
130
  const indexes = [];
95
- for (const row of rows) {
96
- const index = new ColumnsIndex(this, row);
131
+ const indexRows = rows.map((row) => normalizeIndexMetadataRow(row));
132
+ for (const indexData of groupMssqlIndexRows(indexRows)) {
133
+ const index = new ColumnsIndex(this, indexData);
97
134
  indexes.push(index);
98
135
  }
99
136
  return indexes;
@@ -127,4 +164,4 @@ export default class VelociousDatabaseDriversMssqlTable extends BaseTable {
127
164
  }
128
165
  }
129
166
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFFekMsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQ0FBbUMsU0FBUSxTQUFTO0lBQ3ZFOzs7O09BSUc7SUFDSCxZQUFZLE1BQU0sRUFBRSxJQUFJO1FBQ3RCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Ozs7OytCQUtkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztPQUN6RCxDQUFDLENBQUE7WUFDRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFFbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUVyQyxP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LEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxLQUFLLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZVRhYmxlIGZyb20gXCIuLi9iYXNlLXRhYmxlLmpzXCJcbmltcG9ydCBDb2x1bW4gZnJvbSBcIi4vY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IEZvcmVpZ25LZXkgZnJvbSBcIi4vZm9yZWlnbi1rZXkuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNNc3NxbFRhYmxlIGV4dGVuZHMgQmFzZVRhYmxlIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vYmFzZS5qc1wiKS5kZWZhdWx0fSBkcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRyaXZlciwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5kcml2ZXIgPSBkcml2ZXJcbiAgfVxuXG4gIGFzeW5jIGdldENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiY29sdW1uc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRyaXZlci5xdWVyeShgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICosXG4gICAgICAgICAgQ09MVU1OUFJPUEVSVFkob2JqZWN0X2lkKFRBQkxFX1NDSEVNQSArICcuJyArIFRBQkxFX05BTUUpLCBDT0xVTU5fTkFNRSwgJ0lzSWRlbnRpdHknKSBBUyBpc0lkZW50aXR5XG4gICAgICAgIEZST00gW0lORk9STUFUSU9OX1NDSEVNQV0uW0NPTFVNTlNdXG4gICAgICAgIFdIRVJFIFtUQUJMRV9OQU1FXSA9ICR7dGhpcy5kcml2ZXIucXVvdGUodGhpcy5nZXROYW1lKCkpfVxuICAgICAgYClcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXVxuXG4gICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgcmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBDb2x1bW4odGhpcywgZGF0YSlcblxuICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29sdW1uc1xuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRGb3JlaWduS2V5cygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJmb3JlaWduS2V5c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzcWwgPSBgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgZmsubmFtZSBBUyBGb3JlaWduS2V5TmFtZSxcbiAgICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgICByZWYubmFtZSBBUyBSZWZlcmVuY2VkVGFibGUsXG4gICAgICAgICAgICBjcC5uYW1lIEFTIFBhcmVudENvbHVtbixcbiAgICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgICAgdHAubmFtZSBBUyBUYWJsZU5hbWVcbiAgICAgICAgRlJPTSBzeXMuZm9yZWlnbl9rZXlzIGZrXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgICBPTiBma2MuY29uc3RyYWludF9vYmplY3RfaWQgPSBmay5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMudGFibGVzIHRwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIGNwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IGNwLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyByZWZcbiAgICAgICAgICAgIE9OIGZrYy5yZWZlcmVuY2VkX29iamVjdF9pZCA9IHJlZi5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgICBPTiBma2MucmVmZXJlbmNlZF9vYmplY3RfaWQgPSBjcmVmLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5yZWZlcmVuY2VkX2NvbHVtbl9pZCA9IGNyZWYuY29sdW1uX2lkXG4gICAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgICAgT1JERVIgQlkgRm9yZWlnbktleU5hbWUsIFBhcmVudFRhYmxlLCBSZWZlcmVuY2VkVGFibGU7XG4gICAgICBgXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlSb3dzID0gYXdhaXQgdGhpcy5kcml2ZXIucXVlcnkoc3FsKVxuICAgICAgY29uc3QgZm9yZWlnbktleXMgPSBbXVxuXG4gICAgICBmb3IgKGNvbnN0IGZvcmVpZ25LZXlSb3cgb2YgZm9yZWlnbktleVJvd3MpIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbktleSA9IG5ldyBGb3JlaWduS2V5KGZvcmVpZ25LZXlSb3cpXG5cbiAgICAgICAgZm9yZWlnbktleXMucHVzaChmb3JlaWduS2V5KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9yZWlnbktleXNcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0SW5kZXhlcygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJpbmRleGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuICAgICAgY29uc3Qgc3FsID0gYFxuICAgICAgICBTRUxFQ1RcbiAgICAgICAgICBzeXMudGFibGVzLm5hbWUgQVMgVGFibGVOYW1lLFxuICAgICAgICAgIHN5cy5jb2x1bW5zLm5hbWUgQVMgQ29sdW1uTmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhlcy5uYW1lIEFTIGluZGV4X25hbWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMudHlwZV9kZXNjIEFTIEluZGV4VHlwZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gQVMgSXNJbmNsdWRlZENvbHVtbixcbiAgICAgICAgICBzeXMuaW5kZXhlcy5pc191bmlxdWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfcHJpbWFyeV9rZXksXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlX2NvbnN0cmFpbnRcbiAgICAgICAgRlJPTSBzeXMuaW5kZXhlc1xuICAgICAgICBJTk5FUiBKT0lOIHN5cy5pbmRleF9jb2x1bW5zIE9OIHN5cy5pbmRleGVzLm9iamVjdF9pZCA9IHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4ZXMuaW5kZXhfaWQgPSBzeXMuaW5kZXhfY29sdW1ucy5pbmRleF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIE9OIHN5cy5pbmRleF9jb2x1bW5zLm9iamVjdF9pZCA9IHN5cy5jb2x1bW5zLm9iamVjdF9pZCBBTkQgc3lzLmluZGV4X2NvbHVtbnMuY29sdW1uX2lkID0gc3lzLmNvbHVtbnMuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyBPTiBzeXMuaW5kZXhlcy5vYmplY3RfaWQgPSBzeXMudGFibGVzLm9iamVjdF9pZFxuICAgICAgICBXSEVSRVxuICAgICAgICAgIHN5cy50YWJsZXMubmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICAgIE9SREVSIEJZXG4gICAgICAgICAgc3lzLmluZGV4ZXMubmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgICAgYFxuXG4gICAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgICBjb25zdCBpbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcywgcm93KVxuXG4gICAgICAgIGluZGV4ZXMucHVzaChpbmRleClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluZGV4ZXNcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5hbWUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRhYmxlIG5hbWUuXG4gICAqL1xuICBnZXROYW1lKCkge1xuICAgIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGRpZ2codGhpcy5kYXRhLCBcIlRBQkxFX05BTUVcIikpXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0cnVuY2F0ZS5cbiAgICogQHBhcmFtIHt7Y2FzY2FkZTogYm9vbGVhbn19IFthcmdzXSAtIFRydW5jYXRlIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsID8+Pj59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgdHJ1bmNhdGUuXG4gICAqL1xuICBhc3luYyB0cnVuY2F0ZShhcmdzKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICB0aGlzLmdldERyaXZlcigpLl9hc3NlcnROb3RSZWFkT25seSgpXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBUUlVOQ0FURSBUQUJMRSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJRdWVyeSBmYWlsZWQgJ0Nhbm5vdCB0cnVuY2F0ZSB0YWJsZVwiKSkge1xuICAgICAgICAvLyBUcnVuY2F0ZSB0YWJsZSBpcyByZWFsbHkgYnVnZ3kgZm9yIHNvbWUgcmVhc29uIC0gZmFsbCBiYWNrIHRvIGRlbGV0ZSBhbGwgcm93cyBpbnN0ZWFkXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLnF1ZXJ5KGBERUxFVEUgRlJPTSAke3RoaXMuZ2V0T3B0aW9ucygpLnF1b3RlVGFibGVOYW1lKHRoaXMuZ2V0TmFtZSgpKX1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9tc3NxbC90YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEU7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFNBQVM7SUFDM0MscURBQXFEO0lBQ3JELE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUE7SUFDakMsMENBQTBDO0lBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO0lBRTNCLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVsRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDeEQsU0FBUTtRQUNWLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRztZQUNoQixXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQ25DLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMvQixjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWM7WUFDdkMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lB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Q0FBQyxDQUFBO1lBQ3hHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEtBQUssQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlVGFibGUgZnJvbSBcIi4uL2Jhc2UtdGFibGUuanNcIlxuaW1wb3J0IENvbHVtbiBmcm9tIFwiLi9jb2x1bW4uanNcIlxuaW1wb3J0IENvbHVtbnNJbmRleCBmcm9tIFwiLi9jb2x1bW5zLWluZGV4LmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRm9yZWlnbktleSBmcm9tIFwiLi9mb3JlaWduLWtleS5qc1wiXG5pbXBvcnQgeyBub3JtYWxpemVJbmRleE1ldGFkYXRhUm93IH0gZnJvbSBcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCJcblxuLyoqXG4gKiBNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBjb2x1bW5OYW1lcyAtIE9yZGVyZWQgaW5kZXggY29sdW1uIG5hbWVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGluZGV4X25hbWUgLSBJbmRleCBuYW1lLlxuICogQHByb3BlcnR5IHtib29sZWFufSBpc19wcmltYXJ5X2tleSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHByaW1hcnkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzX3VuaXF1ZSAtIFdoZXRoZXIgdGhlIGluZGV4IGlzIHVuaXF1ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0YWJsZV9uYW1lIC0gVGFibGUgbmFtZS5cbiAqL1xuXG4vKipcbiAqIEdyb3VwcyBvcmRlcmVkIFNRTCBTZXJ2ZXIgaW5kZXggcm93cyBpbnRvIG9uZSBtZXRhZGF0YSB2YWx1ZSBwZXIgaW5kZXguXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LW1ldGFkYXRhLmpzXCIpLkluZGV4TWV0YWRhdGFUeXBlW119IGluZGV4Um93cyAtIE9yZGVyZWQgaW5kZXggbWV0YWRhdGEgcm93cy5cbiAqIEByZXR1cm5zIHtNc3NxbEdyb3VwZWRJbmRleERhdGFUeXBlW119IC0gR3JvdXBlZCBpbmRleCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwTXNzcWxJbmRleFJvd3MoaW5kZXhSb3dzKSB7XG4gIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgTXNzcWxHcm91cGVkSW5kZXhEYXRhVHlwZT59ICovXG4gIGNvbnN0IGluZGV4RGF0YUJ5TmFtZSA9IG5ldyBNYXAoKVxuICAvKiogQHR5cGUge01zc3FsR3JvdXBlZEluZGV4RGF0YVR5cGVbXX0gKi9cbiAgY29uc3QgZ3JvdXBlZEluZGV4RGF0YSA9IFtdXG5cbiAgZm9yIChjb25zdCBpbmRleFJvdyBvZiBpbmRleFJvd3MpIHtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4RGF0YSA9IGluZGV4RGF0YUJ5TmFtZS5nZXQoaW5kZXhSb3cuaW5kZXhfbmFtZSlcblxuICAgIGlmIChleGlzdGluZ0luZGV4RGF0YSkge1xuICAgICAgZXhpc3RpbmdJbmRleERhdGEuY29sdW1uTmFtZXMucHVzaChpbmRleFJvdy5jb2x1bW5fbmFtZSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhEYXRhID0ge1xuICAgICAgY29sdW1uTmFtZXM6IFtpbmRleFJvdy5jb2x1bW5fbmFtZV0sXG4gICAgICBpbmRleF9uYW1lOiBpbmRleFJvdy5pbmRleF9uYW1lLFxuICAgICAgaXNfcHJpbWFyeV9rZXk6IGluZGV4Um93LmlzX3ByaW1hcnlfa2V5LFxuICAgICAgaXNfdW5pcXVlOiBpbmRleFJvdy5pc191bmlxdWUsXG4gICAgICB0YWJsZV9uYW1lOiBpbmRleFJvdy50YWJsZV9uYW1lXG4gICAgfVxuXG4gICAgaW5kZXhEYXRhQnlOYW1lLnNldChpbmRleFJvdy5pbmRleF9uYW1lLCBpbmRleERhdGEpXG4gICAgZ3JvdXBlZEluZGV4RGF0YS5wdXNoKGluZGV4RGF0YSlcbiAgfVxuXG4gIHJldHVybiBncm91cGVkSW5kZXhEYXRhXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc01zc3FsVGFibGUgZXh0ZW5kcyBCYXNlVGFibGUge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLmpzXCIpLmRlZmF1bHR9IGRyaXZlciAtIERhdGFiYXNlIGRyaXZlciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBkYXRhIC0gRGF0YSBwYXlsb2FkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZHJpdmVyLCBkYXRhKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlclxuICB9XG5cbiAgYXN5bmMgZ2V0Q29sdW1ucygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5fY2FjaGVkVGFibGVTY2hlbWFNZXRhZGF0YSh0aGlzLmdldE5hbWUoKSwgXCJjb2x1bW5zXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgKixcbiAgICAgICAgICBDT0xVTU5QUk9QRVJUWShvYmplY3RfaWQoVEFCTEVfU0NIRU1BICsgJy4nICsgVEFCTEVfTkFNRSksIENPTFVNTl9OQU1FLCAnSXNJZGVudGl0eScpIEFTIGlzSWRlbnRpdHlcbiAgICAgICAgRlJPTSBbSU5GT1JNQVRJT05fU0NIRU1BXS5bQ09MVU1OU11cbiAgICAgICAgV0hFUkUgW1RBQkxFX05BTUVdID0gJHt0aGlzLmRyaXZlci5xdW90ZSh0aGlzLmdldE5hbWUoKSl9XG4gICAgICBgKVxuICAgICAgY29uc3QgY29sdW1ucyA9IFtdXG5cbiAgICAgIGZvciAoY29uc3QgZGF0YSBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbih0aGlzLCBkYXRhKVxuXG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb2x1bW5zXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEZvcmVpZ25LZXlzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERyaXZlcigpLl9jYWNoZWRUYWJsZVNjaGVtYU1ldGFkYXRhKHRoaXMuZ2V0TmFtZSgpLCBcImZvcmVpZ25LZXlzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICBmay5uYW1lIEFTIENPTlNUUkFJTlRfTkFNRSxcbiAgICAgICAgICAgIHRwLm5hbWUgQVMgUGFyZW50VGFibGUsXG4gICAgICAgICAgICByZWYubmFtZSBBUyBSZWZlcmVuY2VkVGFibGUsXG4gICAgICAgICAgICBjcC5uYW1lIEFTIFBhcmVudENvbHVtbixcbiAgICAgICAgICAgIGNyZWYubmFtZSBBUyBSZWZlcmVuY2VkQ29sdW1uLFxuICAgICAgICAgICAgdHAubmFtZSBBUyBUYWJsZU5hbWVcbiAgICAgICAgRlJPTSBzeXMuZm9yZWlnbl9rZXlzIGZrXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLmZvcmVpZ25fa2V5X2NvbHVtbnMgZmtjXG4gICAgICAgICAgICBPTiBma2MuY29uc3RyYWludF9vYmplY3RfaWQgPSBmay5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMudGFibGVzIHRwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IHRwLm9iamVjdF9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy5jb2x1bW5zIGNwXG4gICAgICAgICAgICBPTiBma2MucGFyZW50X29iamVjdF9pZCA9IGNwLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5wYXJlbnRfY29sdW1uX2lkID0gY3AuY29sdW1uX2lkXG4gICAgICAgIElOTkVSIEpPSU4gc3lzLnRhYmxlcyByZWZcbiAgICAgICAgICAgIE9OIGZrYy5yZWZlcmVuY2VkX29iamVjdF9pZCA9IHJlZi5vYmplY3RfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBjcmVmXG4gICAgICAgICAgICBPTiBma2MucmVmZXJlbmNlZF9vYmplY3RfaWQgPSBjcmVmLm9iamVjdF9pZFxuICAgICAgICAgICAgQU5EIGZrYy5yZWZlcmVuY2VkX2NvbHVtbl9pZCA9IGNyZWYuY29sdW1uX2lkXG4gICAgICAgIFdIRVJFIHRwLm5hbWUgPSAke3RoaXMuZHJpdmVyLnF1b3RlKHRoaXMuZ2V0TmFtZSgpKX1cbiAgICAgICAgT1JERVIgQlkgQ09OU1RSQUlOVF9OQU1FLCBQYXJlbnRUYWJsZSwgUmVmZXJlbmNlZFRhYmxlO1xuICAgICAgYFxuXG4gICAgICBjb25zdCBmb3JlaWduS2V5Um93cyA9IGF3YWl0IHRoaXMuZHJpdmVyLnF1ZXJ5KHNxbClcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlzID0gW11cblxuICAgICAgZm9yIChjb25zdCBmb3JlaWduS2V5Um93IG9mIGZvcmVpZ25LZXlSb3dzKSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBuZXcgRm9yZWlnbktleShmb3JlaWduS2V5Um93KVxuXG4gICAgICAgIGZvcmVpZ25LZXlzLnB1c2goZm9yZWlnbktleSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcmVpZ25LZXlzXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldEluZGV4ZXMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkuX2NhY2hlZFRhYmxlU2NoZW1hTWV0YWRhdGEodGhpcy5nZXROYW1lKCksIFwiaW5kZXhlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcbiAgICAgIGNvbnN0IHNxbCA9IGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgc3lzLnRhYmxlcy5uYW1lIEFTIHRhYmxlX25hbWUsXG4gICAgICAgICAgc3lzLmNvbHVtbnMubmFtZSBBUyBjb2x1bW5fbmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhlcy5uYW1lIEFTIGluZGV4X25hbWUsXG4gICAgICAgICAgc3lzLmluZGV4ZXMuaXNfdW5pcXVlLFxuICAgICAgICAgIHN5cy5pbmRleGVzLmlzX3ByaW1hcnlfa2V5XG4gICAgICAgIEZST00gc3lzLmluZGV4ZXNcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuaW5kZXhfY29sdW1ucyBPTiBzeXMuaW5kZXhlcy5vYmplY3RfaWQgPSBzeXMuaW5kZXhfY29sdW1ucy5vYmplY3RfaWQgQU5EIHN5cy5pbmRleGVzLmluZGV4X2lkID0gc3lzLmluZGV4X2NvbHVtbnMuaW5kZXhfaWRcbiAgICAgICAgSU5ORVIgSk9JTiBzeXMuY29sdW1ucyBPTiBzeXMuaW5kZXhfY29sdW1ucy5vYmplY3RfaWQgPSBzeXMuY29sdW1ucy5vYmplY3RfaWQgQU5EIHN5cy5pbmRleF9jb2x1bW5zLmNvbHVtbl9pZCA9IHN5cy5jb2x1bW5zLmNvbHVtbl9pZFxuICAgICAgICBJTk5FUiBKT0lOIHN5cy50YWJsZXMgT04gc3lzLmluZGV4ZXMub2JqZWN0X2lkID0gc3lzLnRhYmxlcy5vYmplY3RfaWRcbiAgICAgICAgV0hFUkVcbiAgICAgICAgICBzeXMudGFibGVzLm5hbWUgPSAke29wdGlvbnMucXVvdGUodGhpcy5nZXROYW1lKCkpfSBBTkRcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5pc19pbmNsdWRlZF9jb2x1bW4gPSAwXG4gICAgICAgIE9SREVSIEJZXG4gICAgICAgICAgc3lzLmluZGV4ZXMubmFtZSxcbiAgICAgICAgICBzeXMuaW5kZXhfY29sdW1ucy5rZXlfb3JkaW5hbFxuICAgICAgYFxuXG4gICAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXREcml2ZXIoKS5xdWVyeShzcWwpXG4gICAgICBjb25zdCBpbmRleGVzID0gW11cbiAgICAgIGNvbnN0IGluZGV4Um93cyA9IHJvd3MubWFwKChyb3cpID0+IG5vcm1hbGl6ZUluZGV4TWV0YWRhdGFSb3cocm93KSlcblxuICAgICAgZm9yIChjb25zdCBpbmRleERhdGEgb2YgZ3JvdXBNc3NxbEluZGV4Um93cyhpbmRleFJvd3MpKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbmV3IENvbHVtbnNJbmRleCh0aGlzLCBpbmRleERhdGEpXG5cbiAgICAgICAgaW5kZXhlcy5wdXNoKGluZGV4KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlc1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgbmFtZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdGFibGUgbmFtZS5cbiAgICovXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoZGlnZyh0aGlzLmRhdGEsIFwiVEFCTEVfTkFNRVwiKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHRydW5jYXRlLlxuICAgKiBAcGFyYW0ge3tjYXNjYWRlOiBib29sZWFufX0gW2FyZ3NdIC0gVHJ1bmNhdGUgb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgPz4+Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSB0cnVuY2F0ZS5cbiAgICovXG4gIGFzeW5jIHRydW5jYXRlKGFyZ3MpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRoaXMuZ2V0RHJpdmVyKCkuX2Fzc2VydE5vdFJlYWRPbmx5KClcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYFRSVU5DQVRFIFRBQkxFICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aChcIlF1ZXJ5IGZhaWxlZCAnQ2Fubm90IHRydW5jYXRlIHRhYmxlXCIpKSB7XG4gICAgICAgIC8vIFRydW5jYXRlIHRhYmxlIGlzIHJlYWxseSBidWdneSBmb3Igc29tZSByZWFzb24gLSBmYWxsIGJhY2sgdG8gZGVsZXRlIGFsbCByb3dzIGluc3RlYWRcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RHJpdmVyKCkucXVlcnkoYERFTEVURSBGUk9NICR7dGhpcy5nZXRPcHRpb25zKCkucXVvdGVUYWJsZU5hbWUodGhpcy5nZXROYW1lKCkpfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/mysql/sql/alter-table.js"],"names":[],"mappings":"AAKA;CA0CC;2BA7C0B,oCAAoC"}
1
+ {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/mysql/sql/alter-table.js"],"names":[],"mappings":"AAKA;CAuDC;2BA1D0B,oCAAoC"}
@@ -2,6 +2,17 @@
2
2
  import AlterTableBase from "../../../query/alter-table-base.js";
3
3
  import TableColumn from "../../../table-data/table-column.js";
4
4
  export default class VelociousDatabaseConnectionDriversMysqlSqlAlterTable extends AlterTableBase {
5
+ /**
6
+ * Runs get drop foreign key sql.
7
+ * @param {import("../../../table-data/table-foreign-key.js").default} foreignKey - Foreign key to drop.
8
+ * @returns {string} - SQL fragment that removes the foreign key.
9
+ */
10
+ getDropForeignKeySQL(foreignKey) {
11
+ const name = foreignKey.getName();
12
+ if (!name)
13
+ throw new Error(`Cannot remove unnamed foreign key on ${foreignKey.getTableName()}.${foreignKey.getColumnName()}`);
14
+ return `DROP FOREIGN KEY ${this.getOptions().quoteIndexName(name)}`;
15
+ }
5
16
  /**
6
17
  * Builds MySQL ALTER TABLE statements, adding indexes atomically with columns.
7
18
  * @returns {Promise<string[]>} - Resolves with SQL statements.
@@ -37,4 +48,4 @@ export default class VelociousDatabaseConnectionDriversMysqlSqlAlterTable extend
37
48
  return [sql];
38
49
  }
39
50
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9teXNxbC9zcWwvYWx0ZXItdGFibGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sY0FBYyxNQUFNLG9DQUFvQyxDQUFBO0FBQy9ELE9BQU8sV0FBVyxNQUFNLHFDQUFxQyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0RBQXFELFNBQVEsY0FBYztJQUM5Rjs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFM0MsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQTtRQUV0RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsR0FBRyxJQUFJLE9BQU8sQ0FBQTtZQUVkLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFBRSxHQUFHLElBQUksU0FBUyxDQUFBO1lBRXZDLEdBQUcsSUFBSSxRQUFRLENBQUE7WUFFZixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUE7WUFFakMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsR0FBRyxJQUFJLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFBO1lBQ2hELENBQUM7WUFFRCxHQUFHLElBQUksSUFBSSxDQUFBO1lBQ1gsR0FBRyxJQUFJLEtBQUs7aUJBQ1QsVUFBVSxFQUFFO2lCQUNaLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNkLE1BQU0sVUFBVSxHQUFHLE1BQU0sWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO2dCQUU1RSxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDNUMsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNiLEdBQUcsSUFBSSxHQUFHLENBQUE7UUFDWixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBBbHRlclRhYmxlQmFzZSBmcm9tIFwiLi4vLi4vLi4vcXVlcnkvYWx0ZXItdGFibGUtYmFzZS5qc1wiXG5pbXBvcnQgVGFibGVDb2x1bW4gZnJvbSBcIi4uLy4uLy4uL3RhYmxlLWRhdGEvdGFibGUtY29sdW1uLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VDb25uZWN0aW9uRHJpdmVyc015c3FsU3FsQWx0ZXJUYWJsZSBleHRlbmRzIEFsdGVyVGFibGVCYXNlIHtcbiAgLyoqXG4gICAqIEJ1aWxkcyBNeVNRTCBBTFRFUiBUQUJMRSBzdGF0ZW1lbnRzLCBhZGRpbmcgaW5kZXhlcyBhdG9taWNhbGx5IHdpdGggY29sdW1ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSAtIFJlc29sdmVzIHdpdGggU1FMIHN0YXRlbWVudHMuXG4gICAqL1xuICBhc3luYyB0b1NRTHMoKSB7XG4gICAgY29uc3Qgc3FscyA9IGF3YWl0IHN1cGVyLnRvU1FMcygpXG4gICAgY29uc3QgaW5kZXhlcyA9IHRoaXMudGFibGVEYXRhLmdldEluZGV4ZXMoKVxuXG4gICAgaWYgKGluZGV4ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gc3Fsc1xuICAgIGlmIChzcWxzLmxlbmd0aCAhPT0gMSkgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgb25lIE15U1FMIEFMVEVSIFRBQkxFIHN0YXRlbWVudCB3aGVuIGFkZGluZyBpbmRleGVzXCIpXG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcbiAgICBsZXQgc3FsID0gc3Fsc1swXVxuXG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBpbmRleGVzKSB7XG4gICAgICBzcWwgKz0gXCIsIEFERFwiXG5cbiAgICAgIGlmIChpbmRleC5nZXRVbmlxdWUoKSkgc3FsICs9IFwiIFVOSVFVRVwiXG5cbiAgICAgIHNxbCArPSBcIiBJTkRFWFwiXG5cbiAgICAgIGNvbnN0IGluZGV4TmFtZSA9IGluZGV4LmdldE5hbWUoKVxuXG4gICAgICBpZiAodHlwZW9mIGluZGV4TmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzcWwgKz0gYCAke29wdGlvbnMucXVvdGVJbmRleE5hbWUoaW5kZXhOYW1lKX1gXG4gICAgICB9XG5cbiAgICAgIHNxbCArPSBcIiAoXCJcbiAgICAgIHNxbCArPSBpbmRleFxuICAgICAgICAuZ2V0Q29sdW1ucygpXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBjb2x1bW4gaW5zdGFuY2VvZiBUYWJsZUNvbHVtbiA/IGNvbHVtbi5nZXROYW1lKCkgOiBjb2x1bW5cblxuICAgICAgICAgIHJldHVybiBvcHRpb25zLnF1b3RlQ29sdW1uTmFtZShjb2x1bW5OYW1lKVxuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIiwgXCIpXG4gICAgICBzcWwgKz0gXCIpXCJcbiAgICB9XG5cbiAgICByZXR1cm4gW3NxbF1cbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZHJpdmVycy9teXNxbC9zcWwvYWx0ZXItdGFibGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sY0FBYyxNQUFNLG9DQUFvQyxDQUFBO0FBQy9ELE9BQU8sV0FBVyxNQUFNLHFDQUFxQyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0RBQXFELFNBQVEsY0FBYztJQUM5Rjs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsVUFBVTtRQUM3QixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFakMsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUU3SCxPQUFPLG9CQUFvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUUzQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFBO1FBRXRHLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFakIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixHQUFHLElBQUksT0FBTyxDQUFBO1lBRWQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUFFLEdBQUcsSUFBSSxTQUFTLENBQUE7WUFFdkMsR0FBRyxJQUFJLFFBQVEsQ0FBQTtZQUVmLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUVqQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxHQUFHLElBQUksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUE7WUFDaEQsQ0FBQztZQUVELEdBQUcsSUFBSSxJQUFJLENBQUE7WUFDWCxHQUFHLElBQUksS0FBSztpQkFDVCxVQUFVLEVBQUU7aUJBQ1osR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxVQUFVLEdBQUcsTUFBTSxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7Z0JBRTVFLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM1QyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2IsR0FBRyxJQUFJLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFsdGVyVGFibGVCYXNlIGZyb20gXCIuLi8uLi8uLi9xdWVyeS9hbHRlci10YWJsZS1iYXNlLmpzXCJcbmltcG9ydCBUYWJsZUNvbHVtbiBmcm9tIFwiLi4vLi4vLi4vdGFibGUtZGF0YS90YWJsZS1jb2x1bW4uanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZUNvbm5lY3Rpb25Ecml2ZXJzTXlzcWxTcWxBbHRlclRhYmxlIGV4dGVuZHMgQWx0ZXJUYWJsZUJhc2Uge1xuICAvKipcbiAgICogUnVucyBnZXQgZHJvcCBmb3JlaWduIGtleSBzcWwuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vLi4vdGFibGUtZGF0YS90YWJsZS1mb3JlaWduLWtleS5qc1wiKS5kZWZhdWx0fSBmb3JlaWduS2V5IC0gRm9yZWlnbiBrZXkgdG8gZHJvcC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBTUUwgZnJhZ21lbnQgdGhhdCByZW1vdmVzIHRoZSBmb3JlaWduIGtleS5cbiAgICovXG4gIGdldERyb3BGb3JlaWduS2V5U1FMKGZvcmVpZ25LZXkpIHtcbiAgICBjb25zdCBuYW1lID0gZm9yZWlnbktleS5nZXROYW1lKClcblxuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVtb3ZlIHVubmFtZWQgZm9yZWlnbiBrZXkgb24gJHtmb3JlaWduS2V5LmdldFRhYmxlTmFtZSgpfS4ke2ZvcmVpZ25LZXkuZ2V0Q29sdW1uTmFtZSgpfWApXG5cbiAgICByZXR1cm4gYERST1AgRk9SRUlHTiBLRVkgJHt0aGlzLmdldE9wdGlvbnMoKS5xdW90ZUluZGV4TmFtZShuYW1lKX1gXG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIE15U1FMIEFMVEVSIFRBQkxFIHN0YXRlbWVudHMsIGFkZGluZyBpbmRleGVzIGF0b21pY2FsbHkgd2l0aCBjb2x1bW5zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cy5cbiAgICovXG4gIGFzeW5jIHRvU1FMcygpIHtcbiAgICBjb25zdCBzcWxzID0gYXdhaXQgc3VwZXIudG9TUUxzKClcbiAgICBjb25zdCBpbmRleGVzID0gdGhpcy50YWJsZURhdGEuZ2V0SW5kZXhlcygpXG5cbiAgICBpZiAoaW5kZXhlcy5sZW5ndGggPT09IDApIHJldHVybiBzcWxzXG4gICAgaWYgKHNxbHMubGVuZ3RoICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBvbmUgTXlTUUwgQUxURVIgVEFCTEUgc3RhdGVtZW50IHdoZW4gYWRkaW5nIGluZGV4ZXNcIilcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuICAgIGxldCBzcWwgPSBzcWxzWzBdXG5cbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGluZGV4ZXMpIHtcbiAgICAgIHNxbCArPSBcIiwgQUREXCJcblxuICAgICAgaWYgKGluZGV4LmdldFVuaXF1ZSgpKSBzcWwgKz0gXCIgVU5JUVVFXCJcblxuICAgICAgc3FsICs9IFwiIElOREVYXCJcblxuICAgICAgY29uc3QgaW5kZXhOYW1lID0gaW5kZXguZ2V0TmFtZSgpXG5cbiAgICAgIGlmICh0eXBlb2YgaW5kZXhOYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHNxbCArPSBgICR7b3B0aW9ucy5xdW90ZUluZGV4TmFtZShpbmRleE5hbWUpfWBcbiAgICAgIH1cblxuICAgICAgc3FsICs9IFwiIChcIlxuICAgICAgc3FsICs9IGluZGV4XG4gICAgICAgIC5nZXRDb2x1bW5zKClcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGNvbHVtbiBpbnN0YW5jZW9mIFRhYmxlQ29sdW1uID8gY29sdW1uLmdldE5hbWUoKSA6IGNvbHVtblxuXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMucXVvdGVDb2x1bW5OYW1lKGNvbHVtbk5hbWUpXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiLCBcIilcbiAgICAgIHNxbCArPSBcIilcIlxuICAgIH1cblxuICAgIHJldHVybiBbc3FsXVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"AAMA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IA6CpB,oBAEC;IAED,eAEC;IAED,gBAEC;IAYD,eAMC;CACF;uBAvFsB,mBAAmB"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/column.js"],"names":[],"mappings":"AAKA;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,EAM3B;IAFC,0BAAgB;IAChB,0CAAkB;IAqBpB,oBAEC;IAED,eAEC;IAED,gBAEC;IAYD,eAMC;CACF;uBA9DsB,mBAAmB"}
@@ -1,6 +1,5 @@
1
1
  // @ts-check
2
2
  import BaseColumn from "../base-column.js";
3
- import ColumnsIndex from "./columns-index.js";
4
3
  import { digg } from "diggerize";
5
4
  export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
6
5
  /**
@@ -20,28 +19,8 @@ export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
20
19
  return digg(this, "data", "is_primary_key") === 1;
21
20
  }
22
21
  async getIndexes() {
23
- const options = this.getOptions();
24
- const indexesRows = await this.table.getDriver().query(`
25
- SELECT
26
- pg_attribute.attname AS column_name,
27
- pg_index.indexrelid::regclass as index_name,
28
- pg_class.relnamespace::regnamespace as schema_name,
29
- pg_class.relname as table_name,
30
- pg_index.indisprimary as is_primary_key,
31
- pg_index.indisunique as is_unique
32
- FROM pg_index
33
- JOIN pg_class ON pg_class.oid = pg_index.indrelid
34
- JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = ANY(pg_index.indkey)
35
- WHERE
36
- pg_attribute.attname = ${options.quote(this.getName())} AND
37
- pg_class.relname = ${options.quote(this.getTable().getName())}
38
- `);
39
- const indexes = [];
40
- for (const indexRow of indexesRows) {
41
- const columnsIndex = new ColumnsIndex(this.getTable(), indexRow);
42
- indexes.push(columnsIndex);
43
- }
44
- return indexes;
22
+ const indexes = await this.getTable().getIndexes();
23
+ return indexes.filter((index) => index.getColumnNames().includes(this.getName()));
45
24
  }
46
25
  getDefault() {
47
26
  return digg(this, "data", "column_default");
@@ -71,4 +50,4 @@ export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumn {
71
50
  return digg(this, "data", "data_type");
72
51
  }
73
52
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvcGdzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLFlBQVksTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFBO0lBQ3ZHLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFakMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7O2lDQVkxQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzs2QkFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDaEUsQ0FBQyxDQUFBO1FBRUYsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWxCLEtBQUssTUFBTSxRQUFRLElBQUksV0FBVyxFQUFFLENBQUM7WUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBRWhFLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUE7SUFDMUQsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVuRCxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUU1QyxJQUFJLFFBQVEsSUFBSSxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFFM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb2x1bW4gZnJvbSBcIi4uL2Jhc2UtY29sdW1uLmpzXCJcbmltcG9ydCBDb2x1bW5zSW5kZXggZnJvbSBcIi4vY29sdW1ucy1pbmRleC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHQoKSA9PSBgbmV4dHZhbCgnJHt0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpfV8ke3RoaXMuZ2V0TmFtZSgpfV9zZXEnOjpyZWdjbGFzcylgXG4gIH1cblxuICBnZXRQcmltYXJ5S2V5KCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX3ByaW1hcnlfa2V5XCIpID09PSAxXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKVxuXG4gICAgY29uc3QgaW5kZXhlc1Jvd3MgPSBhd2FpdCB0aGlzLnRhYmxlLmdldERyaXZlcigpLnF1ZXJ5KGBcbiAgICAgIFNFTEVDVFxuICAgICAgICBwZ19hdHRyaWJ1dGUuYXR0bmFtZSBBUyBjb2x1bW5fbmFtZSxcbiAgICAgICAgcGdfaW5kZXguaW5kZXhyZWxpZDo6cmVnY2xhc3MgYXMgaW5kZXhfbmFtZSxcbiAgICAgICAgcGdfY2xhc3MucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UgYXMgc2NoZW1hX25hbWUsXG4gICAgICAgIHBnX2NsYXNzLnJlbG5hbWUgYXMgdGFibGVfbmFtZSxcbiAgICAgICAgcGdfaW5kZXguaW5kaXNwcmltYXJ5IGFzIGlzX3ByaW1hcnlfa2V5LFxuICAgICAgICBwZ19pbmRleC5pbmRpc3VuaXF1ZSBhcyBpc191bmlxdWVcbiAgICAgIEZST00gcGdfaW5kZXhcbiAgICAgIEpPSU4gcGdfY2xhc3MgT04gcGdfY2xhc3Mub2lkID0gcGdfaW5kZXguaW5kcmVsaWRcbiAgICAgIEpPSU4gcGdfYXR0cmlidXRlIE9OIHBnX2F0dHJpYnV0ZS5hdHRyZWxpZCA9IHBnX2NsYXNzLm9pZCBBTkQgcGdfYXR0cmlidXRlLmF0dG51bSA9IEFOWShwZ19pbmRleC5pbmRrZXkpXG4gICAgICBXSEVSRVxuICAgICAgICBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICR7b3B0aW9ucy5xdW90ZSh0aGlzLmdldE5hbWUoKSl9IEFORFxuICAgICAgICBwZ19jbGFzcy5yZWxuYW1lID0gJHtvcHRpb25zLnF1b3RlKHRoaXMuZ2V0VGFibGUoKS5nZXROYW1lKCkpfVxuICAgIGApXG5cbiAgICBjb25zdCBpbmRleGVzID0gW11cblxuICAgIGZvciAoY29uc3QgaW5kZXhSb3cgb2YgaW5kZXhlc1Jvd3MpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnNJbmRleCA9IG5ldyBDb2x1bW5zSW5kZXgodGhpcy5nZXRUYWJsZSgpLCBpbmRleFJvdylcblxuICAgICAgaW5kZXhlcy5wdXNoKGNvbHVtbnNJbmRleClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlc1xuICB9XG5cbiAgZ2V0RGVmYXVsdCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjb2x1bW5fZGVmYXVsdFwiKVxuICB9XG5cbiAgZ2V0TWF4TGVuZ3RoKCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aFwiKVxuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjb2x1bW5fbmFtZVwiKVxuICB9XG5cbiAgZ2V0Tm90ZXMoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX2NvbW1lbnRcIikgfHwgdW5kZWZpbmVkXG4gIH1cblxuICBnZXROdWxsKCkge1xuICAgIGNvbnN0IG51bGxWYWx1ZSA9IGRpZ2codGhpcywgXCJkYXRhXCIsIFwiaXNfbnVsbGFibGVcIilcblxuICAgIGlmIChudWxsVmFsdWUgPT0gXCJOT1wiKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGNvbnN0IHR5cGVIaW50ID0gdGhpcy5nZXRUeXBlSGludEZyb21Ob3RlcygpXG5cbiAgICBpZiAodHlwZUhpbnQgPT0gXCJib29sZWFuXCIpIHJldHVybiBcImJvb2xlYW5cIlxuXG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiZGF0YV90eXBlXCIpXG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvcGdzcWwvY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUNBQW9DLFNBQVEsVUFBVTtJQUN6RTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFBO0lBQ3ZHLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksU0FBUyxDQUFBO0lBQzFELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFFNUMsSUFBSSxRQUFRLElBQUksU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBRTNDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDeEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlQ29sdW1uIGZyb20gXCIuLi9iYXNlLWNvbHVtbi5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZURyaXZlcnNQZ3NxbENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9iYXNlLXRhYmxlLmpzXCIpLmRlZmF1bHR9IHRhYmxlIC0gVGFibGUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZSwgZGF0YSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICBnZXRBdXRvSW5jcmVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHQoKSA9PSBgbmV4dHZhbCgnJHt0aGlzLmdldFRhYmxlKCkuZ2V0TmFtZSgpfV8ke3RoaXMuZ2V0TmFtZSgpfV9zZXEnOjpyZWdjbGFzcylgXG4gIH1cblxuICBnZXRQcmltYXJ5S2V5KCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX3ByaW1hcnlfa2V5XCIpID09PSAxXG4gIH1cblxuICBhc3luYyBnZXRJbmRleGVzKCkge1xuICAgIGNvbnN0IGluZGV4ZXMgPSBhd2FpdCB0aGlzLmdldFRhYmxlKCkuZ2V0SW5kZXhlcygpXG5cbiAgICByZXR1cm4gaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PiBpbmRleC5nZXRDb2x1bW5OYW1lcygpLmluY2x1ZGVzKHRoaXMuZ2V0TmFtZSgpKSlcbiAgfVxuXG4gIGdldERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX2RlZmF1bHRcIilcbiAgfVxuXG4gIGdldE1heExlbmd0aCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImRhdGFcIiwgXCJjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGhcIilcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJkYXRhXCIsIFwiY29sdW1uX25hbWVcIilcbiAgfVxuXG4gIGdldE5vdGVzKCkge1xuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImNvbHVtbl9jb21tZW50XCIpIHx8IHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0TnVsbCgpIHtcbiAgICBjb25zdCBudWxsVmFsdWUgPSBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImlzX251bGxhYmxlXCIpXG5cbiAgICBpZiAobnVsbFZhbHVlID09IFwiTk9cIikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBjb25zdCB0eXBlSGludCA9IHRoaXMuZ2V0VHlwZUhpbnRGcm9tTm90ZXMoKVxuXG4gICAgaWYgKHR5cGVIaW50ID09IFwiYm9vbGVhblwiKSByZXR1cm4gXCJib29sZWFuXCJcblxuICAgIHJldHVybiBkaWdnKHRoaXMsIFwiZGF0YVwiLCBcImRhdGFfdHlwZVwiKVxuICB9XG59XG4iXX0=
@@ -1,4 +1,45 @@
1
+ /**
2
+ * PgsqlColumnsIndexDataType type.
3
+ * @typedef {object} PgsqlColumnsIndexDataType
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
+ */
1
10
  export default class VelociousDatabaseDriversPgsqlColumn extends BaseColumnsIndex {
11
+ /**
12
+ * Runs constructor.
13
+ * @param {import("../base-table.js").default} table - Table.
14
+ * @param {PgsqlColumnsIndexDataType} data - Grouped index metadata.
15
+ */
16
+ constructor(table: import("../base-table.js").default, data: PgsqlColumnsIndexDataType);
17
+ indexData: PgsqlColumnsIndexDataType;
2
18
  }
19
+ /**
20
+ * PgsqlColumnsIndexDataType type.
21
+ */
22
+ export type PgsqlColumnsIndexDataType = {
23
+ /**
24
+ * - Ordered index column names.
25
+ */
26
+ columnNames: string[];
27
+ /**
28
+ * - Index name.
29
+ */
30
+ index_name: string;
31
+ /**
32
+ * - Whether the index is primary.
33
+ */
34
+ is_primary_key: boolean;
35
+ /**
36
+ * - Whether the index is unique.
37
+ */
38
+ is_unique: boolean;
39
+ /**
40
+ * - Table name.
41
+ */
42
+ table_name: string;
43
+ };
3
44
  import BaseColumnsIndex from "../base-columns-index.js";
4
45
  //# sourceMappingURL=columns-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/columns-index.js"],"names":[],"mappings":"AAIA;CACC;6BAH4B,0BAA0B"}
1
+ {"version":3,"file":"columns-index.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/pgsql/columns-index.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH;IACE;;;;OAIG;IACH,mBAHW,OAAO,kBAAkB,EAAE,OAAO,QAClC,yBAAyB,EAKnC;IADC,qCAAqB;CAmBxB;;;;;;;;iBAlCa,MAAM,EAAE;;;;gBACR,MAAM;;;;oBACN,OAAO;;;;eACP,OAAO;;;;gBACP,MAAM;;6BAVS,0BAA0B"}