@ditojs/server 0.275.0 → 1.0.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/package.json +25 -43
- package/src/app/Application.js +105 -111
- package/src/app/Validator.js +6 -3
- package/src/app/index.js +2 -2
- package/src/cli/db/createMigration.js +1 -1
- package/src/cli/db/index.js +7 -7
- package/src/cli/db/listAssetConfig.js +1 -1
- package/src/cli/db/reset.js +1 -1
- package/src/cli/index.js +14 -5
- package/src/controllers/AdminController.js +181 -158
- package/src/controllers/CollectionController.js +8 -29
- package/src/controllers/Controller.js +71 -76
- package/src/controllers/ControllerAction.js +39 -17
- package/src/controllers/MemberAction.js +2 -2
- package/src/controllers/ModelController.js +4 -4
- package/src/controllers/RelationController.js +3 -3
- package/src/controllers/{UserController.js → UsersController.js} +8 -13
- package/src/controllers/index.js +5 -5
- package/src/decorators/action.js +3 -3
- package/src/decorators/authorize.js +1 -1
- package/src/decorators/index.js +6 -6
- package/src/decorators/parameters.js +1 -1
- package/src/decorators/returns.js +1 -1
- package/src/decorators/scope.js +1 -1
- package/src/decorators/transacted.js +1 -1
- package/src/errors/AssetError.js +1 -1
- package/src/errors/AuthenticationError.js +1 -1
- package/src/errors/AuthorizationError.js +1 -1
- package/src/errors/ControllerError.js +1 -1
- package/src/errors/DatabaseError.js +12 -3
- package/src/errors/GraphError.js +1 -1
- package/src/errors/ModelError.js +1 -1
- package/src/errors/NotFoundError.js +1 -1
- package/src/errors/NotImplementedError.js +1 -1
- package/src/errors/QueryBuilderError.js +1 -1
- package/src/errors/RelationError.js +1 -1
- package/src/errors/ValidationError.js +1 -1
- package/src/errors/WrappedError.js +1 -1
- package/src/errors/index.js +14 -14
- package/src/graph/DitoGraphProcessor.js +2 -1
- package/src/graph/graph.js +1 -1
- package/src/graph/index.js +3 -3
- package/src/index.js +11 -9
- package/src/lib/index.js +2 -2
- package/src/middleware/createTransaction.js +1 -1
- package/src/middleware/findRoute.js +3 -2
- package/src/middleware/handleConnectMiddleware.js +88 -0
- package/src/middleware/handleError.js +1 -1
- package/src/middleware/handleRoute.js +3 -3
- package/src/middleware/index.js +8 -7
- package/src/mixins/AssetMixin.js +1 -1
- package/src/mixins/UserMixin.js +1 -1
- package/src/mixins/index.js +4 -4
- package/src/models/AssetModel.js +2 -2
- package/src/models/Model.js +16 -12
- package/src/models/RelationAccessor.js +1 -1
- package/src/models/SessionModel.js +2 -2
- package/src/models/TimeStampedModel.js +2 -2
- package/src/models/UserModel.js +2 -2
- package/src/models/definitions/assets.js +1 -1
- package/src/models/definitions/filters.js +57 -44
- package/src/models/definitions/hooks.js +1 -1
- package/src/models/definitions/index.js +9 -9
- package/src/models/definitions/modifiers.js +1 -1
- package/src/models/definitions/options.js +1 -1
- package/src/models/definitions/properties.js +2 -2
- package/src/models/definitions/relations.js +1 -1
- package/src/models/definitions/schema.js +1 -1
- package/src/models/definitions/scopes.js +2 -2
- package/src/models/index.js +5 -5
- package/src/query/QueryBuilder.js +5 -5
- package/src/query/QueryFilters.js +50 -50
- package/src/query/QueryParameters.js +2 -2
- package/src/query/index.js +3 -3
- package/src/schema/formats/index.js +2 -2
- package/src/schema/index.js +4 -4
- package/src/schema/keywords/_relate.js +1 -1
- package/src/schema/keywords/index.js +12 -12
- package/src/schema/properties.test.js +1 -1
- package/src/schema/relations.js +1 -1
- package/src/schema/relations.test.js +2 -2
- package/src/services/index.js +1 -1
- package/src/storage/DiskStorage.js +1 -1
- package/src/storage/S3Storage.js +4 -4
- package/src/storage/Storage.js +1 -1
- package/src/storage/index.js +4 -4
- package/src/utils/function.test.js +1 -1
- package/src/utils/handler.js +17 -0
- package/src/utils/index.js +8 -7
- package/src/utils/object.test.js +1 -1
- package/lib/app/Application.js +0 -961
- package/lib/app/SessionStore.js +0 -40
- package/lib/app/Validator.js +0 -355
- package/lib/app/index.js +0 -26
- package/lib/cli/console.js +0 -175
- package/lib/cli/db/createMigration.js +0 -237
- package/lib/cli/db/index.js +0 -66
- package/lib/cli/db/listAssetConfig.js +0 -16
- package/lib/cli/db/migrate.js +0 -15
- package/lib/cli/db/reset.js +0 -27
- package/lib/cli/db/rollback.js +0 -15
- package/lib/cli/db/seed.js +0 -104
- package/lib/cli/db/unlock.js +0 -15
- package/lib/cli/index.js +0 -90
- package/lib/controllers/AdminController.js +0 -258
- package/lib/controllers/CollectionController.js +0 -263
- package/lib/controllers/Controller.js +0 -462
- package/lib/controllers/ControllerAction.js +0 -276
- package/lib/controllers/MemberAction.js +0 -22
- package/lib/controllers/ModelController.js +0 -64
- package/lib/controllers/RelationController.js +0 -82
- package/lib/controllers/UserController.js +0 -98
- package/lib/controllers/index.js +0 -50
- package/lib/decorators/action.js +0 -14
- package/lib/decorators/authorize.js +0 -13
- package/lib/decorators/index.js +0 -58
- package/lib/decorators/parameters.js +0 -35
- package/lib/decorators/returns.js +0 -26
- package/lib/decorators/scope.js +0 -14
- package/lib/decorators/transacted.js +0 -12
- package/lib/errors/AssetError.js +0 -19
- package/lib/errors/AuthenticationError.js +0 -19
- package/lib/errors/AuthorizationError.js +0 -19
- package/lib/errors/ControllerError.js +0 -24
- package/lib/errors/DatabaseError.js +0 -27
- package/lib/errors/GraphError.js +0 -19
- package/lib/errors/ModelError.js +0 -24
- package/lib/errors/NotFoundError.js +0 -19
- package/lib/errors/NotImplementedError.js +0 -19
- package/lib/errors/QueryBuilderError.js +0 -19
- package/lib/errors/RelationError.js +0 -36
- package/lib/errors/ResponseError.js +0 -46
- package/lib/errors/ValidationError.js +0 -19
- package/lib/errors/WrappedError.js +0 -24
- package/lib/errors/index.js +0 -122
- package/lib/graph/DitoGraphProcessor.js +0 -185
- package/lib/graph/expression.js +0 -76
- package/lib/graph/graph.js +0 -300
- package/lib/graph/index.js +0 -34
- package/lib/index.js +0 -82
- package/lib/lib/EventEmitter.js +0 -76
- package/lib/lib/KnexHelper.js +0 -40
- package/lib/lib/index.js +0 -26
- package/lib/middleware/attachLogger.js +0 -16
- package/lib/middleware/createTransaction.js +0 -36
- package/lib/middleware/findRoute.js +0 -35
- package/lib/middleware/handleError.js +0 -26
- package/lib/middleware/handleRoute.js +0 -29
- package/lib/middleware/handleUser.js +0 -36
- package/lib/middleware/index.js +0 -66
- package/lib/middleware/logRequests.js +0 -122
- package/lib/mixins/AssetMixin.js +0 -81
- package/lib/mixins/SessionMixin.js +0 -22
- package/lib/mixins/TimeStampedMixin.js +0 -47
- package/lib/mixins/UserMixin.js +0 -151
- package/lib/mixins/index.js +0 -42
- package/lib/models/AssetModel.js +0 -12
- package/lib/models/Model.js +0 -953
- package/lib/models/RelationAccessor.js +0 -41
- package/lib/models/SessionModel.js +0 -12
- package/lib/models/TimeStampedModel.js +0 -12
- package/lib/models/UserModel.js +0 -12
- package/lib/models/definitions/assets.js +0 -11
- package/lib/models/definitions/filters.js +0 -101
- package/lib/models/definitions/hooks.js +0 -11
- package/lib/models/definitions/index.js +0 -38
- package/lib/models/definitions/modifiers.js +0 -11
- package/lib/models/definitions/options.js +0 -11
- package/lib/models/definitions/properties.js +0 -87
- package/lib/models/definitions/relations.js +0 -11
- package/lib/models/definitions/schema.js +0 -11
- package/lib/models/definitions/scopes.js +0 -51
- package/lib/models/index.js +0 -50
- package/lib/query/QueryBuilder.js +0 -745
- package/lib/query/QueryFilters.js +0 -82
- package/lib/query/QueryParameters.js +0 -77
- package/lib/query/Registry.js +0 -40
- package/lib/query/index.js +0 -34
- package/lib/schema/formats/_empty.js +0 -10
- package/lib/schema/formats/_required.js +0 -10
- package/lib/schema/formats/index.js +0 -26
- package/lib/schema/index.js +0 -49
- package/lib/schema/keywords/_computed.js +0 -11
- package/lib/schema/keywords/_foreign.js +0 -11
- package/lib/schema/keywords/_hidden.js +0 -11
- package/lib/schema/keywords/_index.js +0 -11
- package/lib/schema/keywords/_instanceof.js +0 -49
- package/lib/schema/keywords/_primary.js +0 -11
- package/lib/schema/keywords/_range.js +0 -26
- package/lib/schema/keywords/_relate.js +0 -19
- package/lib/schema/keywords/_specificType.js +0 -11
- package/lib/schema/keywords/_unique.js +0 -11
- package/lib/schema/keywords/_unsigned.js +0 -11
- package/lib/schema/keywords/_validate.js +0 -80
- package/lib/schema/keywords/index.js +0 -106
- package/lib/schema/properties.js +0 -227
- package/lib/schema/properties.test.js +0 -573
- package/lib/schema/relations.js +0 -274
- package/lib/schema/relations.test.js +0 -155
- package/lib/services/Service.js +0 -34
- package/lib/services/index.js +0 -18
- package/lib/storage/AssetFile.js +0 -97
- package/lib/storage/DiskStorage.js +0 -125
- package/lib/storage/S3Storage.js +0 -171
- package/lib/storage/Storage.js +0 -209
- package/lib/storage/index.js +0 -34
- package/lib/utils/decorator.js +0 -16
- package/lib/utils/deprecate.js +0 -46
- package/lib/utils/emitter.js +0 -13
- package/lib/utils/function.js +0 -14
- package/lib/utils/function.test.js +0 -49
- package/lib/utils/index.js +0 -66
- package/lib/utils/json.js +0 -9
- package/lib/utils/object.js +0 -92
- package/lib/utils/object.test.js +0 -65
- package/lib/utils/scope.js +0 -14
package/lib/graph/graph.js
DELETED
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.ensureModel = ensureModel;
|
|
5
|
-
exports.ensureModelArray = ensureModelArray;
|
|
6
|
-
exports.filterGraph = filterGraph;
|
|
7
|
-
exports.populateGraph = populateGraph;
|
|
8
|
-
exports.walkGraph = walkGraph;
|
|
9
|
-
|
|
10
|
-
require("core-js/modules/esnext.async-iterator.map.js");
|
|
11
|
-
|
|
12
|
-
require("core-js/modules/esnext.iterator.map.js");
|
|
13
|
-
|
|
14
|
-
require("core-js/modules/esnext.map.delete-all.js");
|
|
15
|
-
|
|
16
|
-
require("core-js/modules/esnext.map.emplace.js");
|
|
17
|
-
|
|
18
|
-
require("core-js/modules/esnext.map.every.js");
|
|
19
|
-
|
|
20
|
-
require("core-js/modules/esnext.map.filter.js");
|
|
21
|
-
|
|
22
|
-
require("core-js/modules/esnext.map.find.js");
|
|
23
|
-
|
|
24
|
-
require("core-js/modules/esnext.map.find-key.js");
|
|
25
|
-
|
|
26
|
-
require("core-js/modules/esnext.map.includes.js");
|
|
27
|
-
|
|
28
|
-
require("core-js/modules/esnext.map.key-of.js");
|
|
29
|
-
|
|
30
|
-
require("core-js/modules/esnext.map.map-keys.js");
|
|
31
|
-
|
|
32
|
-
require("core-js/modules/esnext.map.map-values.js");
|
|
33
|
-
|
|
34
|
-
require("core-js/modules/esnext.map.merge.js");
|
|
35
|
-
|
|
36
|
-
require("core-js/modules/esnext.map.reduce.js");
|
|
37
|
-
|
|
38
|
-
require("core-js/modules/esnext.map.some.js");
|
|
39
|
-
|
|
40
|
-
require("core-js/modules/esnext.map.update.js");
|
|
41
|
-
|
|
42
|
-
require("core-js/modules/esnext.async-iterator.reduce.js");
|
|
43
|
-
|
|
44
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
45
|
-
|
|
46
|
-
require("core-js/modules/esnext.iterator.reduce.js");
|
|
47
|
-
|
|
48
|
-
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
49
|
-
|
|
50
|
-
require("core-js/modules/esnext.iterator.filter.js");
|
|
51
|
-
|
|
52
|
-
var _utils = require("@ditojs/utils");
|
|
53
|
-
|
|
54
|
-
var _query = require("../query");
|
|
55
|
-
|
|
56
|
-
var _expression = require("./expression.js");
|
|
57
|
-
|
|
58
|
-
function ensureModel(modelClass, model, options) {
|
|
59
|
-
return !model ? null : model instanceof modelClass ? parseRelationsIntoModelInstances(model, model, options) : modelClass.fromJson(model, options);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function ensureModelArray(modelClass, data, options) {
|
|
63
|
-
return data ? (0, _utils.asArray)(data).map(model => ensureModel(modelClass, model, options)) : [];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function parseRelationsIntoModelInstances(model, json, options = {}) {
|
|
67
|
-
if (!options.cache) {
|
|
68
|
-
options = { ...options,
|
|
69
|
-
cache: new Map()
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
options.cache.set(json, model);
|
|
74
|
-
|
|
75
|
-
for (const relationName of model.constructor.getRelationNames()) {
|
|
76
|
-
const jsonRelation = json[relationName];
|
|
77
|
-
|
|
78
|
-
if (jsonRelation !== undefined) {
|
|
79
|
-
const relation = model.constructor.getRelation(relationName);
|
|
80
|
-
const parsedRelation = parseRelation(jsonRelation, relation, options);
|
|
81
|
-
|
|
82
|
-
if (parsedRelation !== jsonRelation) {
|
|
83
|
-
model[relation.name] = parsedRelation;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return model;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function parseRelation(json, relation, options) {
|
|
92
|
-
return (0, _utils.isArray)(json) ? parseRelationArray(json, relation, options) : parseRelationObject(json, relation, options);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function parseRelationArray(json, relation, options) {
|
|
96
|
-
const models = new Array(json.length);
|
|
97
|
-
let changed = false;
|
|
98
|
-
|
|
99
|
-
for (let i = 0, l = json.length; i < l; i++) {
|
|
100
|
-
const model = parseRelationObject(json[i], relation, options);
|
|
101
|
-
changed = changed || model !== json[i];
|
|
102
|
-
models[i] = model;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return changed ? models : json;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function parseRelationObject(json, relation, options) {
|
|
109
|
-
if ((0, _utils.isObject)(json)) {
|
|
110
|
-
const modelClass = relation.relatedModelClass;
|
|
111
|
-
let model = options.cache.get(json);
|
|
112
|
-
|
|
113
|
-
if (model === undefined) {
|
|
114
|
-
if (json instanceof modelClass) {
|
|
115
|
-
model = parseRelationsIntoModelInstances(json, json, options);
|
|
116
|
-
} else {
|
|
117
|
-
model = modelClass.fromJson(json, options);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return model;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return json;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function walkGraph(data, callback, path = []) {
|
|
128
|
-
if ((0, _utils.isObject)(data) || (0, _utils.isArray)(data)) {
|
|
129
|
-
for (const [key, value] of Object.entries(data)) {
|
|
130
|
-
const dataPath = [...path, key];
|
|
131
|
-
callback(value, dataPath, data, key);
|
|
132
|
-
walkGraph(value, callback, dataPath);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function filterGraph(rootModelClass, modelGraph, expr) {
|
|
138
|
-
expr = _query.QueryBuilder.parseRelationExpression(expr);
|
|
139
|
-
const models = ensureModelArray(rootModelClass, modelGraph, {
|
|
140
|
-
skipValidation: true
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
for (const model of models) {
|
|
144
|
-
if (model) {
|
|
145
|
-
const relations = model.constructor.getRelations();
|
|
146
|
-
|
|
147
|
-
for (const key of Object.keys(model)) {
|
|
148
|
-
const relation = relations[key];
|
|
149
|
-
|
|
150
|
-
if (relation) {
|
|
151
|
-
const child = expr[key];
|
|
152
|
-
|
|
153
|
-
if (child) {
|
|
154
|
-
filterGraph(relation.relatedModelClass, model[key], child);
|
|
155
|
-
} else {
|
|
156
|
-
delete model[key];
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return modelGraph;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
async function populateGraph(rootModelClass, graph, expr, trx) {
|
|
167
|
-
expr = _query.QueryBuilder.parseRelationExpression(expr);
|
|
168
|
-
const grouped = {};
|
|
169
|
-
|
|
170
|
-
const addToGroup = (item, modelClass, isReference, modify, relation, expr) => {
|
|
171
|
-
const id = item.$id();
|
|
172
|
-
|
|
173
|
-
if (id != null) {
|
|
174
|
-
const key = `${modelClass.name}_${modify}_${expr || ''}`;
|
|
175
|
-
const group = grouped[key] || (grouped[key] = {
|
|
176
|
-
modelClass,
|
|
177
|
-
modify,
|
|
178
|
-
relation,
|
|
179
|
-
expr,
|
|
180
|
-
targets: [],
|
|
181
|
-
ids: [],
|
|
182
|
-
modelsById: {}
|
|
183
|
-
});
|
|
184
|
-
group.targets.push({
|
|
185
|
-
item,
|
|
186
|
-
isReference
|
|
187
|
-
});
|
|
188
|
-
group.ids.push(id);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
for (const path of (0, _expression.collectExpressionPaths)(expr)) {
|
|
193
|
-
let modelClass = rootModelClass;
|
|
194
|
-
const modelClasses = [];
|
|
195
|
-
let lastModify;
|
|
196
|
-
|
|
197
|
-
for (const entry of path) {
|
|
198
|
-
modelClasses.push(modelClass);
|
|
199
|
-
modelClass = modelClass.getRelation(entry.relation).relatedModelClass;
|
|
200
|
-
lastModify = entry.modify;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
for (const model of (0, _utils.asArray)(graph)) {
|
|
204
|
-
if (model) {
|
|
205
|
-
let items = (0, _utils.asArray)(model);
|
|
206
|
-
|
|
207
|
-
for (let i = 0, l = path.length; i < l; i++) {
|
|
208
|
-
if (items.length === 0) break;
|
|
209
|
-
const {
|
|
210
|
-
relation
|
|
211
|
-
} = path[i];
|
|
212
|
-
const modelClass = modelClasses[i];
|
|
213
|
-
items = items.reduce((items, item) => {
|
|
214
|
-
item = ensureModel(modelClass, item, {
|
|
215
|
-
skipValidation: true
|
|
216
|
-
});
|
|
217
|
-
let add = false;
|
|
218
|
-
const isReference = modelClass.isReference(item);
|
|
219
|
-
|
|
220
|
-
if (isReference) {
|
|
221
|
-
add = true;
|
|
222
|
-
} else {
|
|
223
|
-
const value = item[relation];
|
|
224
|
-
|
|
225
|
-
if (value != null) {
|
|
226
|
-
items.push(...(0, _utils.asArray)(value));
|
|
227
|
-
} else if (value === undefined) {
|
|
228
|
-
add = true;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if (add) {
|
|
233
|
-
const modify = i > 0 ? path[i - 1].modify : null;
|
|
234
|
-
const expr = (0, _expression.expressionPathToString)(path, i);
|
|
235
|
-
addToGroup(item, modelClass, isReference, modify, relation, expr);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
return items;
|
|
239
|
-
}, []);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
for (const item of items) {
|
|
243
|
-
if (modelClass.isReference(item)) {
|
|
244
|
-
addToGroup(item, modelClass, true, lastModify);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
const groups = Object.values(grouped).filter(({
|
|
252
|
-
ids
|
|
253
|
-
}) => ids.length > 0);
|
|
254
|
-
|
|
255
|
-
if (groups.length > 0) {
|
|
256
|
-
await Promise.all(groups.map(async ({
|
|
257
|
-
modelClass,
|
|
258
|
-
modify,
|
|
259
|
-
expr,
|
|
260
|
-
ids,
|
|
261
|
-
modelsById
|
|
262
|
-
}) => {
|
|
263
|
-
const query = modelClass.query(trx).findByIds(ids).modify(modify);
|
|
264
|
-
|
|
265
|
-
if (expr) {
|
|
266
|
-
query.withGraph(expr);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
const models = await query;
|
|
270
|
-
|
|
271
|
-
for (const model of models) {
|
|
272
|
-
modelsById[model.$id()] = model;
|
|
273
|
-
}
|
|
274
|
-
}));
|
|
275
|
-
|
|
276
|
-
for (const {
|
|
277
|
-
targets,
|
|
278
|
-
modelsById,
|
|
279
|
-
relation
|
|
280
|
-
} of groups) {
|
|
281
|
-
for (const {
|
|
282
|
-
item,
|
|
283
|
-
isReference
|
|
284
|
-
} of targets) {
|
|
285
|
-
const model = modelsById[item.$id()];
|
|
286
|
-
|
|
287
|
-
if (model) {
|
|
288
|
-
if (isReference) {
|
|
289
|
-
Object.assign(item, model);
|
|
290
|
-
} else {
|
|
291
|
-
item[relation] = model[relation];
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
return graph;
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaC9ncmFwaC5qcyJdLCJuYW1lcyI6WyJlbnN1cmVNb2RlbCIsIm1vZGVsQ2xhc3MiLCJtb2RlbCIsIm9wdGlvbnMiLCJwYXJzZVJlbGF0aW9uc0ludG9Nb2RlbEluc3RhbmNlcyIsImZyb21Kc29uIiwiZW5zdXJlTW9kZWxBcnJheSIsImRhdGEiLCJtYXAiLCJqc29uIiwiY2FjaGUiLCJNYXAiLCJzZXQiLCJyZWxhdGlvbk5hbWUiLCJjb25zdHJ1Y3RvciIsImdldFJlbGF0aW9uTmFtZXMiLCJqc29uUmVsYXRpb24iLCJ1bmRlZmluZWQiLCJyZWxhdGlvbiIsImdldFJlbGF0aW9uIiwicGFyc2VkUmVsYXRpb24iLCJwYXJzZVJlbGF0aW9uIiwibmFtZSIsInBhcnNlUmVsYXRpb25BcnJheSIsInBhcnNlUmVsYXRpb25PYmplY3QiLCJtb2RlbHMiLCJBcnJheSIsImxlbmd0aCIsImNoYW5nZWQiLCJpIiwibCIsInJlbGF0ZWRNb2RlbENsYXNzIiwiZ2V0Iiwid2Fsa0dyYXBoIiwiY2FsbGJhY2siLCJwYXRoIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwiZGF0YVBhdGgiLCJmaWx0ZXJHcmFwaCIsInJvb3RNb2RlbENsYXNzIiwibW9kZWxHcmFwaCIsImV4cHIiLCJRdWVyeUJ1aWxkZXIiLCJwYXJzZVJlbGF0aW9uRXhwcmVzc2lvbiIsInNraXBWYWxpZGF0aW9uIiwicmVsYXRpb25zIiwiZ2V0UmVsYXRpb25zIiwia2V5cyIsImNoaWxkIiwicG9wdWxhdGVHcmFwaCIsImdyYXBoIiwidHJ4IiwiZ3JvdXBlZCIsImFkZFRvR3JvdXAiLCJpdGVtIiwiaXNSZWZlcmVuY2UiLCJtb2RpZnkiLCJpZCIsIiRpZCIsImdyb3VwIiwidGFyZ2V0cyIsImlkcyIsIm1vZGVsc0J5SWQiLCJwdXNoIiwibW9kZWxDbGFzc2VzIiwibGFzdE1vZGlmeSIsImVudHJ5IiwiaXRlbXMiLCJyZWR1Y2UiLCJhZGQiLCJncm91cHMiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJQcm9taXNlIiwiYWxsIiwicXVlcnkiLCJmaW5kQnlJZHMiLCJ3aXRoR3JhcGgiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUdPLFNBQVNBLFdBQVQsQ0FBcUJDLFVBQXJCLEVBQWlDQyxLQUFqQyxFQUF3Q0MsT0FBeEMsRUFBaUQ7QUFDdEQsU0FBTyxDQUFDRCxLQUFELEdBQ0gsSUFERyxHQUVIQSxLQUFLLFlBQVlELFVBQWpCLEdBQ0VHLGdDQUFnQyxDQUFDRixLQUFELEVBQVFBLEtBQVIsRUFBZUMsT0FBZixDQURsQyxHQUVFRixVQUFVLENBQUNJLFFBQVgsQ0FBb0JILEtBQXBCLEVBQTJCQyxPQUEzQixDQUpOO0FBS0Q7O0FBR00sU0FBU0csZ0JBQVQsQ0FBMEJMLFVBQTFCLEVBQXNDTSxJQUF0QyxFQUE0Q0osT0FBNUMsRUFBcUQ7QUFDMUQsU0FBT0ksSUFBSSxHQUNQLG9CQUFRQSxJQUFSLEVBQWNDLEdBQWQsQ0FBa0JOLEtBQUssSUFBSUYsV0FBVyxDQUFDQyxVQUFELEVBQWFDLEtBQWIsRUFBb0JDLE9BQXBCLENBQXRDLENBRE8sR0FFUCxFQUZKO0FBR0Q7O0FBRUQsU0FBU0MsZ0NBQVQsQ0FBMENGLEtBQTFDLEVBQWlETyxJQUFqRCxFQUF1RE4sT0FBTyxHQUFHLEVBQWpFLEVBQXFFO0FBQ25FLE1BQUksQ0FBQ0EsT0FBTyxDQUFDTyxLQUFiLEVBQW9CO0FBQ2xCUCxJQUFBQSxPQUFPLEdBQUcsRUFBRSxHQUFHQSxPQUFMO0FBQWNPLE1BQUFBLEtBQUssRUFBRSxJQUFJQyxHQUFKO0FBQXJCLEtBQVY7QUFDRDs7QUFDRFIsRUFBQUEsT0FBTyxDQUFDTyxLQUFSLENBQWNFLEdBQWQsQ0FBa0JILElBQWxCLEVBQXdCUCxLQUF4Qjs7QUFFQSxPQUFLLE1BQU1XLFlBQVgsSUFBMkJYLEtBQUssQ0FBQ1ksV0FBTixDQUFrQkMsZ0JBQWxCLEVBQTNC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R0FBTCxFQUFELENBQXhCOztBQUNBLFlBQUkzRCxLQUFKLEVBQVc7QUFDVCxjQUFJd0QsV0FBSixFQUFpQjtBQUVmcEIsWUFBQUEsTUFBTSxDQUFDMkMsTUFBUCxDQUFjeEIsSUFBZCxFQUFvQnZELEtBQXBCO0FBQ0QsV0FIRCxNQUdPO0FBRUx1RCxZQUFBQSxJQUFJLENBQUN2QyxRQUFELENBQUosR0FBaUJoQixLQUFLLENBQUNnQixRQUFELENBQXRCO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPbUMsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYmplY3QsIGlzQXJyYXksIGFzQXJyYXkgfSBmcm9tICdAZGl0b2pzL3V0aWxzJ1xuaW1wb3J0IHsgUXVlcnlCdWlsZGVyIH0gZnJvbSAnQC9xdWVyeSdcbmltcG9ydCB7IGNvbGxlY3RFeHByZXNzaW9uUGF0aHMsIGV4cHJlc3Npb25QYXRoVG9TdHJpbmcgfSBmcm9tICcuL2V4cHJlc3Npb24uanMnXG5cbi8vIFNpbWlsYXIgdG8gT2JqZWN0aW9uJ3MgcHJpdmF0ZSBgbW9kZWxDbGFzcy5lbnN1cmVNb2RlbChtb2RlbClgOlxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU1vZGVsKG1vZGVsQ2xhc3MsIG1vZGVsLCBvcHRpb25zKSB7XG4gIHJldHVybiAhbW9kZWxcbiAgICA/IG51bGxcbiAgICA6IG1vZGVsIGluc3RhbmNlb2YgbW9kZWxDbGFzc1xuICAgICAgPyBwYXJzZVJlbGF0aW9uc0ludG9Nb2RlbEluc3RhbmNlcyhtb2RlbCwgbW9kZWwsIG9wdGlvbnMpXG4gICAgICA6IG1vZGVsQ2xhc3MuZnJvbUpzb24obW9kZWwsIG9wdGlvbnMpXG59XG5cbi8vIFNpbWlsYXIgdG8gT2JqZWN0aW9uJ3MgcHJpdmF0ZSBgbW9kZWxDbGFzcy5lbnN1cmVNb2RlbEFycmF5KGRhdGEpYDpcbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVNb2RlbEFycmF5KG1vZGVsQ2xhc3MsIGRhdGEsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGRhdGFcbiAgICA/IGFzQXJyYXkoZGF0YSkubWFwKG1vZGVsID0+IGVuc3VyZU1vZGVsKG1vZGVsQ2xhc3MsIG1vZGVsLCBvcHRpb25zKSlcbiAgICA6IFtdXG59XG5cbmZ1bmN0aW9uIHBhcnNlUmVsYXRpb25zSW50b01vZGVsSW5zdGFuY2VzKG1vZGVsLCBqc29uLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKCFvcHRpb25zLmNhY2hlKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgY2FjaGU6IG5ldyBNYXAoKSB9XG4gIH1cbiAgb3B0aW9ucy5jYWNoZS5zZXQoanNvbiwgbW9kZWwpXG5cbiAgZm9yIChjb25zdCByZWxhdGlvbk5hbWUgb2YgbW9kZWwuY29uc3RydWN0b3IuZ2V0UmVsYXRpb25OYW1lcygpKSB7XG4gICAgY29uc3QganNvblJlbGF0aW9uID0ganNvbltyZWxhdGlvbk5hbWVdXG4gICAgaWYgKGpzb25SZWxhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByZWxhdGlvbiA9IG1vZGVsLmNvbnN0cnVjdG9yLmdldFJlbGF0aW9uKHJlbGF0aW9uTmFtZSlcbiAgICAgIGNvbnN0IHBhcnNlZFJlbGF0aW9uID0gcGFyc2VSZWxhdGlvbihqc29uUmVsYXRpb24sIHJlbGF0aW9uLCBvcHRpb25zKVxuICAgICAgaWYgKHBhcnNlZFJlbGF0aW9uICE9PSBqc29uUmVsYXRpb24pIHtcbiAgICAgICAgbW9kZWxbcmVsYXRpb24ubmFtZV0gPSBwYXJzZWRSZWxhdGlvblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtb2RlbFxufVxuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aW9uKGpzb24sIHJlbGF0aW9uLCBvcHRpb25zKSB7XG4gIHJldHVybiBpc0FycmF5KGpzb24pXG4gICAgPyBwYXJzZVJlbGF0aW9uQXJyYXkoanNvbiwgcmVsYXRpb24sIG9wdGlvbnMpXG4gICAgOiBwYXJzZVJlbGF0aW9uT2JqZWN0KGpzb24sIHJlbGF0aW9uLCBvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aW9uQXJyYXkoanNvbiwgcmVsYXRpb24sIG9wdGlvbnMpIHtcbiAgY29uc3QgbW9kZWxzID0gbmV3IEFycmF5KGpzb24ubGVuZ3RoKVxuICBsZXQgY2hhbmdlZCA9IGZhbHNlXG4gIGZvciAobGV0IGkgPSAwLCBsID0ganNvbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCBtb2RlbCA9IHBhcnNlUmVsYXRpb25PYmplY3QoanNvbltpXSwgcmVsYXRpb24sIG9wdGlvbnMpXG4gICAgY2hhbmdlZCA9IGNoYW5nZWQgfHwgKG1vZGVsICE9PSBqc29uW2ldKVxuICAgIG1vZGVsc1tpXSA9IG1vZGVsXG4gIH1cbiAgcmV0dXJuIGNoYW5nZWQgPyBtb2RlbHMgOiBqc29uXG59XG5cbmZ1bmN0aW9uIHBhcnNlUmVsYXRpb25PYmplY3QoanNvbiwgcmVsYXRpb24sIG9wdGlvbnMpIHtcbiAgaWYgKGlzT2JqZWN0KGpzb24pKSB7XG4gICAgY29uc3QgbW9kZWxDbGFzcyA9IHJlbGF0aW9uLnJlbGF0ZWRNb2RlbENsYXNzXG4gICAgbGV0IG1vZGVsID0gb3B0aW9ucy5jYWNoZS5nZXQoanNvbilcbiAgICBpZiAobW9kZWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGpzb24gaW5zdGFuY2VvZiBtb2RlbENsYXNzKSB7XG4gICAgICAgIG1vZGVsID0gcGFyc2VSZWxhdGlvbnNJbnRvTW9kZWxJbnN0YW5jZXMoanNvbiwganNvbiwgb3B0aW9ucylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1vZGVsID0gbW9kZWxDbGFzcy5mcm9tSnNvbihqc29uLCBvcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbW9kZWxcbiAgfVxuICByZXR1cm4ganNvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Fsa0dyYXBoKGRhdGEsIGNhbGxiYWNrLCBwYXRoID0gW10pIHtcbiAgaWYgKGlzT2JqZWN0KGRhdGEpIHx8IGlzQXJyYXkoZGF0YSkpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhKSkge1xuICAgICAgY29uc3QgZGF0YVBhdGggPSBbLi4ucGF0aCwga2V5XVxuICAgICAgY2FsbGJhY2sodmFsdWUsIGRhdGFQYXRoLCBkYXRhLCBrZXkpXG4gICAgICB3YWxrR3JhcGgodmFsdWUsIGNhbGxiYWNrLCBkYXRhUGF0aClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckdyYXBoKHJvb3RNb2RlbENsYXNzLCBtb2RlbEdyYXBoLCBleHByKSB7XG4gIGV4cHIgPSBRdWVyeUJ1aWxkZXIucGFyc2VSZWxhdGlvbkV4cHJlc3Npb24oZXhwcilcbiAgY29uc3QgbW9kZWxzID0gZW5zdXJlTW9kZWxBcnJheShyb290TW9kZWxDbGFzcywgbW9kZWxHcmFwaCwge1xuICAgIHNraXBWYWxpZGF0aW9uOiB0cnVlXG4gIH0pXG4gIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBjb25zdCByZWxhdGlvbnMgPSBtb2RlbC5jb25zdHJ1Y3Rvci5nZXRSZWxhdGlvbnMoKVxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobW9kZWwpKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aW9uID0gcmVsYXRpb25zW2tleV1cbiAgICAgICAgaWYgKHJlbGF0aW9uKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGQgPSBleHByW2tleV1cbiAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgIC8vIEFsbG93ZWQgcmVsYXRpb24sIGtlZXAgZmlsdGVyaW5nIHJlY3Vyc2l2ZWx5OlxuICAgICAgICAgICAgZmlsdGVyR3JhcGgoXG4gICAgICAgICAgICAgIHJlbGF0aW9uLnJlbGF0ZWRNb2RlbENsYXNzLFxuICAgICAgICAgICAgICBtb2RlbFtrZXldLFxuICAgICAgICAgICAgICBjaGlsZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEaXNhbGxvd2VkIHJlbGF0aW9uLCBkZWxldGU6XG4gICAgICAgICAgICBkZWxldGUgbW9kZWxba2V5XVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbW9kZWxHcmFwaFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9wdWxhdGVHcmFwaChyb290TW9kZWxDbGFzcywgZ3JhcGgsIGV4cHIsIHRyeCkge1xuICAvLyBUT0RPOiBPcHRpbWl6ZSB0aGUgc2NlbmFyaW8gd2hlcmUgYW4gaXRlbSB0aGF0IGlzbid0IGEgbGVhZiBpcyBhXG4gIC8vIHJlZmVyZW5jZSBhbmQgaGFzIG11bHRpcGxlIHN1Yi1wYXRocyB0byBiZSBwb3B1bGF0ZWQuIFdlIG1heSBuZWVkIHRvXG4gIC8vIG1vdmUgYXdheSBmcm9tIGdyYXBoIHBhdGggaGFuZGxpbmcgYW5kIGRpcmVjdGx5IHByb2Nlc3MgdGhlIGV4cHJlc3Npb25cbiAgLy8gdHJlZSwgY29tcG9zaW5nIHBhdGhzIHRvIHRoZSBjdXJyZW50IHBsYWNlIG9uIHRoZSBmbHksIGFuZCBwcm9jZXNzIGRhdGFcbiAgLy8gd2l0aCBhZGRUb0dyb3VwKCkuIFRoZW4gdXNlIHRoZSBzdWItdHJlZSBhcyBncmFwaCBleHByZXNzaW9uIHdoZW5cbiAgLy8gZW5jb3VudGVyaW5nIHJlZmVyZW5jZXMgKG5lZWRzIHRvU3RyaW5nKCkgZm9yIGNhY2hpbmcgYWxzbz8pXG4gIC8vIFRPRE86IEJldHRlciBpZGVhOiBGaXJzdCBjYWNoZSBncm91cHMgYnkgdGhlIHBhdGggdXAgdG8gdGhlaXIgbG9jYXRpb24gaW5cbiAgLy8gdGhlIGdyYXBoLCBhbmQgY29sbGVjdCBtb2RpZnkgKyBncmFwaCBleHByZXNzaW9ucyB0aGVyZSBmb3IgcmVmZXJlbmNlc1xuICAvLyB0aGF0IGFyZSBub3QgbGVhdmVzLiBUaGVuIHVzZSB0aGUgcmVzdWx0aW5nIG5vZGVzIHRvIGNyZWF0ZSBuZXcgZ3JvdXBzIGJ5XG4gIC8vIG1vZGVsIG5hbWUgLyBtb2RpZnkgLyBncmFwaCBleHByZXNzaW9ucy5cbiAgZXhwciA9IFF1ZXJ5QnVpbGRlci5wYXJzZVJlbGF0aW9uRXhwcmVzc2lvbihleHByKVxuICAvLyBDb252ZXJ0IHRoZSByZWxhdGlvbiBleHByZXNzaW9uIHRvIGFuIGFycmF5IG9mIHBhdGhzLCB0aGF0IHRoZW1zZWx2ZXNcbiAgLy8gY29udGFpbiBwYXRoIGVudHJpZXMgd2l0aCByZWxhdGlvbiBuYW1lcyBhbmQgbW9kaWZ5IHNldHRpbmdzLlxuXG4gIGNvbnN0IGdyb3VwZWQgPSB7fVxuICBjb25zdCBhZGRUb0dyb3VwID1cbiAgICAoaXRlbSwgbW9kZWxDbGFzcywgaXNSZWZlcmVuY2UsIG1vZGlmeSwgcmVsYXRpb24sIGV4cHIpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gaXRlbS4kaWQoKVxuICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgLy8gR3JvdXAgbW9kZWxzIGJ5IG1vZGVsLW5hbWUgKyBtb2RpZnkgKyBleHByLCBmb3IgZmFzdGVyIGxvYWRpbmc6XG4gICAgICAgIGNvbnN0IGtleSA9IGAke21vZGVsQ2xhc3MubmFtZX1fJHttb2RpZnl9XyR7ZXhwciB8fCAnJ31gXG4gICAgICAgIGNvbnN0IGdyb3VwID0gZ3JvdXBlZFtrZXldIHx8IChncm91cGVkW2tleV0gPSB7XG4gICAgICAgICAgbW9kZWxDbGFzcyxcbiAgICAgICAgICBtb2RpZnksXG4gICAgICAgICAgcmVsYXRpb24sXG4gICAgICAgICAgZXhwcixcbiAgICAgICAgICB0YXJnZXRzOiBbXSxcbiAgICAgICAgICBpZHM6IFtdLFxuICAgICAgICAgIG1vZGVsc0J5SWQ6IHt9XG4gICAgICAgIH0pXG4gICAgICAgIGdyb3VwLnRhcmdldHMucHVzaCh7IGl0ZW0sIGlzUmVmZXJlbmNlIH0pXG4gICAgICAgIC8vIENvbGxlY3QgaWRzIHRvIGJlIGxvYWRlZCBmb3IgdGhlIHRhcmdldHMuXG4gICAgICAgIGdyb3VwLmlkcy5wdXNoKGlkKVxuICAgICAgfVxuICAgIH1cblxuICBmb3IgKGNvbnN0IHBhdGggb2YgY29sbGVjdEV4cHJlc3Npb25QYXRocyhleHByKSkge1xuICAgIGxldCBtb2RlbENsYXNzID0gcm9vdE1vZGVsQ2xhc3NcbiAgICBjb25zdCBtb2RlbENsYXNzZXMgPSBbXVxuICAgIGxldCBsYXN0TW9kaWZ5XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBwYXRoKSB7XG4gICAgICBtb2RlbENsYXNzZXMucHVzaChtb2RlbENsYXNzKVxuICAgICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb24oZW50cnkucmVsYXRpb24pLnJlbGF0ZWRNb2RlbENsYXNzXG4gICAgICBsYXN0TW9kaWZ5ID0gZW50cnkubW9kaWZ5XG4gICAgfVxuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgYXNBcnJheShncmFwaCkpIHtcbiAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICBsZXQgaXRlbXMgPSBhc0FycmF5KG1vZGVsKVxuICAgICAgICAvLyBDb2xsZWN0IGFsbCBncmFwaCBpdGVtcyBkZXNjcmliZWQgYnkgdGhlIGN1cnJlbnQgcmVsYXRpb24gcGF0aCBpblxuICAgICAgICAvLyBvbmUgbG9vcDpcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXRoLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIGJyZWFrXG4gICAgICAgICAgY29uc3QgeyByZWxhdGlvbiB9ID0gcGF0aFtpXVxuICAgICAgICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzZXNbaV1cbiAgICAgICAgICBpdGVtcyA9IGl0ZW1zLnJlZHVjZSgoaXRlbXMsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0gPSBlbnN1cmVNb2RlbChtb2RlbENsYXNzLCBpdGVtLCB7IHNraXBWYWxpZGF0aW9uOiB0cnVlIH0pXG4gICAgICAgICAgICBsZXQgYWRkID0gZmFsc2VcbiAgICAgICAgICAgIGNvbnN0IGlzUmVmZXJlbmNlID0gbW9kZWxDbGFzcy5pc1JlZmVyZW5jZShpdGVtKVxuICAgICAgICAgICAgaWYgKGlzUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgIC8vIERldGVjdGVkIGEgcmVmZXJlbmNlIGl0ZW0gdGhhdCBpc24ndCBhIGxlYWY6IFdlIG5lZWQgdG9cbiAgICAgICAgICAgICAgLy8gZWFnZXItbG9hZCB0aGUgcmVzdCBvZiB0aGUgcGF0aCwgYW5kIHJlc3BlY3QgbW9kaWZ5IHNldHRpbmdzLlxuICAgICAgICAgICAgICBhZGQgPSB0cnVlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bcmVsYXRpb25dXG4gICAgICAgICAgICAgIC8vIEFkZCB0aGUgbW9kZWxzIG9mIHRoaXMgcmVsYXRpb24gdG8gaXRlbXMsIHNvIHRoZXkgY2FuIGJlXG4gICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGZ1cnRoZXIgaW4gdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRoaXMgbG9vcC5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKC4uLmFzQXJyYXkodmFsdWUpKVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZnVsbCByZWxhdGlvbiBpcyBtaXNzaW5nIHRyeSBlYWdlci1sb2FkaW5nIGl0LlxuICAgICAgICAgICAgICAgIC8vIE5PVEU6IFZhbHVlcyBvZiBgbnVsbGAgYXJlIHJlc3BlY3RlZCBoZXJlLCBub3QgbG9hZGVkIGFnYWluLlxuICAgICAgICAgICAgICAgIGFkZCA9IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFkZCkge1xuICAgICAgICAgICAgICAvLyBgcGF0aFtpXS5tb2RpZnlgIGlzIHRoZSBjdXJyZW50IHJlbGF0aW9uJ3MgbW9kaWZ5IGV4cHJlc3Npb24sXG4gICAgICAgICAgICAgIC8vIGdldCB0aGUgcGFyZW50IG9uZSBmb3IgYG1vZGVsQ2xhc3NgOlxuICAgICAgICAgICAgICBjb25zdCBtb2RpZnkgPSBpID4gMCA/IHBhdGhbaSAtIDFdLm1vZGlmeSA6IG51bGxcbiAgICAgICAgICAgICAgY29uc3QgZXhwciA9IGV4cHJlc3Npb25QYXRoVG9TdHJpbmcocGF0aCwgaSlcbiAgICAgICAgICAgICAgYWRkVG9Hcm91cChpdGVtLCBtb2RlbENsYXNzLCBpc1JlZmVyZW5jZSwgbW9kaWZ5LCByZWxhdGlvbiwgZXhwcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtc1xuICAgICAgICAgIH0sIFtdKVxuICAgICAgICB9XG4gICAgICAgIC8vIEFkZCBhbGwgZW5jb3VudGVyZWQgbGVhZi1yZWZlcmVuY2VzIHRvIGdyb3VwcyB0byBiZSBsb2FkZWQuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgIC8vIE9ubHkgbG9hZCBsZWFmcyB0aGF0IGFyZSByZWZlcmVuY2VzLlxuICAgICAgICAgIGlmIChtb2RlbENsYXNzLmlzUmVmZXJlbmNlKGl0ZW0pKSB7XG4gICAgICAgICAgICBhZGRUb0dyb3VwKGl0ZW0sIG1vZGVsQ2xhc3MsIHRydWUsIGxhc3RNb2RpZnkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ3JvdXBzID0gT2JqZWN0LnZhbHVlcyhncm91cGVkKS5maWx0ZXIoKHsgaWRzIH0pID0+IGlkcy5sZW5ndGggPiAwKVxuICBpZiAoZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBMb2FkIGFsbCBmb3VuZCBtb2RlbHMgYnkgaWRzIGFzeW5jaHJvbm91c2x5LCB3aXRoaW4gcHJvdmlkZWQgdHJhbnNhY3Rpb24uXG4gICAgLy8gTk9URTogVXNpbmcgdGhlIHNhbWUgdHJhbnNhY3Rpb24gbWVhbnMgdGhhdCBhbGwgaW52b2x2ZWQgdGFibGVzIG5lZWQgdG9cbiAgICAvLyBiZSBpbiB0aGUgc2FtZSBkYXRhYmFzZS5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGdyb3Vwcy5tYXAoYXN5bmMgKHsgbW9kZWxDbGFzcywgbW9kaWZ5LCBleHByLCBpZHMsIG1vZGVsc0J5SWQgfSkgPT4ge1xuICAgICAgICBjb25zdCBxdWVyeSA9IG1vZGVsQ2xhc3MucXVlcnkodHJ4KS5maW5kQnlJZHMoaWRzKS5tb2RpZnkobW9kaWZ5KVxuICAgICAgICBpZiAoZXhwcikge1xuICAgICAgICAgIC8vIFRPRE86IE1ha2UgYWxnb3JpdGhtIGNvbmZpZ3VyYWJsZSB0aHJvdWdoIG9wdGlvbnMuXG4gICAgICAgICAgcXVlcnkud2l0aEdyYXBoKGV4cHIpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9kZWxzID0gYXdhaXQgcXVlcnlcbiAgICAgICAgLy8gRmlsbCB0aGUgZ3JvdXAubW9kZWxzQnlJZCBsb29rdXA6XG4gICAgICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICAgICAgbW9kZWxzQnlJZFttb2RlbC4kaWQoKV0gPSBtb2RlbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcblxuICAgIC8vIEZpbmFsbHkgcG9wdWxhdGUgdGhlIHRhcmdldHMgd2l0aCB0aGUgbG9hZGVkIG1vZGVscy5cbiAgICBmb3IgKGNvbnN0IHsgdGFyZ2V0cywgbW9kZWxzQnlJZCwgcmVsYXRpb24gfSBvZiBncm91cHMpIHtcbiAgICAgIGZvciAoY29uc3QgeyBpdGVtLCBpc1JlZmVyZW5jZSB9IG9mIHRhcmdldHMpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNCeUlkW2l0ZW0uJGlkKCldXG4gICAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAgIGlmIChpc1JlZmVyZW5jZSkge1xuICAgICAgICAgICAgLy8gQ29weSBvdmVyIHRoZSBmdWxsIGl0ZW0uXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIG1vZGVsKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBKdXN0IGNvcHkgdGhlIGVhZ2VyLWxvYWRlZCByZWxhdGlvbi5cbiAgICAgICAgICAgIGl0ZW1bcmVsYXRpb25dID0gbW9kZWxbcmVsYXRpb25dXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyYXBoXG59XG4iXX0=
|
package/lib/graph/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
-
|
|
9
|
-
exports.__esModule = true;
|
|
10
|
-
|
|
11
|
-
var _DitoGraphProcessor = require("./DitoGraphProcessor");
|
|
12
|
-
|
|
13
|
-
Object.keys(_DitoGraphProcessor).forEach(function (key) {
|
|
14
|
-
if (key === "default" || key === "__esModule") return;
|
|
15
|
-
if (key in exports && exports[key] === _DitoGraphProcessor[key]) return;
|
|
16
|
-
exports[key] = _DitoGraphProcessor[key];
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
var _graph = require("./graph");
|
|
20
|
-
|
|
21
|
-
Object.keys(_graph).forEach(function (key) {
|
|
22
|
-
if (key === "default" || key === "__esModule") return;
|
|
23
|
-
if (key in exports && exports[key] === _graph[key]) return;
|
|
24
|
-
exports[key] = _graph[key];
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
var _expression = require("./expression");
|
|
28
|
-
|
|
29
|
-
Object.keys(_expression).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _expression[key]) return;
|
|
32
|
-
exports[key] = _expression[key];
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0RpdG9HcmFwaFByb2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGgnXG5leHBvcnQgKiBmcm9tICcuL2V4cHJlc3Npb24nXG4iXX0=
|
package/lib/index.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
-
|
|
9
|
-
exports.__esModule = true;
|
|
10
|
-
|
|
11
|
-
var _app = require("./app");
|
|
12
|
-
|
|
13
|
-
Object.keys(_app).forEach(function (key) {
|
|
14
|
-
if (key === "default" || key === "__esModule") return;
|
|
15
|
-
if (key in exports && exports[key] === _app[key]) return;
|
|
16
|
-
exports[key] = _app[key];
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
var _query = require("./query");
|
|
20
|
-
|
|
21
|
-
Object.keys(_query).forEach(function (key) {
|
|
22
|
-
if (key === "default" || key === "__esModule") return;
|
|
23
|
-
if (key in exports && exports[key] === _query[key]) return;
|
|
24
|
-
exports[key] = _query[key];
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
var _errors = require("./errors");
|
|
28
|
-
|
|
29
|
-
Object.keys(_errors).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _errors[key]) return;
|
|
32
|
-
exports[key] = _errors[key];
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
var _mixins = require("./mixins");
|
|
36
|
-
|
|
37
|
-
Object.keys(_mixins).forEach(function (key) {
|
|
38
|
-
if (key === "default" || key === "__esModule") return;
|
|
39
|
-
if (key in exports && exports[key] === _mixins[key]) return;
|
|
40
|
-
exports[key] = _mixins[key];
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
var _models = require("./models");
|
|
44
|
-
|
|
45
|
-
Object.keys(_models).forEach(function (key) {
|
|
46
|
-
if (key === "default" || key === "__esModule") return;
|
|
47
|
-
if (key in exports && exports[key] === _models[key]) return;
|
|
48
|
-
exports[key] = _models[key];
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
var _controllers = require("./controllers");
|
|
52
|
-
|
|
53
|
-
Object.keys(_controllers).forEach(function (key) {
|
|
54
|
-
if (key === "default" || key === "__esModule") return;
|
|
55
|
-
if (key in exports && exports[key] === _controllers[key]) return;
|
|
56
|
-
exports[key] = _controllers[key];
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
var _services = require("./services");
|
|
60
|
-
|
|
61
|
-
Object.keys(_services).forEach(function (key) {
|
|
62
|
-
if (key === "default" || key === "__esModule") return;
|
|
63
|
-
if (key in exports && exports[key] === _services[key]) return;
|
|
64
|
-
exports[key] = _services[key];
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
var _decorators = require("./decorators");
|
|
68
|
-
|
|
69
|
-
Object.keys(_decorators).forEach(function (key) {
|
|
70
|
-
if (key === "default" || key === "__esModule") return;
|
|
71
|
-
if (key in exports && exports[key] === _decorators[key]) return;
|
|
72
|
-
exports[key] = _decorators[key];
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
var _storage = require("./storage");
|
|
76
|
-
|
|
77
|
-
Object.keys(_storage).forEach(function (key) {
|
|
78
|
-
if (key === "default" || key === "__esModule") return;
|
|
79
|
-
if (key in exports && exports[key] === _storage[key]) return;
|
|
80
|
-
exports[key] = _storage[key];
|
|
81
|
-
});
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcCdcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnknXG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycydcbmV4cG9ydCAqIGZyb20gJy4vbWl4aW5zJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xsZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcydcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycydcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZSdcbiJdfQ==
|
package/lib/lib/EventEmitter.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.EventEmitter = void 0;
|
|
5
|
-
|
|
6
|
-
var _eventemitter = _interopRequireDefault(require("eventemitter2"));
|
|
7
|
-
|
|
8
|
-
var _utils = require("@ditojs/utils");
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class EventEmitter extends _eventemitter.default {
|
|
13
|
-
_setupEmitter(events, options) {
|
|
14
|
-
_eventemitter.default.call(this, {
|
|
15
|
-
delimiter: ':',
|
|
16
|
-
maxListeners: 0,
|
|
17
|
-
...options
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
for (const key in events) {
|
|
21
|
-
for (const part of key.split(',')) {
|
|
22
|
-
const event = part.trim();
|
|
23
|
-
|
|
24
|
-
for (const callback of (0, _utils.asArray)(events[key])) {
|
|
25
|
-
this.on(event, callback);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
emit(event, ...args) {
|
|
32
|
-
return this.emitAsync(event, ...args);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
_handle(method, event, callback) {
|
|
36
|
-
if ((0, _utils.isString)(event)) {
|
|
37
|
-
super[method](event, callback);
|
|
38
|
-
} else if ((0, _utils.isArray)(event)) {
|
|
39
|
-
for (const ev of event) {
|
|
40
|
-
super[method](ev, callback);
|
|
41
|
-
}
|
|
42
|
-
} else if ((0, _utils.isPlainObject)(event)) {
|
|
43
|
-
for (const key in event) {
|
|
44
|
-
super[method](key, event[key]);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
on(event, callback) {
|
|
52
|
-
return this._handle('on', event, callback);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
off(event, callback) {
|
|
56
|
-
return this._handle('off', event, callback);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
once(event, callback) {
|
|
60
|
-
return this._handle('once', event, callback);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
static mixin(target) {
|
|
64
|
-
Object.defineProperties(target, properties);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
exports.EventEmitter = EventEmitter;
|
|
70
|
-
const {
|
|
71
|
-
constructor,
|
|
72
|
-
...properties
|
|
73
|
-
} = { ...Object.getOwnPropertyDescriptors(_eventemitter.default.prototype),
|
|
74
|
-
...Object.getOwnPropertyDescriptors(EventEmitter.prototype)
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRXZlbnRFbWl0dGVyLmpzIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlcjIiLCJfc2V0dXBFbWl0dGVyIiwiZXZlbnRzIiwib3B0aW9ucyIsImNhbGwiLCJkZWxpbWl0ZXIiLCJtYXhMaXN0ZW5lcnMiLCJrZXkiLCJwYXJ0Iiwic3BsaXQiLCJldmVudCIsInRyaW0iLCJjYWxsYmFjayIsIm9uIiwiZW1pdCIsImFyZ3MiLCJlbWl0QXN5bmMiLCJfaGFuZGxlIiwibWV0aG9kIiwiZXYiLCJvZmYiLCJvbmNlIiwibWl4aW4iLCJ0YXJnZXQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsImNvbnN0cnVjdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7OztBQUVPLE1BQU1BLFlBQU4sU0FBMkJDLHFCQUEzQixDQUF5QztBQUU5Q0MsRUFBQUEsYUFBYSxDQUFDQyxNQUFELEVBQVNDLE9BQVQsRUFBa0I7QUFDN0JILDBCQUFjSSxJQUFkLENBQW1CLElBQW5CLEVBQXlCO0FBQ3ZCQyxNQUFBQSxTQUFTLEVBQUUsR0FEWTtBQUV2QkMsTUFBQUEsWUFBWSxFQUFFLENBRlM7QUFHdkIsU0FBR0g7QUFIb0IsS0FBekI7O0FBS0EsU0FBSyxNQUFNSSxHQUFYLElBQWtCTCxNQUFsQixFQUEwQjtBQUN4QixXQUFLLE1BQU1NLElBQVgsSUFBbUJELEdBQUcsQ0FBQ0UsS0FBSixDQUFVLEdBQVYsQ0FBbkIsRUFBbUM7QUFDakMsY0FBTUMsS0FBSyxHQUFHRixJQUFJLENBQUNHLElBQUwsRUFBZDs7QUFDQSxhQUFLLE1BQU1DLFFBQVgsSUFBdUIsb0JBQVFWLE1BQU0sQ0FBQ0ssR0FBRCxDQUFkLENBQXZCLEVBQTZDO0FBQzNDLGVBQUtNLEVBQUwsQ0FBUUgsS0FBUixFQUFlRSxRQUFmO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBRURFLEVBQUFBLElBQUksQ0FBQ0osS0FBRCxFQUFRLEdBQUdLLElBQVgsRUFBaUI7QUFHbkIsV0FBTyxLQUFLQyxTQUFMLENBQWVOLEtBQWYsRUFBc0IsR0FBR0ssSUFBekIsQ0FBUDtBQUNEOztBQUVERSxFQUFBQSxPQUFPLENBQUNDLE1BQUQsRUFBU1IsS0FBVCxFQUFnQkUsUUFBaEIsRUFBMEI7QUFDL0IsUUFBSSxxQkFBU0YsS0FBVCxDQUFKLEVBQXFCO0FBQ25CLFlBQU1RLE1BQU4sRUFBY1IsS0FBZCxFQUFxQkUsUUFBckI7QUFDRCxLQUZELE1BRU8sSUFBSSxvQkFBUUYsS0FBUixDQUFKLEVBQW9CO0FBQ3pCLFdBQUssTUFBTVMsRUFBWCxJQUFpQlQsS0FBakIsRUFBd0I7QUFDdEIsY0FBTVEsTUFBTixFQUFjQyxFQUFkLEVBQWtCUCxRQUFsQjtBQUNEO0FBQ0YsS0FKTSxNQUlBLElBQUksMEJBQWNGLEtBQWQsQ0FBSixFQUEwQjtBQUMvQixXQUFLLE1BQU1ILEdBQVgsSUFBa0JHLEtBQWxCLEVBQXlCO0FBQ3ZCLGNBQU1RLE1BQU4sRUFBY1gsR0FBZCxFQUFtQkcsS0FBSyxDQUFDSCxHQUFELENBQXhCO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPLElBQVA7QUFDRDs7QUFFRE0sRUFBQUEsRUFBRSxDQUFDSCxLQUFELEVBQVFFLFFBQVIsRUFBa0I7QUFDbEIsV0FBTyxLQUFLSyxPQUFMLENBQWEsSUFBYixFQUFtQlAsS0FBbkIsRUFBMEJFLFFBQTFCLENBQVA7QUFDRDs7QUFFRFEsRUFBQUEsR0FBRyxDQUFDVixLQUFELEVBQVFFLFFBQVIsRUFBa0I7QUFDbkIsV0FBTyxLQUFLSyxPQUFMLENBQWEsS0FBYixFQUFvQlAsS0FBcEIsRUFBMkJFLFFBQTNCLENBQVA7QUFDRDs7QUFFRFMsRUFBQUEsSUFBSSxDQUFDWCxLQUFELEVBQVFFLFFBQVIsRUFBa0I7QUFDcEIsV0FBTyxLQUFLSyxPQUFMLENBQWEsTUFBYixFQUFxQlAsS0FBckIsRUFBNEJFLFFBQTVCLENBQVA7QUFDRDs7QUFFVyxTQUFMVSxLQUFLLENBQUNDLE1BQUQsRUFBUztBQUNuQkMsSUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QkYsTUFBeEIsRUFBZ0NHLFVBQWhDO0FBQ0Q7O0FBckQ2Qzs7O0FBd0RoRCxNQUFNO0FBQ0pDLEVBQUFBLFdBREk7QUFFSixLQUFHRDtBQUZDLElBR0YsRUFDRixHQUFHRixNQUFNLENBQUNJLHlCQUFQLENBQWlDNUIsc0JBQWM2QixTQUEvQyxDQUREO0FBRUYsS0FBR0wsTUFBTSxDQUFDSSx5QkFBUCxDQUFpQzdCLFlBQVksQ0FBQzhCLFNBQTlDO0FBRkQsQ0FISiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFdmVudEVtaXR0ZXIyIGZyb20gJ2V2ZW50ZW1pdHRlcjInXG5pbXBvcnQgeyBpc1BsYWluT2JqZWN0LCBpc1N0cmluZywgaXNBcnJheSwgYXNBcnJheSB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIyIHtcbiAgLy8gTWV0aG9kIGZvciBjbGFzc2VzIHRoYXQgdXNlIGBFdmVudEVtaXR0ZXIubWl4aW4oKWAgdG8gc2V0dXAgdGhlIGVtaXR0ZXIuXG4gIF9zZXR1cEVtaXR0ZXIoZXZlbnRzLCBvcHRpb25zKSB7XG4gICAgRXZlbnRFbWl0dGVyMi5jYWxsKHRoaXMsIHtcbiAgICAgIGRlbGltaXRlcjogJzonLFxuICAgICAgbWF4TGlzdGVuZXJzOiAwLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZXZlbnRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2Yga2V5LnNwbGl0KCcsJykpIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBwYXJ0LnRyaW0oKVxuICAgICAgICBmb3IgKGNvbnN0IGNhbGxiYWNrIG9mIGFzQXJyYXkoZXZlbnRzW2tleV0pKSB7XG4gICAgICAgICAgdGhpcy5vbihldmVudCwgY2FsbGJhY2spXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBlbWl0KGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgLy8gQWx3YXlzIHVzZSBhc3luYyB2ZXJzaW9uIHRvIGVtaXQgZXZlbnRzOiBJdCB3aWxsIHBlcmZvcm0gdGhlIHNhbWUgYXNcbiAgICAvLyB0aGUgbm9ybWFsIG9uZSB3aGVuIHRoZSBtZXRob2RzIGFyZW4ndCBhY3R1YWxseSBhc3luYy5cbiAgICByZXR1cm4gdGhpcy5lbWl0QXN5bmMoZXZlbnQsIC4uLmFyZ3MpXG4gIH1cblxuICBfaGFuZGxlKG1ldGhvZCwgZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGlzU3RyaW5nKGV2ZW50KSkge1xuICAgICAgc3VwZXJbbWV0aG9kXShldmVudCwgY2FsbGJhY2spXG4gICAgfSBlbHNlIGlmIChpc0FycmF5KGV2ZW50KSkge1xuICAgICAgZm9yIChjb25zdCBldiBvZiBldmVudCkge1xuICAgICAgICBzdXBlclttZXRob2RdKGV2LCBjYWxsYmFjaylcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QoZXZlbnQpKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBldmVudCkge1xuICAgICAgICBzdXBlclttZXRob2RdKGtleSwgZXZlbnRba2V5XSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIG9uKGV2ZW50LCBjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLl9oYW5kbGUoJ29uJywgZXZlbnQsIGNhbGxiYWNrKVxuICB9XG5cbiAgb2ZmKGV2ZW50LCBjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLl9oYW5kbGUoJ29mZicsIGV2ZW50LCBjYWxsYmFjaylcbiAgfVxuXG4gIG9uY2UoZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZSgnb25jZScsIGV2ZW50LCBjYWxsYmFjaylcbiAgfVxuXG4gIHN0YXRpYyBtaXhpbih0YXJnZXQpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BlcnRpZXMpXG4gIH1cbn1cblxuY29uc3Qge1xuICBjb25zdHJ1Y3RvciwgLy8gRG9uJ3QgZXh0cmFjdCBjb25zdHJ1Y3RvciwgYnV0IGV2ZXJ5dGhpbmcgZWxzZVxuICAuLi5wcm9wZXJ0aWVzXG59ID0ge1xuICAuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhFdmVudEVtaXR0ZXIyLnByb3RvdHlwZSksXG4gIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEV2ZW50RW1pdHRlci5wcm90b3R5cGUpXG59XG4iXX0=
|
package/lib/lib/KnexHelper.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.KnexHelper = void 0;
|
|
5
|
-
|
|
6
|
-
class KnexHelper {
|
|
7
|
-
getDialect() {
|
|
8
|
-
var _this$knex, _this$knex$client;
|
|
9
|
-
|
|
10
|
-
return ((_this$knex = this.knex()) == null ? void 0 : (_this$knex$client = _this$knex.client) == null ? void 0 : _this$knex$client.dialect) || null;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
isPostgreSQL() {
|
|
14
|
-
return this.getDialect() === 'postgresql';
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
isMySQL() {
|
|
18
|
-
return this.getDialect() === 'mysql';
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
isSQLite() {
|
|
22
|
-
return this.getDialect() === 'sqlite3';
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
isMsSQL() {
|
|
26
|
-
return this.getDialect() === 'mssql';
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static mixin(target) {
|
|
30
|
-
Object.defineProperties(target, properties);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
exports.KnexHelper = KnexHelper;
|
|
36
|
-
const {
|
|
37
|
-
constructor,
|
|
38
|
-
...properties
|
|
39
|
-
} = Object.getOwnPropertyDescriptors(KnexHelper.prototype);
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvS25leEhlbHBlci5qcyJdLCJuYW1lcyI6WyJLbmV4SGVscGVyIiwiZ2V0RGlhbGVjdCIsImtuZXgiLCJjbGllbnQiLCJkaWFsZWN0IiwiaXNQb3N0Z3JlU1FMIiwiaXNNeVNRTCIsImlzU1FMaXRlIiwiaXNNc1NRTCIsIm1peGluIiwidGFyZ2V0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJjb25zdHJ1Y3RvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTUEsVUFBTixDQUFpQjtBQUN0QkMsRUFBQUEsVUFBVSxHQUFHO0FBQUE7O0FBQ1gsV0FBTyxvQkFBS0MsSUFBTCx1REFBYUMsTUFBYix1Q0FBcUJDLE9BQXJCLEtBQWdDLElBQXZDO0FBQ0Q7O0FBRURDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sS0FBS0osVUFBTCxPQUFzQixZQUE3QjtBQUNEOztBQUVESyxFQUFBQSxPQUFPLEdBQUc7QUFDUixXQUFPLEtBQUtMLFVBQUwsT0FBc0IsT0FBN0I7QUFDRDs7QUFFRE0sRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBTyxLQUFLTixVQUFMLE9BQXNCLFNBQTdCO0FBQ0Q7O0FBRURPLEVBQUFBLE9BQU8sR0FBRztBQUNSLFdBQU8sS0FBS1AsVUFBTCxPQUFzQixPQUE3QjtBQUNEOztBQUVXLFNBQUxRLEtBQUssQ0FBQ0MsTUFBRCxFQUFTO0FBQ25CQyxJQUFBQSxNQUFNLENBQUNDLGdCQUFQLENBQXdCRixNQUF4QixFQUFnQ0csVUFBaEM7QUFDRDs7QUF2QnFCOzs7QUEwQnhCLE1BQU07QUFDSkMsRUFBQUEsV0FESTtBQUVKLEtBQUdEO0FBRkMsSUFHRkYsTUFBTSxDQUFDSSx5QkFBUCxDQUFpQ2YsVUFBVSxDQUFDZ0IsU0FBNUMsQ0FISiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBLbmV4SGVscGVyIHtcbiAgZ2V0RGlhbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5rbmV4KCk/LmNsaWVudD8uZGlhbGVjdCB8fCBudWxsXG4gIH1cblxuICBpc1Bvc3RncmVTUUwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlhbGVjdCgpID09PSAncG9zdGdyZXNxbCdcbiAgfVxuXG4gIGlzTXlTUUwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlhbGVjdCgpID09PSAnbXlzcWwnXG4gIH1cblxuICBpc1NRTGl0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXREaWFsZWN0KCkgPT09ICdzcWxpdGUzJ1xuICB9XG5cbiAgaXNNc1NRTCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXREaWFsZWN0KCkgPT09ICdtc3NxbCdcbiAgfVxuXG4gIHN0YXRpYyBtaXhpbih0YXJnZXQpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BlcnRpZXMpXG4gIH1cbn1cblxuY29uc3Qge1xuICBjb25zdHJ1Y3RvciwgLy8gRG9uJ3QgZXh0cmFjdCBjb25zdHJ1Y3RvciwgYnV0IGV2ZXJ5dGhpbmcgZWxzZVxuICAuLi5wcm9wZXJ0aWVzXG59ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoS25leEhlbHBlci5wcm90b3R5cGUpXG4iXX0=
|
package/lib/lib/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
-
|
|
9
|
-
exports.__esModule = true;
|
|
10
|
-
|
|
11
|
-
var _EventEmitter = require("./EventEmitter");
|
|
12
|
-
|
|
13
|
-
Object.keys(_EventEmitter).forEach(function (key) {
|
|
14
|
-
if (key === "default" || key === "__esModule") return;
|
|
15
|
-
if (key in exports && exports[key] === _EventEmitter[key]) return;
|
|
16
|
-
exports[key] = _EventEmitter[key];
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
var _KnexHelper = require("./KnexHelper");
|
|
20
|
-
|
|
21
|
-
Object.keys(_KnexHelper).forEach(function (key) {
|
|
22
|
-
if (key === "default" || key === "__esModule") return;
|
|
23
|
-
if (key in exports && exports[key] === _KnexHelper[key]) return;
|
|
24
|
-
exports[key] = _KnexHelper[key];
|
|
25
|
-
});
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vRXZlbnRFbWl0dGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9LbmV4SGVscGVyJ1xuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.attachLogger = attachLogger;
|
|
5
|
-
|
|
6
|
-
var _nanoid = require("nanoid");
|
|
7
|
-
|
|
8
|
-
function attachLogger(logger) {
|
|
9
|
-
return (ctx, next) => {
|
|
10
|
-
ctx.logger = logger.child({
|
|
11
|
-
requestId: (0, _nanoid.nanoid)(6)
|
|
12
|
-
});
|
|
13
|
-
return next();
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2F0dGFjaExvZ2dlci5qcyJdLCJuYW1lcyI6WyJhdHRhY2hMb2dnZXIiLCJsb2dnZXIiLCJjdHgiLCJuZXh0IiwiY2hpbGQiLCJyZXF1ZXN0SWQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O0FBRU8sU0FBU0EsWUFBVCxDQUFzQkMsTUFBdEIsRUFBOEI7QUFDbkMsU0FBTyxDQUFDQyxHQUFELEVBQU1DLElBQU4sS0FBZTtBQUNwQkQsSUFBQUEsR0FBRyxDQUFDRCxNQUFKLEdBQWFBLE1BQU0sQ0FBQ0csS0FBUCxDQUFhO0FBQUVDLE1BQUFBLFNBQVMsRUFBRSxvQkFBTyxDQUFQO0FBQWIsS0FBYixDQUFiO0FBQ0EsV0FBT0YsSUFBSSxFQUFYO0FBQ0QsR0FIRDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJ1xuXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoTG9nZ2VyKGxvZ2dlcikge1xuICByZXR1cm4gKGN0eCwgbmV4dCkgPT4ge1xuICAgIGN0eC5sb2dnZXIgPSBsb2dnZXIuY2hpbGQoeyByZXF1ZXN0SWQ6IG5hbm9pZCg2KSB9KVxuICAgIHJldHVybiBuZXh0KClcbiAgfVxufVxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.createTransaction = createTransaction;
|
|
5
|
-
|
|
6
|
-
var _objection = require("objection");
|
|
7
|
-
|
|
8
|
-
var _utils = require("../utils");
|
|
9
|
-
|
|
10
|
-
function createTransaction() {
|
|
11
|
-
return async (ctx, next) => {
|
|
12
|
-
const {
|
|
13
|
-
route
|
|
14
|
-
} = ctx;
|
|
15
|
-
|
|
16
|
-
if (route.transacted) {
|
|
17
|
-
const trx = await _objection.transaction.start(route.controller.modelClass || ctx.app.knex);
|
|
18
|
-
ctx.transaction = trx;
|
|
19
|
-
|
|
20
|
-
try {
|
|
21
|
-
await next();
|
|
22
|
-
await trx.commit();
|
|
23
|
-
await (0, _utils.emitAsync)(trx, 'commit');
|
|
24
|
-
} catch (err) {
|
|
25
|
-
await trx.rollback();
|
|
26
|
-
await (0, _utils.emitAsync)(trx, 'rollback', err);
|
|
27
|
-
throw err;
|
|
28
|
-
} finally {
|
|
29
|
-
delete ctx.transaction;
|
|
30
|
-
}
|
|
31
|
-
} else {
|
|
32
|
-
await next();
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2NyZWF0ZVRyYW5zYWN0aW9uLmpzIl0sIm5hbWVzIjpbImNyZWF0ZVRyYW5zYWN0aW9uIiwiY3R4IiwibmV4dCIsInJvdXRlIiwidHJhbnNhY3RlZCIsInRyeCIsInRyYW5zYWN0aW9uIiwic3RhcnQiLCJjb250cm9sbGVyIiwibW9kZWxDbGFzcyIsImFwcCIsImtuZXgiLCJjb21taXQiLCJlcnIiLCJyb2xsYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxTQUFTQSxpQkFBVCxHQUE2QjtBQUNsQyxTQUFPLE9BQU9DLEdBQVAsRUFBWUMsSUFBWixLQUFxQjtBQUMxQixVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBWUYsR0FBbEI7O0FBQ0EsUUFBSUUsS0FBSyxDQUFDQyxVQUFWLEVBQXNCO0FBQ3BCLFlBQU1DLEdBQUcsR0FBRyxNQUFNQyx1QkFBWUMsS0FBWixDQUNoQkosS0FBSyxDQUFDSyxVQUFOLENBQWlCQyxVQUFqQixJQUNBUixHQUFHLENBQUNTLEdBQUosQ0FBUUMsSUFGUSxDQUFsQjtBQUlBVixNQUFBQSxHQUFHLENBQUNLLFdBQUosR0FBa0JELEdBQWxCOztBQUlBLFVBQUk7QUFDRixjQUFNSCxJQUFJLEVBQVY7QUFDQSxjQUFNRyxHQUFHLENBQUNPLE1BQUosRUFBTjtBQUNBLGNBQU0sc0JBQVVQLEdBQVYsRUFBZSxRQUFmLENBQU47QUFDRCxPQUpELENBSUUsT0FBT1EsR0FBUCxFQUFZO0FBQ1osY0FBTVIsR0FBRyxDQUFDUyxRQUFKLEVBQU47QUFDQSxjQUFNLHNCQUFVVCxHQUFWLEVBQWUsVUFBZixFQUEyQlEsR0FBM0IsQ0FBTjtBQUNBLGNBQU1BLEdBQU47QUFDRCxPQVJELFNBUVU7QUFDUixlQUFPWixHQUFHLENBQUNLLFdBQVg7QUFDRDtBQUNGLEtBcEJELE1Bb0JPO0FBR0wsWUFBTUosSUFBSSxFQUFWO0FBQ0Q7QUFDRixHQTNCRDtBQTRCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zYWN0aW9uIH0gZnJvbSAnb2JqZWN0aW9uJ1xuaW1wb3J0IHsgZW1pdEFzeW5jIH0gZnJvbSAnQC91dGlscydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uKCkge1xuICByZXR1cm4gYXN5bmMgKGN0eCwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgcm91dGUgfSA9IGN0eFxuICAgIGlmIChyb3V0ZS50cmFuc2FjdGVkKSB7XG4gICAgICBjb25zdCB0cnggPSBhd2FpdCB0cmFuc2FjdGlvbi5zdGFydChcbiAgICAgICAgcm91dGUuY29udHJvbGxlci5tb2RlbENsYXNzIHx8XG4gICAgICAgIGN0eC5hcHAua25leFxuICAgICAgKVxuICAgICAgY3R4LnRyYW5zYWN0aW9uID0gdHJ4XG4gICAgICAvLyBLbmV4IGRvZXNuJ3Qgb2ZmZXIgYSBtZWNoYW5pc20gZm9yIGNvZGUgZGVhbGluZyB3aXRoIHRyYW5zYWN0aW9ucyB0b1xuICAgICAgLy8gYmUgbm90aWZpZWQgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2suIFNvIGFkZCBzdXBwb3J0IGZvclxuICAgICAgLy8gJ2NvbW1pdCcgYW5kICdyb2xsYmFjaycgZXZlbnRzIGhlcmU6XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBuZXh0KClcbiAgICAgICAgYXdhaXQgdHJ4LmNvbW1pdCgpXG4gICAgICAgIGF3YWl0IGVtaXRBc3luYyh0cngsICdjb21taXQnKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGF3YWl0IHRyeC5yb2xsYmFjaygpXG4gICAgICAgIGF3YWl0IGVtaXRBc3luYyh0cngsICdyb2xsYmFjaycsIGVycilcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBkZWxldGUgY3R4LnRyYW5zYWN0aW9uXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IENvbnNpZGVyIHNldHRpbmcgYGN0eC50cmFuc2FjdGlvbiA9IGN0eC5hcHAua25leGAsIGp1c3QgbGlrZVxuICAgICAgLy8gT2JqZWN0aW9uIGRvZXMgaW4gc3RhdGljIGhvb2tzIHNvIGB0cmFuc2FjdGlvbiBpcyBhbHdheSBzZXQuXG4gICAgICBhd2FpdCBuZXh0KClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|