murmuration 2.0.25 → 2.0.28
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/.swcrc +5 -0
- package/lib/constants.js +13 -0
- package/lib/database.js +51 -0
- package/lib/defaultLog.js +22 -0
- package/lib/index.js +47 -0
- package/lib/migrate/customMigration.js +72 -0
- package/lib/migrate/migration.js +76 -0
- package/lib/migrate/migrations.js +93 -0
- package/lib/migrate/operation/applyMigrations.js +110 -0
- package/lib/migrate/operation/initialise.js +71 -0
- package/lib/migrate.js +40 -0
- package/lib/statement.js +461 -0
- package/lib/table/migration.js +63 -0
- package/lib/transaction.js +120 -0
- package/lib/utilities/case.js +32 -0
- package/package.json +18 -3
- package/src/constants.js +3 -0
- package/{bin → src}/database.js +2 -7
- package/{bin → src}/defaultLog.js +1 -1
- package/src/index.js +9 -0
- package/{bin → src}/migrate/customMigration.js +2 -4
- package/{bin → src}/migrate/migration.js +3 -5
- package/{bin → src}/migrate/migrations.js +3 -5
- package/{bin → src}/migrate/operation/applyMigrations.js +5 -7
- package/{bin → src}/migrate/operation/initialise.js +3 -5
- package/{bin → src}/migrate.js +4 -6
- package/{bin → src}/statement.js +4 -6
- package/{bin → src}/table/migration.js +5 -12
- package/{bin → src}/transaction.js +3 -5
- package/{bin → src}/utilities/case.js +2 -7
- package/bin/constants.js +0 -7
- package/index.js +0 -19
package/lib/migrate.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return migrate;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _initialise = /*#__PURE__*/ _interop_require_default(require("./migrate/operation/initialise"));
|
|
12
|
+
var _applyMigrations = /*#__PURE__*/ _interop_require_default(require("./migrate/operation/applyMigrations"));
|
|
13
|
+
var _necessary = require("necessary");
|
|
14
|
+
function _interop_require_default(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
var sequence = _necessary.asynchronousUtilities.sequence;
|
|
20
|
+
function migrate(configuration, migrationsDirectoryPath, CustomMigrationMap, callback) {
|
|
21
|
+
if (callback === undefined) {
|
|
22
|
+
callback = CustomMigrationMap; ///
|
|
23
|
+
CustomMigrationMap = {};
|
|
24
|
+
}
|
|
25
|
+
var callbacks = [
|
|
26
|
+
_initialise.default,
|
|
27
|
+
_applyMigrations.default
|
|
28
|
+
], error = false, context = {
|
|
29
|
+
error: error,
|
|
30
|
+
configuration: configuration,
|
|
31
|
+
CustomMigrationMap: CustomMigrationMap,
|
|
32
|
+
migrationsDirectoryPath: migrationsDirectoryPath
|
|
33
|
+
};
|
|
34
|
+
sequence(callbacks, function() {
|
|
35
|
+
var error = context.error;
|
|
36
|
+
callback(error);
|
|
37
|
+
}, context);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgaW5pdGlhbGlzZU9wZXJhdGlvbiBmcm9tIFwiLi9taWdyYXRlL29wZXJhdGlvbi9pbml0aWFsaXNlXCI7XG5pbXBvcnQgYXBwbHlNaWdyYXRpb25zT3BlcmF0aW9uIGZyb20gXCIuL21pZ3JhdGUvb3BlcmF0aW9uL2FwcGx5TWlncmF0aW9uc1wiO1xuXG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgc2VxdWVuY2UgfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWlncmF0ZShjb25maWd1cmF0aW9uLCBtaWdyYXRpb25zRGlyZWN0b3J5UGF0aCwgQ3VzdG9tTWlncmF0aW9uTWFwLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gQ3VzdG9tTWlncmF0aW9uTWFwOyAvLy9cblxuICAgIEN1c3RvbU1pZ3JhdGlvbk1hcCA9IHt9O1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tzID0gW1xuICAgICAgICAgIGluaXRpYWxpc2VPcGVyYXRpb24sXG4gICAgICAgICAgYXBwbHlNaWdyYXRpb25zT3BlcmF0aW9uXG4gICAgICAgIF0sXG4gICAgICAgIGVycm9yID0gZmFsc2UsICAvLy9cbiAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgICAgIEN1c3RvbU1pZ3JhdGlvbk1hcCxcbiAgICAgICAgICBtaWdyYXRpb25zRGlyZWN0b3J5UGF0aFxuICAgICAgICB9O1xuXG4gIHNlcXVlbmNlKGNhbGxiYWNrcywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZXJyb3IgfSA9IGNvbnRleHQ7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG4gIH0sIGNvbnRleHQpO1xufVxuIl0sIm5hbWVzIjpbIm1pZ3JhdGUiLCJzZXF1ZW5jZSIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImNvbmZpZ3VyYXRpb24iLCJtaWdyYXRpb25zRGlyZWN0b3J5UGF0aCIsIkN1c3RvbU1pZ3JhdGlvbk1hcCIsImNhbGxiYWNrIiwidW5kZWZpbmVkIiwiY2FsbGJhY2tzIiwiaW5pdGlhbGlzZU9wZXJhdGlvbiIsImFwcGx5TWlncmF0aW9uc09wZXJhdGlvbiIsImVycm9yIiwiY29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7OztpRUFQUTtzRUFDSzt5QkFFQzs7Ozs7O0FBRXRDLElBQU0sQUFBRUMsV0FBYUMsZ0NBQXFCLENBQWxDRDtBQUVPLFNBQVNELFFBQVFHLGFBQWEsRUFBRUMsdUJBQXVCLEVBQUVDLGtCQUFrQixFQUFFQyxRQUFRO0lBQ2xHLElBQUlBLGFBQWFDLFdBQVc7UUFDMUJELFdBQVdELG9CQUFvQixHQUFHO1FBRWxDQSxxQkFBcUIsQ0FBQztJQUN4QjtJQUVBLElBQU1HLFlBQVk7UUFDVkMsbUJBQW1CO1FBQ25CQyx3QkFBd0I7S0FDekIsRUFDREMsUUFBUSxPQUNSQyxVQUFVO1FBQ1JELE9BQUFBO1FBQ0FSLGVBQUFBO1FBQ0FFLG9CQUFBQTtRQUNBRCx5QkFBQUE7SUFDRjtJQUVOSCxTQUFTTyxXQUFXO1FBQ2xCLElBQU0sQUFBRUcsUUFBVUMsUUFBVkQ7UUFFUkwsU0FBU0s7SUFDWCxHQUFHQztBQUNMIn0=
|
package/lib/statement.js
ADDED
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Statement;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _necessary = require("necessary");
|
|
12
|
+
var _database = /*#__PURE__*/ _interop_require_default(require("./database"));
|
|
13
|
+
var _constants = require("./constants");
|
|
14
|
+
function _array_like_to_array(arr, len) {
|
|
15
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
16
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
17
|
+
return arr2;
|
|
18
|
+
}
|
|
19
|
+
function _array_without_holes(arr) {
|
|
20
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
21
|
+
}
|
|
22
|
+
function _class_call_check(instance, Constructor) {
|
|
23
|
+
if (!(instance instanceof Constructor)) {
|
|
24
|
+
throw new TypeError("Cannot call a class as a function");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function _defineProperties(target, props) {
|
|
28
|
+
for(var i = 0; i < props.length; i++){
|
|
29
|
+
var descriptor = props[i];
|
|
30
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
31
|
+
descriptor.configurable = true;
|
|
32
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
33
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
37
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
38
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
39
|
+
return Constructor;
|
|
40
|
+
}
|
|
41
|
+
function _define_property(obj, key, value) {
|
|
42
|
+
if (key in obj) {
|
|
43
|
+
Object.defineProperty(obj, key, {
|
|
44
|
+
value: value,
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
obj[key] = value;
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
function _interop_require_default(obj) {
|
|
55
|
+
return obj && obj.__esModule ? obj : {
|
|
56
|
+
default: obj
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function _iterable_to_array(iter) {
|
|
60
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
61
|
+
}
|
|
62
|
+
function _non_iterable_spread() {
|
|
63
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
64
|
+
}
|
|
65
|
+
function _to_consumable_array(arr) {
|
|
66
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
67
|
+
}
|
|
68
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
69
|
+
if (!o) return;
|
|
70
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
71
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
72
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
73
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
74
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
75
|
+
}
|
|
76
|
+
var first = _necessary.arrayUtilities.first, query = _database.default.query, command = _database.default.execute;
|
|
77
|
+
var Statement = /*#__PURE__*/ function() {
|
|
78
|
+
function Statement(connection, sql, query, parameters, oneHandler, noneHandler, manyHandler, elseHandler, firstHandler, errorHandler, successHandler) {
|
|
79
|
+
var _this = this;
|
|
80
|
+
_class_call_check(this, Statement);
|
|
81
|
+
_define_property(this, "queryHandler", function(error, rows) {
|
|
82
|
+
if (error) {
|
|
83
|
+
_this.errorHandler(error);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
var rowsLength = rows.length;
|
|
87
|
+
if (false) {
|
|
88
|
+
///
|
|
89
|
+
} else if (_this.noneHandler !== null) {
|
|
90
|
+
if (rowsLength === 0) {
|
|
91
|
+
_this.noneHandler();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
} else if (_this.firstHandler !== null) {
|
|
95
|
+
if (rowsLength > 0) {
|
|
96
|
+
var firstRow = first(rows), row = firstRow, object = _this.objectFromRow(row);
|
|
97
|
+
_this.firstHandler(object);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
} else if (_this.oneHandler !== null) {
|
|
101
|
+
if (rowsLength === 1) {
|
|
102
|
+
var firstRow1 = first(rows), row1 = firstRow1, object1 = _this.objectFromRow(row1);
|
|
103
|
+
_this.oneHandler(object1);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
} else if (_this.manyHandler !== null) {
|
|
107
|
+
var objects = rows.map(function(row) {
|
|
108
|
+
return _this.objectFromRow(row);
|
|
109
|
+
});
|
|
110
|
+
_this.manyHandler(objects);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
_this.elseHandler(rows);
|
|
114
|
+
});
|
|
115
|
+
_define_property(this, "commandHandler", function(error) {
|
|
116
|
+
if (error) {
|
|
117
|
+
_this.errorHandler(error);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
_this.successHandler();
|
|
121
|
+
});
|
|
122
|
+
this.connection = connection;
|
|
123
|
+
this.sql = sql;
|
|
124
|
+
this.query = query;
|
|
125
|
+
this.parameters = parameters;
|
|
126
|
+
this.oneHandler = oneHandler;
|
|
127
|
+
this.noneHandler = noneHandler;
|
|
128
|
+
this.manyHandler = manyHandler;
|
|
129
|
+
this.elseHandler = elseHandler;
|
|
130
|
+
this.firstHandler = firstHandler;
|
|
131
|
+
this.errorHandler = errorHandler;
|
|
132
|
+
this.successHandler = successHandler;
|
|
133
|
+
}
|
|
134
|
+
_create_class(Statement, [
|
|
135
|
+
{
|
|
136
|
+
key: "getConnection",
|
|
137
|
+
value: function getConnection() {
|
|
138
|
+
return this.connection;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
key: "getSQL",
|
|
143
|
+
value: function getSQL() {
|
|
144
|
+
return this.sql;
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
key: "isQuery",
|
|
149
|
+
value: function isQuery() {
|
|
150
|
+
return this.query;
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "getParameters",
|
|
155
|
+
value: function getParameters() {
|
|
156
|
+
return this.parameters;
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "getOneHandler",
|
|
161
|
+
value: function getOneHandler() {
|
|
162
|
+
return this.oneHandler;
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: "getNoneHandler",
|
|
167
|
+
value: function getNoneHandler() {
|
|
168
|
+
return this.noneHandler;
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
key: "getManyHandler",
|
|
173
|
+
value: function getManyHandler() {
|
|
174
|
+
return this.manyHandler;
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
key: "getElseHandler",
|
|
179
|
+
value: function getElseHandler() {
|
|
180
|
+
return this.elseHandler;
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
key: "getFirstHandler",
|
|
185
|
+
value: function getFirstHandler() {
|
|
186
|
+
return this.firstHandler;
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
key: "getErrorHandler",
|
|
191
|
+
value: function getErrorHandler() {
|
|
192
|
+
return this.errorHandler;
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
key: "getSuccessHandler",
|
|
197
|
+
value: function getSuccessHandler() {
|
|
198
|
+
return this.successHandler;
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
key: "setSQL",
|
|
203
|
+
value: function setSQL(sql) {
|
|
204
|
+
this.sql = sql;
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
key: "setQuery",
|
|
209
|
+
value: function setQuery(query) {
|
|
210
|
+
this.query = query;
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
key: "setParameters",
|
|
215
|
+
value: function setParameters(parameters) {
|
|
216
|
+
this.parameters = parameters;
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
key: "one",
|
|
221
|
+
value: function one(oneHandler) {
|
|
222
|
+
this.oneHandler = oneHandler;
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
key: "none",
|
|
228
|
+
value: function none(noneHandler) {
|
|
229
|
+
this.noneHandler = noneHandler;
|
|
230
|
+
return this;
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
key: "many",
|
|
235
|
+
value: function many(manyHandler) {
|
|
236
|
+
this.manyHandler = manyHandler;
|
|
237
|
+
return this;
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
key: "else",
|
|
242
|
+
value: function _else(elseHandler) {
|
|
243
|
+
this.elseHandler = elseHandler;
|
|
244
|
+
return this;
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
key: "first",
|
|
249
|
+
value: function first(firstHandler) {
|
|
250
|
+
this.firstHandler = firstHandler;
|
|
251
|
+
return this;
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
key: "catch",
|
|
256
|
+
value: function _catch(errorHandler) {
|
|
257
|
+
this.errorHandler = errorHandler;
|
|
258
|
+
return this;
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
key: "success",
|
|
263
|
+
value: function success(successHandler) {
|
|
264
|
+
this.successHandler = successHandler;
|
|
265
|
+
return this;
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
key: "set",
|
|
270
|
+
value: function set(objectOrArray) {
|
|
271
|
+
for(var _len = arguments.length, parameters = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
272
|
+
parameters[_key - 1] = arguments[_key];
|
|
273
|
+
}
|
|
274
|
+
var assignments;
|
|
275
|
+
var objectOrArrayIsArray = Array.isArray(objectOrArray);
|
|
276
|
+
if (objectOrArrayIsArray) {
|
|
277
|
+
var array = objectOrArray, strings = array; ///
|
|
278
|
+
assignments = this.assignmentsFromStringsAndParameters(strings, parameters);
|
|
279
|
+
} else {
|
|
280
|
+
var object = objectOrArray; ///
|
|
281
|
+
assignments = this.assignmentsFromObject(object); ///
|
|
282
|
+
}
|
|
283
|
+
this.sql = " ".concat(this.sql, " SET ").concat(assignments);
|
|
284
|
+
return this;
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
key: "where",
|
|
289
|
+
value: function where(objectOrArray) {
|
|
290
|
+
for(var _len = arguments.length, parameters = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
291
|
+
parameters[_key - 1] = arguments[_key];
|
|
292
|
+
}
|
|
293
|
+
var clause;
|
|
294
|
+
var objectOrArrayIsArray = Array.isArray(objectOrArray);
|
|
295
|
+
if (objectOrArrayIsArray) {
|
|
296
|
+
var array = objectOrArray, strings = array; ///
|
|
297
|
+
clause = this.clauseFromStringsAndParameters(strings, parameters);
|
|
298
|
+
} else {
|
|
299
|
+
var object = objectOrArray; ///
|
|
300
|
+
clause = this.clauseFromObject(object); ///
|
|
301
|
+
}
|
|
302
|
+
this.sql = " ".concat(this.sql, " WHERE ").concat(clause);
|
|
303
|
+
return this;
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
key: "values",
|
|
308
|
+
value: function values(objectOrArray) {
|
|
309
|
+
for(var _len = arguments.length, parameters = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
310
|
+
parameters[_key - 1] = arguments[_key];
|
|
311
|
+
}
|
|
312
|
+
var objectOrArrayIsArray = Array.isArray(objectOrArray);
|
|
313
|
+
var columnsAndValues;
|
|
314
|
+
if (objectOrArrayIsArray) {
|
|
315
|
+
var array = objectOrArray, strings = array; ///
|
|
316
|
+
columnsAndValues = this.columnsAndValuesFromStringsAndParameters(strings, parameters);
|
|
317
|
+
} else {
|
|
318
|
+
var object = objectOrArray; ///
|
|
319
|
+
columnsAndValues = this.columnsAndValuesFromObject(object);
|
|
320
|
+
}
|
|
321
|
+
this.sql = "".concat(this.sql, " ").concat(columnsAndValues);
|
|
322
|
+
return this;
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
key: "objectFromRow",
|
|
327
|
+
value: function objectFromRow(row) {
|
|
328
|
+
var _this = this;
|
|
329
|
+
var values = Object.values(row), columns = Object.keys(row), object = columns.reduce(function(object, column, index) {
|
|
330
|
+
var key = _this.keyFromColumn(column), value = values[index];
|
|
331
|
+
object[key] = value;
|
|
332
|
+
return object;
|
|
333
|
+
}, {});
|
|
334
|
+
return object;
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
key: "clauseFromObject",
|
|
339
|
+
value: function clauseFromObject(object) {
|
|
340
|
+
var _this = this;
|
|
341
|
+
var keys = Object.keys(object), columns = keys.map(function(key) {
|
|
342
|
+
return _this.columnFromKey(key);
|
|
343
|
+
}), parameters = Object.values(object), firstIndex = 0, clause = columns.reduce(function(clause, column, index) {
|
|
344
|
+
var placeholder = _this.placeholder();
|
|
345
|
+
clause = index === firstIndex ? "".concat(column, "=").concat(placeholder) : " ".concat(clause, " AND ").concat(column, "=").concat(placeholder);
|
|
346
|
+
return clause;
|
|
347
|
+
}, _constants.EMPTY_STRING);
|
|
348
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
349
|
+
return clause;
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
key: "assignmentsFromObject",
|
|
354
|
+
value: function assignmentsFromObject(object) {
|
|
355
|
+
var _this = this;
|
|
356
|
+
var keys = Object.keys(object), columns = keys.map(function(key) {
|
|
357
|
+
return _this.columnFromKey(key);
|
|
358
|
+
}), parameters = Object.values(object), firstIndex = 0, assignments = columns.reduce(function(assignments, column, index) {
|
|
359
|
+
var placeholder = _this.placeholder();
|
|
360
|
+
assignments = index === firstIndex ? "".concat(column, "=").concat(placeholder) : " ".concat(assignments, ", ").concat(column, "=").concat(placeholder);
|
|
361
|
+
return assignments;
|
|
362
|
+
}, _constants.EMPTY_STRING);
|
|
363
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
364
|
+
return assignments;
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
key: "columnsAndValuesFromObject",
|
|
369
|
+
value: function columnsAndValuesFromObject(object) {
|
|
370
|
+
var _this = this;
|
|
371
|
+
var keys = Object.keys(object), columns = keys.map(function(key) {
|
|
372
|
+
return _this.columnFromKey(key);
|
|
373
|
+
}), parameters = Object.values(object), firstIndex = 0, values = columns.reduce(function(values, column, index) {
|
|
374
|
+
var placeholder = _this.placeholder();
|
|
375
|
+
values = index === firstIndex ? "".concat(placeholder) : " ".concat(values, ", ").concat(placeholder);
|
|
376
|
+
return values;
|
|
377
|
+
}, _constants.EMPTY_STRING), columnsAndValues = "(".concat(columns, ") VALUES (").concat(values, ")");
|
|
378
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
379
|
+
return columnsAndValues;
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
key: "clauseFromStringsAndParameters",
|
|
384
|
+
value: function clauseFromStringsAndParameters(strings, parameters) {
|
|
385
|
+
var _this = this;
|
|
386
|
+
var stringsLength = strings.length, lastIndex = stringsLength - 1, clause = strings.reduce(function(clause, string, index) {
|
|
387
|
+
if (index < lastIndex) {
|
|
388
|
+
var placeholder = _this.placeholder();
|
|
389
|
+
clause = "".concat(clause).concat(string).concat(placeholder);
|
|
390
|
+
} else {
|
|
391
|
+
clause = "".concat(clause).concat(string);
|
|
392
|
+
}
|
|
393
|
+
return clause;
|
|
394
|
+
}, _constants.EMPTY_STRING);
|
|
395
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
396
|
+
return clause;
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
key: "assignmentsFromStringsAndParameters",
|
|
401
|
+
value: function assignmentsFromStringsAndParameters(strings, parameters) {
|
|
402
|
+
var _this = this;
|
|
403
|
+
var stringsLength = strings.length, lastIndex = stringsLength - 1, assignments = strings.reduce(function(assignments, string, index) {
|
|
404
|
+
if (index < lastIndex) {
|
|
405
|
+
var placeholder = _this.placeholder();
|
|
406
|
+
assignments = "".concat(assignments).concat(string).concat(placeholder);
|
|
407
|
+
} else {
|
|
408
|
+
assignments = "".concat(assignments).concat(string);
|
|
409
|
+
}
|
|
410
|
+
return assignments;
|
|
411
|
+
}, _constants.EMPTY_STRING);
|
|
412
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
413
|
+
return assignments;
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
key: "columnsAndValuesFromStringsAndParameters",
|
|
418
|
+
value: function columnsAndValuesFromStringsAndParameters(strings, parameters) {
|
|
419
|
+
var _this = this;
|
|
420
|
+
var stringsLength = strings.length, lastIndex = stringsLength - 1, columnsAndValues = strings.reduce(function(columnsAndValues, string, index) {
|
|
421
|
+
if (index < lastIndex) {
|
|
422
|
+
var placeholder = _this.placeholder();
|
|
423
|
+
columnsAndValues = "".concat(columnsAndValues).concat(string).concat(placeholder);
|
|
424
|
+
} else {
|
|
425
|
+
columnsAndValues = "".concat(columnsAndValues).concat(string);
|
|
426
|
+
}
|
|
427
|
+
return columnsAndValues;
|
|
428
|
+
}, _constants.EMPTY_STRING);
|
|
429
|
+
this.parameters = _to_consumable_array(this.parameters).concat(_to_consumable_array(parameters));
|
|
430
|
+
return columnsAndValues;
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
key: "execute",
|
|
435
|
+
value: function execute() {
|
|
436
|
+
this.query ? query.apply(void 0, [
|
|
437
|
+
this.connection,
|
|
438
|
+
this.sql
|
|
439
|
+
].concat(_to_consumable_array(this.parameters), [
|
|
440
|
+
this.queryHandler
|
|
441
|
+
])) : command.apply(void 0, [
|
|
442
|
+
this.connection,
|
|
443
|
+
this.sql
|
|
444
|
+
].concat(_to_consumable_array(this.parameters), [
|
|
445
|
+
this.commandHandler
|
|
446
|
+
]));
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
], [
|
|
450
|
+
{
|
|
451
|
+
key: "fromConnection",
|
|
452
|
+
value: function fromConnection(Class, connection) {
|
|
453
|
+
var sql = null, query = false, parameters = [], oneHandler = null, noneHandler = null, manyHandler = null, elseHandler = null, firstHandler = null, errorHandler = null, successHandler = null, statement = new Class(connection, sql, query, parameters, oneHandler, noneHandler, manyHandler, elseHandler, firstHandler, errorHandler, successHandler);
|
|
454
|
+
return statement;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
]);
|
|
458
|
+
return Statement;
|
|
459
|
+
}();
|
|
460
|
+
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZGF0YWJhc2UgZnJvbSBcIi4vZGF0YWJhc2VcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBxdWVyeSwgZXhlY3V0ZTogY29tbWFuZCB9ID0gZGF0YWJhc2U7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXRlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb24sIHNxbCwgcXVlcnksIHBhcmFtZXRlcnMsIG9uZUhhbmRsZXIsIG5vbmVIYW5kbGVyLCBtYW55SGFuZGxlciwgZWxzZUhhbmRsZXIsIGZpcnN0SGFuZGxlciwgZXJyb3JIYW5kbGVyLCBzdWNjZXNzSGFuZGxlcikge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgdGhpcy5zcWwgPSBzcWw7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5vbmVIYW5kbGVyID0gb25lSGFuZGxlcjtcbiAgICB0aGlzLm5vbmVIYW5kbGVyID0gbm9uZUhhbmRsZXI7XG4gICAgdGhpcy5tYW55SGFuZGxlciA9IG1hbnlIYW5kbGVyO1xuICAgIHRoaXMuZWxzZUhhbmRsZXIgPSBlbHNlSGFuZGxlcjtcbiAgICB0aGlzLmZpcnN0SGFuZGxlciA9IGZpcnN0SGFuZGxlcjtcbiAgICB0aGlzLmVycm9ySGFuZGxlciA9IGVycm9ySGFuZGxlcjtcbiAgICB0aGlzLnN1Y2Nlc3NIYW5kbGVyID0gc3VjY2Vzc0hhbmRsZXI7XG4gIH1cblxuICBnZXRDb25uZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb247XG4gIH1cblxuICBnZXRTUUwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3FsO1xuICB9XG5cbiAgaXNRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeTtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIGdldE9uZUhhbmRsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMub25lSGFuZGxlcjtcbiAgfVxuXG4gIGdldE5vbmVIYW5kbGVyKCkge1xuICAgIHJldHVybiB0aGlzLm5vbmVIYW5kbGVyO1xuICB9XG5cbiAgZ2V0TWFueUhhbmRsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFueUhhbmRsZXI7XG4gIH1cblxuICBnZXRFbHNlSGFuZGxlcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbHNlSGFuZGxlcjtcbiAgfVxuXG4gIGdldEZpcnN0SGFuZGxlcigpIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdEhhbmRsZXI7XG4gIH1cblxuICBnZXRFcnJvckhhbmRsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyO1xuICB9XG5cbiAgZ2V0U3VjY2Vzc0hhbmRsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VjY2Vzc0hhbmRsZXI7XG4gIH1cblxuICBzZXRTUUwoc3FsKSB7XG4gICAgdGhpcy5zcWwgPSBzcWw7XG4gIH1cblxuICBzZXRRdWVyeShxdWVyeSkge1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgfVxuXG4gIHNldFBhcmFtZXRlcnMocGFyYW1ldGVycykge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gIH1cblxuICBvbmUob25lSGFuZGxlcikge1xuICAgIHRoaXMub25lSGFuZGxlciA9IG9uZUhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5vbmUobm9uZUhhbmRsZXIpIHtcbiAgICB0aGlzLm5vbmVIYW5kbGVyID0gbm9uZUhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG1hbnkobWFueUhhbmRsZXIpIHtcbiAgICB0aGlzLm1hbnlIYW5kbGVyID0gbWFueUhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVsc2UoZWxzZUhhbmRsZXIpIHtcbiAgICB0aGlzLmVsc2VIYW5kbGVyID0gZWxzZUhhbmRsZXI7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZpcnN0KGZpcnN0SGFuZGxlcikge1xuICAgIHRoaXMuZmlyc3RIYW5kbGVyID0gZmlyc3RIYW5kbGVyO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjYXRjaChlcnJvckhhbmRsZXIpIHtcbiAgICB0aGlzLmVycm9ySGFuZGxlciA9IGVycm9ySGFuZGxlcjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3VjY2VzcyhzdWNjZXNzSGFuZGxlcikge1xuICAgIHRoaXMuc3VjY2Vzc0hhbmRsZXIgPSBzdWNjZXNzSGFuZGxlcjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0KG9iamVjdE9yQXJyYXksIC4uLnBhcmFtZXRlcnMpIHtcbiAgICBsZXQgYXNzaWdubWVudHM7XG5cbiAgICBjb25zdCBvYmplY3RPckFycmF5SXNBcnJheSA9IEFycmF5LmlzQXJyYXkob2JqZWN0T3JBcnJheSk7XG5cbiAgICBpZiAob2JqZWN0T3JBcnJheUlzQXJyYXkpIHtcbiAgICAgIGNvbnN0IGFycmF5ID0gb2JqZWN0T3JBcnJheSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5ncyA9IGFycmF5OyAgLy8vXG5cbiAgICAgIGFzc2lnbm1lbnRzID0gdGhpcy5hc3NpZ25tZW50c0Zyb21TdHJpbmdzQW5kUGFyYW1ldGVycyhzdHJpbmdzLCBwYXJhbWV0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2JqZWN0ID0gb2JqZWN0T3JBcnJheTsgIC8vL1xuXG4gICAgICBhc3NpZ25tZW50cyA9IHRoaXMuYXNzaWdubWVudHNGcm9tT2JqZWN0KG9iamVjdCk7IC8vL1xuICAgIH1cblxuICAgIHRoaXMuc3FsID0gYCAke3RoaXMuc3FsfSBTRVQgJHthc3NpZ25tZW50c31gO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3aGVyZShvYmplY3RPckFycmF5LCAuLi5wYXJhbWV0ZXJzKSB7XG4gICAgbGV0IGNsYXVzZTtcblxuICAgIGNvbnN0IG9iamVjdE9yQXJyYXlJc0FycmF5ID0gQXJyYXkuaXNBcnJheShvYmplY3RPckFycmF5KTtcblxuICAgIGlmIChvYmplY3RPckFycmF5SXNBcnJheSkge1xuICAgICAgY29uc3QgYXJyYXkgPSBvYmplY3RPckFycmF5LCAgLy8vXG4gICAgICAgICAgICBzdHJpbmdzID0gYXJyYXk7ICAvLy9cblxuICAgICAgY2xhdXNlID0gdGhpcy5jbGF1c2VGcm9tU3RyaW5nc0FuZFBhcmFtZXRlcnMoc3RyaW5ncywgcGFyYW1ldGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IG9iamVjdE9yQXJyYXk7ICAvLy9cblxuICAgICAgY2xhdXNlID0gdGhpcy5jbGF1c2VGcm9tT2JqZWN0KG9iamVjdCk7IC8vL1xuICAgIH1cblxuICAgIHRoaXMuc3FsID0gYCAke3RoaXMuc3FsfSBXSEVSRSAke2NsYXVzZX1gO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2YWx1ZXMob2JqZWN0T3JBcnJheSwgLi4ucGFyYW1ldGVycykge1xuICAgIGNvbnN0IG9iamVjdE9yQXJyYXlJc0FycmF5ID0gQXJyYXkuaXNBcnJheShvYmplY3RPckFycmF5KTtcblxuICAgIGxldCBjb2x1bW5zQW5kVmFsdWVzO1xuXG4gICAgaWYgKG9iamVjdE9yQXJyYXlJc0FycmF5KSB7XG4gICAgICBjb25zdCBhcnJheSA9IG9iamVjdE9yQXJyYXksICAvLy9cbiAgICAgICAgICAgIHN0cmluZ3MgPSBhcnJheTsgIC8vL1xuXG4gICAgICBjb2x1bW5zQW5kVmFsdWVzID0gdGhpcy5jb2x1bW5zQW5kVmFsdWVzRnJvbVN0cmluZ3NBbmRQYXJhbWV0ZXJzKHN0cmluZ3MsIHBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvYmplY3QgPSBvYmplY3RPckFycmF5OyAgLy8vXG5cbiAgICAgIGNvbHVtbnNBbmRWYWx1ZXMgPSB0aGlzLmNvbHVtbnNBbmRWYWx1ZXNGcm9tT2JqZWN0KG9iamVjdCk7XG4gICAgfVxuXG4gICAgdGhpcy5zcWwgPSBgJHt0aGlzLnNxbH0gJHtjb2x1bW5zQW5kVmFsdWVzfWA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9iamVjdEZyb21Sb3cocm93KSB7XG4gICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhyb3cpLFxuICAgICAgICAgIGNvbHVtbnMgPSBPYmplY3Qua2V5cyhyb3cpLCAvLy9cbiAgICAgICAgICBvYmplY3QgPSBjb2x1bW5zLnJlZHVjZSgob2JqZWN0LCBjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmtleUZyb21Db2x1bW4oY29sdW1uKSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgY2xhdXNlRnJvbU9iamVjdChvYmplY3QpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgICAgICBjb2x1bW5zID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy5jb2x1bW5Gcm9tS2V5KGtleSkpLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBPYmplY3QudmFsdWVzKG9iamVjdCksIC8vL1xuICAgICAgICAgIGZpcnN0SW5kZXggPSAwLFxuICAgICAgICAgIGNsYXVzZSA9IGNvbHVtbnMucmVkdWNlKChjbGF1c2UsIGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcigpO1xuXG4gICAgICAgICAgICBjbGF1c2UgPSAoaW5kZXggPT09IGZpcnN0SW5kZXgpID9cbiAgICAgICAgICAgICAgICBgJHtjb2x1bW59PSR7cGxhY2Vob2xkZXJ9YCA6XG4gICAgICAgICAgICAgICAgYCAke2NsYXVzZX0gQU5EICR7Y29sdW1ufT0ke3BsYWNlaG9sZGVyfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBjbGF1c2U7XG4gICAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHRoaXMucGFyYW1ldGVycyA9IFtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNsYXVzZTtcbiAgfVxuXG4gIGFzc2lnbm1lbnRzRnJvbU9iamVjdChvYmplY3QpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgICAgICBjb2x1bW5zID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy5jb2x1bW5Gcm9tS2V5KGtleSkpLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBPYmplY3QudmFsdWVzKG9iamVjdCksIC8vL1xuICAgICAgICAgIGZpcnN0SW5kZXggPSAwLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gY29sdW1ucy5yZWR1Y2UoKGFzc2lnbm1lbnRzLCBjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIoKTtcblxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSAoaW5kZXggPT09IGZpcnN0SW5kZXgpID9cbiAgICAgICAgICAgICAgICBgJHtjb2x1bW59PSR7cGxhY2Vob2xkZXJ9YCA6XG4gICAgICAgICAgICAgICAgYCAke2Fzc2lnbm1lbnRzfSwgJHtjb2x1bW59PSR7cGxhY2Vob2xkZXJ9YDtcblxuICAgICAgICAgICAgcmV0dXJuIGFzc2lnbm1lbnRzO1xuICAgICAgICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBbXG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi5wYXJhbWV0ZXJzXG4gICAgXTtcblxuICAgIHJldHVybiBhc3NpZ25tZW50cztcbiAgfVxuXG4gIGNvbHVtbnNBbmRWYWx1ZXNGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgICAgICAgIGNvbHVtbnMgPSBrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLmNvbHVtbkZyb21LZXkoa2V5KSksXG4gICAgICAgICAgcGFyYW1ldGVycyA9IE9iamVjdC52YWx1ZXMob2JqZWN0KSwgLy8vXG4gICAgICAgICAgZmlyc3RJbmRleCA9IDAsXG4gICAgICAgICAgdmFsdWVzID0gY29sdW1ucy5yZWR1Y2UoKHZhbHVlcywgY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyKCk7XG5cbiAgICAgICAgICAgIHZhbHVlcyA9IChpbmRleCA9PT0gZmlyc3RJbmRleCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgYCR7cGxhY2Vob2xkZXJ9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICBgICR7dmFsdWVzfSwgJHtwbGFjZWhvbGRlcn1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICAgIH0sIEVNUFRZX1NUUklORyksXG4gICAgICAgICAgY29sdW1uc0FuZFZhbHVlcyA9IGAoJHtjb2x1bW5zfSkgVkFMVUVTICgke3ZhbHVlc30pYDtcblxuICAgIHRoaXMucGFyYW1ldGVycyA9IFtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNBbmRWYWx1ZXM7XG4gIH1cblxuICBjbGF1c2VGcm9tU3RyaW5nc0FuZFBhcmFtZXRlcnMoc3RyaW5ncywgcGFyYW1ldGVycykge1xuICAgIGNvbnN0IHN0cmluZ3NMZW5ndGggPSBzdHJpbmdzLmxlbmd0aCxcbiAgICAgICAgICBsYXN0SW5kZXggPSBzdHJpbmdzTGVuZ3RoIC0gMSxcbiAgICAgICAgICBjbGF1c2UgPSBzdHJpbmdzLnJlZHVjZSgoY2xhdXNlLCBzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyKCk7XG5cbiAgICAgICAgICAgICAgY2xhdXNlID0gYCR7Y2xhdXNlfSR7c3RyaW5nfSR7cGxhY2Vob2xkZXJ9YFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2xhdXNlID0gYCR7Y2xhdXNlfSR7c3RyaW5nfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjbGF1c2U7XG4gICAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHRoaXMucGFyYW1ldGVycyA9IFtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNsYXVzZTtcbiAgfVxuXG4gIGFzc2lnbm1lbnRzRnJvbVN0cmluZ3NBbmRQYXJhbWV0ZXJzKHN0cmluZ3MsIHBhcmFtZXRlcnMpIHtcbiAgICBjb25zdCBzdHJpbmdzTGVuZ3RoID0gc3RyaW5ncy5sZW5ndGgsXG4gICAgICAgICAgbGFzdEluZGV4ID0gc3RyaW5nc0xlbmd0aCAtIDEsXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBzdHJpbmdzLnJlZHVjZSgoYXNzaWdubWVudHMsIHN0cmluZywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIoKTtcblxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IGAke2Fzc2lnbm1lbnRzfSR7c3RyaW5nfSR7cGxhY2Vob2xkZXJ9YFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXNzaWdubWVudHMgPSBgJHthc3NpZ25tZW50c30ke3N0cmluZ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXNzaWdubWVudHM7XG4gICAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHRoaXMucGFyYW1ldGVycyA9IFtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGFzc2lnbm1lbnRzO1xuICB9XG5cbiAgY29sdW1uc0FuZFZhbHVlc0Zyb21TdHJpbmdzQW5kUGFyYW1ldGVycyhzdHJpbmdzLCBwYXJhbWV0ZXJzKSB7XG4gICAgY29uc3Qgc3RyaW5nc0xlbmd0aCA9IHN0cmluZ3MubGVuZ3RoLFxuICAgICAgICAgIGxhc3RJbmRleCA9IHN0cmluZ3NMZW5ndGggLSAxLFxuICAgICAgICAgIGNvbHVtbnNBbmRWYWx1ZXMgPSBzdHJpbmdzLnJlZHVjZSgoY29sdW1uc0FuZFZhbHVlcywgc3RyaW5nLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgbGFzdEluZGV4KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcigpO1xuXG4gICAgICAgICAgICAgIGNvbHVtbnNBbmRWYWx1ZXMgPSBgJHtjb2x1bW5zQW5kVmFsdWVzfSR7c3RyaW5nfSR7cGxhY2Vob2xkZXJ9YFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29sdW1uc0FuZFZhbHVlcyA9IGAke2NvbHVtbnNBbmRWYWx1ZXN9JHtzdHJpbmd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbnNBbmRWYWx1ZXM7XG4gICAgICAgICAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICAgIHRoaXMucGFyYW1ldGVycyA9IFtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNBbmRWYWx1ZXM7XG4gIH1cblxuICBleGVjdXRlKCkge1xuICAgIHRoaXMucXVlcnkgP1xuICAgICAgcXVlcnkodGhpcy5jb25uZWN0aW9uLCB0aGlzLnNxbCwgLi4udGhpcy5wYXJhbWV0ZXJzLCB0aGlzLnF1ZXJ5SGFuZGxlcikgOlxuICAgICAgICBjb21tYW5kKHRoaXMuY29ubmVjdGlvbiwgdGhpcy5zcWwsIC4uLnRoaXMucGFyYW1ldGVycywgdGhpcy5jb21tYW5kSGFuZGxlcik7XG4gIH1cblxuICBxdWVyeUhhbmRsZXIgPSAoZXJyb3IsIHJvd3MpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvd3NMZW5ndGggPSByb3dzLmxlbmd0aDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLm5vbmVIYW5kbGVyICE9PSBudWxsKSB7XG4gICAgICBpZiAocm93c0xlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLm5vbmVIYW5kbGVyKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5maXJzdEhhbmRsZXIgIT09IG51bGwpIHtcbiAgICAgIGlmIChyb3dzTGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBmaXJzdFJvdyA9IGZpcnN0KHJvd3MpLFxuICAgICAgICAgICAgICByb3cgPSBmaXJzdFJvdywgLy8vXG4gICAgICAgICAgICAgIG9iamVjdCA9IHRoaXMub2JqZWN0RnJvbVJvdyhyb3cpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RIYW5kbGVyKG9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5vbmVIYW5kbGVyICE9PSBudWxsKSB7XG4gICAgICBpZiAocm93c0xlbmd0aCA9PT0gMSkge1xuICAgICAgICBjb25zdCBmaXJzdFJvdyA9IGZpcnN0KHJvd3MpLFxuICAgICAgICAgICAgICByb3cgPSBmaXJzdFJvdywgLy8vXG4gICAgICAgICAgICAgIG9iamVjdCA9IHRoaXMub2JqZWN0RnJvbVJvdyhyb3cpO1xuXG4gICAgICAgIHRoaXMub25lSGFuZGxlcihvYmplY3QpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMubWFueUhhbmRsZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG9iamVjdHMgPSByb3dzLm1hcCgocm93KSA9PiB0aGlzLm9iamVjdEZyb21Sb3cocm93KSk7XG5cbiAgICAgIHRoaXMubWFueUhhbmRsZXIob2JqZWN0cyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmVsc2VIYW5kbGVyKHJvd3MpO1xuICB9XG5cbiAgY29tbWFuZEhhbmRsZXIgPSAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VjY2Vzc0hhbmRsZXIoKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29ubmVjdGlvbihDbGFzcywgY29ubmVjdGlvbikge1xuICAgIGNvbnN0IHNxbCA9IG51bGwsXG4gICAgICAgICAgcXVlcnkgPSBmYWxzZSxcbiAgICAgICAgICBwYXJhbWV0ZXJzID0gW10sXG4gICAgICAgICAgb25lSGFuZGxlciA9IG51bGwsXG4gICAgICAgICAgbm9uZUhhbmRsZXIgPSBudWxsLFxuICAgICAgICAgIG1hbnlIYW5kbGVyID0gbnVsbCxcbiAgICAgICAgICBlbHNlSGFuZGxlciA9IG51bGwsXG4gICAgICAgICAgZmlyc3RIYW5kbGVyID0gbnVsbCxcbiAgICAgICAgICBlcnJvckhhbmRsZXIgPSBudWxsLFxuICAgICAgICAgIHN1Y2Nlc3NIYW5kbGVyID0gbnVsbCxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBuZXcgQ2xhc3MoY29ubmVjdGlvbiwgc3FsLCBxdWVyeSwgcGFyYW1ldGVycywgb25lSGFuZGxlciwgbm9uZUhhbmRsZXIsIG1hbnlIYW5kbGVyLCBlbHNlSGFuZGxlciwgZmlyc3RIYW5kbGVyLCBlcnJvckhhbmRsZXIsIHN1Y2Nlc3NIYW5kbGVyKTtcblxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZW1lbnQiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwicXVlcnkiLCJkYXRhYmFzZSIsImV4ZWN1dGUiLCJjb21tYW5kIiwiY29ubmVjdGlvbiIsInNxbCIsInBhcmFtZXRlcnMiLCJvbmVIYW5kbGVyIiwibm9uZUhhbmRsZXIiLCJtYW55SGFuZGxlciIsImVsc2VIYW5kbGVyIiwiZmlyc3RIYW5kbGVyIiwiZXJyb3JIYW5kbGVyIiwic3VjY2Vzc0hhbmRsZXIiLCJxdWVyeUhhbmRsZXIiLCJlcnJvciIsInJvd3MiLCJyb3dzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RSb3ciLCJyb3ciLCJvYmplY3QiLCJvYmplY3RGcm9tUm93Iiwib2JqZWN0cyIsIm1hcCIsImNvbW1hbmRIYW5kbGVyIiwiZ2V0Q29ubmVjdGlvbiIsImdldFNRTCIsImlzUXVlcnkiLCJnZXRQYXJhbWV0ZXJzIiwiZ2V0T25lSGFuZGxlciIsImdldE5vbmVIYW5kbGVyIiwiZ2V0TWFueUhhbmRsZXIiLCJnZXRFbHNlSGFuZGxlciIsImdldEZpcnN0SGFuZGxlciIsImdldEVycm9ySGFuZGxlciIsImdldFN1Y2Nlc3NIYW5kbGVyIiwic2V0U1FMIiwic2V0UXVlcnkiLCJzZXRQYXJhbWV0ZXJzIiwib25lIiwibm9uZSIsIm1hbnkiLCJlbHNlIiwiY2F0Y2giLCJzdWNjZXNzIiwic2V0Iiwib2JqZWN0T3JBcnJheSIsImFzc2lnbm1lbnRzIiwib2JqZWN0T3JBcnJheUlzQXJyYXkiLCJBcnJheSIsImlzQXJyYXkiLCJhcnJheSIsInN0cmluZ3MiLCJhc3NpZ25tZW50c0Zyb21TdHJpbmdzQW5kUGFyYW1ldGVycyIsImFzc2lnbm1lbnRzRnJvbU9iamVjdCIsIndoZXJlIiwiY2xhdXNlIiwiY2xhdXNlRnJvbVN0cmluZ3NBbmRQYXJhbWV0ZXJzIiwiY2xhdXNlRnJvbU9iamVjdCIsInZhbHVlcyIsImNvbHVtbnNBbmRWYWx1ZXMiLCJjb2x1bW5zQW5kVmFsdWVzRnJvbVN0cmluZ3NBbmRQYXJhbWV0ZXJzIiwiY29sdW1uc0FuZFZhbHVlc0Zyb21PYmplY3QiLCJPYmplY3QiLCJjb2x1bW5zIiwia2V5cyIsInJlZHVjZSIsImNvbHVtbiIsImluZGV4Iiwia2V5Iiwia2V5RnJvbUNvbHVtbiIsInZhbHVlIiwiY29sdW1uRnJvbUtleSIsImZpcnN0SW5kZXgiLCJwbGFjZWhvbGRlciIsIkVNUFRZX1NUUklORyIsInN0cmluZ3NMZW5ndGgiLCJsYXN0SW5kZXgiLCJzdHJpbmciLCJmcm9tQ29ubmVjdGlvbiIsIkNsYXNzIiwic3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7Ozt5QkFUVTsrREFFVjt5QkFFUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJELE9BQ0FFLFFBQTRCQyxpQkFBUSxDQUFwQ0QsT0FBT0UsQUFBU0MsVUFBWUYsaUJBQVEsQ0FBN0JDO0FBRUEsSUFBQSxBQUFNTCwwQkFBTjthQUFNQSxVQUNQTyxVQUFVLEVBQUVDLEdBQUcsRUFBRUwsS0FBSyxFQUFFTSxVQUFVLEVBQUVDLFVBQVUsRUFB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
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get createTable () {
|
|
13
|
+
return createTable;
|
|
14
|
+
},
|
|
15
|
+
get insertVersion () {
|
|
16
|
+
return insertVersion;
|
|
17
|
+
},
|
|
18
|
+
get selectMaximumVersion () {
|
|
19
|
+
return selectMaximumVersion;
|
|
20
|
+
},
|
|
21
|
+
get showLikeTables () {
|
|
22
|
+
return showLikeTables;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var _database = require("../database");
|
|
26
|
+
function createTable(connection, sql, callback) {
|
|
27
|
+
(0, _database.execute)(connection, sql, function(error) {
|
|
28
|
+
if (error) {
|
|
29
|
+
var log = connection.getLog();
|
|
30
|
+
log.error("createTable() failed.");
|
|
31
|
+
}
|
|
32
|
+
callback(error);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function insertVersion(connection, version, sql, callback) {
|
|
36
|
+
(0, _database.execute)(connection, sql, version, function(error) {
|
|
37
|
+
if (error) {
|
|
38
|
+
var log = connection.getLog();
|
|
39
|
+
log.error("insertVersion() failed.");
|
|
40
|
+
}
|
|
41
|
+
callback(error);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function showLikeTables(connection, sql, callback) {
|
|
45
|
+
(0, _database.query)(connection, sql, function(error, rows) {
|
|
46
|
+
if (error) {
|
|
47
|
+
var log = connection.getLog();
|
|
48
|
+
log.error("showLikeTables() failed.");
|
|
49
|
+
}
|
|
50
|
+
callback(error, rows);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function selectMaximumVersion(connection, sql, callback) {
|
|
54
|
+
(0, _database.query)(connection, sql, function(error, rows) {
|
|
55
|
+
if (error) {
|
|
56
|
+
var log = connection.getLog();
|
|
57
|
+
log.error("selectMaximumVersion() failed.");
|
|
58
|
+
}
|
|
59
|
+
callback(error, rows);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YWJsZS9taWdyYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHF1ZXJ5LCBleGVjdXRlIH0gZnJvbSBcIi4uL2RhdGFiYXNlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWJsZShjb25uZWN0aW9uLCBzcWwsIGNhbGxiYWNrKSB7XG4gIGV4ZWN1dGUoY29ubmVjdGlvbiwgc3FsLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGxvZyA9IGNvbm5lY3Rpb24uZ2V0TG9nKCk7XG5cbiAgICAgIGxvZy5lcnJvcihcImNyZWF0ZVRhYmxlKCkgZmFpbGVkLlwiKTtcbiAgICB9XG4gICAgXG4gICAgY2FsbGJhY2soZXJyb3IpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFZlcnNpb24oY29ubmVjdGlvbiwgdmVyc2lvbiwgc3FsLCBjYWxsYmFjaykge1xuICBleGVjdXRlKGNvbm5lY3Rpb24sIHNxbCwgdmVyc2lvbiwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zdCBsb2cgPSBjb25uZWN0aW9uLmdldExvZygpO1xuXG4gICAgICBsb2cuZXJyb3IoXCJpbnNlcnRWZXJzaW9uKCkgZmFpbGVkLlwiKTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0xpa2VUYWJsZXMoY29ubmVjdGlvbiwgc3FsLCBjYWxsYmFjaykge1xuICBxdWVyeShjb25uZWN0aW9uLCBzcWwsIChlcnJvciwgcm93cykgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgbG9nID0gY29ubmVjdGlvbi5nZXRMb2coKTtcblxuICAgICAgbG9nLmVycm9yKFwic2hvd0xpa2VUYWJsZXMoKSBmYWlsZWQuXCIpO1xuICAgIH1cbiAgICBcbiAgICBjYWxsYmFjayhlcnJvciwgcm93cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0TWF4aW11bVZlcnNpb24oY29ubmVjdGlvbiwgc3FsLCBjYWxsYmFjaykge1xuICBxdWVyeShjb25uZWN0aW9uLCBzcWwsIChlcnJvciwgcm93cykgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgbG9nID0gY29ubmVjdGlvbi5nZXRMb2coKTtcblxuICAgICAgbG9nLmVycm9yKFwic2VsZWN0TWF4aW11bVZlcnNpb24oKSBmYWlsZWQuXCIpO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKGVycm9yLCByb3dzKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlVGFibGUiLCJpbnNlcnRWZXJzaW9uIiwic2VsZWN0TWF4aW11bVZlcnNpb24iLCJzaG93TGlrZVRhYmxlcyIsImNvbm5lY3Rpb24iLCJzcWwiLCJjYWxsYmFjayIsImV4ZWN1dGUiLCJlcnJvciIsImxvZyIsImdldExvZyIsInZlcnNpb24iLCJxdWVyeSIsInJvd3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBWUFDO2VBQUFBOztRQXdCQUM7ZUFBQUE7O1FBWkFDO2VBQUFBOzs7d0JBMUJlO0FBRXhCLFNBQVNILFlBQVlJLFVBQVUsRUFBRUMsR0FBRyxFQUFFQyxRQUFRO0lBQ25EQyxJQUFBQSxpQkFBTyxFQUFDSCxZQUFZQyxLQUFLLFNBQUNHO1FBQ3hCLElBQUlBLE9BQU87WUFDVCxJQUFNQyxNQUFNTCxXQUFXTSxNQUFNO1lBRTdCRCxJQUFJRCxLQUFLLENBQUM7UUFDWjtRQUVBRixTQUFTRTtJQUNYO0FBQ0Y7QUFFTyxTQUFTUCxjQUFjRyxVQUFVLEVBQUVPLE9BQU8sRUFBRU4sR0FBRyxFQUFFQyxRQUFRO0lBQzlEQyxJQUFBQSxpQkFBTyxFQUFDSCxZQUFZQyxLQUFLTSxTQUFTLFNBQUNIO1FBQ2pDLElBQUlBLE9BQU87WUFDVCxJQUFNQyxNQUFNTCxXQUFXTSxNQUFNO1lBRTdCRCxJQUFJRCxLQUFLLENBQUM7UUFDWjtRQUVBRixTQUFTRTtJQUNYO0FBQ0Y7QUFFTyxTQUFTTCxlQUFlQyxVQUFVLEVBQUVDLEdBQUcsRUFBRUMsUUFBUTtJQUN0RE0sSUFBQUEsZUFBSyxFQUFDUixZQUFZQyxLQUFLLFNBQUNHLE9BQU9LO1FBQzdCLElBQUlMLE9BQU87WUFDVCxJQUFNQyxNQUFNTCxXQUFXTSxNQUFNO1lBRTdCRCxJQUFJRCxLQUFLLENBQUM7UUFDWjtRQUVBRixTQUFTRSxPQUFPSztJQUNsQjtBQUNGO0FBRU8sU0FBU1gscUJBQXFCRSxVQUFVLEVBQUVDLEdBQUcsRUFBRUMsUUFBUTtJQUM1RE0sSUFBQUEsZUFBSyxFQUFDUixZQUFZQyxLQUFLLFNBQUNHLE9BQU9LO1FBQzdCLElBQUlMLE9BQU87WUFDVCxJQUFNQyxNQUFNTCxXQUFXTSxNQUFNO1lBRTdCRCxJQUFJRCxLQUFLLENBQUM7UUFDWjtRQUVBRixTQUFTRSxPQUFPSztJQUNsQjtBQUNGIn0=
|