@ditojs/server 0.273.0 → 1.0.0-rc.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.
Files changed (222) hide show
  1. package/package.json +26 -44
  2. package/src/app/Application.js +121 -117
  3. package/src/app/Validator.js +6 -3
  4. package/src/app/index.js +2 -2
  5. package/src/cli/console.js +3 -3
  6. package/src/cli/db/createMigration.js +4 -4
  7. package/src/cli/db/index.js +7 -7
  8. package/src/cli/db/listAssetConfig.js +1 -1
  9. package/src/cli/db/migrate.js +4 -4
  10. package/src/cli/db/reset.js +5 -5
  11. package/src/cli/db/rollback.js +4 -4
  12. package/src/cli/db/seed.js +6 -6
  13. package/src/cli/db/unlock.js +2 -2
  14. package/src/cli/index.js +17 -8
  15. package/src/controllers/AdminController.js +164 -158
  16. package/src/controllers/CollectionController.js +8 -29
  17. package/src/controllers/Controller.js +78 -83
  18. package/src/controllers/ControllerAction.js +37 -18
  19. package/src/controllers/MemberAction.js +2 -2
  20. package/src/controllers/ModelController.js +4 -4
  21. package/src/controllers/RelationController.js +5 -5
  22. package/src/controllers/{UserController.js → UsersController.js} +8 -13
  23. package/src/controllers/index.js +5 -5
  24. package/src/decorators/action.js +3 -3
  25. package/src/decorators/authorize.js +1 -1
  26. package/src/decorators/index.js +6 -6
  27. package/src/decorators/parameters.js +1 -1
  28. package/src/decorators/returns.js +1 -1
  29. package/src/decorators/scope.js +1 -1
  30. package/src/decorators/transacted.js +1 -1
  31. package/src/errors/AssetError.js +1 -1
  32. package/src/errors/AuthenticationError.js +1 -1
  33. package/src/errors/AuthorizationError.js +1 -1
  34. package/src/errors/ControllerError.js +1 -1
  35. package/src/errors/DatabaseError.js +12 -3
  36. package/src/errors/GraphError.js +1 -1
  37. package/src/errors/ModelError.js +1 -1
  38. package/src/errors/NotFoundError.js +1 -1
  39. package/src/errors/NotImplementedError.js +1 -1
  40. package/src/errors/QueryBuilderError.js +1 -1
  41. package/src/errors/RelationError.js +1 -1
  42. package/src/errors/ValidationError.js +1 -1
  43. package/src/errors/WrappedError.js +1 -1
  44. package/src/errors/index.js +14 -14
  45. package/src/graph/DitoGraphProcessor.js +2 -1
  46. package/src/graph/graph.js +1 -1
  47. package/src/graph/index.js +3 -3
  48. package/src/index.js +11 -9
  49. package/src/lib/index.js +2 -2
  50. package/src/middleware/createTransaction.js +1 -1
  51. package/src/middleware/findRoute.js +3 -2
  52. package/src/middleware/handleConnectMiddleware.js +88 -0
  53. package/src/middleware/handleError.js +1 -1
  54. package/src/middleware/handleRoute.js +3 -3
  55. package/src/middleware/index.js +8 -7
  56. package/src/middleware/logRequests.js +9 -9
  57. package/src/mixins/AssetMixin.js +1 -1
  58. package/src/mixins/UserMixin.js +1 -1
  59. package/src/mixins/index.js +4 -4
  60. package/src/models/AssetModel.js +2 -2
  61. package/src/models/Model.js +16 -12
  62. package/src/models/RelationAccessor.js +1 -1
  63. package/src/models/SessionModel.js +2 -2
  64. package/src/models/TimeStampedModel.js +2 -2
  65. package/src/models/UserModel.js +2 -2
  66. package/src/models/definitions/assets.js +1 -1
  67. package/src/models/definitions/filters.js +57 -44
  68. package/src/models/definitions/hooks.js +1 -1
  69. package/src/models/definitions/index.js +9 -9
  70. package/src/models/definitions/modifiers.js +1 -1
  71. package/src/models/definitions/options.js +1 -1
  72. package/src/models/definitions/properties.js +2 -2
  73. package/src/models/definitions/relations.js +1 -1
  74. package/src/models/definitions/schema.js +1 -1
  75. package/src/models/definitions/scopes.js +2 -2
  76. package/src/models/index.js +5 -5
  77. package/src/query/QueryBuilder.js +5 -5
  78. package/src/query/QueryFilters.js +50 -50
  79. package/src/query/QueryParameters.js +2 -2
  80. package/src/query/index.js +3 -3
  81. package/src/schema/formats/index.js +2 -2
  82. package/src/schema/index.js +4 -4
  83. package/src/schema/keywords/_relate.js +1 -1
  84. package/src/schema/keywords/index.js +12 -12
  85. package/src/schema/properties.test.js +1 -1
  86. package/src/schema/relations.js +1 -1
  87. package/src/schema/relations.test.js +2 -2
  88. package/src/services/index.js +1 -1
  89. package/src/storage/DiskStorage.js +1 -1
  90. package/src/storage/S3Storage.js +4 -4
  91. package/src/storage/Storage.js +1 -1
  92. package/src/storage/index.js +4 -4
  93. package/src/utils/function.test.js +1 -1
  94. package/src/utils/handler.js +17 -0
  95. package/src/utils/index.js +8 -7
  96. package/src/utils/object.test.js +1 -1
  97. package/lib/app/Application.js +0 -955
  98. package/lib/app/SessionStore.js +0 -40
  99. package/lib/app/Validator.js +0 -355
  100. package/lib/app/index.js +0 -26
  101. package/lib/cli/console.js +0 -175
  102. package/lib/cli/db/createMigration.js +0 -237
  103. package/lib/cli/db/index.js +0 -66
  104. package/lib/cli/db/listAssetConfig.js +0 -16
  105. package/lib/cli/db/migrate.js +0 -15
  106. package/lib/cli/db/reset.js +0 -27
  107. package/lib/cli/db/rollback.js +0 -15
  108. package/lib/cli/db/seed.js +0 -104
  109. package/lib/cli/db/unlock.js +0 -15
  110. package/lib/cli/index.js +0 -90
  111. package/lib/controllers/AdminController.js +0 -258
  112. package/lib/controllers/CollectionController.js +0 -263
  113. package/lib/controllers/Controller.js +0 -462
  114. package/lib/controllers/ControllerAction.js +0 -276
  115. package/lib/controllers/MemberAction.js +0 -22
  116. package/lib/controllers/ModelController.js +0 -64
  117. package/lib/controllers/RelationController.js +0 -82
  118. package/lib/controllers/UserController.js +0 -98
  119. package/lib/controllers/index.js +0 -50
  120. package/lib/decorators/action.js +0 -14
  121. package/lib/decorators/authorize.js +0 -13
  122. package/lib/decorators/index.js +0 -58
  123. package/lib/decorators/parameters.js +0 -35
  124. package/lib/decorators/returns.js +0 -26
  125. package/lib/decorators/scope.js +0 -14
  126. package/lib/decorators/transacted.js +0 -12
  127. package/lib/errors/AssetError.js +0 -19
  128. package/lib/errors/AuthenticationError.js +0 -19
  129. package/lib/errors/AuthorizationError.js +0 -19
  130. package/lib/errors/ControllerError.js +0 -24
  131. package/lib/errors/DatabaseError.js +0 -27
  132. package/lib/errors/GraphError.js +0 -19
  133. package/lib/errors/ModelError.js +0 -24
  134. package/lib/errors/NotFoundError.js +0 -19
  135. package/lib/errors/NotImplementedError.js +0 -19
  136. package/lib/errors/QueryBuilderError.js +0 -19
  137. package/lib/errors/RelationError.js +0 -36
  138. package/lib/errors/ResponseError.js +0 -46
  139. package/lib/errors/ValidationError.js +0 -19
  140. package/lib/errors/WrappedError.js +0 -24
  141. package/lib/errors/index.js +0 -122
  142. package/lib/graph/DitoGraphProcessor.js +0 -185
  143. package/lib/graph/expression.js +0 -76
  144. package/lib/graph/graph.js +0 -300
  145. package/lib/graph/index.js +0 -34
  146. package/lib/index.js +0 -82
  147. package/lib/lib/EventEmitter.js +0 -76
  148. package/lib/lib/KnexHelper.js +0 -40
  149. package/lib/lib/index.js +0 -26
  150. package/lib/middleware/attachLogger.js +0 -16
  151. package/lib/middleware/createTransaction.js +0 -36
  152. package/lib/middleware/findRoute.js +0 -35
  153. package/lib/middleware/handleError.js +0 -26
  154. package/lib/middleware/handleRoute.js +0 -29
  155. package/lib/middleware/handleUser.js +0 -36
  156. package/lib/middleware/index.js +0 -66
  157. package/lib/middleware/logRequests.js +0 -122
  158. package/lib/mixins/AssetMixin.js +0 -81
  159. package/lib/mixins/SessionMixin.js +0 -22
  160. package/lib/mixins/TimeStampedMixin.js +0 -47
  161. package/lib/mixins/UserMixin.js +0 -151
  162. package/lib/mixins/index.js +0 -42
  163. package/lib/models/AssetModel.js +0 -12
  164. package/lib/models/Model.js +0 -953
  165. package/lib/models/RelationAccessor.js +0 -41
  166. package/lib/models/SessionModel.js +0 -12
  167. package/lib/models/TimeStampedModel.js +0 -12
  168. package/lib/models/UserModel.js +0 -12
  169. package/lib/models/definitions/assets.js +0 -11
  170. package/lib/models/definitions/filters.js +0 -101
  171. package/lib/models/definitions/hooks.js +0 -11
  172. package/lib/models/definitions/index.js +0 -38
  173. package/lib/models/definitions/modifiers.js +0 -11
  174. package/lib/models/definitions/options.js +0 -11
  175. package/lib/models/definitions/properties.js +0 -87
  176. package/lib/models/definitions/relations.js +0 -11
  177. package/lib/models/definitions/schema.js +0 -11
  178. package/lib/models/definitions/scopes.js +0 -51
  179. package/lib/models/index.js +0 -50
  180. package/lib/query/QueryBuilder.js +0 -745
  181. package/lib/query/QueryFilters.js +0 -82
  182. package/lib/query/QueryParameters.js +0 -77
  183. package/lib/query/Registry.js +0 -40
  184. package/lib/query/index.js +0 -34
  185. package/lib/schema/formats/_empty.js +0 -10
  186. package/lib/schema/formats/_required.js +0 -10
  187. package/lib/schema/formats/index.js +0 -26
  188. package/lib/schema/index.js +0 -49
  189. package/lib/schema/keywords/_computed.js +0 -11
  190. package/lib/schema/keywords/_foreign.js +0 -11
  191. package/lib/schema/keywords/_hidden.js +0 -11
  192. package/lib/schema/keywords/_index.js +0 -11
  193. package/lib/schema/keywords/_instanceof.js +0 -49
  194. package/lib/schema/keywords/_primary.js +0 -11
  195. package/lib/schema/keywords/_range.js +0 -26
  196. package/lib/schema/keywords/_relate.js +0 -19
  197. package/lib/schema/keywords/_specificType.js +0 -11
  198. package/lib/schema/keywords/_unique.js +0 -11
  199. package/lib/schema/keywords/_unsigned.js +0 -11
  200. package/lib/schema/keywords/_validate.js +0 -80
  201. package/lib/schema/keywords/index.js +0 -106
  202. package/lib/schema/properties.js +0 -227
  203. package/lib/schema/properties.test.js +0 -573
  204. package/lib/schema/relations.js +0 -274
  205. package/lib/schema/relations.test.js +0 -155
  206. package/lib/services/Service.js +0 -34
  207. package/lib/services/index.js +0 -18
  208. package/lib/storage/AssetFile.js +0 -97
  209. package/lib/storage/DiskStorage.js +0 -125
  210. package/lib/storage/S3Storage.js +0 -171
  211. package/lib/storage/Storage.js +0 -209
  212. package/lib/storage/index.js +0 -34
  213. package/lib/utils/decorator.js +0 -16
  214. package/lib/utils/deprecate.js +0 -46
  215. package/lib/utils/emitter.js +0 -13
  216. package/lib/utils/function.js +0 -14
  217. package/lib/utils/function.test.js +0 -49
  218. package/lib/utils/index.js +0 -66
  219. package/lib/utils/json.js +0 -9
  220. package/lib/utils/object.js +0 -92
  221. package/lib/utils/object.test.js +0 -65
  222. package/lib/utils/scope.js +0 -14
