@shaxpir/squilt 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +289 -1
- package/dist/ast/AlterTableQuery.d.ts +32 -0
- package/dist/ast/AlterTableQuery.js +60 -0
- package/dist/ast/BetweenExpression.d.ts +10 -0
- package/dist/ast/BetweenExpression.js +18 -0
- package/dist/ast/CastExpression.d.ts +13 -0
- package/dist/ast/CastExpression.js +25 -0
- package/dist/ast/CollateExpression.d.ts +18 -0
- package/dist/ast/CollateExpression.js +30 -0
- package/dist/ast/CreateIndexQuery.d.ts +25 -0
- package/dist/ast/CreateIndexQuery.js +64 -0
- package/dist/ast/CreateTableQuery.d.ts +57 -0
- package/dist/ast/CreateTableQuery.js +79 -0
- package/dist/ast/CreateViewQuery.d.ts +34 -0
- package/dist/ast/CreateViewQuery.js +61 -0
- package/dist/ast/CreateVirtualTableQuery.d.ts +32 -0
- package/dist/ast/CreateVirtualTableQuery.js +74 -0
- package/dist/ast/DeleteQuery.d.ts +17 -0
- package/dist/ast/DeleteQuery.js +43 -0
- package/dist/ast/DropIndexQuery.d.ts +14 -0
- package/dist/ast/DropIndexQuery.js +35 -0
- package/dist/ast/DropTableQuery.d.ts +14 -0
- package/dist/ast/DropTableQuery.js +35 -0
- package/dist/ast/DropViewQuery.d.ts +11 -0
- package/dist/ast/DropViewQuery.js +24 -0
- package/dist/ast/FunctionExpression.d.ts +21 -0
- package/dist/ast/FunctionExpression.js +40 -1
- package/dist/ast/FunctionName.d.ts +1 -1
- package/dist/ast/FunctionName.js +1 -1
- package/dist/ast/InsertQuery.d.ts +24 -1
- package/dist/ast/InsertQuery.js +49 -1
- package/dist/ast/Operator.d.ts +2 -0
- package/dist/ast/Operator.js +3 -1
- package/dist/ast/SelectQuery.d.ts +4 -0
- package/dist/ast/SelectQuery.js +11 -1
- package/dist/ast/SubqueryExpression.d.ts +18 -0
- package/dist/ast/SubqueryExpression.js +27 -0
- package/dist/ast/UpdateQuery.d.ts +24 -0
- package/dist/ast/UpdateQuery.js +51 -0
- package/dist/ast/WindowExpression.d.ts +51 -0
- package/dist/ast/WindowExpression.js +61 -0
- package/dist/ast/WindowSpecification.d.ts +46 -0
- package/dist/ast/WindowSpecification.js +60 -0
- package/dist/builder/QueryBuilder.d.ts +20 -0
- package/dist/builder/QueryBuilder.js +41 -1
- package/dist/builder/Shorthand.d.ts +51 -0
- package/dist/builder/Shorthand.js +125 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +59 -3
- package/dist/renderer/CompactQueryRenderer.d.ts +34 -2
- package/dist/renderer/CompactQueryRenderer.js +272 -2
- package/dist/renderer/IndentedQueryRenderer.d.ts +34 -2
- package/dist/renderer/IndentedQueryRenderer.js +289 -3
- package/dist/renderer/QueryRenderer.d.ts +11 -1
- package/dist/renderer/QueryRenderer.js +1 -1
- package/dist/validate/CommonQueryValidator.d.ts +31 -1
- package/dist/validate/CommonQueryValidator.js +253 -4
- package/dist/validate/QueryValidator.d.ts +10 -1
- package/dist/validate/QueryValidator.js +1 -1
- package/dist/validate/SQLiteQueryValidator.d.ts +16 -1
- package/dist/validate/SQLiteQueryValidator.js +32 -3
- package/dist/visitor/ParamCollector.d.ts +30 -0
- package/dist/visitor/ParamCollector.js +109 -2
- package/dist/visitor/QueryIdentityTransformer.d.ts +30 -0
- package/dist/visitor/QueryIdentityTransformer.js +217 -2
- package/dist/visitor/SqlTreeNodeVisitor.d.ts +30 -0
- package/dist/visitor/SqlTreeNodeVisitor.js +1 -1
- package/package.json +4 -1
|
@@ -13,7 +13,7 @@ class SQLiteQueryValidator extends CommonQueryValidator_1.CommonQueryValidator {
|
|
|
13
13
|
'LOWER', 'UPPER', 'LENGTH', 'SUBSTR', 'TRIM', 'LTRIM', 'RTRIM',
|
|
14
14
|
'REPLACE', 'INSTR', 'QUOTE', 'CHAR', 'UNICODE', 'HEX', 'ZEROBLOB',
|
|
15
15
|
'COALESCE', 'IFNULL', 'NULLIF', 'TYPEOF', 'TOTAL_CHANGES', 'CHANGES',
|
|
16
|
-
'LAST_INSERT_ROWID',
|
|
16
|
+
'LAST_INSERT_ROWID', 'CONCAT',
|
|
17
17
|
// Aggregate functions
|
|
18
18
|
'COUNT', 'SUM', 'AVG', 'MIN', 'MAX', 'TOTAL', 'GROUP_CONCAT',
|
|
19
19
|
// Date and time functions
|
|
@@ -22,7 +22,13 @@ class SQLiteQueryValidator extends CommonQueryValidator_1.CommonQueryValidator {
|
|
|
22
22
|
'json', 'json_array', 'json_object', 'json_extract', 'json_insert',
|
|
23
23
|
'json_replace', 'json_set', 'json_remove', 'json_type', 'json_valid',
|
|
24
24
|
'json_quote', 'json_patch', 'json_array_length', 'json_group_array',
|
|
25
|
-
'json_group_object', 'json_each', 'json_tree'
|
|
25
|
+
'json_group_object', 'json_each', 'json_tree',
|
|
26
|
+
// Window functions
|
|
27
|
+
'ROW_NUMBER', 'RANK', 'DENSE_RANK', 'NTILE',
|
|
28
|
+
'LAG', 'LEAD', 'FIRST_VALUE', 'LAST_VALUE', 'NTH_VALUE',
|
|
29
|
+
'CUME_DIST', 'PERCENT_RANK',
|
|
30
|
+
// FTS5 functions
|
|
31
|
+
'bm25', 'highlight', 'snippet', 'offsets', 'matchinfo'
|
|
26
32
|
]);
|
|
27
33
|
this.supportedUnaryOperators = new Set([
|
|
28
34
|
Operator_1.Operator.NOT, Operator_1.Operator.PLUS, Operator_1.Operator.MINUS,
|
|
@@ -42,6 +48,14 @@ class SQLiteQueryValidator extends CommonQueryValidator_1.CommonQueryValidator {
|
|
|
42
48
|
super.visitInsertQuery(node);
|
|
43
49
|
// SQLite-specific validation (if any) can be added here
|
|
44
50
|
}
|
|
51
|
+
visitDeleteQuery(node) {
|
|
52
|
+
super.visitDeleteQuery(node);
|
|
53
|
+
// SQLite-specific validation (if any) can be added here
|
|
54
|
+
}
|
|
55
|
+
visitUpdateQuery(node) {
|
|
56
|
+
super.visitUpdateQuery(node);
|
|
57
|
+
// SQLite-specific validation (if any) can be added here
|
|
58
|
+
}
|
|
45
59
|
visitSelectQuery(node) {
|
|
46
60
|
super.visitSelectQuery(node);
|
|
47
61
|
if (node['_limit'] !== null && node['_limit'] !== undefined && !Number.isInteger(node['_limit'])) {
|
|
@@ -91,6 +105,21 @@ class SQLiteQueryValidator extends CommonQueryValidator_1.CommonQueryValidator {
|
|
|
91
105
|
visitInExpression(node) {
|
|
92
106
|
super.visitInExpression(node);
|
|
93
107
|
}
|
|
108
|
+
visitCreateVirtualTableQuery(node) {
|
|
109
|
+
super.visitCreateVirtualTableQuery(node);
|
|
110
|
+
// FTS5-specific validation
|
|
111
|
+
if (node.module === 'fts5') {
|
|
112
|
+
// Validate content table reference if specified
|
|
113
|
+
if (node.options.content) {
|
|
114
|
+
// Content table name should be a valid identifier
|
|
115
|
+
// Note: we can't validate that the table exists at this point
|
|
116
|
+
}
|
|
117
|
+
// If contentRowid is specified, content must also be specified
|
|
118
|
+
if (node.options.contentRowid && !node.options.content) {
|
|
119
|
+
throw new Error('FTS5 content_rowid requires content option to be specified');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
94
123
|
}
|
|
95
124
|
exports.SQLiteQueryValidator = SQLiteQueryValidator;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMaXRlUXVlcnlWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUvU1FMaXRlUXVlcnlWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0Esc0NBQTZDO0FBQzdDLDhDQUEyQztBQUszQyxpRUFBOEQ7QUFHOUQsTUFBYSxvQkFDWCxTQUFRLDJDQUFvQjtJQUQ5Qjs7UUFJVSx1QkFBa0IsR0FBc0IsSUFBSSxHQUFHLENBQUM7WUFDdEQsd0JBQXdCO1lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVk7WUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTztZQUM5RCxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVO1lBQ2pFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUztZQUNwRSxtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGNBQWM7WUFDNUQsMEJBQTBCO1lBQzFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVO1lBQ25ELGtCQUFrQjtZQUNsQixNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYTtZQUNsRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsWUFBWTtZQUNwRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQjtZQUNuRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVztTQUM5QyxD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Q3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBa0I7UUFDbEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFxQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsUUFBUSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWtCO1FBQ2xDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFwR0Qsb0RBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbkVhY2hGcm9tLCBUYWJsZUZyb20gfSBmcm9tIFwiLi4vYXN0L0Zyb21cIjtcbmltcG9ydCB7IEZ1bmN0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvRnVuY3Rpb25FeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBGdW5jdGlvbk5hbWUgfSBmcm9tIFwiLi4vYXN0L0Z1bmN0aW9uTmFtZVwiO1xuaW1wb3J0IHsgSW5FeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9JbkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEluc2VydFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9JbnNlcnRRdWVyeVwiO1xuaW1wb3J0IHsgSm9pbiwgSm9pblR5cGUgfSBmcm9tIFwiLi4vYXN0L0pvaW5cIjtcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSBcIi4uL2FzdC9PcGVyYXRvclwiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnkgfSBmcm9tIFwiLi4vYXN0L1NlbGVjdFF1ZXJ5XCI7XG5pbXBvcnQgeyBVbmFyeUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L1VuYXJ5RXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgV2l0aCB9IGZyb20gXCIuLi9hc3QvV2l0aFwiO1xuaW1wb3J0IHsgU3FsVHJlZU5vZGVWaXNpdG9yIH0gZnJvbSBcIi4uL3Zpc2l0b3IvU3FsVHJlZU5vZGVWaXNpdG9yXCI7XG5pbXBvcnQgeyBDb21tb25RdWVyeVZhbGlkYXRvciB9IGZyb20gXCIuL0NvbW1vblF1ZXJ5VmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBRdWVyeVZhbGlkYXRvciB9IGZyb20gXCIuL1F1ZXJ5VmFsaWRhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBTUUxpdGVRdWVyeVZhbGlkYXRvclxuICBleHRlbmRzIENvbW1vblF1ZXJ5VmFsaWRhdG9yXG4gIGltcGxlbWVudHMgUXVlcnlWYWxpZGF0b3IsIFNxbFRyZWVOb2RlVmlzaXRvcjx2b2lkPlxue1xuICBwcml2YXRlIHN1cHBvcnRlZEZ1bmN0aW9uczogU2V0PEZ1bmN0aW9uTmFtZT4gPSBuZXcgU2V0KFtcbiAgICAvLyBDb3JlIHNjYWxhciBmdW5jdGlvbnNcbiAgICAnQUJTJywgJ0NFSUwnLCAnRkxPT1InLCAnUk9VTkQnLCAnVFJVTkMnLCAnUkFORE9NJywgJ1JBTkRPTUJMT0InLFxuICAgICdMT1dFUicsICdVUFBFUicsICdMRU5HVEgnLCAnU1VCU1RSJywgJ1RSSU0nLCAnTFRSSU0nLCAnUlRSSU0nLFxuICAgICdSRVBMQUNFJywgJ0lOU1RSJywgJ1FVT1RFJywgJ0NIQVInLCAnVU5JQ09ERScsICdIRVgnLCAnWkVST0JMT0InLFxuICAgICdDT0FMRVNDRScsICdJRk5VTEwnLCAnTlVMTElGJywgJ1RZUEVPRicsICdUT1RBTF9DSEFOR0VTJywgJ0NIQU5HRVMnLFxuICAgICdMQVNUX0lOU0VSVF9ST1dJRCcsXG4gICAgLy8gQWdncmVnYXRlIGZ1bmN0aW9uc1xuICAgICdDT1VOVCcsICdTVU0nLCAnQVZHJywgJ01JTicsICdNQVgnLCAnVE9UQUwnLCAnR1JPVVBfQ09OQ0FUJyxcbiAgICAvLyBEYXRlIGFuZCB0aW1lIGZ1bmN0aW9uc1xuICAgICdEQVRFJywgJ1RJTUUnLCAnREFURVRJTUUnLCAnSlVMSUFOREFZJywgJ1NUUkZUSU1FJyxcbiAgICAvLyBKU09OMSBmdW5jdGlvbnNcbiAgICAnanNvbicsICdqc29uX2FycmF5JywgJ2pzb25fb2JqZWN0JywgJ2pzb25fZXh0cmFjdCcsICdqc29uX2luc2VydCcsXG4gICAgJ2pzb25fcmVwbGFjZScsICdqc29uX3NldCcsICdqc29uX3JlbW92ZScsICdqc29uX3R5cGUnLCAnanNvbl92YWxpZCcsXG4gICAgJ2pzb25fcXVvdGUnLCAnanNvbl9wYXRjaCcsICdqc29uX2FycmF5X2xlbmd0aCcsICdqc29uX2dyb3VwX2FycmF5JyxcbiAgICAnanNvbl9ncm91cF9vYmplY3QnLCAnanNvbl9lYWNoJywgJ2pzb25fdHJlZSdcbiAgXSk7XG5cbiAgcHJpdmF0ZSBzdXBwb3J0ZWRVbmFyeU9wZXJhdG9yczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgICBPcGVyYXRvci5OT1QsIE9wZXJhdG9yLlBMVVMsIE9wZXJhdG9yLk1JTlVTLFxuICAgIE9wZXJhdG9yLklTX05VTEwsIE9wZXJhdG9yLklTX05PVF9OVUxMLFxuICBdKTtcblxuICBwcml2YXRlIGlzV2l0aFJlY3Vyc2l2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShxdWVyeTogU2VsZWN0UXVlcnkgfCBJbnNlcnRRdWVyeSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgICBxdWVyeS5hY2NlcHQodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXQoKTogdm9pZCB7XG4gICAgc3VwZXIucmVzZXQoKTtcbiAgICB0aGlzLmlzV2l0aFJlY3Vyc2l2ZSA9IGZhbHNlO1xuICB9XG5cbiAgdmlzaXRJbnNlcnRRdWVyeShub2RlOiBJbnNlcnRRdWVyeSk6IHZvaWQge1xuICAgIHN1cGVyLnZpc2l0SW5zZXJ0UXVlcnkobm9kZSk7XG4gICAgLy8gU1FMaXRlLXNwZWNpZmljIHZhbGlkYXRpb24gKGlmIGFueSkgY2FuIGJlIGFkZGVkIGhlcmVcbiAgfVxuXG4gIHZpc2l0U2VsZWN0UXVlcnkobm9kZTogU2VsZWN0UXVlcnkpOiB2b2lkIHtcbiAgICBzdXBlci52aXNpdFNlbGVjdFF1ZXJ5KG5vZGUpO1xuICAgIGlmIChub2RlWydfbGltaXQnXSAhPT0gbnVsbCAmJiBub2RlWydfbGltaXQnXSAhPT0gdW5kZWZpbmVkICYmICFOdW1iZXIuaXNJbnRlZ2VyKG5vZGVbJ19saW1pdCddKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTUUxpdGUgTElNSVQgbXVzdCBiZSBhbiBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIGlmIChub2RlWydfb2Zmc2V0J10gIT09IG51bGwgJiYgbm9kZVsnX29mZnNldCddICE9PSB1bmRlZmluZWQgJiYgIU51bWJlci5pc0ludGVnZXIobm9kZVsnX29mZnNldCddKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTUUxpdGUgT0ZGU0VUIG11c3QgYmUgYW4gaW50ZWdlcicpO1xuICAgIH1cbiAgfVxuXG4gIHZpc2l0Sm9pbkNsYXVzZShub2RlOiBKb2luKTogdm9pZCB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gSm9pblR5cGUuUklHSFQgfHwgbm9kZS50eXBlID09PSBKb2luVHlwZS5GVUxMKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNRTGl0ZSBkb2VzIG5vdCBzdXBwb3J0ICR7bm9kZS50eXBlfSBKT0lOYCk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0Sm9pbkNsYXVzZShub2RlKTtcbiAgfVxuXG4gIHZpc2l0V2l0aENsYXVzZShub2RlOiBXaXRoKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlJlY3Vyc2l2ZSA9IHRoaXMuaXNXaXRoUmVjdXJzaXZlO1xuICAgIHRoaXMuaXNXaXRoUmVjdXJzaXZlID0gZmFsc2U7XG4gICAgbm9kZS5xdWVyeS5hY2NlcHQodGhpcyk7XG4gICAgaWYgKHRoaXMuaXNXaXRoUmVjdXJzaXZlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlY3Vyc2l2ZSBXSVRIIGNsYXVzZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyB2YWxpZGF0b3InKTtcbiAgICB9XG4gICAgdGhpcy5pc1dpdGhSZWN1cnNpdmUgPSBwcmV2UmVjdXJzaXZlO1xuICAgIHN1cGVyLnZpc2l0V2l0aENsYXVzZShub2RlKTtcbiAgfVxuXG4gIHZpc2l0RnVuY3Rpb25FeHByZXNzaW9uKG5vZGU6IEZ1bmN0aW9uRXhwcmVzc2lvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdXBwb3J0ZWRGdW5jdGlvbnMuaGFzKG5vZGUubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRnVuY3Rpb24gJHtub2RlLm5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQgaW4gU1FMaXRlYCk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0RnVuY3Rpb25FeHByZXNzaW9uKG5vZGUpO1xuICB9XG5cbiAgdmlzaXRUYWJsZUZyb20obm9kZTogVGFibGVGcm9tKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNXaXRoUmVjdXJzaXZlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlY3Vyc2l2ZSByZWZlcmVuY2UgdG8gV0lUSCBjbGF1c2UgZGV0ZWN0ZWQnKTtcbiAgICB9XG4gICAgc3VwZXIudmlzaXRUYWJsZUZyb20obm9kZSk7XG4gIH1cblxuICB2aXNpdEpzb25FYWNoRnJvbShub2RlOiBKc29uRWFjaEZyb20pOiB2b2lkIHtcbiAgICBzdXBlci52aXNpdEpzb25FYWNoRnJvbShub2RlKTtcbiAgfVxuXG4gIHZpc2l0VW5hcnlFeHByZXNzaW9uKG5vZGU6IFVuYXJ5RXhwcmVzc2lvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdXBwb3J0ZWRVbmFyeU9wZXJhdG9ycy5oYXMobm9kZS5vcGVyYXRvcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hcnkgb3BlcmF0b3IgJHtub2RlLm9wZXJhdG9yfSBpcyBub3Qgc3VwcG9ydGVkIGluIFNRTGl0ZWApO1xuICAgIH1cbiAgICBzdXBlci52aXNpdFVuYXJ5RXhwcmVzc2lvbihub2RlKTtcbiAgfVxuXG4gIHZpc2l0SW5FeHByZXNzaW9uKG5vZGU6IEluRXhwcmVzc2lvbik6IHZvaWQge1xuICAgIHN1cGVyLnZpc2l0SW5FeHByZXNzaW9uKG5vZGUpO1xuICB9XG59XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMaXRlUXVlcnlWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUvU1FMaXRlUXVlcnlWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsc0NBQTZDO0FBQzdDLDhDQUEyQztBQUszQyxpRUFBOEQ7QUFpQjlELE1BQWEsb0JBQ1gsU0FBUSwyQ0FBb0I7SUFEOUI7O1FBSVUsdUJBQWtCLEdBQXNCLElBQUksR0FBRyxDQUFDO1lBQ3RELHdCQUF3QjtZQUN4QixLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZO1lBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDOUQsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVTtZQUNqRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFNBQVM7WUFDcEUsbUJBQW1CLEVBQUUsUUFBUTtZQUM3QixzQkFBc0I7WUFDdEIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYztZQUM1RCwwQkFBMEI7WUFDMUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVU7WUFDbkQsa0JBQWtCO1lBQ2xCLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhO1lBQ2xFLGNBQWMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxZQUFZO1lBQ3BFLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCO1lBQ25FLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxX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SyxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLDJCQUEyQjtRQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsZ0RBQWdEO1lBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekIsa0RBQWtEO2dCQUNsRCw4REFBOEQ7WUFDaEUsQ0FBQztZQUVELCtEQUErRDtZQUMvRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdElELG9EQXNJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsdGVyVGFibGVRdWVyeSB9IGZyb20gXCIuLi9hc3QvQWx0ZXJUYWJsZVF1ZXJ5XCI7XG5pbXBvcnQgeyBDcmVhdGVJbmRleFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9DcmVhdGVJbmRleFF1ZXJ5XCI7XG5pbXBvcnQgeyBDcmVhdGVUYWJsZVF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9DcmVhdGVUYWJsZVF1ZXJ5XCI7XG5pbXBvcnQgeyBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB9IGZyb20gXCIuLi9hc3QvQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnlcIjtcbmltcG9ydCB7IENyZWF0ZVZpZXdRdWVyeSB9IGZyb20gXCIuLi9hc3QvQ3JlYXRlVmlld1F1ZXJ5XCI7XG5pbXBvcnQgeyBEZWxldGVRdWVyeSB9IGZyb20gXCIuLi9hc3QvRGVsZXRlUXVlcnlcIjtcbmltcG9ydCB7IERyb3BJbmRleFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9Ecm9wSW5kZXhRdWVyeVwiO1xuaW1wb3J0IHsgRHJvcFRhYmxlUXVlcnkgfSBmcm9tIFwiLi4vYXN0L0Ryb3BUYWJsZVF1ZXJ5XCI7XG5pbXBvcnQgeyBEcm9wVmlld1F1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9Ecm9wVmlld1F1ZXJ5XCI7XG5pbXBvcnQgeyBKc29uRWFjaEZyb20sIFRhYmxlRnJvbSB9IGZyb20gXCIuLi9hc3QvRnJvbVwiO1xuaW1wb3J0IHsgVXBkYXRlUXVlcnkgfSBmcm9tIFwiLi4vYXN0L1VwZGF0ZVF1ZXJ5XCI7XG5pbXBvcnQgeyBGdW5jdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0Z1bmN0aW9uRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgRnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4uL2FzdC9GdW5jdGlvbk5hbWVcIjtcbmltcG9ydCB7IEluRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvSW5FeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJbnNlcnRRdWVyeSB9IGZyb20gXCIuLi9hc3QvSW5zZXJ0UXVlcnlcIjtcbmltcG9ydCB7IEpvaW4sIEpvaW5UeXBlIH0gZnJvbSBcIi4uL2FzdC9Kb2luXCI7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gXCIuLi9hc3QvT3BlcmF0b3JcIjtcbmltcG9ydCB7IFNlbGVjdFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9TZWxlY3RRdWVyeVwiO1xuaW1wb3J0IHsgVW5hcnlFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9VbmFyeUV4cHJlc3Npb25cIjtcbmltcG9ydCB7IFdpdGggfSBmcm9tIFwiLi4vYXN0L1dpdGhcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgQ29tbW9uUXVlcnlWYWxpZGF0b3IgfSBmcm9tIFwiLi9Db21tb25RdWVyeVZhbGlkYXRvclwiO1xuaW1wb3J0IHsgUXVlcnlWYWxpZGF0b3IgfSBmcm9tIFwiLi9RdWVyeVZhbGlkYXRvclwiO1xuXG50eXBlIFZhbGlkYXRhYmxlUXVlcnkgPVxuICB8IFNlbGVjdFF1ZXJ5XG4gIHwgSW5zZXJ0UXVlcnlcbiAgfCBVcGRhdGVRdWVyeVxuICB8IERlbGV0ZVF1ZXJ5XG4gIHwgQ3JlYXRlVGFibGVRdWVyeVxuICB8IENyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5XG4gIHwgQ3JlYXRlSW5kZXhRdWVyeVxuICB8IENyZWF0ZVZpZXdRdWVyeVxuICB8IEFsdGVyVGFibGVRdWVyeVxuICB8IERyb3BUYWJsZVF1ZXJ5XG4gIHwgRHJvcEluZGV4UXVlcnlcbiAgfCBEcm9wVmlld1F1ZXJ5O1xuXG5leHBvcnQgY2xhc3MgU1FMaXRlUXVlcnlWYWxpZGF0b3JcbiAgZXh0ZW5kcyBDb21tb25RdWVyeVZhbGlkYXRvclxuICBpbXBsZW1lbnRzIFF1ZXJ5VmFsaWRhdG9yLCBTcWxUcmVlTm9kZVZpc2l0b3I8dm9pZD5cbntcbiAgcHJpdmF0ZSBzdXBwb3J0ZWRGdW5jdGlvbnM6IFNldDxGdW5jdGlvbk5hbWU+ID0gbmV3IFNldChbXG4gICAgLy8gQ29yZSBzY2FsYXIgZnVuY3Rpb25zXG4gICAgJ0FCUycsICdDRUlMJywgJ0ZMT09SJywgJ1JPVU5EJywgJ1RSVU5DJywgJ1JBTkRPTScsICdSQU5ET01CTE9CJyxcbiAgICAnTE9XRVInLCAnVVBQRVInLCAnTEVOR1RIJywgJ1NVQlNUUicsICdUUklNJywgJ0xUUklNJywgJ1JUUklNJyxcbiAgICAnUkVQTEFDRScsICdJTlNUUicsICdRVU9URScsICdDSEFSJywgJ1VOSUNPREUnLCAnSEVYJywgJ1pFUk9CTE9CJyxcbiAgICAnQ09BTEVTQ0UnLCAnSUZOVUxMJywgJ05VTExJRicsICdUWVBFT0YnLCAnVE9UQUxfQ0hBTkdFUycsICdDSEFOR0VTJyxcbiAgICAnTEFTVF9JTlNFUlRfUk9XSUQnLCAnQ09OQ0FUJyxcbiAgICAvLyBBZ2dyZWdhdGUgZnVuY3Rpb25zXG4gICAgJ0NPVU5UJywgJ1NVTScsICdBVkcnLCAnTUlOJywgJ01BWCcsICdUT1RBTCcsICdHUk9VUF9DT05DQVQnLFxuICAgIC8vIERhdGUgYW5kIHRpbWUgZnVuY3Rpb25zXG4gICAgJ0RBVEUnLCAnVElNRScsICdEQVRFVElNRScsICdKVUxJQU5EQVknLCAnU1RSRlRJTUUnLFxuICAgIC8vIEpTT04xIGZ1bmN0aW9uc1xuICAgICdqc29uJywgJ2pzb25fYXJyYXknLCAnanNvbl9vYmplY3QnLCAnanNvbl9leHRyYWN0JywgJ2pzb25faW5zZXJ0JyxcbiAgICAnanNvbl9yZXBsYWNlJywgJ2pzb25fc2V0JywgJ2pzb25fcmVtb3ZlJywgJ2pzb25fdHlwZScsICdqc29uX3ZhbGlkJyxcbiAgICAnanNvbl9xdW90ZScsICdqc29uX3BhdGNoJywgJ2pzb25fYXJyYXlfbGVuZ3RoJywgJ2pzb25fZ3JvdXBfYXJyYXknLFxuICAgICdqc29uX2dyb3VwX29iamVjdCcsICdqc29uX2VhY2gnLCAnanNvbl90cmVlJyxcbiAgICAvLyBXaW5kb3cgZnVuY3Rpb25zXG4gICAgJ1JPV19OVU1CRVInLCAnUkFOSycsICdERU5TRV9SQU5LJywgJ05USUxFJyxcbiAgICAnTEFHJywgJ0xFQUQnLCAnRklSU1RfVkFMVUUnLCAnTEFTVF9WQUxVRScsICdOVEhfVkFMVUUnLFxuICAgICdDVU1FX0RJU1QnLCAnUEVSQ0VOVF9SQU5LJyxcbiAgICAvLyBGVFM1IGZ1bmN0aW9uc1xuICAgICdibTI1JywgJ2hpZ2hsaWdodCcsICdzbmlwcGV0JywgJ29mZnNldHMnLCAnbWF0Y2hpbmZvJ1xuICBdKTtcblxuICBwcml2YXRlIHN1cHBvcnRlZFVuYXJ5T3BlcmF0b3JzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAgIE9wZXJhdG9yLk5PVCwgT3BlcmF0b3IuUExVUywgT3BlcmF0b3IuTUlOVVMsXG4gICAgT3BlcmF0b3IuSVNfTlVMTCwgT3BlcmF0b3IuSVNfTk9UX05VTEwsXG4gIF0pO1xuXG4gIHByaXZhdGUgaXNXaXRoUmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHZhbGlkYXRlKHF1ZXJ5OiBWYWxpZGF0YWJsZVF1ZXJ5KTogdm9pZCB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHF1ZXJ5LmFjY2VwdCh0aGlzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldCgpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuaXNXaXRoUmVjdXJzaXZlID0gZmFsc2U7XG4gIH1cblxuICB2aXNpdEluc2VydFF1ZXJ5KG5vZGU6IEluc2VydFF1ZXJ5KTogdm9pZCB7XG4gICAgc3VwZXIudmlzaXRJbnNlcnRRdWVyeShub2RlKTtcbiAgICAvLyBTUUxpdGUtc3BlY2lmaWMgdmFsaWRhdGlvbiAoaWYgYW55KSBjYW4gYmUgYWRkZWQgaGVyZVxuICB9XG5cbiAgdmlzaXREZWxldGVRdWVyeShub2RlOiBEZWxldGVRdWVyeSk6IHZvaWQge1xuICAgIHN1cGVyLnZpc2l0RGVsZXRlUXVlcnkobm9kZSk7XG4gICAgLy8gU1FMaXRlLXNwZWNpZmljIHZhbGlkYXRpb24gKGlmIGFueSkgY2FuIGJlIGFkZGVkIGhlcmVcbiAgfVxuXG4gIHZpc2l0VXBkYXRlUXVlcnkobm9kZTogVXBkYXRlUXVlcnkpOiB2b2lkIHtcbiAgICBzdXBlci52aXNpdFVwZGF0ZVF1ZXJ5KG5vZGUpO1xuICAgIC8vIFNRTGl0ZS1zcGVjaWZpYyB2YWxpZGF0aW9uIChpZiBhbnkpIGNhbiBiZSBhZGRlZCBoZXJlXG4gIH1cblxuICB2aXNpdFNlbGVjdFF1ZXJ5KG5vZGU6IFNlbGVjdFF1ZXJ5KTogdm9pZCB7XG4gICAgc3VwZXIudmlzaXRTZWxlY3RRdWVyeShub2RlKTtcbiAgICBpZiAobm9kZVsnX2xpbWl0J10gIT09IG51bGwgJiYgbm9kZVsnX2xpbWl0J10gIT09IHVuZGVmaW5lZCAmJiAhTnVtYmVyLmlzSW50ZWdlcihub2RlWydfbGltaXQnXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU1FMaXRlIExJTUlUIG11c3QgYmUgYW4gaW50ZWdlcicpO1xuICAgIH1cbiAgICBpZiAobm9kZVsnX29mZnNldCddICE9PSBudWxsICYmIG5vZGVbJ19vZmZzZXQnXSAhPT0gdW5kZWZpbmVkICYmICFOdW1iZXIuaXNJbnRlZ2VyKG5vZGVbJ19vZmZzZXQnXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU1FMaXRlIE9GRlNFVCBtdXN0IGJlIGFuIGludGVnZXInKTtcbiAgICB9XG4gIH1cblxuICB2aXNpdEpvaW5DbGF1c2Uobm9kZTogSm9pbik6IHZvaWQge1xuICAgIGlmIChub2RlLnR5cGUgPT09IEpvaW5UeXBlLlJJR0hUIHx8IG5vZGUudHlwZSA9PT0gSm9pblR5cGUuRlVMTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTUUxpdGUgZG9lcyBub3Qgc3VwcG9ydCAke25vZGUudHlwZX0gSk9JTmApO1xuICAgIH1cbiAgICBzdXBlci52aXNpdEpvaW5DbGF1c2Uobm9kZSk7XG4gIH1cblxuICB2aXNpdFdpdGhDbGF1c2Uobm9kZTogV2l0aCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZSZWN1cnNpdmUgPSB0aGlzLmlzV2l0aFJlY3Vyc2l2ZTtcbiAgICB0aGlzLmlzV2l0aFJlY3Vyc2l2ZSA9IGZhbHNlO1xuICAgIG5vZGUucXVlcnkuYWNjZXB0KHRoaXMpO1xuICAgIGlmICh0aGlzLmlzV2l0aFJlY3Vyc2l2ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWN1cnNpdmUgV0lUSCBjbGF1c2VzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgdmFsaWRhdG9yJyk7XG4gICAgfVxuICAgIHRoaXMuaXNXaXRoUmVjdXJzaXZlID0gcHJldlJlY3Vyc2l2ZTtcbiAgICBzdXBlci52aXNpdFdpdGhDbGF1c2Uobm9kZSk7XG4gIH1cblxuICB2aXNpdEZ1bmN0aW9uRXhwcmVzc2lvbihub2RlOiBGdW5jdGlvbkV4cHJlc3Npb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3VwcG9ydGVkRnVuY3Rpb25zLmhhcyhub2RlLm5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZ1bmN0aW9uICR7bm9kZS5uYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGluIFNRTGl0ZWApO1xuICAgIH1cbiAgICBzdXBlci52aXNpdEZ1bmN0aW9uRXhwcmVzc2lvbihub2RlKTtcbiAgfVxuXG4gIHZpc2l0VGFibGVGcm9tKG5vZGU6IFRhYmxlRnJvbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzV2l0aFJlY3Vyc2l2ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWN1cnNpdmUgcmVmZXJlbmNlIHRvIFdJVEggY2xhdXNlIGRldGVjdGVkJyk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0VGFibGVGcm9tKG5vZGUpO1xuICB9XG5cbiAgdmlzaXRKc29uRWFjaEZyb20obm9kZTogSnNvbkVhY2hGcm9tKTogdm9pZCB7XG4gICAgc3VwZXIudmlzaXRKc29uRWFjaEZyb20obm9kZSk7XG4gIH1cblxuICB2aXNpdFVuYXJ5RXhwcmVzc2lvbihub2RlOiBVbmFyeUV4cHJlc3Npb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3VwcG9ydGVkVW5hcnlPcGVyYXRvcnMuaGFzKG5vZGUub3BlcmF0b3IpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYXJ5IG9wZXJhdG9yICR7bm9kZS5vcGVyYXRvcn0gaXMgbm90IHN1cHBvcnRlZCBpbiBTUUxpdGVgKTtcbiAgICB9XG4gICAgc3VwZXIudmlzaXRVbmFyeUV4cHJlc3Npb24obm9kZSk7XG4gIH1cblxuICB2aXNpdEluRXhwcmVzc2lvbihub2RlOiBJbkV4cHJlc3Npb24pOiB2b2lkIHtcbiAgICBzdXBlci52aXNpdEluRXhwcmVzc2lvbihub2RlKTtcbiAgfVxuXG4gIHZpc2l0Q3JlYXRlVmlydHVhbFRhYmxlUXVlcnkobm9kZTogQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnkpOiB2b2lkIHtcbiAgICBzdXBlci52aXNpdENyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5KG5vZGUpO1xuXG4gICAgLy8gRlRTNS1zcGVjaWZpYyB2YWxpZGF0aW9uXG4gICAgaWYgKG5vZGUubW9kdWxlID09PSAnZnRzNScpIHtcbiAgICAgIC8vIFZhbGlkYXRlIGNvbnRlbnQgdGFibGUgcmVmZXJlbmNlIGlmIHNwZWNpZmllZFxuICAgICAgaWYgKG5vZGUub3B0aW9ucy5jb250ZW50KSB7XG4gICAgICAgIC8vIENvbnRlbnQgdGFibGUgbmFtZSBzaG91bGQgYmUgYSB2YWxpZCBpZGVudGlmaWVyXG4gICAgICAgIC8vIE5vdGU6IHdlIGNhbid0IHZhbGlkYXRlIHRoYXQgdGhlIHRhYmxlIGV4aXN0cyBhdCB0aGlzIHBvaW50XG4gICAgICB9XG5cbiAgICAgIC8vIElmIGNvbnRlbnRSb3dpZCBpcyBzcGVjaWZpZWQsIGNvbnRlbnQgbXVzdCBhbHNvIGJlIHNwZWNpZmllZFxuICAgICAgaWYgKG5vZGUub3B0aW9ucy5jb250ZW50Um93aWQgJiYgIW5vZGUub3B0aW9ucy5jb250ZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRlRTNSBjb250ZW50X3Jvd2lkIHJlcXVpcmVzIGNvbnRlbnQgb3B0aW9uIHRvIGJlIHNwZWNpZmllZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import { AliasableExpression } from "../ast/Abstractions";
|
|
2
2
|
import { Alias } from "../ast/Alias";
|
|
3
|
+
import { AlterTableQuery } from "../ast/AlterTableQuery";
|
|
4
|
+
import { BetweenExpression } from "../ast/BetweenExpression";
|
|
3
5
|
import { BinaryExpression } from "../ast/BinaryExpression";
|
|
4
6
|
import { CaseExpression } from "../ast/CaseExpression";
|
|
7
|
+
import { CastExpression } from "../ast/CastExpression";
|
|
8
|
+
import { CollateExpression } from "../ast/CollateExpression";
|
|
9
|
+
import { SubqueryExpression } from "../ast/SubqueryExpression";
|
|
10
|
+
import { WindowExpression } from "../ast/WindowExpression";
|
|
5
11
|
import { Column } from "../ast/Column";
|
|
6
12
|
import { Concat } from "../ast/Concat";
|
|
13
|
+
import { CreateIndexQuery } from "../ast/CreateIndexQuery";
|
|
14
|
+
import { CreateTableQuery } from "../ast/CreateTableQuery";
|
|
15
|
+
import { CreateVirtualTableQuery } from "../ast/CreateVirtualTableQuery";
|
|
16
|
+
import { CreateViewQuery } from "../ast/CreateViewQuery";
|
|
17
|
+
import { DeleteQuery } from "../ast/DeleteQuery";
|
|
18
|
+
import { DropIndexQuery } from "../ast/DropIndexQuery";
|
|
19
|
+
import { DropTableQuery } from "../ast/DropTableQuery";
|
|
20
|
+
import { DropViewQuery } from "../ast/DropViewQuery";
|
|
7
21
|
import { ExistsExpression } from "../ast/ExistsExpression";
|
|
8
22
|
import { From, JsonEachFrom, SubqueryFrom, TableFrom } from "../ast/From";
|
|
9
23
|
import { FunctionExpression } from "../ast/FunctionExpression";
|
|
10
24
|
import { InExpression } from "../ast/InExpression";
|
|
11
25
|
import { InsertQuery } from "../ast/InsertQuery";
|
|
26
|
+
import { UpdateQuery } from "../ast/UpdateQuery";
|
|
12
27
|
import { Join } from "../ast/Join";
|
|
13
28
|
import { NullLiteral, NumberLiteral, Param, StringLiteral } from "../ast/Literals";
|
|
14
29
|
import { OrderBy } from "../ast/OrderBy";
|
|
@@ -23,6 +38,16 @@ export declare class ParamCollectingVisitor implements SqlTreeNodeVisitor<any[]>
|
|
|
23
38
|
private readonly params;
|
|
24
39
|
constructor(keyValuePairs: Record<string, any>);
|
|
25
40
|
visitInsertQuery(node: InsertQuery): any[];
|
|
41
|
+
visitDeleteQuery(node: DeleteQuery): any[];
|
|
42
|
+
visitUpdateQuery(node: UpdateQuery): any[];
|
|
43
|
+
visitDropTableQuery(_node: DropTableQuery): any[];
|
|
44
|
+
visitDropIndexQuery(_node: DropIndexQuery): any[];
|
|
45
|
+
visitDropViewQuery(_node: DropViewQuery): any[];
|
|
46
|
+
visitCreateViewQuery(node: CreateViewQuery): any[];
|
|
47
|
+
visitCreateIndexQuery(node: CreateIndexQuery): any[];
|
|
48
|
+
visitAlterTableQuery(node: AlterTableQuery): any[];
|
|
49
|
+
visitCreateTableQuery(node: CreateTableQuery): any[];
|
|
50
|
+
visitCreateVirtualTableQuery(_node: CreateVirtualTableQuery): any[];
|
|
26
51
|
visitSelectQuery(node: SelectQuery): any[];
|
|
27
52
|
visitTableFrom(_node: TableFrom): any[];
|
|
28
53
|
visitSubqueryFrom(node: SubqueryFrom): any[];
|
|
@@ -33,6 +58,7 @@ export declare class ParamCollectingVisitor implements SqlTreeNodeVisitor<any[]>
|
|
|
33
58
|
visitOrderBy(node: OrderBy): any[];
|
|
34
59
|
visitWithClause(node: With): any[];
|
|
35
60
|
visitBinaryExpression(node: BinaryExpression): any[];
|
|
61
|
+
visitBetweenExpression(node: BetweenExpression): any[];
|
|
36
62
|
visitUnaryExpression(node: UnaryExpression): any[];
|
|
37
63
|
visitInExpression(node: InExpression): any[];
|
|
38
64
|
visitConcat(node: Concat): any[];
|
|
@@ -43,4 +69,8 @@ export declare class ParamCollectingVisitor implements SqlTreeNodeVisitor<any[]>
|
|
|
43
69
|
visitNumberLiteral(_node: NumberLiteral): any[];
|
|
44
70
|
visitNullLiteral(_node: NullLiteral): any[];
|
|
45
71
|
visitExistsExpression(node: ExistsExpression): any[];
|
|
72
|
+
visitCastExpression(node: CastExpression): any[];
|
|
73
|
+
visitCollateExpression(node: CollateExpression): any[];
|
|
74
|
+
visitSubqueryExpression(node: SubqueryExpression): any[];
|
|
75
|
+
visitWindowExpression(node: WindowExpression): any[];
|
|
46
76
|
}
|
|
@@ -11,7 +11,85 @@ class ParamCollectingVisitor {
|
|
|
11
11
|
this.keyValuePairs = keyValuePairs;
|
|
12
12
|
}
|
|
13
13
|
visitInsertQuery(node) {
|
|
14
|
-
node['
|
|
14
|
+
if (node['_fromSelect']) {
|
|
15
|
+
node['_fromSelect'].accept(this);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
node['_values'].forEach(v => v.accept(this));
|
|
19
|
+
}
|
|
20
|
+
// Collect params from ON CONFLICT clause
|
|
21
|
+
node['_doUpdateSets'].forEach(s => s.value.accept(this));
|
|
22
|
+
if (node['_onConflictWhere']) {
|
|
23
|
+
node['_onConflictWhere'].accept(this);
|
|
24
|
+
}
|
|
25
|
+
node['_returning'].forEach(r => r.accept(this));
|
|
26
|
+
return this.params;
|
|
27
|
+
}
|
|
28
|
+
visitDeleteQuery(node) {
|
|
29
|
+
if (node['_where']) {
|
|
30
|
+
node['_where'].accept(this);
|
|
31
|
+
}
|
|
32
|
+
node['_returning'].forEach(r => r.accept(this));
|
|
33
|
+
return this.params;
|
|
34
|
+
}
|
|
35
|
+
visitUpdateQuery(node) {
|
|
36
|
+
node['_set'].forEach(s => s.value.accept(this));
|
|
37
|
+
if (node['_where']) {
|
|
38
|
+
node['_where'].accept(this);
|
|
39
|
+
}
|
|
40
|
+
node['_returning'].forEach(r => r.accept(this));
|
|
41
|
+
return this.params;
|
|
42
|
+
}
|
|
43
|
+
visitDropTableQuery(_node) {
|
|
44
|
+
// DROP TABLE has no parameters
|
|
45
|
+
return this.params;
|
|
46
|
+
}
|
|
47
|
+
visitDropIndexQuery(_node) {
|
|
48
|
+
// DROP INDEX has no parameters
|
|
49
|
+
return this.params;
|
|
50
|
+
}
|
|
51
|
+
visitDropViewQuery(_node) {
|
|
52
|
+
// DROP VIEW has no parameters
|
|
53
|
+
return this.params;
|
|
54
|
+
}
|
|
55
|
+
visitCreateViewQuery(node) {
|
|
56
|
+
// Collect params from the SELECT query
|
|
57
|
+
if (node.selectQuery) {
|
|
58
|
+
node.selectQuery.accept(this);
|
|
59
|
+
}
|
|
60
|
+
return this.params;
|
|
61
|
+
}
|
|
62
|
+
visitCreateIndexQuery(node) {
|
|
63
|
+
// Collect params from WHERE expression
|
|
64
|
+
if (node.whereExpression) {
|
|
65
|
+
node.whereExpression.accept(this);
|
|
66
|
+
}
|
|
67
|
+
return this.params;
|
|
68
|
+
}
|
|
69
|
+
visitAlterTableQuery(node) {
|
|
70
|
+
// Collect params from ADD COLUMN CHECK constraint
|
|
71
|
+
const op = node.operation;
|
|
72
|
+
if (op && op.type === 'ADD_COLUMN' && op.column.constraints.check) {
|
|
73
|
+
op.column.constraints.check.accept(this);
|
|
74
|
+
}
|
|
75
|
+
return this.params;
|
|
76
|
+
}
|
|
77
|
+
visitCreateTableQuery(node) {
|
|
78
|
+
// Collect params from CHECK constraints
|
|
79
|
+
for (const col of node.columns) {
|
|
80
|
+
if (col.constraints.check) {
|
|
81
|
+
col.constraints.check.accept(this);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const constraint of node.tableConstraints) {
|
|
85
|
+
if (constraint.check) {
|
|
86
|
+
constraint.check.accept(this);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return this.params;
|
|
90
|
+
}
|
|
91
|
+
visitCreateVirtualTableQuery(_node) {
|
|
92
|
+
// CREATE VIRTUAL TABLE has no parameters
|
|
15
93
|
return this.params;
|
|
16
94
|
}
|
|
17
95
|
visitSelectQuery(node) {
|
|
@@ -26,6 +104,8 @@ class ParamCollectingVisitor {
|
|
|
26
104
|
node['_having'].accept(this);
|
|
27
105
|
}
|
|
28
106
|
node['_union'].forEach(u => u.accept(this));
|
|
107
|
+
node['_intersect'].forEach(i => i.accept(this));
|
|
108
|
+
node['_except'].forEach(e => e.accept(this));
|
|
29
109
|
node['_orderBy'].forEach(o => o.accept(this));
|
|
30
110
|
return this.params;
|
|
31
111
|
}
|
|
@@ -67,6 +147,12 @@ class ParamCollectingVisitor {
|
|
|
67
147
|
node.right.accept(this);
|
|
68
148
|
return this.params;
|
|
69
149
|
}
|
|
150
|
+
visitBetweenExpression(node) {
|
|
151
|
+
node.operand.accept(this);
|
|
152
|
+
node.low.accept(this);
|
|
153
|
+
node.high.accept(this);
|
|
154
|
+
return this.params;
|
|
155
|
+
}
|
|
70
156
|
visitUnaryExpression(node) {
|
|
71
157
|
node.operand.accept(this);
|
|
72
158
|
return this.params;
|
|
@@ -124,6 +210,27 @@ class ParamCollectingVisitor {
|
|
|
124
210
|
node.subquery.accept(this);
|
|
125
211
|
return this.params;
|
|
126
212
|
}
|
|
213
|
+
visitCastExpression(node) {
|
|
214
|
+
node.expression.accept(this);
|
|
215
|
+
return this.params;
|
|
216
|
+
}
|
|
217
|
+
visitCollateExpression(node) {
|
|
218
|
+
node.expression.accept(this);
|
|
219
|
+
return this.params;
|
|
220
|
+
}
|
|
221
|
+
visitSubqueryExpression(node) {
|
|
222
|
+
node.subquery.accept(this);
|
|
223
|
+
return this.params;
|
|
224
|
+
}
|
|
225
|
+
visitWindowExpression(node) {
|
|
226
|
+
// Collect params from the underlying function
|
|
227
|
+
node.function.accept(this);
|
|
228
|
+
// Collect params from partition by columns
|
|
229
|
+
node.windowSpec.partitionByColumns.forEach(c => c.accept(this));
|
|
230
|
+
// Collect params from order by clauses
|
|
231
|
+
node.windowSpec.orderByColumns.forEach(o => o.accept(this));
|
|
232
|
+
return this.params;
|
|
233
|
+
}
|
|
127
234
|
}
|
|
128
235
|
exports.ParamCollectingVisitor = ParamCollectingVisitor;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyYW1Db2xsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzaXRvci9QYXJhbUNvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQSxvREFBaUQ7QUFHakQsNkRBQXFIO0FBRXJILE1BQWEsc0JBQXNCO0lBUWpDLFlBQVksYUFBa0M7UUFOcEMsNEJBQXVCLEdBQUcsSUFBSSxtREFBOEIsRUFBUyxDQUFDO1FBQ3RFLHVCQUFrQixHQUFHLElBQUksOENBQXlCLEVBQVMsQ0FBQztRQUdyRCxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBR2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFpQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksSUFBSSxD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Q0Y7QUFoSkQsd0RBZ0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxpYXNhYmxlRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvQWJzdHJhY3Rpb25zXCI7XG5pbXBvcnQgeyBBbGlhcyB9IGZyb20gXCIuLi9hc3QvQWxpYXNcIjtcbmltcG9ydCB7IEJpbmFyeUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0JpbmFyeUV4cHJlc3Npb25cIjtcbmltcG9ydCB7IENhc2VFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9DYXNlRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4uL2FzdC9Db2x1bW5cIjtcbmltcG9ydCB7IENvbmNhdCB9IGZyb20gXCIuLi9hc3QvQ29uY2F0XCI7XG5pbXBvcnQgeyBFeGlzdHNFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9FeGlzdHNFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBGcm9tLCBKc29uRWFjaEZyb20sIFN1YnF1ZXJ5RnJvbSwgVGFibGVGcm9tIH0gZnJvbSBcIi4uL2FzdC9Gcm9tXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0Z1bmN0aW9uRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSW5FeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9JbkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEluc2VydFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9JbnNlcnRRdWVyeVwiO1xuaW1wb3J0IHsgSm9pbiB9IGZyb20gXCIuLi9hc3QvSm9pblwiO1xuaW1wb3J0IHsgTnVsbExpdGVyYWwsIE51bWJlckxpdGVyYWwsIFBhcmFtLCBTdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL2FzdC9MaXRlcmFsc1wiO1xuaW1wb3J0IHsgT3JkZXJCeSB9IGZyb20gXCIuLi9hc3QvT3JkZXJCeVwiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnkgfSBmcm9tIFwiLi4vYXN0L1NlbGVjdFF1ZXJ5XCI7XG5pbXBvcnQgeyBVbmFyeUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L1VuYXJ5RXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgV2l0aCB9IGZyb20gXCIuLi9hc3QvV2l0aFwiO1xuaW1wb3J0IHsgQ29sdW1uTGlrZVZpc2l0b3JBY2NlcHRvciwgRnJvbUxpa2VBbmRKb2luVmlzaXRvckFjY2VwdG9yLCBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtQ29sbGVjdGluZ1Zpc2l0b3IgaW1wbGVtZW50cyBTcWxUcmVlTm9kZVZpc2l0b3I8YW55W10+IHtcblxuICBwcm90ZWN0ZWQgZnJvbUxpa2VBbmRKb2luQWNjZXB0b3IgPSBuZXcgRnJvbUxpa2VBbmRKb2luVmlzaXRvckFjY2VwdG9yPGFueVtdPigpO1xuICBwcm90ZWN0ZWQgY29sdW1uTGlrZUFjY2VwdG9yID0gbmV3IENvbHVtbkxpa2VWaXNpdG9yQWNjZXB0b3I8YW55W10+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBrZXlWYWx1ZVBhaXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihrZXlWYWx1ZVBhaXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdGhpcy5rZXlWYWx1ZVBhaXJzID0ga2V5VmFsdWVQYWlycztcbiAgfVxuXG4gIHZpc2l0SW5zZXJ0UXVlcnkobm9kZTogSW5zZXJ0UXVlcnkpOiBhbnlbXSB7XG4gICAgbm9kZVsnX3ZhbHVlcyddLmZvckVhY2godiA9PiB2LmFjY2VwdCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRTZWxlY3RRdWVyeShub2RlOiBTZWxlY3RRdWVyeSk6IGFueVtdIHtcbiAgICBub2RlWydfd2l0aCddLmZvckVhY2godyA9PiB3LmFjY2VwdCh0aGlzKSk7XG4gICAgbm9kZVsnX2Zyb21zQW5kSm9pbnMnXS5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5mcm9tTGlrZUFuZEpvaW5BY2NlcHRvci5hY2NlcHQodGhpcywgaXRlbSkpO1xuICAgIG5vZGVbJ19jb2x1bW5zJ10uZm9yRWFjaChjID0+IHRoaXMuY29sdW1uTGlrZUFjY2VwdG9yLmFjY2VwdCh0aGlzLCBjKSk7XG4gICAgaWYgKG5vZGVbJ193aGVyZSddKSB7XG4gICAgICBub2RlWydfd2hlcmUnXS5hY2NlcHQodGhpcyk7XG4gICAgfVxuICAgIG5vZGVbJ19ncm91cEJ5J10uZm9yRWFjaChjID0+IGMuYWNjZXB0KHRoaXMpKTtcbiAgICBpZiAobm9kZVsnX2hhdmluZyddKSB7XG4gICAgICBub2RlWydfaGF2aW5nJ10uYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICBub2RlWydfdW5pb24nXS5mb3JFYWNoKHUgPT4gdS5hY2NlcHQodGhpcykpO1xuICAgIG5vZGVbJ19vcmRlckJ5J10uZm9yRWFjaChvID0+IG8uYWNjZXB0KHRoaXMpKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdFRhYmxlRnJvbShfbm9kZTogVGFibGVGcm9tKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0U3VicXVlcnlGcm9tKG5vZGU6IFN1YnF1ZXJ5RnJvbSk6IGFueVtdIHtcbiAgICBub2RlLnN1YnF1ZXJ5LmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEpzb25FYWNoRnJvbShub2RlOiBKc29uRWFjaEZyb20pOiBhbnlbXSB7XG4gICAgbm9kZS5qc29uRXhwcmVzc2lvbi5hY2NlcHQodGhpcyk7XG4gICAgaWYgKG5vZGUuanNvblBhdGgpIHtcbiAgICAgIG5vZGUuanNvblBhdGguYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdENvbHVtbihfbm9kZTogQ29sdW1uKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0QWxpYXMobm9kZTogQWxpYXM8RnJvbXxBbGlhc2FibGVFeHByZXNzaW9uPik6IGFueVtdIHtcbiAgICBub2RlLnJlZmVyZW50LmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEpvaW5DbGF1c2Uobm9kZTogSm9pbik6IGFueVtdIHtcbiAgICBub2RlLm9uLmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdE9yZGVyQnkobm9kZTogT3JkZXJCeSk6IGFueVtdIHtcbiAgICBub2RlLmNvbHVtbi5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRXaXRoQ2xhdXNlKG5vZGU6IFdpdGgpOiBhbnlbXSB7XG4gICAgbm9kZS5xdWVyeS5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRCaW5hcnlFeHByZXNzaW9uKG5vZGU6IEJpbmFyeUV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5sZWZ0LmFjY2VwdCh0aGlzKTtcbiAgICBub2RlLnJpZ2h0LmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdFVuYXJ5RXhwcmVzc2lvbihub2RlOiBVbmFyeUV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5vcGVyYW5kLmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEluRXhwcmVzc2lvbihub2RlOiBJbkV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5sZWZ0LmZvckVhY2gobCA9PiBsLmFjY2VwdCh0aGlzKSk7XG4gICAgaWYgKG5vZGUudmFsdWVzIGluc3RhbmNlb2YgU2VsZWN0UXVlcnkpIHtcbiAgICAgIG5vZGUudmFsdWVzLmFjY2VwdCh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS52YWx1ZXMuZm9yRWFjaChzZXQgPT4gc2V0LmZvckVhY2godiA9PiB2LmFjY2VwdCh0aGlzKSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdENvbmNhdChub2RlOiBDb25jYXQpOiBhbnlbXSB7XG4gICAgbm9kZS5leHByZXNzaW9ucy5mb3JFYWNoKGUgPT4gZS5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0Q2FzZUV4cHJlc3Npb24obm9kZTogQ2FzZUV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5jYXNlcy5mb3JFYWNoKGMgPT4ge1xuICAgICAgYy53aGVuLmFjY2VwdCh0aGlzKTtcbiAgICAgIGMudGhlbi5hY2NlcHQodGhpcyk7XG4gICAgfSk7XG4gICAgaWYgKG5vZGUuZWxzZSkge1xuICAgICAgbm9kZS5lbHNlLmFjY2VwdCh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRGdW5jdGlvbkV4cHJlc3Npb24obm9kZTogRnVuY3Rpb25FeHByZXNzaW9uKTogYW55W10ge1xuICAgIG5vZGUuYXJncy5mb3JFYWNoKGEgPT4gYS5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0UGFyYW1FeHByZXNzaW9uKG5vZGU6IFBhcmFtKTogYW55W10ge1xuICAgIGlmIChub2RlLnBhcmFtTmFtZSkge1xuICAgICAgaWYgKCF0aGlzLmtleVZhbHVlUGFpcnMgfHwgdHlwZW9mIHRoaXMua2V5VmFsdWVQYWlycyAhPT0gJ29iamVjdCcgfHwgIShub2RlLnBhcmFtTmFtZSBpbiB0aGlzLmtleVZhbHVlUGFpcnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gdmFsdWUgcHJvdmlkZWQgZm9yIHBhcmFtZXRlcjogJHtub2RlLnBhcmFtTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFyYW1zLnB1c2godGhpcy5rZXlWYWx1ZVBhaXJzW25vZGUucGFyYW1OYW1lXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyYW1zLnB1c2godW5kZWZpbmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRTdHJpbmdMaXRlcmFsKF9ub2RlOiBTdHJpbmdMaXRlcmFsKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0TnVtYmVyTGl0ZXJhbChfbm9kZTogTnVtYmVyTGl0ZXJhbCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdE51bGxMaXRlcmFsKF9ub2RlOiBOdWxsTGl0ZXJhbCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEV4aXN0c0V4cHJlc3Npb24obm9kZTogRXhpc3RzRXhwcmVzc2lvbik6IGFueVtdIHtcbiAgICBub2RlLnN1YnF1ZXJ5LmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cbn1cbiJdfQ==
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyYW1Db2xsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzaXRvci9QYXJhbUNvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2QkEsb0RBQWlEO0FBR2pELDZEQUFxSDtBQUVySCxNQUFhLHNCQUFzQjtJQVFqQyxZQUFZLGFBQWtDO1FBTnBDLDRCQUF1QixHQUFHLElBQUksbURBQThCLEVBQVMsQ0FBQztRQUN0RSx1QkFBa0IsR0FBRyxJQUFJLDhDQUF5QixFQUFTLENBQUM7UUFHckQsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUdsQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENB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LElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBelFELHdEQXlRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWFzYWJsZUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgQWxpYXMgfSBmcm9tIFwiLi4vYXN0L0FsaWFzXCI7XG5pbXBvcnQgeyBBbHRlclRhYmxlUXVlcnkgfSBmcm9tIFwiLi4vYXN0L0FsdGVyVGFibGVRdWVyeVwiO1xuaW1wb3J0IHsgQmV0d2VlbkV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0JldHdlZW5FeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBCaW5hcnlFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9CaW5hcnlFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBDYXNlRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvQ2FzZUV4cHJlc3Npb25cIjtcbmltcG9ydCB7IENhc3RFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9DYXN0RXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgQ29sbGF0ZUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0NvbGxhdGVFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBTdWJxdWVyeUV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L1N1YnF1ZXJ5RXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgV2luZG93RXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvV2luZG93RXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4uL2FzdC9Db2x1bW5cIjtcbmltcG9ydCB7IENvbmNhdCB9IGZyb20gXCIuLi9hc3QvQ29uY2F0XCI7XG5pbXBvcnQgeyBDcmVhdGVJbmRleFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9DcmVhdGVJbmRleFF1ZXJ5XCI7XG5pbXBvcnQgeyBDcmVhdGVUYWJsZVF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9DcmVhdGVUYWJsZVF1ZXJ5XCI7XG5pbXBvcnQgeyBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB9IGZyb20gXCIuLi9hc3QvQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnlcIjtcbmltcG9ydCB7IENyZWF0ZVZpZXdRdWVyeSB9IGZyb20gXCIuLi9hc3QvQ3JlYXRlVmlld1F1ZXJ5XCI7XG5pbXBvcnQgeyBEZWxldGVRdWVyeSB9IGZyb20gXCIuLi9hc3QvRGVsZXRlUXVlcnlcIjtcbmltcG9ydCB7IERyb3BJbmRleFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9Ecm9wSW5kZXhRdWVyeVwiO1xuaW1wb3J0IHsgRHJvcFRhYmxlUXVlcnkgfSBmcm9tIFwiLi4vYXN0L0Ryb3BUYWJsZVF1ZXJ5XCI7XG5pbXBvcnQgeyBEcm9wVmlld1F1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9Ecm9wVmlld1F1ZXJ5XCI7XG5pbXBvcnQgeyBFeGlzdHNFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9FeGlzdHNFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBGcm9tLCBKc29uRWFjaEZyb20sIFN1YnF1ZXJ5RnJvbSwgVGFibGVGcm9tIH0gZnJvbSBcIi4uL2FzdC9Gcm9tXCI7XG5pbXBvcnQgeyBGdW5jdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwiLi4vYXN0L0Z1bmN0aW9uRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSW5FeHByZXNzaW9uIH0gZnJvbSBcIi4uL2FzdC9JbkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEluc2VydFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9JbnNlcnRRdWVyeVwiO1xuaW1wb3J0IHsgVXBkYXRlUXVlcnkgfSBmcm9tIFwiLi4vYXN0L1VwZGF0ZVF1ZXJ5XCI7XG5pbXBvcnQgeyBKb2luIH0gZnJvbSBcIi4uL2FzdC9Kb2luXCI7XG5pbXBvcnQgeyBOdWxsTGl0ZXJhbCwgTnVtYmVyTGl0ZXJhbCwgUGFyYW0sIFN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vYXN0L0xpdGVyYWxzXCI7XG5pbXBvcnQgeyBPcmRlckJ5IH0gZnJvbSBcIi4uL2FzdC9PcmRlckJ5XCI7XG5pbXBvcnQgeyBTZWxlY3RRdWVyeSB9IGZyb20gXCIuLi9hc3QvU2VsZWN0UXVlcnlcIjtcbmltcG9ydCB7IFVuYXJ5RXhwcmVzc2lvbiB9IGZyb20gXCIuLi9hc3QvVW5hcnlFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBXaXRoIH0gZnJvbSBcIi4uL2FzdC9XaXRoXCI7XG5pbXBvcnQgeyBDb2x1bW5MaWtlVmlzaXRvckFjY2VwdG9yLCBGcm9tTGlrZUFuZEpvaW5WaXNpdG9yQWNjZXB0b3IsIFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuXG5leHBvcnQgY2xhc3MgUGFyYW1Db2xsZWN0aW5nVmlzaXRvciBpbXBsZW1lbnRzIFNxbFRyZWVOb2RlVmlzaXRvcjxhbnlbXT4ge1xuXG4gIHByb3RlY3RlZCBmcm9tTGlrZUFuZEpvaW5BY2NlcHRvciA9IG5ldyBGcm9tTGlrZUFuZEpvaW5WaXNpdG9yQWNjZXB0b3I8YW55W10+KCk7XG4gIHByb3RlY3RlZCBjb2x1bW5MaWtlQWNjZXB0b3IgPSBuZXcgQ29sdW1uTGlrZVZpc2l0b3JBY2NlcHRvcjxhbnlbXT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGtleVZhbHVlUGFpcnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1zOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGtleVZhbHVlUGFpcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLmtleVZhbHVlUGFpcnMgPSBrZXlWYWx1ZVBhaXJzO1xuICB9XG5cbiAgdmlzaXRJbnNlcnRRdWVyeShub2RlOiBJbnNlcnRRdWVyeSk6IGFueVtdIHtcbiAgICBpZiAobm9kZVsnX2Zyb21TZWxlY3QnXSkge1xuICAgICAgbm9kZVsnX2Zyb21TZWxlY3QnXS5hY2NlcHQodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVbJ192YWx1ZXMnXS5mb3JFYWNoKHYgPT4gdi5hY2NlcHQodGhpcykpO1xuICAgIH1cbiAgICAvLyBDb2xsZWN0IHBhcmFtcyBmcm9tIE9OIENPTkZMSUNUIGNsYXVzZVxuICAgIG5vZGVbJ19kb1VwZGF0ZVNldHMnXS5mb3JFYWNoKHMgPT4gcy52YWx1ZS5hY2NlcHQodGhpcykpO1xuICAgIGlmIChub2RlWydfb25Db25mbGljdFdoZXJlJ10pIHtcbiAgICAgIG5vZGVbJ19vbkNvbmZsaWN0V2hlcmUnXS5hY2NlcHQodGhpcyk7XG4gICAgfVxuICAgIG5vZGVbJ19yZXR1cm5pbmcnXS5mb3JFYWNoKHIgPT4gci5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0RGVsZXRlUXVlcnkobm9kZTogRGVsZXRlUXVlcnkpOiBhbnlbXSB7XG4gICAgaWYgKG5vZGVbJ193aGVyZSddKSB7XG4gICAgICBub2RlWydfd2hlcmUnXS5hY2NlcHQodGhpcyk7XG4gICAgfVxuICAgIG5vZGVbJ19yZXR1cm5pbmcnXS5mb3JFYWNoKHIgPT4gci5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0VXBkYXRlUXVlcnkobm9kZTogVXBkYXRlUXVlcnkpOiBhbnlbXSB7XG4gICAgbm9kZVsnX3NldCddLmZvckVhY2gocyA9PiBzLnZhbHVlLmFjY2VwdCh0aGlzKSk7XG4gICAgaWYgKG5vZGVbJ193aGVyZSddKSB7XG4gICAgICBub2RlWydfd2hlcmUnXS5hY2NlcHQodGhpcyk7XG4gICAgfVxuICAgIG5vZGVbJ19yZXR1cm5pbmcnXS5mb3JFYWNoKHIgPT4gci5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0RHJvcFRhYmxlUXVlcnkoX25vZGU6IERyb3BUYWJsZVF1ZXJ5KTogYW55W10ge1xuICAgIC8vIERST1AgVEFCTEUgaGFzIG5vIHBhcmFtZXRlcnNcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdERyb3BJbmRleFF1ZXJ5KF9ub2RlOiBEcm9wSW5kZXhRdWVyeSk6IGFueVtdIHtcbiAgICAvLyBEUk9QIElOREVYIGhhcyBubyBwYXJhbWV0ZXJzXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXREcm9wVmlld1F1ZXJ5KF9ub2RlOiBEcm9wVmlld1F1ZXJ5KTogYW55W10ge1xuICAgIC8vIERST1AgVklFVyBoYXMgbm8gcGFyYW1ldGVyc1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0Q3JlYXRlVmlld1F1ZXJ5KG5vZGU6IENyZWF0ZVZpZXdRdWVyeSk6IGFueVtdIHtcbiAgICAvLyBDb2xsZWN0IHBhcmFtcyBmcm9tIHRoZSBTRUxFQ1QgcXVlcnlcbiAgICBpZiAobm9kZS5zZWxlY3RRdWVyeSkge1xuICAgICAgbm9kZS5zZWxlY3RRdWVyeS5hY2NlcHQodGhpcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0Q3JlYXRlSW5kZXhRdWVyeShub2RlOiBDcmVhdGVJbmRleFF1ZXJ5KTogYW55W10ge1xuICAgIC8vIENvbGxlY3QgcGFyYW1zIGZyb20gV0hFUkUgZXhwcmVzc2lvblxuICAgIGlmIChub2RlLndoZXJlRXhwcmVzc2lvbikge1xuICAgICAgbm9kZS53aGVyZUV4cHJlc3Npb24uYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEFsdGVyVGFibGVRdWVyeShub2RlOiBBbHRlclRhYmxlUXVlcnkpOiBhbnlbXSB7XG4gICAgLy8gQ29sbGVjdCBwYXJhbXMgZnJvbSBBREQgQ09MVU1OIENIRUNLIGNvbnN0cmFpbnRcbiAgICBjb25zdCBvcCA9IG5vZGUub3BlcmF0aW9uO1xuICAgIGlmIChvcCAmJiBvcC50eXBlID09PSAnQUREX0NPTFVNTicgJiYgb3AuY29sdW1uLmNvbnN0cmFpbnRzLmNoZWNrKSB7XG4gICAgICBvcC5jb2x1bW4uY29uc3RyYWludHMuY2hlY2suYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdENyZWF0ZVRhYmxlUXVlcnkobm9kZTogQ3JlYXRlVGFibGVRdWVyeSk6IGFueVtdIHtcbiAgICAvLyBDb2xsZWN0IHBhcmFtcyBmcm9tIENIRUNLIGNvbnN0cmFpbnRzXG4gICAgZm9yIChjb25zdCBjb2wgb2Ygbm9kZS5jb2x1bW5zKSB7XG4gICAgICBpZiAoY29sLmNvbnN0cmFpbnRzLmNoZWNrKSB7XG4gICAgICAgIGNvbC5jb25zdHJhaW50cy5jaGVjay5hY2NlcHQodGhpcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgY29uc3RyYWludCBvZiBub2RlLnRhYmxlQ29uc3RyYWludHMpIHtcbiAgICAgIGlmIChjb25zdHJhaW50LmNoZWNrKSB7XG4gICAgICAgIGNvbnN0cmFpbnQuY2hlY2suYWNjZXB0KHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdENyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5KF9ub2RlOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSk6IGFueVtdIHtcbiAgICAvLyBDUkVBVEUgVklSVFVBTCBUQUJMRSBoYXMgbm8gcGFyYW1ldGVyc1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0U2VsZWN0UXVlcnkobm9kZTogU2VsZWN0UXVlcnkpOiBhbnlbXSB7XG4gICAgbm9kZVsnX3dpdGgnXS5mb3JFYWNoKHcgPT4gdy5hY2NlcHQodGhpcykpO1xuICAgIG5vZGVbJ19mcm9tc0FuZEpvaW5zJ10uZm9yRWFjaChpdGVtID0+IHRoaXMuZnJvbUxpa2VBbmRKb2luQWNjZXB0b3IuYWNjZXB0KHRoaXMsIGl0ZW0pKTtcbiAgICBub2RlWydfY29sdW1ucyddLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbkxpa2VBY2NlcHRvci5hY2NlcHQodGhpcywgYykpO1xuICAgIGlmIChub2RlWydfd2hlcmUnXSkge1xuICAgICAgbm9kZVsnX3doZXJlJ10uYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICBub2RlWydfZ3JvdXBCeSddLmZvckVhY2goYyA9PiBjLmFjY2VwdCh0aGlzKSk7XG4gICAgaWYgKG5vZGVbJ19oYXZpbmcnXSkge1xuICAgICAgbm9kZVsnX2hhdmluZyddLmFjY2VwdCh0aGlzKTtcbiAgICB9XG4gICAgbm9kZVsnX3VuaW9uJ10uZm9yRWFjaCh1ID0+IHUuYWNjZXB0KHRoaXMpKTtcbiAgICBub2RlWydfaW50ZXJzZWN0J10uZm9yRWFjaChpID0+IGkuYWNjZXB0KHRoaXMpKTtcbiAgICBub2RlWydfZXhjZXB0J10uZm9yRWFjaChlID0+IGUuYWNjZXB0KHRoaXMpKTtcbiAgICBub2RlWydfb3JkZXJCeSddLmZvckVhY2gobyA9PiBvLmFjY2VwdCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRUYWJsZUZyb20oX25vZGU6IFRhYmxlRnJvbSk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdFN1YnF1ZXJ5RnJvbShub2RlOiBTdWJxdWVyeUZyb20pOiBhbnlbXSB7XG4gICAgbm9kZS5zdWJxdWVyeS5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRKc29uRWFjaEZyb20obm9kZTogSnNvbkVhY2hGcm9tKTogYW55W10ge1xuICAgIG5vZGUuanNvbkV4cHJlc3Npb24uYWNjZXB0KHRoaXMpO1xuICAgIGlmIChub2RlLmpzb25QYXRoKSB7XG4gICAgICBub2RlLmpzb25QYXRoLmFjY2VwdCh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRDb2x1bW4oX25vZGU6IENvbHVtbik6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEFsaWFzKG5vZGU6IEFsaWFzPEZyb218QWxpYXNhYmxlRXhwcmVzc2lvbj4pOiBhbnlbXSB7XG4gICAgbm9kZS5yZWZlcmVudC5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRKb2luQ2xhdXNlKG5vZGU6IEpvaW4pOiBhbnlbXSB7XG4gICAgbm9kZS5vbi5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRPcmRlckJ5KG5vZGU6IE9yZGVyQnkpOiBhbnlbXSB7XG4gICAgbm9kZS5jb2x1bW4uYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0V2l0aENsYXVzZShub2RlOiBXaXRoKTogYW55W10ge1xuICAgIG5vZGUucXVlcnkuYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0QmluYXJ5RXhwcmVzc2lvbihub2RlOiBCaW5hcnlFeHByZXNzaW9uKTogYW55W10ge1xuICAgIG5vZGUubGVmdC5hY2NlcHQodGhpcyk7XG4gICAgbm9kZS5yaWdodC5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRCZXR3ZWVuRXhwcmVzc2lvbihub2RlOiBCZXR3ZWVuRXhwcmVzc2lvbik6IGFueVtdIHtcbiAgICBub2RlLm9wZXJhbmQuYWNjZXB0KHRoaXMpO1xuICAgIG5vZGUubG93LmFjY2VwdCh0aGlzKTtcbiAgICBub2RlLmhpZ2guYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0VW5hcnlFeHByZXNzaW9uKG5vZGU6IFVuYXJ5RXhwcmVzc2lvbik6IGFueVtdIHtcbiAgICBub2RlLm9wZXJhbmQuYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0SW5FeHByZXNzaW9uKG5vZGU6IEluRXhwcmVzc2lvbik6IGFueVtdIHtcbiAgICBub2RlLmxlZnQuZm9yRWFjaChsID0+IGwuYWNjZXB0KHRoaXMpKTtcbiAgICBpZiAobm9kZS52YWx1ZXMgaW5zdGFuY2VvZiBTZWxlY3RRdWVyeSkge1xuICAgICAgbm9kZS52YWx1ZXMuYWNjZXB0KHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLnZhbHVlcy5mb3JFYWNoKHNldCA9PiBzZXQuZm9yRWFjaCh2ID0+IHYuYWNjZXB0KHRoaXMpKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0Q29uY2F0KG5vZGU6IENvbmNhdCk6IGFueVtdIHtcbiAgICBub2RlLmV4cHJlc3Npb25zLmZvckVhY2goZSA9PiBlLmFjY2VwdCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRDYXNlRXhwcmVzc2lvbihub2RlOiBDYXNlRXhwcmVzc2lvbik6IGFueVtdIHtcbiAgICBub2RlLmNhc2VzLmZvckVhY2goYyA9PiB7XG4gICAgICBjLndoZW4uYWNjZXB0KHRoaXMpO1xuICAgICAgYy50aGVuLmFjY2VwdCh0aGlzKTtcbiAgICB9KTtcbiAgICBpZiAobm9kZS5lbHNlKSB7XG4gICAgICBub2RlLmVsc2UuYWNjZXB0KHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdEZ1bmN0aW9uRXhwcmVzc2lvbihub2RlOiBGdW5jdGlvbkV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5hcmdzLmZvckVhY2goYSA9PiBhLmFjY2VwdCh0aGlzKSk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRQYXJhbUV4cHJlc3Npb24obm9kZTogUGFyYW0pOiBhbnlbXSB7XG4gICAgaWYgKG5vZGUucGFyYW1OYW1lKSB7XG4gICAgICBpZiAoIXRoaXMua2V5VmFsdWVQYWlycyB8fCB0eXBlb2YgdGhpcy5rZXlWYWx1ZVBhaXJzICE9PSAnb2JqZWN0JyB8fCAhKG5vZGUucGFyYW1OYW1lIGluIHRoaXMua2V5VmFsdWVQYWlycykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyB2YWx1ZSBwcm92aWRlZCBmb3IgcGFyYW1ldGVyOiAke25vZGUucGFyYW1OYW1lfWApO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJhbXMucHVzaCh0aGlzLmtleVZhbHVlUGFpcnNbbm9kZS5wYXJhbU5hbWVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXJhbXMucHVzaCh1bmRlZmluZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdFN0cmluZ0xpdGVyYWwoX25vZGU6IFN0cmluZ0xpdGVyYWwpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXROdW1iZXJMaXRlcmFsKF9ub2RlOiBOdW1iZXJMaXRlcmFsKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0TnVsbExpdGVyYWwoX25vZGU6IE51bGxMaXRlcmFsKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0RXhpc3RzRXhwcmVzc2lvbihub2RlOiBFeGlzdHNFeHByZXNzaW9uKTogYW55W10ge1xuICAgIG5vZGUuc3VicXVlcnkuYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0Q2FzdEV4cHJlc3Npb24obm9kZTogQ2FzdEV4cHJlc3Npb24pOiBhbnlbXSB7XG4gICAgbm9kZS5leHByZXNzaW9uLmFjY2VwdCh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXM7XG4gIH1cblxuICB2aXNpdENvbGxhdGVFeHByZXNzaW9uKG5vZGU6IENvbGxhdGVFeHByZXNzaW9uKTogYW55W10ge1xuICAgIG5vZGUuZXhwcmVzc2lvbi5hY2NlcHQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zO1xuICB9XG5cbiAgdmlzaXRTdWJxdWVyeUV4cHJlc3Npb24obm9kZTogU3VicXVlcnlFeHByZXNzaW9uKTogYW55W10ge1xuICAgIG5vZGUuc3VicXVlcnkuYWNjZXB0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxuXG4gIHZpc2l0V2luZG93RXhwcmVzc2lvbihub2RlOiBXaW5kb3dFeHByZXNzaW9uKTogYW55W10ge1xuICAgIC8vIENvbGxlY3QgcGFyYW1zIGZyb20gdGhlIHVuZGVybHlpbmcgZnVuY3Rpb25cbiAgICBub2RlLmZ1bmN0aW9uLmFjY2VwdCh0aGlzKTtcbiAgICAvLyBDb2xsZWN0IHBhcmFtcyBmcm9tIHBhcnRpdGlvbiBieSBjb2x1bW5zXG4gICAgbm9kZS53aW5kb3dTcGVjLnBhcnRpdGlvbkJ5Q29sdW1ucy5mb3JFYWNoKGMgPT4gYy5hY2NlcHQodGhpcykpO1xuICAgIC8vIENvbGxlY3QgcGFyYW1zIGZyb20gb3JkZXIgYnkgY2xhdXNlc1xuICAgIG5vZGUud2luZG93U3BlYy5vcmRlckJ5Q29sdW1ucy5mb3JFYWNoKG8gPT4gby5hY2NlcHQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnBhcmFtcztcbiAgfVxufVxuIl19
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import { Aliasable, SqlTreeNode } from "../ast/Abstractions";
|
|
2
2
|
import { Alias } from "../ast/Alias";
|
|
3
|
+
import { AlterTableQuery } from "../ast/AlterTableQuery";
|
|
4
|
+
import { BetweenExpression } from "../ast/BetweenExpression";
|
|
3
5
|
import { BinaryExpression } from "../ast/BinaryExpression";
|
|
4
6
|
import { CaseExpression } from "../ast/CaseExpression";
|
|
7
|
+
import { CastExpression } from "../ast/CastExpression";
|
|
8
|
+
import { CollateExpression } from "../ast/CollateExpression";
|
|
9
|
+
import { SubqueryExpression } from "../ast/SubqueryExpression";
|
|
10
|
+
import { WindowExpression } from "../ast/WindowExpression";
|
|
5
11
|
import { Column } from "../ast/Column";
|
|
6
12
|
import { Concat } from "../ast/Concat";
|
|
13
|
+
import { CreateIndexQuery } from "../ast/CreateIndexQuery";
|
|
14
|
+
import { CreateTableQuery } from "../ast/CreateTableQuery";
|
|
15
|
+
import { CreateVirtualTableQuery } from "../ast/CreateVirtualTableQuery";
|
|
16
|
+
import { CreateViewQuery } from "../ast/CreateViewQuery";
|
|
17
|
+
import { DeleteQuery } from "../ast/DeleteQuery";
|
|
18
|
+
import { DropIndexQuery } from "../ast/DropIndexQuery";
|
|
19
|
+
import { DropTableQuery } from "../ast/DropTableQuery";
|
|
20
|
+
import { DropViewQuery } from "../ast/DropViewQuery";
|
|
7
21
|
import { ExistsExpression } from "../ast/ExistsExpression";
|
|
8
22
|
import { JsonEachFrom, SubqueryFrom, TableFrom } from "../ast/From";
|
|
9
23
|
import { FunctionExpression } from "../ast/FunctionExpression";
|
|
10
24
|
import { InExpression } from "../ast/InExpression";
|
|
11
25
|
import { InsertQuery } from "../ast/InsertQuery";
|
|
26
|
+
import { UpdateQuery } from "../ast/UpdateQuery";
|
|
12
27
|
import { Join } from "../ast/Join";
|
|
13
28
|
import { NullLiteral, NumberLiteral, Param, StringLiteral } from "../ast/Literals";
|
|
14
29
|
import { OrderBy } from "../ast/OrderBy";
|
|
@@ -23,6 +38,16 @@ export declare class QueryIdentityTransformer implements SqlTreeNodeTransformer
|
|
|
23
38
|
protected flatList2D(results: (SqlTreeNode | SqlTreeNode[])[][]): SqlTreeNode[][];
|
|
24
39
|
visitSelectQuery(node: SelectQuery): SqlTreeNode | SqlTreeNode[];
|
|
25
40
|
visitInsertQuery(node: InsertQuery): SqlTreeNode | SqlTreeNode[];
|
|
41
|
+
visitDeleteQuery(node: DeleteQuery): SqlTreeNode | SqlTreeNode[];
|
|
42
|
+
visitUpdateQuery(node: UpdateQuery): SqlTreeNode | SqlTreeNode[];
|
|
43
|
+
visitDropTableQuery(node: DropTableQuery): SqlTreeNode | SqlTreeNode[];
|
|
44
|
+
visitDropIndexQuery(node: DropIndexQuery): SqlTreeNode | SqlTreeNode[];
|
|
45
|
+
visitDropViewQuery(node: DropViewQuery): SqlTreeNode | SqlTreeNode[];
|
|
46
|
+
visitCreateViewQuery(node: CreateViewQuery): SqlTreeNode | SqlTreeNode[];
|
|
47
|
+
visitCreateIndexQuery(node: CreateIndexQuery): SqlTreeNode | SqlTreeNode[];
|
|
48
|
+
visitAlterTableQuery(node: AlterTableQuery): SqlTreeNode | SqlTreeNode[];
|
|
49
|
+
visitCreateTableQuery(node: CreateTableQuery): SqlTreeNode | SqlTreeNode[];
|
|
50
|
+
visitCreateVirtualTableQuery(node: CreateVirtualTableQuery): SqlTreeNode | SqlTreeNode[];
|
|
26
51
|
visitTableFrom(node: TableFrom): SqlTreeNode | SqlTreeNode[];
|
|
27
52
|
visitSubqueryFrom(node: SubqueryFrom): SqlTreeNode | SqlTreeNode[];
|
|
28
53
|
visitJsonEachFrom(node: JsonEachFrom): SqlTreeNode | SqlTreeNode[];
|
|
@@ -32,6 +57,7 @@ export declare class QueryIdentityTransformer implements SqlTreeNodeTransformer
|
|
|
32
57
|
visitOrderBy(node: OrderBy): SqlTreeNode | SqlTreeNode[];
|
|
33
58
|
visitWithClause(node: With): SqlTreeNode | SqlTreeNode[];
|
|
34
59
|
visitBinaryExpression(node: BinaryExpression): SqlTreeNode | SqlTreeNode[];
|
|
60
|
+
visitBetweenExpression(node: BetweenExpression): SqlTreeNode | SqlTreeNode[];
|
|
35
61
|
visitUnaryExpression(node: UnaryExpression): SqlTreeNode | SqlTreeNode[];
|
|
36
62
|
visitInExpression(node: InExpression): SqlTreeNode | SqlTreeNode[];
|
|
37
63
|
visitConcat(node: Concat): SqlTreeNode | SqlTreeNode[];
|
|
@@ -42,4 +68,8 @@ export declare class QueryIdentityTransformer implements SqlTreeNodeTransformer
|
|
|
42
68
|
visitNumberLiteral(node: NumberLiteral): SqlTreeNode | SqlTreeNode[];
|
|
43
69
|
visitNullLiteral(node: NullLiteral): SqlTreeNode | SqlTreeNode[];
|
|
44
70
|
visitExistsExpression(node: ExistsExpression): SqlTreeNode | SqlTreeNode[];
|
|
71
|
+
visitCastExpression(node: CastExpression): SqlTreeNode | SqlTreeNode[];
|
|
72
|
+
visitCollateExpression(node: CollateExpression): SqlTreeNode | SqlTreeNode[];
|
|
73
|
+
visitSubqueryExpression(node: SubqueryExpression): SqlTreeNode | SqlTreeNode[];
|
|
74
|
+
visitWindowExpression(node: WindowExpression): SqlTreeNode | SqlTreeNode[];
|
|
45
75
|
}
|