@@ -1,237 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createMigration = createMigration;
5
-
6
- require("core-js/modules/esnext.async-iterator.map.js");
7
-
8
- require("core-js/modules/esnext.iterator.map.js");
9
-
10
- require("core-js/modules/es.error.cause.js");
11
-
12
- require("core-js/modules/esnext.async-iterator.filter.js");
13
-
14
- require("core-js/modules/esnext.iterator.constructor.js");
15
-
16
- require("core-js/modules/esnext.iterator.filter.js");
17
-
18
- var _path = _interopRequireDefault(require("path"));
19
-
20
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
21
-
22
- var _chalk = _interopRequireDefault(require("chalk"));
23
-
24
- var _schema = require("../../schema");
25
-
26
- var _utils = require("@ditojs/utils");
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- const typeToKnex = {
31
- number: 'double',
32
- object: 'json',
33
- array: 'json'
34
- };
35
- const defaultValues = {
36
- 'now()': `knex.raw('CURRENT_TIMESTAMP')`
37
- };
38
-
39
- const migrationDir = _path.default.join(process.cwd(), 'migrations');
40
-
41
- async function createMigration(app, name, ...modelNames) {
42
- const models = modelNames.map(modelName => {
43
- const modelClass = app.models[modelName];
44
-
45
- if (!modelClass) {
46
- throw new Error(`Model class with name '${modelName}' does not exist`);
47
- }
48
-
49
- return modelClass;
50
- });
51
- const tables = [];
52
-
53
- for (const modelClass of models) {
54
- collectModelTables(modelClass, app, tables);
55
- }
56
-
57
- for (const modelClass of models) {
58
- collectThroughTables(modelClass, app, tables);
59
- }
60
-
61
- const createTables = [];
62
- const dropTables = [];
63
-
64
- for (const {
65
- tableName,
66
- statements
67
- } of tables) {
68
- createTables.push((0, _utils.deindent)`
69
- .createTable('${tableName}', table => {
70
- ${statements.join('\n')}
71
- })`);
72
- dropTables.unshift((0, _utils.deindent)`
73
- .dropTableIfExists('${tableName}')`);
74
- }
75
-
76
- const getCode = tables => tables.length > 0 ? (0, _utils.deindent)`
77
- await knex.schema
78
- ${tables.join('\n')}` : '';
79
-
80
- const filename = `${getTimestamp()}_${name}.js`;
81
-
82
- const file = _path.default.join(migrationDir, filename);
83
-
84
- if (await _fsExtra.default.exists(file)) {
85
- console.info(_chalk.default.red(`Migration '${filename}' already exists.`));
86
- return false;
87
- } else {
88
- await _fsExtra.default.writeFile(file, (0, _utils.deindent)`
89
- export async function up(knex) {
90
- ${getCode(createTables)}
91
- }
92
-
93
- export async function down(knex) {
94
- ${getCode(dropTables)}
95
- }
96
- `);
97
- console.info(_chalk.default.cyan(`Migration '${filename}' successfully created.`));
98
- return true;
99
- }
100
- }
101
-
102
- async function collectModelTables(modelClass, app, tables) {
103
- const tableName = app.normalizeIdentifier(modelClass.tableName);
104
- const {
105
- properties,
106
- relations
107
- } = modelClass.definition;
108
- const statements = [];
109
- tables.push({
110
- tableName,
111
- statements
112
- });
113
- const uniqueComposites = {};
114
-
115
- for (const [name, property] of Object.entries(properties)) {
116
- const column = app.normalizeIdentifier(name);
117
- let {
118
- description,
119
- type,
120
- specificType,
121
- unsigned,
122
- computed,
123
- nullable,
124
- required,
125
- primary,
126
- foreign,
127
- unique,
128
- index,
129
- default: _default
130
- } = property;
131
- const knexType = typeToKnex[type] || type;
132
-
133
- if (!computed) {
134
- if (description) {
135
- statements.push(`// ${description.replace(/\s{2,}/g, ' ').trim()}`);
136
- }
137
-
138
- if ((0, _utils.isString)(unique)) {
139
- const composites = uniqueComposites[unique] || (uniqueComposites[unique] = []);
140
- composites.push(column);
141
- unique = false;
142
- }
143
-
144
- const statement = primary ? [`table.increments('${column}').primary()`] : specificType ? [`table.specificType('${column}', '${specificType}')`] : [`table.${knexType}('${column}')`];
145
- statement.push(unsigned && 'unsigned()', !primary && required && 'notNullable()', nullable && 'nullable()', unique && 'unique()', index && 'index()');
146
-
147
- if (_default !== undefined) {
148
- let value = defaultValues[_default];
149
-
150
- if (!value) {
151
- value = (0, _utils.isArray)(_default) || (0, _utils.isObject)(_default) ? JSON.stringify(_default) : _default;
152
-
153
- if ((0, _utils.isString)(value)) {
154
- value = `'${value}'`;
155
- }
156
- }
157
-
158
- statement.push(`defaultTo(${value})`);
159
- }
160
-
161
- if (foreign) {
162
- for (const relation of Object.values(relations)) {
163
- const {
164
- from,
165
- to,
166
- owner
167
- } = relation;
168
- const [fromClass, fromProperty] = (from == null ? void 0 : from.split('.')) || [];
169
-
170
- if (fromProperty === name) {
171
- if (fromClass !== modelClass.name) {
172
- throw Error(`Invalid relation declaration: ${relation}`);
173
- }
174
-
175
- const [toClass, toProperty] = (to == null ? void 0 : to.split('.')) || [];
176
- statement.push('\n', `references('${app.normalizeIdentifier(toProperty)}')`, `inTable('${app.normalizeIdentifier(toClass)}')`, !owner && `onDelete('CASCADE')`);
177
- }
178
- }
179
- }
180
-
181
- statements.push(statement.filter(str => !!str).join('.').replace(/\.\n\./g, '\n .'));
182
- }
183
- }
184
-
185
- for (const composites of Object.values(uniqueComposites)) {
186
- statements.push(`table.unique([${composites.map(column => `'${column}'`).join(', ')}])`);
187
- }
188
- }
189
-
190
- async function collectThroughTables(modelClass, app, tables) {
191
- const {
192
- relations
193
- } = modelClass.definition;
194
-
195
- for (const relation of Object.values(relations)) {
196
- const {
197
- from,
198
- to,
199
- inverse
200
- } = relation;
201
- const relationClass = (0, _schema.getRelationClass)(relation.relation);
202
-
203
- if ((0, _schema.isThroughRelationClass)(relationClass) && !inverse) {
204
- const [fromClass, fromProperty] = (from == null ? void 0 : from.split('.')) || [];
205
- const [toClass, toProperty] = (to == null ? void 0 : to.split('.')) || [];
206
- const statements = [];
207
- const tableName = app.normalizeIdentifier(`${fromClass}${toClass}`);
208
- const fromId = app.normalizeIdentifier(`${fromClass}${(0, _utils.capitalize)(fromProperty)}`);
209
- const toId = app.normalizeIdentifier(`${toClass}${(0, _utils.capitalize)(toProperty)}`);
210
- tables.push({
211
- tableName,
212
- statements
213
- });
214
- statements.push(`table.increments('id').primary()`);
215
- statements.push((0, _utils.deindent)`
216
- table.integer('${fromId}').unsigned().index()
217
- .references('${app.normalizeIdentifier(fromProperty)}')\\
218
- .inTable('${app.normalizeIdentifier(fromClass)}')\\
219
- .onDelete('CASCADE')`);
220
- statements.push((0, _utils.deindent)`
221
- table.integer('${toId}').unsigned().index()
222
- .references('${app.normalizeIdentifier(toProperty)}')\\
223
- .inTable('${app.normalizeIdentifier(toClass)}')\\
224
- .onDelete('CASCADE')`);
225
- }
226
- }
227
- }
228
-
229
- function padDate(segment) {
230
- return segment.toString().padStart(2, '0');
231
- }
232
-
233
- function getTimestamp() {
234
- const d = new Date();
235
- return d.getFullYear().toString() + padDate(d.getMonth() + 1) + padDate(d.getDate()) + padDate(d.getHours()) + padDate(d.getMinutes()) + padDate(d.getSeconds());
236
- }
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvY3JlYXRlTWlncmF0aW9uLmpzIl0sIm5hbWVzIjpbInR5cGVUb0tuZXgiLCJudW1iZXIiLCJvYmplY3QiLCJhcnJheSIsImRlZmF1bHRWYWx1ZXMiLCJtaWdyYXRpb25EaXIiLCJwYXRoIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJjcmVhdGVNaWdyYXRpb24iLCJhcHAiLCJuYW1lIiwibW9kZWxOYW1lcyIsIm1vZGVscyIsIm1hcCIsIm1vZGVsTmFtZSIsIm1vZGVsQ2xhc3MiLCJFcnJvciIsInRhYmxlcyIsImNvbGxlY3RNb2RlbFRhYmxlcyIsImNvbGxlY3RUaHJvdWdoVGFibGVzIiwiY3JlYXRlVGFibGVzIiwiZHJvcFRhYmxlcyIsInRhYmxlTmFtZSIsInN0YXRlbWVudHMiLCJwdXNoIiwidW5zaGlmdCIsImdldENvZGUiLCJsZW5ndGgiLCJmaWxlbmFtZSIsImdldFRpbWVzdGFtcCIsImZpbGUiLCJmcyIsImV4aXN0cyIsImNvbnNvbGUiLCJpbmZvIiwiY2hhbGsiLCJyZWQiLCJ3cml0ZUZpbGUiLCJjeWFuIiwibm9ybWFsaXplSWRlbnRpZmllciIsInByb3BlcnRpZXMiLCJyZWxhdGlvbnMiLCJkZWZpbml0aW9uIiwidW5pcXVlQ29tcG9zaXRlcyIsInByb3BlcnR5IiwiT2JqZWN0IiwiZW50cmllcyIsImNvbHVtbiIsImRlc2NyaXB0aW9uIiwidHlwZSIsInNwZWNpZmljVHlwZSIsInVuc2lnbmVkIiwiY29tcHV0ZWQiLCJudWxsYWJsZSIsInJlcXVpcmVkIiwicHJpbWFyeSIsImZvcmVpZ24iLCJ1bmlxdWUiLCJpbmRleCIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImtuZXhUeXBlIiwicmVwbGFjZSIsInRyaW0iLCJjb21wb3NpdGVzIiwic3RhdGVtZW50IiwidW5kZWZpbmVkIiwidmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwicmVsYXRpb24iLCJ2YWx1ZXMiLCJmcm9tIiwidG8iLCJvd25lciIsImZyb21DbGFzcyIsImZyb21Qcm9wZXJ0eSIsInNwbGl0IiwidG9DbGFzcyIsInRvUHJvcGVydHkiLCJmaWx0ZXIiLCJzdHIiLCJpbnZlcnNlIiwicmVsYXRpb25DbGFzcyIsImZyb21JZCIsInRvSWQiLCJwYWREYXRlIiwic2VnbWVudCIsInRvU3RyaW5nIiwicGFkU3RhcnQiLCJkIiwiRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUlBLE1BQU1BLFVBQVUsR0FBRztBQUNqQkMsRUFBQUEsTUFBTSxFQUFFLFFBRFM7QUFFakJDLEVBQUFBLE1BQU0sRUFBRSxNQUZTO0FBR2pCQyxFQUFBQSxLQUFLLEVBQUU7QUFIVSxDQUFuQjtBQU1BLE1BQU1DLGFBQWEsR0FBRztBQUNwQixXQUFVO0FBRFUsQ0FBdEI7O0FBSUEsTUFBTUMsWUFBWSxHQUFHQyxjQUFLQyxJQUFMLENBQVVDLE9BQU8sQ0FBQ0MsR0FBUixFQUFWLEVBQXlCLFlBQXpCLENBQXJCOztBQUVPLGVBQWVDLGVBQWYsQ0FBK0JDLEdBQS9CLEVBQW9DQyxJQUFwQyxFQUEwQyxHQUFHQyxVQUE3QyxFQUF5RDtBQUM5RCxRQUFNQyxNQUFNLEdBQUdELFVBQVUsQ0FBQ0UsR0FBWCxDQUFlQyxTQUFTLElBQUk7QUFDekMsVUFBTUMsVUFBVSxHQUFHTixHQUFHLENBQUNHLE1BQUosQ0FBV0UsU0FBWCxDQUFuQjs7QUFDQSxRQUFJLENBQUNDLFVBQUwsRUFBaUI7QUFDZixZQUFNLElBQUlDLEtBQUosQ0FBVywwQkFBeUJGLFNBQVUsa0JBQTlDLENBQU47QUFDRDs7QUFDRCxXQUFPQyxVQUFQO0FBQ0QsR0FOYyxDQUFmO0FBT0EsUUFBTUUsTUFBTSxHQUFHLEVBQWY7O0FBQ0EsT0FBSyxNQUFNRixVQUFYLElBQXlCSCxNQUF6QixFQUFpQztBQUMvQk0sSUFBQUEsa0JBQWtCLENBQUNILFVBQUQsRUFBYU4sR0FBYixFQUFrQlEsTUFBbEIsQ0FBbEI7QUFDRDs7QUFDRCxPQUFLLE1BQU1GLFVBQVgsSUFBeUJILE1BQXpCLEVBQWlDO0FBQy9CTyxJQUFBQSxvQkFBb0IsQ0FBQ0osVUFBRCxFQUFhTixHQUFiLEVBQWtCUSxNQUFsQixDQUFwQjtBQUNEOztBQUNELFFBQU1HLFlBQVksR0FBRyxFQUFyQjtBQUNBLFFBQU1DLFVBQVUsR0FBRyxFQUFuQjs7QUFDQSxPQUFLLE1BQU07QUFBRUMsSUFBQUEsU0FBRjtBQUFhQyxJQUFBQTtBQUFiLEdBQVgsSUFBd0NOLE1BQXhDLEVBQWdEO0FBQzlDRyxJQUFBQSxZQUFZLENBQUNJLElBQWIsQ0FBa0Isb0JBQVM7QUFDL0Isc0JBQXNCRixTQUFVO0FBQ2hDLFVBQVVDLFVBQVUsQ0FBQ2xCLElBQVgsQ0FBZ0IsSUFBaEIsQ0FBc0I7QUFDaEMsU0FISTtBQUlBZ0IsSUFBQUEsVUFBVSxDQUFDSSxPQUFYLENBQW1CLG9CQUFTO0FBQ2hDLDRCQUE0QkgsU0FBVSxJQURsQztBQUVEOztBQUNELFFBQU1JLE9BQU8sR0FBR1QsTUFBTSxJQUFJQSxNQUFNLENBQUNVLE1BQVAsR0FBZ0IsQ0FBaEIsR0FDdEIsb0JBQVM7QUFDZjtBQUNBLFVBQVVWLE1BQU0sQ0FBQ1osSUFBUCxDQUFZLElBQVosQ0FBa0IsRUFIQSxHQUl0QixFQUpKOztBQUtBLFFBQU11QixRQUFRLEdBQUksR0FBRUMsWUFBWSxFQUFHLElBQUduQixJQUFLLEtBQTNDOztBQUNBLFFBQU1vQixJQUFJLEdBQUcxQixjQUFLQyxJQUFMLENBQVVGLFlBQVYsRUFBd0J5QixRQUF4QixDQUFiOztBQUNBLE1BQUksTUFBTUcsaUJBQUdDLE1BQUgsQ0FBVUYsSUFBVixDQUFWLEVBQTJCO0FBRXpCRyxJQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYUMsZUFBTUMsR0FBTixDQUFXLGNBQWFSLFFBQVMsbUJBQWpDLENBQWI7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUpELE1BSU87QUFDTCxVQUFNRyxpQkFBR00sU0FBSCxDQUFhUCxJQUFiLEVBQW1CLG9CQUFTO0FBQ3RDO0FBQ0EsVUFBVUosT0FBTyxDQUFDTixZQUFELENBQWU7QUFDaEM7QUFDQTtBQUNBO0FBQ0EsVUFBVU0sT0FBTyxDQUFDTCxVQUFELENBQWE7QUFDOUI7QUFDQSxLQVJVLENBQU47QUFTQVksSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWFDLGVBQU1HLElBQU4sQ0FBWSxjQUFhVixRQUFTLHlCQUFsQyxDQUFiO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFFRCxlQUFlVixrQkFBZixDQUFrQ0gsVUFBbEMsRUFBOENOLEdBQTlDLEVBQW1EUSxNQUFuRCxFQUEyRDtBQUN6RCxRQUFNSyxTQUFTLEdBQUdiLEdBQUcsQ0FBQzhCLG1CQUFKLENBQXdCeEIsVUFBVSxDQUFDTyxTQUFuQyxDQUFsQjtBQUNBLFFBQU07QUFBRWtCLElBQUFBLFVBQUY7QUFBY0MsSUFBQUE7QUFBZCxNQUE0QjFCLFVBQVUsQ0FBQzJCLFVBQTdDO0FBQ0EsUUFBTW5CLFVBQVUsR0FBRyxFQUFuQjtBQUNBTixFQUFBQSxNQUFNLENBQUNPLElBQVAsQ0FBWTtBQUFFRixJQUFBQSxTQUFGO0FBQWFDLElBQUFBO0FBQWIsR0FBWjtBQUNBLFFBQU1vQixnQkFBZ0IsR0FBRyxFQUF6Qjs7QUFDQSxPQUFLLE1BQU0sQ0FBQ2pDLElBQUQsRUFBT2tDLFFBQVAsQ0FBWCxJQUErQkMsTUFBTSxDQUFDQyxPQUFQLENBQWVOLFVBQWYsQ0FBL0IsRUFBMkQ7QUFDekQsVUFBTU8sTUFBTSxHQUFHdEMsR0FBRyxDQUFDOEIsbUJBQUosQ0FBd0I3QixJQUF4QixDQUFmO0FBQ0EsUUFBSTtBQUNGc0MsTUFBQUEsV0FERTtBQUNXQyxNQUFBQSxJQURYO0FBQ2lCQyxNQUFBQSxZQURqQjtBQUMrQkMsTUFBQUEsUUFEL0I7QUFDeUNDLE1BQUFBLFFBRHpDO0FBQ21EQyxNQUFBQSxRQURuRDtBQUM2REMsTUFBQUEsUUFEN0Q7QUFFRkMsTUFBQUEsT0FGRTtBQUVPQyxNQUFBQSxPQUZQO0FBRWdCQyxNQUFBQSxNQUZoQjtBQUV3QkMsTUFBQUEsS0FGeEI7QUFHRkMsTUFBQUEsT0FBTyxFQUFFQztBQUhQLFFBSUFoQixRQUpKO0FBS0EsVUFBTWlCLFFBQVEsR0FBRy9ELFVBQVUsQ0FBQ21ELElBQUQsQ0FBVixJQUFvQkEsSUFBckM7O0FBQ0EsUUFBSSxDQUFDRyxRQUFMLEVBQWU7QUFDYixVQUFJSixXQUFKLEVBQWlCO0FBQ2Z6QixRQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBaUIsTUFBS3dCLFdBQVcsQ0FBQ2MsT0FBWixDQUFvQixTQUFwQixFQUErQixHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMkMsRUFBakU7QUFDRDs7QUFDRCxVQUFJLHFCQUFTTixNQUFULENBQUosRUFBc0I7QUFJcEIsY0FBTU8sVUFBVSxHQUFHckIsZ0JBQWdCLENBQUNjLE1BQUQsQ0FBaEIsS0FDaEJkLGdCQUFnQixDQUFDYyxNQUFELENBQWhCLEdBQTJCLEVBRFgsQ0FBbkI7QUFFQU8sUUFBQUEsVUFBVSxDQUFDeEMsSUFBWCxDQUFnQnVCLE1BQWhCO0FBQ0FVLFFBQUFBLE1BQU0sR0FBRyxLQUFUO0FBQ0Q7O0FBQ0QsWUFBTVEsU0FBUyxHQUFHVixPQUFPLEdBQ3JCLENBQUUscUJBQW9CUixNQUFPLGNBQTdCLENBRHFCLEdBRXJCRyxZQUFZLEdBQ1YsQ0FBRSx1QkFBc0JILE1BQU8sT0FBTUcsWUFBYSxJQUFsRCxDQURVLEdBRVYsQ0FBRSxTQUFRVyxRQUFTLEtBQUlkLE1BQU8sSUFBOUIsQ0FKTjtBQUtBa0IsTUFBQUEsU0FBUyxDQUFDekMsSUFBVixDQUNFMkIsUUFBUSxJQUFJLFlBRGQsRUFFRSxDQUFDSSxPQUFELElBQVlELFFBQVosSUFBd0IsZUFGMUIsRUFHRUQsUUFBUSxJQUFJLFlBSGQsRUFJRUksTUFBTSxJQUFJLFVBSlosRUFLRUMsS0FBSyxJQUFJLFNBTFg7O0FBT0EsVUFBSUUsUUFBUSxLQUFLTSxTQUFqQixFQUE0QjtBQUMxQixZQUFJQyxLQUFLLEdBQUdqRSxhQUFhLENBQUMwRCxRQUFELENBQXpCOztBQUNBLFlBQUksQ0FBQ08sS0FBTCxFQUFZO0FBQ1ZBLFVBQUFBLEtBQUssR0FBRyxvQkFBUVAsUUFBUixLQUFxQixxQkFBU0EsUUFBVCxDQUFyQixHQUNKUSxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsUUFBZixDQURJLEdBRUpBLFFBRko7O0FBR0EsY0FBSSxxQkFBU08sS0FBVCxDQUFKLEVBQXFCO0FBQ25CQSxZQUFBQSxLQUFLLEdBQUksSUFBR0EsS0FBTSxHQUFsQjtBQUNEO0FBQ0Y7O0FBQ0RGLFFBQUFBLFNBQVMsQ0FBQ3pDLElBQVYsQ0FBZ0IsYUFBWTJDLEtBQU0sR0FBbEM7QUFDRDs7QUFDRCxVQUFJWCxPQUFKLEVBQWE7QUFDWCxhQUFLLE1BQU1jLFFBQVgsSUFBdUJ6QixNQUFNLENBQUMwQixNQUFQLENBQWM5QixTQUFkLENBQXZCLEVBQWlEO0FBRy9DLGdCQUFNO0FBQUUrQixZQUFBQSxJQUFGO0FBQVFDLFlBQUFBLEVBQVI7QUFBWUMsWUFBQUE7QUFBWixjQUFzQkosUUFBNUI7QUFDQSxnQkFBTSxDQUFDSyxTQUFELEVBQVlDLFlBQVosSUFBNEIsQ0FBQUosSUFBSSxRQUFKLFlBQUFBLElBQUksQ0FBRUssS0FBTixDQUFZLEdBQVosTUFBb0IsRUFBdEQ7O0FBQ0EsY0FBSUQsWUFBWSxLQUFLbEUsSUFBckIsRUFBMkI7QUFDekIsZ0JBQUlpRSxTQUFTLEtBQUs1RCxVQUFVLENBQUNMLElBQTdCLEVBQW1DO0FBQ2pDLG9CQUFNTSxLQUFLLENBQUUsaUNBQWdDc0QsUUFBUyxFQUEzQyxDQUFYO0FBQ0Q7O0FBQ0Qsa0JBQU0sQ0FBQ1EsT0FBRCxFQUFVQyxVQUFWLElBQXdCLENBQUFOLEVBQUUsUUFBRixZQUFBQSxFQUFFLENBQUVJLEtBQUosQ0FBVSxHQUFWLE1BQWtCLEVBQWhEO0FBQ0FaLFlBQUFBLFNBQVMsQ0FBQ3pDLElBQVYsQ0FDRSxJQURGLEVBRUcsZUFBY2YsR0FBRyxDQUFDOEIsbUJBQUosQ0FBd0J3QyxVQUF4QixDQUFvQyxJQUZyRCxFQUdHLFlBQVd0RSxHQUFHLENBQUM4QixtQkFBSixDQUF3QnVDLE9BQXhCLENBQWlDLElBSC9DLEVBUUUsQ0FBQ0osS0FBRCxJQUFXLHFCQVJiO0FBVUQ7QUFDRjtBQUNGOztBQUNEbkQsTUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCeUMsU0FBUyxDQUFDZSxNQUFWLENBQWlCQyxHQUFHLElBQUksQ0FBQyxDQUFDQSxHQUExQixFQUErQjVFLElBQS9CLENBQW9DLEdBQXBDLEVBQ2J5RCxPQURhLENBQ0wsU0FESyxFQUNNLE9BRE4sQ0FBaEI7QUFFRDtBQUNGOztBQUNELE9BQUssTUFBTUUsVUFBWCxJQUF5Qm5CLE1BQU0sQ0FBQzBCLE1BQVAsQ0FBYzVCLGdCQUFkLENBQXpCLEVBQTBEO0FBQ3hEcEIsSUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWlCLGlCQUNmd0MsVUFBVSxDQUFDbkQsR0FBWCxDQUFla0MsTUFBTSxJQUFLLElBQUdBLE1BQU8sR0FBcEMsRUFBd0MxQyxJQUF4QyxDQUE2QyxJQUE3QyxDQUNELElBRkQ7QUFHRDtBQUNGOztBQUVELGVBQWVjLG9CQUFmLENBQW9DSixVQUFwQyxFQUFnRE4sR0FBaEQsRUFBcURRLE1BQXJELEVBQTZEO0FBQzNELFFBQU07QUFBRXdCLElBQUFBO0FBQUYsTUFBZ0IxQixVQUFVLENBQUMyQixVQUFqQzs7QUFDQSxPQUFLLE1BQU00QixRQUFYLElBQXVCekIsTUFBTSxDQUFDMEIsTUFBUCxDQUFjOUIsU0FBZCxDQUF2QixFQUFpRDtBQUMvQyxVQUFNO0FBQUUrQixNQUFBQSxJQUFGO0FBQVFDLE1BQUFBLEVBQVI7QUFBWVMsTUFBQUE7QUFBWixRQUF3QlosUUFBOUI7QUFDQSxVQUFNYSxhQUFhLEdBQUcsOEJBQWlCYixRQUFRLENBQUNBLFFBQTFCLENBQXRCOztBQUNBLFFBQUksb0NBQXVCYSxhQUF2QixLQUF5QyxDQUFDRCxPQUE5QyxFQUF1RDtBQUdyRCxZQUFNLENBQUNQLFNBQUQsRUFBWUMsWUFBWixJQUE0QixDQUFBSixJQUFJLFFBQUosWUFBQUEsSUFBSSxDQUFFSyxLQUFOLENBQVksR0FBWixNQUFvQixFQUF0RDtBQUNBLFlBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxVQUFWLElBQXdCLENBQUFOLEVBQUUsUUFBRixZQUFBQSxFQUFFLENBQUVJLEtBQUosQ0FBVSxHQUFWLE1BQWtCLEVBQWhEO0FBQ0EsWUFBTXRELFVBQVUsR0FBRyxFQUFuQjtBQUVBLFlBQU1ELFNBQVMsR0FBR2IsR0FBRyxDQUFDOEIsbUJBQUosQ0FBeUIsR0FBRW9DLFNBQVUsR0FBRUcsT0FBUSxFQUEvQyxDQUFsQjtBQUNBLFlBQU1NLE1BQU0sR0FBRzNFLEdBQUcsQ0FBQzhCLG1CQUFKLENBQ1osR0FBRW9DLFNBQVUsR0FBRSx1QkFBV0MsWUFBWCxDQUF5QixFQUQzQixDQUFmO0FBRUEsWUFBTVMsSUFBSSxHQUFHNUUsR0FBRyxDQUFDOEIsbUJBQUosQ0FDVixHQUFFdUMsT0FBUSxHQUFFLHVCQUFXQyxVQUFYLENBQXVCLEVBRHpCLENBQWI7QUFFQTlELE1BQUFBLE1BQU0sQ0FBQ08sSUFBUCxDQUFZO0FBQUVGLFFBQUFBLFNBQUY7QUFBYUMsUUFBQUE7QUFBYixPQUFaO0FBQ0FBLE1BQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFpQixrQ0FBakI7QUFDQUQsTUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLG9CQUFTO0FBQy9CLHlCQUF5QjRELE1BQU87QUFDaEMseUJBQXlCM0UsR0FBRyxDQUFDOEIsbUJBQUosQ0FBd0JxQyxZQUF4QixDQUFzQztBQUMvRCxzQkFBc0JuRSxHQUFHLENBQUM4QixtQkFBSixDQUF3Qm9DLFNBQXhCLENBQW1DO0FBQ3pELCtCQUpNO0FBS0FwRCxNQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0Isb0JBQVM7QUFDL0IseUJBQXlCNkQsSUFBSztBQUM5Qix5QkFBeUI1RSxHQUFHLENBQUM4QixtQkFBSixDQUF3QndDLFVBQXhCLENBQW9DO0FBQzdELHNCQUFzQnRFLEdBQUcsQ0FBQzhCLG1CQUFKLENBQXdCdUMsT0FBeEIsQ0FBaUM7QUFDdkQsK0JBSk07QUFLRDtBQUNGO0FBQ0Y7O0FBR0QsU0FBU1EsT0FBVCxDQUFpQkMsT0FBakIsRUFBMEI7QUFDeEIsU0FBT0EsT0FBTyxDQUFDQyxRQUFSLEdBQW1CQyxRQUFuQixDQUE0QixDQUE1QixFQUErQixHQUEvQixDQUFQO0FBQ0Q7O0FBSUQsU0FBUzVELFlBQVQsR0FBd0I7QUFDdEIsUUFBTTZELENBQUMsR0FBRyxJQUFJQyxJQUFKLEVBQVY7QUFDQSxTQUFPRCxDQUFDLENBQUNFLFdBQUYsR0FBZ0JKLFFBQWhCLEtBQ0xGLE9BQU8sQ0FBQ0ksQ0FBQyxDQUFDRyxRQUFGLEtBQWUsQ0FBaEIsQ0FERixHQUVMUCxPQUFPLENBQUNJLENBQUMsQ0FBQ0ksT0FBRixFQUFELENBRkYsR0FHTFIsT0FBTyxDQUFDSSxDQUFDLENBQUNLLFFBQUYsRUFBRCxDQUhGLEdBSUxULE9BQU8sQ0FBQ0ksQ0FBQyxDQUFDTSxVQUFGLEVBQUQsQ0FKRixHQUtMVixPQUFPLENBQUNJLENBQUMsQ0FBQ08sVUFBRixFQUFELENBTFQ7QUFNRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgeyBnZXRSZWxhdGlvbkNsYXNzLCBpc1Rocm91Z2hSZWxhdGlvbkNsYXNzIH0gZnJvbSAnQC9zY2hlbWEnXG5pbXBvcnQge1xuICBpc09iamVjdCwgaXNBcnJheSwgaXNTdHJpbmcsIGRlaW5kZW50LCBjYXBpdGFsaXplXG59IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmNvbnN0IHR5cGVUb0tuZXggPSB7XG4gIG51bWJlcjogJ2RvdWJsZScsXG4gIG9iamVjdDogJ2pzb24nLFxuICBhcnJheTogJ2pzb24nXG59XG5cbmNvbnN0IGRlZmF1bHRWYWx1ZXMgPSB7XG4gICdub3coKSc6IGBrbmV4LnJhdygnQ1VSUkVOVF9USU1FU1RBTVAnKWBcbn1cblxuY29uc3QgbWlncmF0aW9uRGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdtaWdyYXRpb25zJylcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pZ3JhdGlvbihhcHAsIG5hbWUsIC4uLm1vZGVsTmFtZXMpIHtcbiAgY29uc3QgbW9kZWxzID0gbW9kZWxOYW1lcy5tYXAobW9kZWxOYW1lID0+IHtcbiAgICBjb25zdCBtb2RlbENsYXNzID0gYXBwLm1vZGVsc1ttb2RlbE5hbWVdXG4gICAgaWYgKCFtb2RlbENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIGNsYXNzIHdpdGggbmFtZSAnJHttb2RlbE5hbWV9JyBkb2VzIG5vdCBleGlzdGApXG4gICAgfVxuICAgIHJldHVybiBtb2RlbENsYXNzXG4gIH0pXG4gIGNvbnN0IHRhYmxlcyA9IFtdXG4gIGZvciAoY29uc3QgbW9kZWxDbGFzcyBvZiBtb2RlbHMpIHtcbiAgICBjb2xsZWN0TW9kZWxUYWJsZXMobW9kZWxDbGFzcywgYXBwLCB0YWJsZXMpXG4gIH1cbiAgZm9yIChjb25zdCBtb2RlbENsYXNzIG9mIG1vZGVscykge1xuICAgIGNvbGxlY3RUaHJvdWdoVGFibGVzKG1vZGVsQ2xhc3MsIGFwcCwgdGFibGVzKVxuICB9XG4gIGNvbnN0IGNyZWF0ZVRhYmxlcyA9IFtdXG4gIGNvbnN0IGRyb3BUYWJsZXMgPSBbXVxuICBmb3IgKGNvbnN0IHsgdGFibGVOYW1lLCBzdGF0ZW1lbnRzIH0gb2YgdGFibGVzKSB7XG4gICAgY3JlYXRlVGFibGVzLnB1c2goZGVpbmRlbnRgXG4gICAgICAuY3JlYXRlVGFibGUoJyR7dGFibGVOYW1lfScsIHRhYmxlID0+IHtcbiAgICAgICAgJHtzdGF0ZW1lbnRzLmpvaW4oJ1xcbicpfVxuICAgICAgfSlgKVxuICAgIGRyb3BUYWJsZXMudW5zaGlmdChkZWluZGVudGBcbiAgICAgIC5kcm9wVGFibGVJZkV4aXN0cygnJHt0YWJsZU5hbWV9JylgKVxuICB9XG4gIGNvbnN0IGdldENvZGUgPSB0YWJsZXMgPT4gdGFibGVzLmxlbmd0aCA+IDBcbiAgICA/IGRlaW5kZW50YFxuICAgICAgYXdhaXQga25leC5zY2hlbWFcbiAgICAgICAgJHt0YWJsZXMuam9pbignXFxuJyl9YFxuICAgIDogJydcbiAgY29uc3QgZmlsZW5hbWUgPSBgJHtnZXRUaW1lc3RhbXAoKX1fJHtuYW1lfS5qc2BcbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihtaWdyYXRpb25EaXIsIGZpbGVuYW1lKVxuICBpZiAoYXdhaXQgZnMuZXhpc3RzKGZpbGUpKSB7XG4gICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgbGV0J3MgYmUgb24gdGhlIHNhZmUgc2lkZSBoZXJlOlxuICAgIGNvbnNvbGUuaW5mbyhjaGFsay5yZWQoYE1pZ3JhdGlvbiAnJHtmaWxlbmFtZX0nIGFscmVhZHkgZXhpc3RzLmApKVxuICAgIHJldHVybiBmYWxzZVxuICB9IGVsc2Uge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlLCBkZWluZGVudGBcbiAgICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4KSB7XG4gICAgICAgICR7Z2V0Q29kZShjcmVhdGVUYWJsZXMpfVxuICAgICAgfVxuXG4gICAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4KSB7XG4gICAgICAgICR7Z2V0Q29kZShkcm9wVGFibGVzKX1cbiAgICAgIH1cbiAgICBgKVxuICAgIGNvbnNvbGUuaW5mbyhjaGFsay5jeWFuKGBNaWdyYXRpb24gJyR7ZmlsZW5hbWV9JyBzdWNjZXNzZnVsbHkgY3JlYXRlZC5gKSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RNb2RlbFRhYmxlcyhtb2RlbENsYXNzLCBhcHAsIHRhYmxlcykge1xuICBjb25zdCB0YWJsZU5hbWUgPSBhcHAubm9ybWFsaXplSWRlbnRpZmllcihtb2RlbENsYXNzLnRhYmxlTmFtZSlcbiAgY29uc3QgeyBwcm9wZXJ0aWVzLCByZWxhdGlvbnMgfSA9IG1vZGVsQ2xhc3MuZGVmaW5pdGlvblxuICBjb25zdCBzdGF0ZW1lbnRzID0gW11cbiAgdGFibGVzLnB1c2goeyB0YWJsZU5hbWUsIHN0YXRlbWVudHMgfSlcbiAgY29uc3QgdW5pcXVlQ29tcG9zaXRlcyA9IHt9XG4gIGZvciAoY29uc3QgW25hbWUsIHByb3BlcnR5XSBvZiBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzKSkge1xuICAgIGNvbnN0IGNvbHVtbiA9IGFwcC5ub3JtYWxpemVJZGVudGlmaWVyKG5hbWUpXG4gICAgbGV0IHtcbiAgICAgIGRlc2NyaXB0aW9uLCB0eXBlLCBzcGVjaWZpY1R5cGUsIHVuc2lnbmVkLCBjb21wdXRlZCwgbnVsbGFibGUsIHJlcXVpcmVkLFxuICAgICAgcHJpbWFyeSwgZm9yZWlnbiwgdW5pcXVlLCBpbmRleCxcbiAgICAgIGRlZmF1bHQ6IF9kZWZhdWx0XG4gICAgfSA9IHByb3BlcnR5XG4gICAgY29uc3Qga25leFR5cGUgPSB0eXBlVG9LbmV4W3R5cGVdIHx8IHR5cGVcbiAgICBpZiAoIWNvbXB1dGVkKSB7XG4gICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKGAvLyAke2Rlc2NyaXB0aW9uLnJlcGxhY2UoL1xcc3syLH0vZywgJyAnKS50cmltKCl9YClcbiAgICAgIH1cbiAgICAgIGlmIChpc1N0cmluZyh1bmlxdWUpKSB7XG4gICAgICAgIC8vIFRvIGRlY2xhcmUgY29tcG9zaXRlIGZvcmVpZ24ga2V5cyBhcyB1bmlxdWUsIHlvdSBjYW4gZ2l2ZSBlYWNoXG4gICAgICAgIC8vIHByb3BlcnR5IHRoZSBzYW1lIHN0cmluZyB2YWx1ZSBpbiB0aGUgYHVuaXF1ZWAga2V5d29yZHMsIGUuZy46XG4gICAgICAgIC8vIGB1bmlxdWU6ICdjdXN0b21lcklkX25hbWUnXG4gICAgICAgIGNvbnN0IGNvbXBvc2l0ZXMgPSB1bmlxdWVDb21wb3NpdGVzW3VuaXF1ZV0gfHxcbiAgICAgICAgICAodW5pcXVlQ29tcG9zaXRlc1t1bmlxdWVdID0gW10pXG4gICAgICAgIGNvbXBvc2l0ZXMucHVzaChjb2x1bW4pXG4gICAgICAgIHVuaXF1ZSA9IGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBzdGF0ZW1lbnQgPSBwcmltYXJ5XG4gICAgICAgID8gW2B0YWJsZS5pbmNyZW1lbnRzKCcke2NvbHVtbn0nKS5wcmltYXJ5KClgXVxuICAgICAgICA6IHNwZWNpZmljVHlwZVxuICAgICAgICAgID8gW2B0YWJsZS5zcGVjaWZpY1R5cGUoJyR7Y29sdW1ufScsICcke3NwZWNpZmljVHlwZX0nKWBdXG4gICAgICAgICAgOiBbYHRhYmxlLiR7a25leFR5cGV9KCcke2NvbHVtbn0nKWBdXG4gICAgICBzdGF0ZW1lbnQucHVzaChcbiAgICAgICAgdW5zaWduZWQgJiYgJ3Vuc2lnbmVkKCknLFxuICAgICAgICAhcHJpbWFyeSAmJiByZXF1aXJlZCAmJiAnbm90TnVsbGFibGUoKScsXG4gICAgICAgIG51bGxhYmxlICYmICdudWxsYWJsZSgpJyxcbiAgICAgICAgdW5pcXVlICYmICd1bmlxdWUoKScsXG4gICAgICAgIGluZGV4ICYmICdpbmRleCgpJ1xuICAgICAgKVxuICAgICAgaWYgKF9kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gZGVmYXVsdFZhbHVlc1tfZGVmYXVsdF1cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHZhbHVlID0gaXNBcnJheShfZGVmYXVsdCkgfHwgaXNPYmplY3QoX2RlZmF1bHQpXG4gICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KF9kZWZhdWx0KVxuICAgICAgICAgICAgOiBfZGVmYXVsdFxuICAgICAgICAgIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYCcke3ZhbHVlfSdgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlbWVudC5wdXNoKGBkZWZhdWx0VG8oJHt2YWx1ZX0pYClcbiAgICAgIH1cbiAgICAgIGlmIChmb3JlaWduKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmVsYXRpb24gb2YgT2JqZWN0LnZhbHVlcyhyZWxhdGlvbnMpKSB7XG4gICAgICAgICAgLy8gVE9ETzogU3VwcG9ydCBjb21wb3NpdGUga2V5cyBmb3IgZm9yZWlnbiByZWZlcmVuY2VzOlxuICAgICAgICAgIC8vIFVzZSBgYXNBcnJheShmcm9tKWAsIGBhc0FycmF5KHRvKWBcbiAgICAgICAgICBjb25zdCB7IGZyb20sIHRvLCBvd25lciB9ID0gcmVsYXRpb25cbiAgICAgICAgICBjb25zdCBbZnJvbUNsYXNzLCBmcm9tUHJvcGVydHldID0gZnJvbT8uc3BsaXQoJy4nKSB8fCBbXVxuICAgICAgICAgIGlmIChmcm9tUHJvcGVydHkgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlmIChmcm9tQ2xhc3MgIT09IG1vZGVsQ2xhc3MubmFtZSkge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCByZWxhdGlvbiBkZWNsYXJhdGlvbjogJHtyZWxhdGlvbn1gKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW3RvQ2xhc3MsIHRvUHJvcGVydHldID0gdG8/LnNwbGl0KCcuJykgfHwgW11cbiAgICAgICAgICAgIHN0YXRlbWVudC5wdXNoKFxuICAgICAgICAgICAgICAnXFxuJyxcbiAgICAgICAgICAgICAgYHJlZmVyZW5jZXMoJyR7YXBwLm5vcm1hbGl6ZUlkZW50aWZpZXIodG9Qcm9wZXJ0eSl9JylgLFxuICAgICAgICAgICAgICBgaW5UYWJsZSgnJHthcHAubm9ybWFsaXplSWRlbnRpZmllcih0b0NsYXNzKX0nKWAsXG4gICAgICAgICAgICAgIC8vIE9ubHkgcmVsYXRpb25zIHRoYXQgYXJlbid0IG93bmVycyBvZiB0aGVpciBkYXRhIHNob3VsZCBjYXNjYWRlXG4gICAgICAgICAgICAgIC8vIG9uIGRlbGV0ZS5cbiAgICAgICAgICAgICAgLy8gVE9ETzogRmluZCB0aGUgcmV2ZXJzZSByZWxhdGlvbiBvZiB0aGlzIGluIHRoZSBvdGhlciBjbGFzcyBhbmRcbiAgICAgICAgICAgICAgLy8gb25seSBhZGQgYG9uRGVsZXRlKCdDQVNDQURFJylgIGlmIHRoYXQgb25lJ3MgYW4gb3duZXIuXG4gICAgICAgICAgICAgICFvd25lciAmJiBgb25EZWxldGUoJ0NBU0NBREUnKWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YXRlbWVudHMucHVzaChzdGF0ZW1lbnQuZmlsdGVyKHN0ciA9PiAhIXN0cikuam9pbignLicpXG4gICAgICAgIC5yZXBsYWNlKC9cXC5cXG5cXC4vZywgJ1xcbiAgLicpKVxuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGNvbXBvc2l0ZXMgb2YgT2JqZWN0LnZhbHVlcyh1bmlxdWVDb21wb3NpdGVzKSkge1xuICAgIHN0YXRlbWVudHMucHVzaChgdGFibGUudW5pcXVlKFske1xuICAgICAgY29tcG9zaXRlcy5tYXAoY29sdW1uID0+IGAnJHtjb2x1bW59J2ApLmpvaW4oJywgJylcbiAgICB9XSlgKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RUaHJvdWdoVGFibGVzKG1vZGVsQ2xhc3MsIGFwcCwgdGFibGVzKSB7XG4gIGNvbnN0IHsgcmVsYXRpb25zIH0gPSBtb2RlbENsYXNzLmRlZmluaXRpb25cbiAgZm9yIChjb25zdCByZWxhdGlvbiBvZiBPYmplY3QudmFsdWVzKHJlbGF0aW9ucykpIHtcbiAgICBjb25zdCB7IGZyb20sIHRvLCBpbnZlcnNlIH0gPSByZWxhdGlvblxuICAgIGNvbnN0IHJlbGF0aW9uQ2xhc3MgPSBnZXRSZWxhdGlvbkNsYXNzKHJlbGF0aW9uLnJlbGF0aW9uKVxuICAgIGlmIChpc1Rocm91Z2hSZWxhdGlvbkNsYXNzKHJlbGF0aW9uQ2xhc3MpICYmICFpbnZlcnNlKSB7XG4gICAgICAvLyBUT0RPOiBTdXBwb3J0IGNvbXBvc2l0ZSBrZXlzIGZvciBmb3JlaWduIHJlZmVyZW5jZXM6XG4gICAgICAvLyBVc2UgYGFzQXJyYXkoZnJvbSlgLCBgYXNBcnJheSh0bylgXG4gICAgICBjb25zdCBbZnJvbUNsYXNzLCBmcm9tUHJvcGVydHldID0gZnJvbT8uc3BsaXQoJy4nKSB8fCBbXVxuICAgICAgY29uc3QgW3RvQ2xhc3MsIHRvUHJvcGVydHldID0gdG8/LnNwbGl0KCcuJykgfHwgW11cbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXVxuICAgICAgLy8gU2VlIGNvbnZlcnRSZWxhdGlvbnMoKVxuICAgICAgY29uc3QgdGFibGVOYW1lID0gYXBwLm5vcm1hbGl6ZUlkZW50aWZpZXIoYCR7ZnJvbUNsYXNzfSR7dG9DbGFzc31gKVxuICAgICAgY29uc3QgZnJvbUlkID0gYXBwLm5vcm1hbGl6ZUlkZW50aWZpZXIoXG4gICAgICAgIGAke2Zyb21DbGFzc30ke2NhcGl0YWxpemUoZnJvbVByb3BlcnR5KX1gKVxuICAgICAgY29uc3QgdG9JZCA9IGFwcC5ub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgICBgJHt0b0NsYXNzfSR7Y2FwaXRhbGl6ZSh0b1Byb3BlcnR5KX1gKVxuICAgICAgdGFibGVzLnB1c2goeyB0YWJsZU5hbWUsIHN0YXRlbWVudHMgfSlcbiAgICAgIHN0YXRlbWVudHMucHVzaChgdGFibGUuaW5jcmVtZW50cygnaWQnKS5wcmltYXJ5KClgKVxuICAgICAgc3RhdGVtZW50cy5wdXNoKGRlaW5kZW50YFxuICAgICAgICB0YWJsZS5pbnRlZ2VyKCcke2Zyb21JZH0nKS51bnNpZ25lZCgpLmluZGV4KClcbiAgICAgICAgICAucmVmZXJlbmNlcygnJHthcHAubm9ybWFsaXplSWRlbnRpZmllcihmcm9tUHJvcGVydHkpfScpXFxcXFxuICAgICAgICAgIC5pblRhYmxlKCcke2FwcC5ub3JtYWxpemVJZGVudGlmaWVyKGZyb21DbGFzcyl9JylcXFxcXG4gICAgICAgICAgLm9uRGVsZXRlKCdDQVNDQURFJylgKVxuICAgICAgc3RhdGVtZW50cy5wdXNoKGRlaW5kZW50YFxuICAgICAgICB0YWJsZS5pbnRlZ2VyKCcke3RvSWR9JykudW5zaWduZWQoKS5pbmRleCgpXG4gICAgICAgICAgLnJlZmVyZW5jZXMoJyR7YXBwLm5vcm1hbGl6ZUlkZW50aWZpZXIodG9Qcm9wZXJ0eSl9JylcXFxcXG4gICAgICAgICAgLmluVGFibGUoJyR7YXBwLm5vcm1hbGl6ZUlkZW50aWZpZXIodG9DbGFzcyl9JylcXFxcXG4gICAgICAgICAgLm9uRGVsZXRlKCdDQVNDQURFJylgKVxuICAgIH1cbiAgfVxufVxuXG4vLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIDIgcGxhY2VzIGZvciBlYWNoIG9mIHRoZSBkYXRlIHNlZ21lbnRzLlxuZnVuY3Rpb24gcGFkRGF0ZShzZWdtZW50KSB7XG4gIHJldHVybiBzZWdtZW50LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKVxufVxuXG4vLyBHZXQgYSBkYXRlIG9iamVjdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQsIHdpdGhvdXQgcmVxdWlyaW5nIGEgZnVsbCBvdXQgbGlicmFyeVxuLy8gbGlrZSBcIm1vbWVudC5qc1wiLlxuZnVuY3Rpb24gZ2V0VGltZXN0YW1wKCkge1xuICBjb25zdCBkID0gbmV3IERhdGUoKVxuICByZXR1cm4gZC5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkgK1xuICAgIHBhZERhdGUoZC5nZXRNb250aCgpICsgMSkgK1xuICAgIHBhZERhdGUoZC5nZXREYXRlKCkpICtcbiAgICBwYWREYXRlKGQuZ2V0SG91cnMoKSkgK1xuICAgIHBhZERhdGUoZC5nZXRNaW51dGVzKCkpICtcbiAgICBwYWREYXRlKGQuZ2V0U2Vjb25kcygpKVxufVxuIl19
@@ -1,66 +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 _createMigration = require("./createMigration");
12
-
13
- Object.keys(_createMigration).forEach(function (key) {
14
- if (key === "default" || key === "__esModule") return;
15
- if (key in exports && exports[key] === _createMigration[key]) return;
16
- exports[key] = _createMigration[key];
17
- });
18
-
19
- var _listAssetConfig = require("./listAssetConfig");
20
-
21
- Object.keys(_listAssetConfig).forEach(function (key) {
22
- if (key === "default" || key === "__esModule") return;
23
- if (key in exports && exports[key] === _listAssetConfig[key]) return;
24
- exports[key] = _listAssetConfig[key];
25
- });
26
-
27
- var _migrate = require("./migrate");
28
-
29
- Object.keys(_migrate).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _migrate[key]) return;
32
- exports[key] = _migrate[key];
33
- });
34
-
35
- var _rollback = require("./rollback");
36
-
37
- Object.keys(_rollback).forEach(function (key) {
38
- if (key === "default" || key === "__esModule") return;
39
- if (key in exports && exports[key] === _rollback[key]) return;
40
- exports[key] = _rollback[key];
41
- });
42
-
43
- var _reset = require("./reset");
44
-
45
- Object.keys(_reset).forEach(function (key) {
46
- if (key === "default" || key === "__esModule") return;
47
- if (key in exports && exports[key] === _reset[key]) return;
48
- exports[key] = _reset[key];
49
- });
50
-
51
- var _seed = require("./seed");
52
-
53
- Object.keys(_seed).forEach(function (key) {
54
- if (key === "default" || key === "__esModule") return;
55
- if (key in exports && exports[key] === _seed[key]) return;
56
- exports[key] = _seed[key];
57
- });
58
-
59
- var _unlock = require("./unlock");
60
-
61
- Object.keys(_unlock).forEach(function (key) {
62
- if (key === "default" || key === "__esModule") return;
63
- if (key in exports && exports[key] === _unlock[key]) return;
64
- exports[key] = _unlock[key];
65
- });
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZU1pZ3JhdGlvbidcbmV4cG9ydCAqIGZyb20gJy4vbGlzdEFzc2V0Q29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9taWdyYXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9yb2xsYmFjaydcbmV4cG9ydCAqIGZyb20gJy4vcmVzZXQnXG5leHBvcnQgKiBmcm9tICcuL3NlZWQnXG5leHBvcnQgKiBmcm9tICcuL3VubG9jaydcbiJdfQ==
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.listAssetConfig = listAssetConfig;
5
-
6
- var _utils = require("../../utils");
7
-
8
- async function listAssetConfig(app, ...args) {
9
- const assetConfig = app.getAssetConfig({
10
- models: args.length > 0 ? args : Object.keys(app.models),
11
- normalizeDbNames: true
12
- });
13
- console.info((0, _utils.formatJson)(assetConfig));
14
- return true;
15
- }
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvbGlzdEFzc2V0Q29uZmlnLmpzIl0sIm5hbWVzIjpbImxpc3RBc3NldENvbmZpZyIsImFwcCIsImFyZ3MiLCJhc3NldENvbmZpZyIsImdldEFzc2V0Q29uZmlnIiwibW9kZWxzIiwibGVuZ3RoIiwiT2JqZWN0Iiwia2V5cyIsIm5vcm1hbGl6ZURiTmFtZXMiLCJjb25zb2xlIiwiaW5mbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFTyxlQUFlQSxlQUFmLENBQStCQyxHQUEvQixFQUFvQyxHQUFHQyxJQUF2QyxFQUE2QztBQUNsRCxRQUFNQyxXQUFXLEdBQUdGLEdBQUcsQ0FBQ0csY0FBSixDQUFtQjtBQUNyQ0MsSUFBQUEsTUFBTSxFQUFFSCxJQUFJLENBQUNJLE1BQUwsR0FBYyxDQUFkLEdBQWtCSixJQUFsQixHQUF5QkssTUFBTSxDQUFDQyxJQUFQLENBQVlQLEdBQUcsQ0FBQ0ksTUFBaEIsQ0FESTtBQUVyQ0ksSUFBQUEsZ0JBQWdCLEVBQUU7QUFGbUIsR0FBbkIsQ0FBcEI7QUFJQUMsRUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsdUJBQVdSLFdBQVgsQ0FBYjtBQUNBLFNBQU8sSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0SnNvbiB9IGZyb20gJ0AvdXRpbHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0QXNzZXRDb25maWcoYXBwLCAuLi5hcmdzKSB7XG4gIGNvbnN0IGFzc2V0Q29uZmlnID0gYXBwLmdldEFzc2V0Q29uZmlnKHtcbiAgICBtb2RlbHM6IGFyZ3MubGVuZ3RoID4gMCA/IGFyZ3MgOiBPYmplY3Qua2V5cyhhcHAubW9kZWxzKSxcbiAgICBub3JtYWxpemVEYk5hbWVzOiB0cnVlXG4gIH0pXG4gIGNvbnNvbGUuaW5mbyhmb3JtYXRKc29uKGFzc2V0Q29uZmlnKSlcbiAgcmV0dXJuIHRydWVcbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.migrate = migrate;
5
-
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
-
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
-
10
- async function migrate(knex) {
11
- const [batch, log] = await knex.migrate.latest();
12
- console.info(log.length === 0 ? _chalk.default.cyan('Already up to date') : _chalk.default.green(`Batch ${batch} run: ${log.length} migrations\n`) + _chalk.default.cyan(log.join('\n')));
13
- return true;
14
- }
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvbWlncmF0ZS5qcyJdLCJuYW1lcyI6WyJtaWdyYXRlIiwia25leCIsImJhdGNoIiwibG9nIiwibGF0ZXN0IiwiY29uc29sZSIsImluZm8iLCJsZW5ndGgiLCJjaGFsayIsImN5YW4iLCJncmVlbiIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7QUFFTyxlQUFlQSxPQUFmLENBQXVCQyxJQUF2QixFQUE2QjtBQUNsQyxRQUFNLENBQUNDLEtBQUQsRUFBUUMsR0FBUixJQUFlLE1BQU1GLElBQUksQ0FBQ0QsT0FBTCxDQUFhSSxNQUFiLEVBQTNCO0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhSCxHQUFHLENBQUNJLE1BQUosS0FBZSxDQUFmLEdBQ1RDLGVBQU1DLElBQU4sQ0FBVyxvQkFBWCxDQURTLEdBRVRELGVBQU1FLEtBQU4sQ0FBYSxTQUFRUixLQUFNLFNBQVFDLEdBQUcsQ0FBQ0ksTUFBTyxlQUE5QyxJQUNBQyxlQUFNQyxJQUFOLENBQVdOLEdBQUcsQ0FBQ1EsSUFBSixDQUFTLElBQVQsQ0FBWCxDQUhKO0FBSUEsU0FBTyxJQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtaWdyYXRlKGtuZXgpIHtcbiAgY29uc3QgW2JhdGNoLCBsb2ddID0gYXdhaXQga25leC5taWdyYXRlLmxhdGVzdCgpXG4gIGNvbnNvbGUuaW5mbyhsb2cubGVuZ3RoID09PSAwXG4gICAgPyBjaGFsay5jeWFuKCdBbHJlYWR5IHVwIHRvIGRhdGUnKVxuICAgIDogY2hhbGsuZ3JlZW4oYEJhdGNoICR7YmF0Y2h9IHJ1bjogJHtsb2cubGVuZ3RofSBtaWdyYXRpb25zXFxuYCkgK1xuICAgICAgY2hhbGsuY3lhbihsb2cuam9pbignXFxuJykpKVxuICByZXR1cm4gdHJ1ZVxufVxuIl19
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.reset = reset;
5
-
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
-
8
- var _migrate = require("./migrate");
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- async function reset(knex) {
13
- const batches = [];
14
- const migrations = [];
15
-
16
- while (true) {
17
- const [batch, log] = await knex.migrate.rollback();
18
- if (log.length === 0) break;
19
- batches.push(batch);
20
- migrations.push(...log);
21
- }
22
-
23
- console.info(migrations.length === 0 ? _chalk.default.cyan('Already at the base migration') : _chalk.default.green(`${batches.length > 1 ? 'Batches' : 'Batch'} ${batches} ` + `rolled back: ${migrations.length} migrations\n`) + _chalk.default.cyan(migrations.join('\n')));
24
- await (0, _migrate.migrate)(knex);
25
- return true;
26
- }
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvcmVzZXQuanMiXSwibmFtZXMiOlsicmVzZXQiLCJrbmV4IiwiYmF0Y2hlcyIsIm1pZ3JhdGlvbnMiLCJiYXRjaCIsImxvZyIsIm1pZ3JhdGUiLCJyb2xsYmFjayIsImxlbmd0aCIsInB1c2giLCJjb25zb2xlIiwiaW5mbyIsImNoYWxrIiwiY3lhbiIsImdyZWVuIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7OztBQUVPLGVBQWVBLEtBQWYsQ0FBcUJDLElBQXJCLEVBQTJCO0FBQ2hDLFFBQU1DLE9BQU8sR0FBRyxFQUFoQjtBQUNBLFFBQU1DLFVBQVUsR0FBRyxFQUFuQjs7QUFDQSxTQUFPLElBQVAsRUFBYTtBQUNYLFVBQU0sQ0FBQ0MsS0FBRCxFQUFRQyxHQUFSLElBQWUsTUFBTUosSUFBSSxDQUFDSyxPQUFMLENBQWFDLFFBQWIsRUFBM0I7QUFDQSxRQUFJRixHQUFHLENBQUNHLE1BQUosS0FBZSxDQUFuQixFQUFzQjtBQUN0Qk4sSUFBQUEsT0FBTyxDQUFDTyxJQUFSLENBQWFMLEtBQWI7QUFDQUQsSUFBQUEsVUFBVSxDQUFDTSxJQUFYLENBQWdCLEdBQUdKLEdBQW5CO0FBQ0Q7O0FBQ0RLLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhUixVQUFVLENBQUNLLE1BQVgsS0FBc0IsQ0FBdEIsR0FDVEksZUFBTUMsSUFBTixDQUFXLCtCQUFYLENBRFMsR0FFVEQsZUFBTUUsS0FBTixDQUFhLEdBQUVaLE9BQU8sQ0FBQ00sTUFBUixHQUFpQixDQUFqQixHQUFxQixTQUFyQixHQUFpQyxPQUFRLElBQUdOLE9BQVEsR0FBdkQsR0FDWCxnQkFBZUMsVUFBVSxDQUFDSyxNQUFPLGVBRGxDLElBRUFJLGVBQU1DLElBQU4sQ0FBV1YsVUFBVSxDQUFDWSxJQUFYLENBQWdCLElBQWhCLENBQVgsQ0FKSjtBQUtBLFFBQU0sc0JBQVFkLElBQVIsQ0FBTjtBQUNBLFNBQU8sSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IHsgbWlncmF0ZSB9IGZyb20gJy4vbWlncmF0ZSdcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2V0KGtuZXgpIHtcbiAgY29uc3QgYmF0Y2hlcyA9IFtdXG4gIGNvbnN0IG1pZ3JhdGlvbnMgPSBbXVxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IFtiYXRjaCwgbG9nXSA9IGF3YWl0IGtuZXgubWlncmF0ZS5yb2xsYmFjaygpXG4gICAgaWYgKGxvZy5sZW5ndGggPT09IDApIGJyZWFrXG4gICAgYmF0Y2hlcy5wdXNoKGJhdGNoKVxuICAgIG1pZ3JhdGlvbnMucHVzaCguLi5sb2cpXG4gIH1cbiAgY29uc29sZS5pbmZvKG1pZ3JhdGlvbnMubGVuZ3RoID09PSAwXG4gICAgPyBjaGFsay5jeWFuKCdBbHJlYWR5IGF0IHRoZSBiYXNlIG1pZ3JhdGlvbicpXG4gICAgOiBjaGFsay5ncmVlbihgJHtiYXRjaGVzLmxlbmd0aCA+IDEgPyAnQmF0Y2hlcycgOiAnQmF0Y2gnfSAke2JhdGNoZXN9IGAgK1xuICAgICAgYHJvbGxlZCBiYWNrOiAke21pZ3JhdGlvbnMubGVuZ3RofSBtaWdyYXRpb25zXFxuYCkgK1xuICAgICAgY2hhbGsuY3lhbihtaWdyYXRpb25zLmpvaW4oJ1xcbicpKSlcbiAgYXdhaXQgbWlncmF0ZShrbmV4KVxuICByZXR1cm4gdHJ1ZVxufVxuIl19
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.rollback = rollback;
5
-
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
-
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
-
10
- async function rollback(knex) {
11
- const [batch, log] = await knex.migrate.rollback();
12
- console.info(log.length === 0 ? _chalk.default.cyan('Already at the base migration') : _chalk.default.green(`Batch ${batch} rolled back: ${log.length} migrations\n`) + _chalk.default.cyan(log.join('\n')));
13
- return true;
14
- }
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvcm9sbGJhY2suanMiXSwibmFtZXMiOlsicm9sbGJhY2siLCJrbmV4IiwiYmF0Y2giLCJsb2ciLCJtaWdyYXRlIiwiY29uc29sZSIsImluZm8iLCJsZW5ndGgiLCJjaGFsayIsImN5YW4iLCJncmVlbiIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7QUFFTyxlQUFlQSxRQUFmLENBQXdCQyxJQUF4QixFQUE4QjtBQUNuQyxRQUFNLENBQUNDLEtBQUQsRUFBUUMsR0FBUixJQUFlLE1BQU1GLElBQUksQ0FBQ0csT0FBTCxDQUFhSixRQUFiLEVBQTNCO0FBQ0FLLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhSCxHQUFHLENBQUNJLE1BQUosS0FBZSxDQUFmLEdBQ1RDLGVBQU1DLElBQU4sQ0FBVywrQkFBWCxDQURTLEdBRVRELGVBQU1FLEtBQU4sQ0FBYSxTQUFRUixLQUFNLGlCQUFnQkMsR0FBRyxDQUFDSSxNQUFPLGVBQXRELElBQ0FDLGVBQU1DLElBQU4sQ0FBV04sR0FBRyxDQUFDUSxJQUFKLENBQVMsSUFBVCxDQUFYLENBSEo7QUFJQSxTQUFPLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJvbGxiYWNrKGtuZXgpIHtcbiAgY29uc3QgW2JhdGNoLCBsb2ddID0gYXdhaXQga25leC5taWdyYXRlLnJvbGxiYWNrKClcbiAgY29uc29sZS5pbmZvKGxvZy5sZW5ndGggPT09IDBcbiAgICA/IGNoYWxrLmN5YW4oJ0FscmVhZHkgYXQgdGhlIGJhc2UgbWlncmF0aW9uJylcbiAgICA6IGNoYWxrLmdyZWVuKGBCYXRjaCAke2JhdGNofSByb2xsZWQgYmFjazogJHtsb2cubGVuZ3RofSBtaWdyYXRpb25zXFxuYCkgK1xuICAgICAgY2hhbGsuY3lhbihsb2cuam9pbignXFxuJykpKVxuICByZXR1cm4gdHJ1ZVxufVxuIl19
@@ -1,104 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/esnext.weak-map.delete-all.js");
4
-
5
- require("core-js/modules/esnext.weak-map.emplace.js");
6
-
7
- exports.__esModule = true;
8
- exports.seed = seed;
9
-
10
- require("core-js/modules/esnext.async-iterator.reduce.js");
11
-
12
- require("core-js/modules/esnext.iterator.constructor.js");
13
-
14
- require("core-js/modules/esnext.iterator.reduce.js");
15
-
16
- var _path = _interopRequireDefault(require("path"));
17
-
18
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
19
-
20
- var _chalk = _interopRequireDefault(require("chalk"));
21
-
22
- var _util = _interopRequireDefault(require("util"));
23
-
24
- var _pluralize = _interopRequireDefault(require("pluralize"));
25
-
26
- var _utils = require("@ditojs/utils");
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
- async function seed(app) {
35
- const seedDir = _path.default.join(process.cwd(), 'seeds');
36
-
37
- const files = await _fsExtra.default.readdir(seedDir);
38
- const seeds = [];
39
- const modelIndices = Object.keys(app.models).reduce((indices, name, index) => {
40
- indices[name] = index;
41
- return indices;
42
- }, {});
43
-
44
- for (const file of files) {
45
- const {
46
- name,
47
- ext,
48
- base
49
- } = _path.default.parse(file);
50
-
51
- if (!name.startsWith('.') && ['.js', '.json'].includes(ext)) {
52
- const object = await Promise.resolve(`${_path.default.resolve(seedDir, file)}`).then(s => _interopRequireWildcard(require(s)));
53
- const seed = object.default || object;
54
- const modelClass = app.models[name] || app.models[(0, _utils.camelize)(_pluralize.default.singular(name), true)];
55
- const index = modelClass ? modelIndices[modelClass.name] : Infinity;
56
- seeds.push({
57
- base,
58
- seed,
59
- modelClass,
60
- index
61
- });
62
- }
63
- }
64
-
65
- seeds.sort((entry1, entry2) => entry1.index - entry2.index);
66
-
67
- for (const {
68
- base,
69
- seed,
70
- modelClass
71
- } of seeds) {
72
- await handleSeed(app, base, seed, modelClass);
73
- }
74
-
75
- return true;
76
- }
77
-
78
- async function handleSeed(app, base, seed, modelClass) {
79
- try {
80
- let res;
81
-
82
- if ((0, _utils.isFunction)(seed)) {
83
- res = await seed(app.models);
84
- } else if (modelClass) {
85
- await modelClass.truncate({
86
- cascade: true
87
- });
88
- res = await modelClass.insertGraph(seed);
89
- }
90
-
91
- if ((0, _utils.isArray)(res)) {
92
- console.info(_chalk.default.green(`${base}:`), _chalk.default.cyan(`${res.length} seed records created.`));
93
- } else {
94
- console.info(_chalk.default.red(`${base}:`), _chalk.default.cyan('No seed records created.'));
95
- }
96
- } catch (err) {
97
- console.error(_chalk.default.red(`${base}:`), _util.default.inspect(err, {
98
- colors: true,
99
- depth: null,
100
- maxArrayLength: null
101
- }));
102
- }
103
- }
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvc2VlZC5qcyJdLCJuYW1lcyI6WyJzZWVkIiwiYXBwIiwic2VlZERpciIsInBhdGgiLCJqb2luIiwicHJvY2VzcyIsImN3ZCIsImZpbGVzIiwiZnMiLCJyZWFkZGlyIiwic2VlZHMiLCJtb2RlbEluZGljZXMiLCJPYmplY3QiLCJrZXlzIiwibW9kZWxzIiwicmVkdWNlIiwiaW5kaWNlcyIsIm5hbWUiLCJpbmRleCIsImZpbGUiLCJleHQiLCJiYXNlIiwicGFyc2UiLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJvYmplY3QiLCJyZXNvbHZlIiwiZGVmYXVsdCIsIm1vZGVsQ2xhc3MiLCJwbHVyYWxpemUiLCJzaW5ndWxhciIsIkluZmluaXR5IiwicHVzaCIsInNvcnQiLCJlbnRyeTEiLCJlbnRyeTIiLCJoYW5kbGVTZWVkIiwicmVzIiwidHJ1bmNhdGUiLCJjYXNjYWRlIiwiaW5zZXJ0R3JhcGgiLCJjb25zb2xlIiwiaW5mbyIsImNoYWxrIiwiZ3JlZW4iLCJjeWFuIiwibGVuZ3RoIiwicmVkIiwiZXJyIiwiZXJyb3IiLCJ1dGlsIiwiaW5zcGVjdCIsImNvbG9ycyIsImRlcHRoIiwibWF4QXJyYXlMZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVPLGVBQWVBLElBQWYsQ0FBb0JDLEdBQXBCLEVBQXlCO0FBQzlCLFFBQU1DLE9BQU8sR0FBR0MsY0FBS0MsSUFBTCxDQUFVQyxPQUFPLENBQUNDLEdBQVIsRUFBVixFQUF5QixPQUF6QixDQUFoQjs7QUFDQSxRQUFNQyxLQUFLLEdBQUcsTUFBTUMsaUJBQUdDLE9BQUgsQ0FBV1AsT0FBWCxDQUFwQjtBQUNBLFFBQU1RLEtBQUssR0FBRyxFQUFkO0FBRUEsUUFBTUMsWUFBWSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWVosR0FBRyxDQUFDYSxNQUFoQixFQUF3QkMsTUFBeEIsQ0FD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TUUsSUFBTixDQUFXLDBCQUFYLENBRkY7QUFJRDtBQUNGLEdBbkJELENBbUJFLE9BQU9HLEdBQVAsRUFBWTtBQUNaUCxJQUFBQSxPQUFPLENBQUNRLEtBQVIsQ0FDRU4sZUFBTUksR0FBTixDQUFXLEdBQUUxQixJQUFLLEdBQWxCLENBREYsRUFFRTZCLGNBQUtDLE9BQUwsQ0FBYUgsR0FBYixFQUFrQjtBQUNoQkksTUFBQUEsTUFBTSxFQUFFLElBRFE7QUFFaEJDLE1BQUFBLEtBQUssRUFBRSxJQUZTO0FBR2hCQyxNQUFBQSxjQUFjLEVBQUU7QUFIQSxLQUFsQixDQUZGO0FBUUQ7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgdXRpbCBmcm9tICd1dGlsJ1xuaW1wb3J0IHBsdXJhbGl6ZSBmcm9tICdwbHVyYWxpemUnXG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc0FycmF5LCBjYW1lbGl6ZSB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWVkKGFwcCkge1xuICBjb25zdCBzZWVkRGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdzZWVkcycpXG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihzZWVkRGlyKVxuICBjb25zdCBzZWVkcyA9IFtdXG4gIC8vIENyZWF0ZSBhIGxvb2t1cCB0YWJsZSB3aXRoIHNvcnQgaW5kaWNlcyBwZXIgbW9kZWwgbmFtZS5cbiAgY29uc3QgbW9kZWxJbmRpY2VzID0gT2JqZWN0LmtleXMoYXBwLm1vZGVscykucmVkdWNlKFxuICAgIChpbmRpY2VzLCBuYW1lLCBpbmRleCkgPT4ge1xuICAgICAgaW5kaWNlc1tuYW1lXSA9IGluZGV4XG4gICAgICByZXR1cm4gaW5kaWNlc1xuICAgIH0sXG4gICAge31cbiAgKVxuICAvLyBDb2xsZWN0IGFsbCBzZWVkLCBhbmQgc2VwYXJhdGUgYmV0d2VlbiBzZWVkIGZ1bmN0aW9ucyBhbmQgbW9kZWwgc2VlIGRhdGE6XG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IHsgbmFtZSwgZXh0LCBiYXNlIH0gPSBwYXRoLnBhcnNlKGZpbGUpXG4gICAgaWYgKCFuYW1lLnN0YXJ0c1dpdGgoJy4nKSAmJiBbJy5qcycsICcuanNvbiddLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IGF3YWl0IGltcG9ydChwYXRoLnJlc29sdmUoc2VlZERpciwgZmlsZSkpXG4gICAgICBjb25zdCBzZWVkID0gb2JqZWN0LmRlZmF1bHQgfHwgb2JqZWN0XG4gICAgICAvLyBUcnkgdG8gZGV0ZXJtaW5lIHRoZSByZWxhdGVkIG1vZGVsIGZyb20gdGhlIHNlZWQgbmFtZSwgYW5kIHVzZSBpdCBhbHNvXG4gICAgICAvLyB0byBkZXRlcm1pbmUgc2VlZCBzZXF1ZW5jZSBiYXNlZCBvbiBpdHMgaW5kZXggaW4gYGFwcC5tb2RlbHNgLlxuICAgICAgY29uc3QgbW9kZWxDbGFzcyA9XG4gICAgICAgIGFwcC5tb2RlbHNbbmFtZV0gfHxcbiAgICAgICAgYXBwLm1vZGVsc1tjYW1lbGl6ZShwbHVyYWxpemUuc2luZ3VsYXIobmFtZSksIHRydWUpXVxuICAgICAgY29uc3QgaW5kZXggPSBtb2RlbENsYXNzID8gbW9kZWxJbmRpY2VzW21vZGVsQ2xhc3MubmFtZV0gOiBJbmZpbml0eVxuICAgICAgc2VlZHMucHVzaCh7XG4gICAgICAgIGJhc2UsXG4gICAgICAgIHNlZWQsXG4gICAgICAgIG1vZGVsQ2xhc3MsXG4gICAgICAgIGluZGV4XG4gICAgICB9KVxuICAgIH1cbiAgfVxuICAvLyBOb3cgc29ydCB0aGUgc2VlZCBtb2RlbCBkYXRhIGFjY29yZGluZyB0byBgYXBwLm1vZGVsc2Agc29ydGluZyxcbiAgLy8gYXMgZGV0ZXJtaW5lZCBieSBgQXBwbGljYXRpb24uc29ydE1vZGVscygpYDpcbiAgc2VlZHMuc29ydCgoZW50cnkxLCBlbnRyeTIpID0+IGVudHJ5MS5pbmRleCAtIGVudHJ5Mi5pbmRleClcbiAgZm9yIChjb25zdCB7IGJhc2UsIHNlZWQsIG1vZGVsQ2xhc3MgfSBvZiBzZWVkcykge1xuICAgIGF3YWl0IGhhbmRsZVNlZWQoYXBwLCBiYXNlLCBzZWVkLCBtb2RlbENsYXNzKVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVNlZWQoYXBwLCBiYXNlLCBzZWVkLCBtb2RlbENsYXNzKSB7XG4gIHRyeSB7XG4gICAgbGV0IHJlc1xuICAgIGlmIChpc0Z1bmN0aW9uKHNlZWQpKSB7XG4gICAgICByZXMgPSBhd2FpdCBzZWVkKGFwcC5tb2RlbHMpXG4gICAgfSBlbHNlIGlmIChtb2RlbENsYXNzKSB7XG4gICAgICBhd2FpdCBtb2RlbENsYXNzLnRydW5jYXRlKHsgY2FzY2FkZTogdHJ1ZSB9KVxuICAgICAgcmVzID0gYXdhaXQgbW9kZWxDbGFzcy5pbnNlcnRHcmFwaChzZWVkKVxuICAgIH1cbiAgICBpZiAoaXNBcnJheShyZXMpKSB7XG4gICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgIGNoYWxrLmdyZWVuKGAke2Jhc2V9OmApLFxuICAgICAgICBjaGFsay5jeWFuKGAke3Jlcy5sZW5ndGh9IHNlZWQgcmVjb3JkcyBjcmVhdGVkLmApXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgICAgY2hhbGsucmVkKGAke2Jhc2V9OmApLFxuICAgICAgICBjaGFsay5jeWFuKCdObyBzZWVkIHJlY29yZHMgY3JlYXRlZC4nKVxuICAgICAgKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIGNoYWxrLnJlZChgJHtiYXNlfTpgKSxcbiAgICAgIHV0aWwuaW5zcGVjdChlcnIsIHtcbiAgICAgICAgY29sb3JzOiB0cnVlLFxuICAgICAgICBkZXB0aDogbnVsbCxcbiAgICAgICAgbWF4QXJyYXlMZW5ndGg6IG51bGxcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.unlock = unlock;
5
-
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
-
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
-
10
- async function unlock(knex) {
11
- await knex.migrate.forceFreeMigrationsLock();
12
- console.info(_chalk.default.green(`Successfully unlocked the migrations lock table`));
13
- return true;
14
- }
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvZGIvdW5sb2NrLmpzIl0sIm5hbWVzIjpbInVubG9jayIsImtuZXgiLCJtaWdyYXRlIiwiZm9yY2VGcmVlTWlncmF0aW9uc0xvY2siLCJjb25zb2xlIiwiaW5mbyIsImNoYWxrIiwiZ3JlZW4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7QUFFTyxlQUFlQSxNQUFmLENBQXNCQyxJQUF0QixFQUE0QjtBQUNqQyxRQUFNQSxJQUFJLENBQUNDLE9BQUwsQ0FBYUMsdUJBQWIsRUFBTjtBQUNBQyxFQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FDRUMsZUFBTUMsS0FBTixDQUFhLGlEQUFiLENBREY7QUFHQSxTQUFPLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVubG9jayhrbmV4KSB7XG4gIGF3YWl0IGtuZXgubWlncmF0ZS5mb3JjZUZyZWVNaWdyYXRpb25zTG9jaygpXG4gIGNvbnNvbGUuaW5mbyhcbiAgICBjaGFsay5ncmVlbihgU3VjY2Vzc2Z1bGx5IHVubG9ja2VkIHRoZSBtaWdyYXRpb25zIGxvY2sgdGFibGVgKVxuICApXG4gIHJldHVybiB0cnVlXG59XG4iXX0=