@payloadcms/db-postgres 0.6.0 → 3.0.0-alpha.18
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +17 -10
- package/dist/find/traverseFields.js +2 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +8 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +5 -8
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +4 -7
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +6 -9
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +7 -10
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +4 -7
- package/dist/queries/buildQuery.d.ts +2 -1
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +4 -3
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +1 -1
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +6 -6
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +2 -3
- package/dist/upsertRow/insertArrays.d.ts.map +1 -1
- package/dist/upsertRow/insertArrays.js +14 -2
- package/dist/utilities/createMigrationTable.d.ts +2 -2
- package/dist/utilities/createMigrationTable.d.ts.map +1 -1
- package/dist/utilities/createMigrationTable.js +5 -4
- package/package.json +5 -5
package/dist/schema/build.js
CHANGED
@@ -77,7 +77,7 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
77
77
|
withTimezone: true
|
78
78
|
}).defaultNow().notNull();
|
79
79
|
}
|
80
|
-
const table =
|
80
|
+
const table = adapter.pgSchema.table(tableName, columns, (cols)=>{
|
81
81
|
const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
|
82
82
|
config[key] = func(cols);
|
83
83
|
return config;
|
@@ -95,7 +95,7 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
95
95
|
localesColumns._parentID = _parentIDColumnMap.parentIDColumnMap[idColType]('_parent_id').references(()=>table.id, {
|
96
96
|
onDelete: 'cascade'
|
97
97
|
}).notNull();
|
98
|
-
localesTable =
|
98
|
+
localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols)=>{
|
99
99
|
return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
|
100
100
|
acc[colName] = func(cols);
|
101
101
|
return acc;
|
@@ -130,7 +130,7 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
130
130
|
if (hasLocalizedManyTextField) {
|
131
131
|
columns.locale = adapter.enums.enum__locales('locale');
|
132
132
|
}
|
133
|
-
textsTable =
|
133
|
+
textsTable = adapter.pgSchema.table(textsTableName, columns, (cols)=>{
|
134
134
|
const indexes = {
|
135
135
|
orderParentIdx: (0, _pgcore.index)(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent)
|
136
136
|
};
|
@@ -169,7 +169,7 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
169
169
|
if (hasLocalizedManyNumberField) {
|
170
170
|
columns.locale = adapter.enums.enum__locales('locale');
|
171
171
|
}
|
172
|
-
numbersTable =
|
172
|
+
numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols)=>{
|
173
173
|
const indexes = {
|
174
174
|
orderParentIdx: (0, _pgcore.index)(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent)
|
175
175
|
};
|
@@ -218,7 +218,7 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
218
218
|
});
|
219
219
|
});
|
220
220
|
const relationshipsTableName = `${tableName}_rels`;
|
221
|
-
relationshipsTable =
|
221
|
+
relationshipsTable = adapter.pgSchema.table(relationshipsTableName, relationshipColumns, (cols)=>{
|
222
222
|
const result = {
|
223
223
|
order: (0, _pgcore.index)(`${relationshipsTableName}_order_idx`).on(cols.order),
|
224
224
|
parentIdx: (0, _pgcore.index)(`${relationshipsTableName}_parent_idx`).on(cols.parent),
|
@@ -288,4 +288,4 @@ const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, buildNumb
|
|
288
288
|
};
|
289
289
|
};
|
290
290
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvYnVpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBudW1lcmljLFxuICBwZ1RhYmxlLFxuICBzZXJpYWwsXG4gIHRpbWVzdGFtcCxcbiAgdW5pcXVlLFxuICB2YXJjaGFyLFxufSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1ucywgR2VuZXJpY1RhYmxlLCBJRFR5cGUsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBwYXJlbnRJRENvbHVtbk1hcCB9IGZyb20gJy4vcGFyZW50SURDb2x1bW5NYXAnXG5pbXBvcnQgeyBzZXRDb2x1bW5JRCB9IGZyb20gJy4vc2V0Q29sdW1uSUQnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJhc2VDb2x1bW5zPzogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBiYXNlRXh0cmFDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyPlxuICBidWlsZE51bWJlcnM/OiBib29sZWFuXG4gIGJ1aWxkUmVsYXRpb25zaGlwcz86IGJvb2xlYW5cbiAgYnVpbGRUZXh0cz86IGJvb2xlYW5cbiAgZGlzYWJsZU5vdE51bGw6IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZTogYm9vbGVhblxuICBmaWVsZHM6IEZpZWxkW11cbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJvb3RSZWxhdGlvbnNoaXBzPzogU2V0PHN0cmluZz5cbiAgcm9vdFRhYmxlSURDb2xUeXBlPzogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU/OiBzdHJpbmdcbiAgdGFibGVOYW1lOiBzdHJpbmdcbiAgdGltZXN0YW1wcz86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQgPSB7XG4gIGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbiAgaGFzTWFueVRleHRGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbiAgcmVsYXRpb25zVG9CdWlsZDogTWFwPHN0cmluZywgc3RyaW5nPlxufVxuXG5leHBvcnQgY29uc3QgYnVpbGRUYWJsZSA9ICh7XG4gIGFkYXB0ZXIsXG4gIGJhc2VDb2x1bW5zID0ge30sXG4gIGJhc2VFeHRyYUNvbmZpZyA9IHt9LFxuICBidWlsZE51bWJlcnMsXG4gIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgYnVpbGRUZXh0cyxcbiAgZGlzYWJsZU5vdE51bGwsXG4gIGRpc2FibGVVbmlxdWUgPSBmYWxzZSxcbiAgZmllbGRzLFxuICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgcm9vdFJlbGF0aW9uc2hpcHMsXG4gIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgcm9vdFRhYmxlTmFtZTogaW5jb21pbmdSb290VGFibGVOYW1lLFxuICB0YWJsZU5hbWUsXG4gIHRpbWVzdGFtcHMsXG59OiBBcmdzKTogUmVzdWx0ID0+IHtcbiAgY29uc3Qgcm9vdFRhYmxlTmFtZSA9IGluY29taW5nUm9vdFRhYmxlTmFtZSB8fCB0YWJsZU5hbWVcbiAgY29uc3QgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IGJhc2VDb2x1bW5zXG4gIGNvbnN0IGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPiA9IHt9XG5cbiAgbGV0IGhhc0xvY2FsaXplZEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc01hbnlUZXh0RmllbGQ6ICdpbmRleCcgfCBib29sZWFuID0gZmFsc2VcbiAgbGV0IGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSBmYWxzZVxuXG4gIGNvbnN0IGxvY2FsZXNDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge31cbiAgY29uc3QgbG9jYWxlc0luZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPiA9IHt9XG4gIGxldCBsb2NhbGVzVGFibGU6IEdlbmVyaWNUYWJsZVxuICBsZXQgdGV4dHNUYWJsZTogR2VuZXJpY1RhYmxlXG4gIGxldCBudW1iZXJzVGFibGU6IEdlbmVyaWNUYWJsZVxuXG4gIC8vIFJlbGF0aW9uc2hpcHMgdG8gdGhlIGJhc2UgY29sbGVjdGlvblxuICBjb25zdCByZWxhdGlvbnNoaXBzOiBTZXQ8c3RyaW5nPiA9IHJvb3RSZWxhdGlvbnNoaXBzIHx8IG5ldyBTZXQoKVxuXG4gIGxldCByZWxhdGlvbnNoaXBzVGFibGU6IEdlbmVyaWNUYWJsZVxuXG4gIC8vIERyaXp6bGUgcmVsYXRpb25zXG4gIGNvbnN0IHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKClcblxuICBjb25zdCBpZENvbFR5cGU6IElEVHlwZSA9IHNldENvbHVtbklEKHsgYWRhcHRlciwgY29sdW1ucywgZmllbGRzIH0pXG5cbiAgOyh7XG4gICAgaGFzTG9jYWxpemVkRmllbGQsXG4gICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQsXG4gICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgaGFzTWFueU51bWJlckZpZWxkLFxuICAgIGhhc01hbnlUZXh0RmllbGQsXG4gIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgYWRhcHRlcixcbiAgICBidWlsZE51bWJlcnMsXG4gICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgIGJ1aWxkVGV4dHMsXG4gICAgY29sdW1ucyxcbiAgICBkaXNhYmxlTm90TnVsbCxcbiAgICBkaXNhYmxlVW5pcXVlLFxuICAgIGZpZWxkcyxcbiAgICBpbmRleGVzLFxuICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgIGxvY2FsZXNJbmRleGVzLFxuICAgIG5ld1RhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIHBhcmVudFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgcmVsYXRpb25zaGlwcyxcbiAgICByb290UmVsYXRpb25zVG9CdWlsZDogcm9vdFJlbGF0aW9uc1RvQnVpbGQgfHwgcmVsYXRpb25zVG9CdWlsZCxcbiAgICByb290VGFibGVJRENvbFR5cGU6IHJvb3RUYWJsZUlEQ29sVHlwZSB8fCBpZENvbFR5cGUsXG4gICAgcm9vdFRhYmxlTmFtZSxcbiAgfSkpXG5cbiAgaWYgKHRpbWVzdGFtcHMpIHtcbiAgICBjb2x1bW5zLmNyZWF0ZWRBdCA9IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHtcbiAgICAgIG1vZGU6ICdzdHJpbmcnLFxuICAgICAgcHJlY2lzaW9uOiAzLFxuICAgICAgd2l0aFRpbWV6b25lOiB0cnVlLFxuICAgIH0pXG4gICAgICAuZGVmYXVsdE5vdygpXG4gICAgICAubm90TnVsbCgpXG4gICAgY29sdW1ucy51cGRhdGVkQXQgPSB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7XG4gICAgICBtb2RlOiAnc3RyaW5nJyxcbiAgICAgIHByZWNpc2lvbjogMyxcbiAgICAgIHdpdGhUaW1lem9uZTogdHJ1ZSxcbiAgICB9KVxuICAgICAgLmRlZmF1bHROb3coKVxuICAgICAgLm5vdE51bGwoKVxuICB9XG5cbiAgY29uc3QgdGFibGUgPSBwZ1RhYmxlKHRhYmxlTmFtZSwgY29sdW1ucywgKGNvbHMpID0+IHtcbiAgICBjb25zdCBleHRyYUNvbmZpZyA9IE9iamVjdC5lbnRyaWVzKGJhc2VFeHRyYUNvbmZpZykucmVkdWNlKChjb25maWcsIFtrZXksIGZ1bmNdKSA9PiB7XG4gICAgICBjb25maWdba2V5XSA9IGZ1bmMoY29scylcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9LCB7fSlcblxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhpbmRleGVzKS5yZWR1Y2UoKGFjYywgW2NvbE5hbWUsIGZ1bmNdKSA9PiB7XG4gICAgICBhY2NbY29sTmFtZV0gPSBmdW5jKGNvbHMpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgZXh0cmFDb25maWcpXG4gIH0pXG5cbiAgYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSA9IHRhYmxlXG5cbiAgaWYgKGhhc0xvY2FsaXplZEZpZWxkKSB7XG4gICAgY29uc3QgbG9jYWxlVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9sb2NhbGVzYFxuICAgIGxvY2FsZXNDb2x1bW5zLmlkID0gc2VyaWFsKCdpZCcpLnByaW1hcnlLZXkoKVxuICAgIGxvY2FsZXNDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICBsb2NhbGVzQ29sdW1ucy5fcGFyZW50SUQgPSBwYXJlbnRJRENvbHVtbk1hcFtpZENvbFR5cGVdKCdfcGFyZW50X2lkJylcbiAgICAgIC5yZWZlcmVuY2VzKCgpID0+IHRhYmxlLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgIC5ub3ROdWxsKClcblxuICAgIGxvY2FsZXNUYWJsZSA9IHBnVGFibGUobG9jYWxlVGFibGVOYW1lLCBsb2NhbGVzQ29sdW1ucywgKGNvbHMpID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhsb2NhbGVzSW5kZXhlcykucmVkdWNlKFxuICAgICAgICAoYWNjLCBbY29sTmFtZSwgZnVuY10pID0+IHtcbiAgICAgICAgICBhY2NbY29sTmFtZV0gPSBmdW5jKGNvbHMpXG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgX2xvY2FsZVBhcmVudDogdW5pcXVlKGAke2xvY2FsZVRhYmxlTmFtZX1fbG9jYWxlX3BhcmVudF9pZF91bmlxdWVgKS5vbihcbiAgICAgICAgICAgIGNvbHMuX2xvY2FsZSxcbiAgICAgICAgICAgIGNvbHMuX3BhcmVudElELFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgfSlcblxuICAgIGFkYXB0ZXIudGFibGVzW2xvY2FsZVRhYmxlTmFtZV0gPSBsb2NhbGVzVGFibGVcblxuICAgIGNvbnN0IGxvY2FsZXNUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhsb2NhbGVzVGFibGUsICh7IG9uZSB9KSA9PiAoe1xuICAgICAgX3BhcmVudElEOiBvbmUodGFibGUsIHtcbiAgICAgICAgZmllbGRzOiBbbG9jYWxlc1RhYmxlLl9wYXJlbnRJRF0sXG4gICAgICAgIHJlZmVyZW5jZXM6IFt0YWJsZS5pZF0sXG4gICAgICB9KSxcbiAgICB9KSlcblxuICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHtsb2NhbGVUYWJsZU5hbWV9YF0gPSBsb2NhbGVzVGFibGVSZWxhdGlvbnNcbiAgfVxuXG4gIGlmIChoYXNNYW55VGV4dEZpZWxkICYmIGJ1aWxkVGV4dHMpIHtcbiAgICBjb25zdCB0ZXh0c1RhYmxlTmFtZSA9IGAke3Jvb3RUYWJsZU5hbWV9X3RleHRzYFxuICAgIGNvbnN0IGNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICBpZDogc2VyaWFsKCdpZCcpLnByaW1hcnlLZXkoKSxcbiAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbaWRDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gdGFibGUuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAubm90TnVsbCgpLFxuICAgICAgcGF0aDogdmFyY2hhcigncGF0aCcpLm5vdE51bGwoKSxcbiAgICAgIHRleHQ6IHZhcmNoYXIoJ3RleHQnKSxcbiAgICB9XG5cbiAgICBpZiAoaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkge1xuICAgICAgY29sdW1ucy5sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ2xvY2FsZScpXG4gICAgfVxuXG4gICAgdGV4dHNUYWJsZSA9IHBnVGFibGUodGV4dHNUYWJsZU5hbWUsIGNvbHVtbnMsIChjb2xzKSA9PiB7XG4gICAgICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBJbmRleEJ1aWxkZXI+ID0ge1xuICAgICAgICBvcmRlclBhcmVudElkeDogaW5kZXgoYCR7dGV4dHNUYWJsZU5hbWV9X29yZGVyX3BhcmVudF9pZHhgKS5vbihjb2xzLm9yZGVyLCBjb2xzLnBhcmVudCksXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNNYW55VGV4dEZpZWxkID09PSAnaW5kZXgnKSB7XG4gICAgICAgIGluZGV4ZXMudGV4dF9pZHggPSBpbmRleChgJHt0ZXh0c1RhYmxlTmFtZX1fdGV4dF9pZHhgKS5vbihjb2xzLnRleHQpXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkKSB7XG4gICAgICAgIGluZGV4ZXMubG9jYWxlUGFyZW50ID0gaW5kZXgoYCR7dGV4dHNUYWJsZU5hbWV9X2xvY2FsZV9wYXJlbnRgKS5vbihjb2xzLmxvY2FsZSwgY29scy5wYXJlbnQpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmRleGVzXG4gICAgfSlcblxuICAgIGFkYXB0ZXIudGFibGVzW3RleHRzVGFibGVOYW1lXSA9IHRleHRzVGFibGVcblxuICAgIGNvbnN0IHRleHRzVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnModGV4dHNUYWJsZSwgKHsgb25lIH0pID0+ICh7XG4gICAgICBwYXJlbnQ6IG9uZSh0YWJsZSwge1xuICAgICAgICBmaWVsZHM6IFt0ZXh0c1RhYmxlLnBhcmVudF0sXG4gICAgICAgIHJlZmVyZW5jZXM6IFt0YWJsZS5pZF0sXG4gICAgICB9KSxcbiAgICB9KSlcblxuICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHt0ZXh0c1RhYmxlTmFtZX1gXSA9IHRleHRzVGFibGVSZWxhdGlvbnNcbiAgfVxuXG4gIGlmIChoYXNNYW55TnVtYmVyRmllbGQgJiYgYnVpbGROdW1iZXJzKSB7XG4gICAgY29uc3QgbnVtYmVyc1RhYmxlTmFtZSA9IGAke3Jvb3RUYWJsZU5hbWV9X251bWJlcnNgXG4gICAgY29uc3QgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgIGlkOiBzZXJpYWwoJ2lkJykucHJpbWFyeUtleSgpLFxuICAgICAgbnVtYmVyOiBudW1lcmljKCdudW1iZXInKSxcbiAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbaWRDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gdGFibGUuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAubm90TnVsbCgpLFxuICAgICAgcGF0aDogdmFyY2hhcigncGF0aCcpLm5vdE51bGwoKSxcbiAgICB9XG5cbiAgICBpZiAoaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSB7XG4gICAgICBjb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJylcbiAgICB9XG5cbiAgICBudW1iZXJzVGFibGUgPSBwZ1RhYmxlKG51bWJlcnNUYWJsZU5hbWUsIGNvbHVtbnMsIChjb2xzKSA9PiB7XG4gICAgICBjb25zdCBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBJbmRleEJ1aWxkZXI+ID0ge1xuICAgICAgICBvcmRlclBhcmVudElkeDogaW5kZXgoYCR7bnVtYmVyc1RhYmxlTmFtZX1fb3JkZXJfcGFyZW50X2lkeGApLm9uKGNvbHMub3JkZXIsIGNvbHMucGFyZW50KSxcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc01hbnlOdW1iZXJGaWVsZCA9PT0gJ2luZGV4Jykge1xuICAgICAgICBpbmRleGVzLm51bWJlcklkeCA9IGluZGV4KGAke251bWJlcnNUYWJsZU5hbWV9X251bWJlcl9pZHhgKS5vbihjb2xzLm51bWJlcilcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgICBpbmRleGVzLmxvY2FsZVBhcmVudCA9IGluZGV4KGAke251bWJlcnNUYWJsZU5hbWV9X2xvY2FsZV9wYXJlbnRgKS5vbihcbiAgICAgICAgICBjb2xzLmxvY2FsZSxcbiAgICAgICAgICBjb2xzLnBhcmVudCxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlc1xuICAgIH0pXG5cbiAgICBhZGFwdGVyLnRhYmxlc1tudW1iZXJzVGFibGVOYW1lXSA9IG51bWJlcnNUYWJsZVxuXG4gICAgY29uc3QgbnVtYmVyc1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKG51bWJlcnNUYWJsZSwgKHsgb25lIH0pID0+ICh7XG4gICAgICBwYXJlbnQ6IG9uZSh0YWJsZSwge1xuICAgICAgICBmaWVsZHM6IFtudW1iZXJzVGFibGUucGFyZW50XSxcbiAgICAgICAgcmVmZXJlbmNlczogW3RhYmxlLmlkXSxcbiAgICAgIH0pLFxuICAgIH0pKVxuXG4gICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke251bWJlcnNUYWJsZU5hbWV9YF0gPSBudW1iZXJzVGFibGVSZWxhdGlvbnNcbiAgfVxuXG4gIGlmIChidWlsZFJlbGF0aW9uc2hpcHMpIHtcbiAgICBpZiAocmVsYXRpb25zaGlwcy5zaXplKSB7XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge1xuICAgICAgICBpZDogc2VyaWFsKCdpZCcpLnByaW1hcnlLZXkoKSxcbiAgICAgICAgb3JkZXI6IGludGVnZXIoJ29yZGVyJyksXG4gICAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbaWRDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgICAucmVmZXJlbmNlcygoKSA9PiB0YWJsZS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgcGF0aDogdmFyY2hhcigncGF0aCcpLm5vdE51bGwoKSxcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSB7XG4gICAgICAgIHJlbGF0aW9uc2hpcENvbHVtbnMubG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdsb2NhbGUnKVxuICAgICAgfVxuXG4gICAgICByZWxhdGlvbnNoaXBzLmZvckVhY2goKHJlbGF0aW9uVG8pID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVsYXRpb25UbyA9IHRvU25ha2VDYXNlKHJlbGF0aW9uVG8pXG4gICAgICAgIGxldCBjb2xUeXBlID0gYWRhcHRlci5pZFR5cGUgPT09ICd1dWlkJyA/ICd1dWlkJyA6ICdpbnRlZ2VyJ1xuICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbkN1c3RvbUlEID0gYWRhcHRlci5wYXlsb2FkLmNvbGxlY3Rpb25zW1xuICAgICAgICAgIHJlbGF0aW9uVG9cbiAgICAgICAgXS5jb25maWcuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuICAgICAgICBpZiAocmVsYXRlZENvbGxlY3Rpb25DdXN0b21JRD8udHlwZSA9PT0gJ251bWJlcicpIGNvbFR5cGUgPSAnbnVtZXJpYydcbiAgICAgICAgaWYgKHJlbGF0ZWRDb2xsZWN0aW9uQ3VzdG9tSUQ/LnR5cGUgPT09ICd0ZXh0JykgY29sVHlwZSA9ICd2YXJjaGFyJ1xuXG4gICAgICAgIHJlbGF0aW9uc2hpcENvbHVtbnNbYCR7cmVsYXRpb25Ub31JRGBdID0gcGFyZW50SURDb2x1bW5NYXBbY29sVHlwZV0oXG4gICAgICAgICAgYCR7Zm9ybWF0dGVkUmVsYXRpb25Ub31faWRgLFxuICAgICAgICApLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbZm9ybWF0dGVkUmVsYXRpb25Ub10uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fcmVsc2BcblxuICAgICAgcmVsYXRpb25zaGlwc1RhYmxlID0gcGdUYWJsZShyZWxhdGlvbnNoaXBzVGFibGVOYW1lLCByZWxhdGlvbnNoaXBDb2x1bW5zLCAoY29scykgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgICAgIG9yZGVyOiBpbmRleChgJHtyZWxhdGlvbnNoaXBzVGFibGVOYW1lfV9vcmRlcl9pZHhgKS5vbihjb2xzLm9yZGVyKSxcbiAgICAgICAgICBwYXJlbnRJZHg6IGluZGV4KGAke3JlbGF0aW9uc2hpcHNUYWJsZU5hbWV9X3BhcmVudF9pZHhgKS5vbihjb2xzLnBhcmVudCksXG4gICAgICAgICAgcGF0aElkeDogaW5kZXgoYCR7cmVsYXRpb25zaGlwc1RhYmxlTmFtZX1fcGF0aF9pZHhgKS5vbihjb2xzLnBhdGgpLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSB7XG4gICAgICAgICAgcmVzdWx0LmxvY2FsZUlkeCA9IGluZGV4KGAke3JlbGF0aW9uc2hpcHNUYWJsZU5hbWV9X2xvY2FsZV9pZHhgKS5vbihjb2xzLmxvY2FsZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0pXG5cbiAgICAgIGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdID0gcmVsYXRpb25zaGlwc1RhYmxlXG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhyZWxhdGlvbnNoaXBzVGFibGUsICh7IG9uZSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgUmVsYXRpb248c3RyaW5nPj4gPSB7XG4gICAgICAgICAgcGFyZW50OiBvbmUodGFibGUsIHtcbiAgICAgICAgICAgIGZpZWxkczogW3JlbGF0aW9uc2hpcHNUYWJsZS5wYXJlbnRdLFxuICAgICAgICAgICAgcmVmZXJlbmNlczogW3RhYmxlLmlkXSxcbiAgICAgICAgICAgIHJlbGF0aW9uTmFtZTogJ19yZWxzJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb25UbykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYWJsZU5hbWUgPSB0b1NuYWtlQ2FzZShyZWxhdGlvblRvKVxuICAgICAgICAgIGNvbnN0IGlkQ29sdW1uTmFtZSA9IGAke3JlbGF0aW9uVG99SURgXG4gICAgICAgICAgcmVzdWx0W2lkQ29sdW1uTmFtZV0gPSBvbmUoYWRhcHRlci50YWJsZXNbcmVsYXRlZFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgIGZpZWxkczogW3JlbGF0aW9uc2hpcHNUYWJsZVtpZENvbHVtbk5hbWVdXSxcbiAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1tyZWxhdGVkVGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9KVxuXG4gICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7cmVsYXRpb25zaGlwc1RhYmxlTmFtZX1gXSA9IHJlbGF0aW9uc2hpcHNUYWJsZVJlbGF0aW9uc1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKHRhYmxlLCAoeyBtYW55IH0pID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge31cblxuICAgIHJlbGF0aW9uc1RvQnVpbGQuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgIHJlc3VsdFtrZXldID0gbWFueShhZGFwdGVyLnRhYmxlc1t2YWxdKVxuICAgIH0pXG5cbiAgICBpZiAoaGFzTG9jYWxpemVkRmllbGQpIHtcbiAgICAgIHJlc3VsdC5fbG9jYWxlcyA9IG1hbnkobG9jYWxlc1RhYmxlKVxuICAgIH1cblxuICAgIGlmIChoYXNNYW55VGV4dEZpZWxkKSB7XG4gICAgICByZXN1bHQuX3RleHRzID0gbWFueSh0ZXh0c1RhYmxlKVxuICAgIH1cbiAgICBpZiAoaGFzTWFueU51bWJlckZpZWxkKSB7XG4gICAgICByZXN1bHQuX251bWJlcnMgPSBtYW55KG51bWJlcnNUYWJsZSlcbiAgICB9XG5cbiAgICBpZiAocmVsYXRpb25zaGlwcy5zaXplICYmIHJlbGF0aW9uc2hpcHNUYWJsZSkge1xuICAgICAgcmVzdWx0Ll9yZWxzID0gbWFueShyZWxhdGlvbnNoaXBzVGFibGUsIHtcbiAgICAgICAgcmVsYXRpb25OYW1lOiAnX3JlbHMnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG5cbiAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke3RhYmxlTmFtZX1gXSA9IHRhYmxlUmVsYXRpb25zXG5cbiAgcmV0dXJuIHsgaGFzTWFueU51bWJlckZpZWxkLCBoYXNNYW55VGV4dEZpZWxkLCByZWxhdGlvbnNUb0J1aWxkIH1cbn1cbiJdLCJuYW1lcyI6WyJidWlsZFRhYmxlIiwiYWRhcHRlciIsImJhc2VDb2x1bW5zIiwiYmFzZUV4dHJhQ29uZmlnIiwiYnVpbGROdW1iZXJzIiwiYnVpbGRSZWxhdGlvbnNoaXBzIiwiYnVpbGRUZXh0cyIsImRpc2FibGVOb3ROdWxsIiwiZGlzYWJsZVVuaXF1ZSIsImZpZWxkcyIsInJvb3RSZWxhdGlvbnNUb0J1aWxkIiwicm9vdFJlbGF0aW9uc2hpcHMiLCJyb290VGFibGVJRENvbFR5cGUiLCJyb290VGFibGVOYW1lIiwiaW5jb21pbmdSb290VGFibGVOYW1lIiwidGFibGVOYW1lIiwidGltZXN0YW1wcyIsImNvbHVtbnMiLCJpbmRleGVzIiwiaGFzTG9jYWxpemVkRmllbGQiLCJoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImhhc01hbnlUZXh0RmllbGQiLCJoYXNNYW55TnVtYmVyRmllbGQiLCJoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkIiwiaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwibG9jYWxlc0NvbHVtbnMiLCJsb2NhbGVzSW5kZXhlcyIsImxvY2FsZXNUYWJsZSIsInRleHRzVGFibGUiLCJudW1iZXJzVGFibGUiLCJyZWxhdGlvbnNoaXBzIiwiU2V0IiwicmVsYXRpb25zaGlwc1RhYmxlIiwicmVsYXRpb25zVG9CdWlsZCIsIk1hcCIsImlkQ29sVHlwZSIsInNldENvbHVtbklEIiwidHJhdmVyc2VGaWVsZHMiLCJuZXdUYWJsZU5hbWUiLCJwYXJlbnRUYWJsZU5hbWUiLCJjcmVhdGVkQXQiLCJ0aW1lc3RhbXAiLCJtb2RlIiwicHJlY2lzaW9uIiwid2l0aFRpbWV6b25lIiwiZGVmYXVsdE5vdyIsIm5vdE51bGwiLCJ1cGRhdGVkQXQiLCJ0YWJsZSIsInBnVGFibGUiLCJjb2xzIiwiZXh0cmFDb25maWciLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwiY29uZmlnIiwia2V5IiwiZnVuYyIsImFjYyIsImNvbE5hbWUiLCJ0YWJsZXMiLCJsb2NhbGVUYWJsZU5hbWUiLCJpZCIsInNlcmlhbCIsInByaW1hcnlLZXkiLCJfbG9jYWxlIiwiZW51bXMiLCJlbnVtX19sb2NhbGVzIiwiX3BhcmVudElEIiwicGFyZW50SURDb2x1bW5NYXAiLCJyZWZlcmVuY2VzIiwib25EZWxldGUiLCJfbG9jYWxlUGFyZW50IiwidW5pcXVlIiwib24iLCJsb2NhbGVzVGFibGVSZWxhdGlvbnMiLCJyZWxhdGlvbnMiLCJvbmUiLCJ0ZXh0c1RhYmxlTmFtZSIsIm9yZGVyIiwiaW50ZWdlciIsInBhcmVudCIsInBhdGgiLCJ2YXJjaGFyIiwidGV4dCIsImxvY2FsZSIsIm9yZGVyUGFyZW50SWR4IiwiaW5kZXgiLCJ0ZXh0X2lkeCIsImxvY2FsZVBhcmVudCIsInRleHRzVGFibGVSZWxhdGlvbnMiLCJudW1iZXJzVGFibGVOYW1lIiwibnVtYmVyIiwibnVtZXJpYyIsIm51bWJlcklkeCIsIm51bWJlcnNUYWJsZVJlbGF0aW9ucyIsInNpemUiLCJyZWxhdGlvbnNoaXBDb2x1bW5zIiwiZm9yRWFjaCIsInJlbGF0aW9uVG8iLCJmb3JtYXR0ZWRSZWxhdGlvblRvIiwidG9TbmFrZUNhc2UiLCJjb2xUeXBlIiwiaWRUeXBlIiwicmVsYXRlZENvbGxlY3Rpb25DdXN0b21JRCIsInBheWxvYWQiLCJjb2xsZWN0aW9ucyIsImZpbmQiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwidHlwZSIsInJlbGF0aW9uc2hpcHNUYWJsZU5hbWUiLCJyZXN1bHQiLCJwYXJlbnRJZHgiLCJwYXRoSWR4IiwibG9jYWxlSWR4IiwicmVsYXRpb25zaGlwc1RhYmxlUmVsYXRpb25zIiwicmVsYXRpb25OYW1lIiwicmVsYXRlZFRhYmxlTmFtZSIsImlkQ29sdW1uTmFtZSIsInRhYmxlUmVsYXRpb25zIiwibWFueSIsInZhbCIsIl9sb2NhbGVzIiwiX3RleHRzIiwiX251bWJlcnMiLCJfcmVscyJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWlEdkJBOzs7ZUFBQUE7Ozs0QkE1Q2E7d0JBVW5CO3VCQUMwQjtvRUFDVDttQ0FJVTs2QkFDTjtnQ0FDRzs7Ozs7O0FBMEJ4QixNQUFNQSxhQUFhLENBQUMsRUFDekJDLE9BQU8sRUFDUEMsY0FBYyxDQUFDLENBQUMsRUFDaEJDLGtCQUFrQixDQUFDLENBQUMsRUFDcEJDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxVQUFVLEVBQ1ZDLGNBQWMsRUFDZEMsZ0JBQWdCLEtBQUssRUFDckJDLE1BQU0sRUFDTkMsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsRUFDakJDLGtCQUFrQixFQUNsQkMsZUFBZUMscUJBQXFCLEVBQ3BDQyxTQUFTLEVBQ1RDLFVBQVUsRUFDTDtJQUNMLE1BQU1ILGdCQUFnQkMseUJBQXlCQztJQUMvQyxNQUFNRSxVQUEyQ2Y7SUFDakQsTUFBTWdCLFVBQWtFLENBQUM7SUFFekUsSUFBSUMsb0JBQW9CO0lBQ3hCLElBQUlDLGdDQUFnQztJQUNwQyxJQUFJQyxtQkFBc0M7SUFDMUMsSUFBSUMscUJBQXdDO0lBQzVDLElBQUlDLDRCQUE0QjtJQUNoQyxJQUFJQyw4QkFBOEI7SUFFbEMsTUFBTUMsaUJBQWtELENBQUM7SUFDekQsTUFBTUMsaUJBQXlFLENBQUM7SUFDaEYsSUFBSUM7SUFDSixJQUFJQztJQUNKLElBQUlDO0lBRUosdUNBQXVDO0lBQ3ZDLE1B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
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvYnVpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHtcbiAgSW5kZXhCdWlsZGVyLFxuICBQZ0NvbHVtbkJ1aWxkZXIsXG4gIFBnVGFibGVXaXRoQ29sdW1ucyxcbiAgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgcmVsYXRpb25zIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBpbmRleCwgaW50ZWdlciwgbnVtZXJpYywgc2VyaWFsLCB0aW1lc3RhbXAsIHVuaXF1ZSwgdmFyY2hhciB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0b1NuYWtlQ2FzZSBmcm9tICd0by1zbmFrZS1jYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNDb2x1bW5zLCBHZW5lcmljVGFibGUsIElEVHlwZSwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHBhcmVudElEQ29sdW1uTWFwIH0gZnJvbSAnLi9wYXJlbnRJRENvbHVtbk1hcCdcbmltcG9ydCB7IHNldENvbHVtbklEIH0gZnJvbSAnLi9zZXRDb2x1bW5JRCdcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgYmFzZUNvbHVtbnM/OiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+XG4gIGJhc2VFeHRyYUNvbmZpZz86IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXI+XG4gIGJ1aWxkTnVtYmVycz86IGJvb2xlYW5cbiAgYnVpbGRSZWxhdGlvbnNoaXBzPzogYm9vbGVhblxuICBidWlsZFRleHRzPzogYm9vbGVhblxuICBkaXNhYmxlTm90TnVsbDogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlOiBib29sZWFuXG4gIGZpZWxkczogRmllbGRbXVxuICByb290UmVsYXRpb25zVG9CdWlsZD86IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcm9vdFJlbGF0aW9uc2hpcHM/OiBTZXQ8c3RyaW5nPlxuICByb290VGFibGVJRENvbFR5cGU/OiBzdHJpbmdcbiAgcm9vdFRhYmxlTmFtZT86IHN0cmluZ1xuICB0YWJsZU5hbWU6IHN0cmluZ1xuICB0aW1lc3RhbXBzPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgaGFzTWFueU51bWJlckZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhblxuICBoYXNNYW55VGV4dEZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhblxuICByZWxhdGlvbnNUb0J1aWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZFRhYmxlID0gKHtcbiAgYWRhcHRlcixcbiAgYmFzZUNvbHVtbnMgPSB7fSxcbiAgYmFzZUV4dHJhQ29uZmlnID0ge30sXG4gIGJ1aWxkTnVtYmVycyxcbiAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICBidWlsZFRleHRzLFxuICBkaXNhYmxlTm90TnVsbCxcbiAgZGlzYWJsZVVuaXF1ZSA9IGZhbHNlLFxuICBmaWVsZHMsXG4gIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICByb290UmVsYXRpb25zaGlwcyxcbiAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICByb290VGFibGVOYW1lOiBpbmNvbWluZ1Jvb3RUYWJsZU5hbWUsXG4gIHRhYmxlTmFtZSxcbiAgdGltZXN0YW1wcyxcbn06IEFyZ3MpOiBSZXN1bHQgPT4ge1xuICBjb25zdCByb290VGFibGVOYW1lID0gaW5jb21pbmdSb290VGFibGVOYW1lIHx8IHRhYmxlTmFtZVxuICBjb25zdCBjb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0gYmFzZUNvbHVtbnNcbiAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+ID0ge31cblxuICBsZXQgaGFzTG9jYWxpemVkRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTWFueVRleHRGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgaGFzTWFueU51bWJlckZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IGZhbHNlXG5cbiAgY29uc3QgbG9jYWxlc0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7fVxuICBjb25zdCBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+ID0ge31cbiAgbGV0IGxvY2FsZXNUYWJsZTogR2VuZXJpY1RhYmxlIHwgUGdUYWJsZVdpdGhDb2x1bW5zPGFueT5cbiAgbGV0IHRleHRzVGFibGU6IEdlbmVyaWNUYWJsZSB8IFBnVGFibGVXaXRoQ29sdW1uczxhbnk+XG4gIGxldCBudW1iZXJzVGFibGU6IEdlbmVyaWNUYWJsZSB8IFBnVGFibGVXaXRoQ29sdW1uczxhbnk+XG5cbiAgLy8gUmVsYXRpb25zaGlwcyB0byB0aGUgYmFzZSBjb2xsZWN0aW9uXG4gIGNvbnN0IHJlbGF0aW9uc2hpcHM6IFNldDxzdHJpbmc+ID0gcm9vdFJlbGF0aW9uc2hpcHMgfHwgbmV3IFNldCgpXG5cbiAgbGV0IHJlbGF0aW9uc2hpcHNUYWJsZTogR2VuZXJpY1RhYmxlIHwgUGdUYWJsZVdpdGhDb2x1bW5zPGFueT5cblxuICAvLyBEcml6emxlIHJlbGF0aW9uc1xuICBjb25zdCByZWxhdGlvbnNUb0J1aWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcCgpXG5cbiAgY29uc3QgaWRDb2xUeXBlOiBJRFR5cGUgPSBzZXRDb2x1bW5JRCh7IGFkYXB0ZXIsIGNvbHVtbnMsIGZpZWxkcyB9KVxuXG4gIDsoe1xuICAgIGhhc0xvY2FsaXplZEZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkLFxuICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIGhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICBoYXNNYW55VGV4dEZpZWxkLFxuICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgIGFkYXB0ZXIsXG4gICAgYnVpbGROdW1iZXJzLFxuICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICBidWlsZFRleHRzLFxuICAgIGNvbHVtbnMsXG4gICAgZGlzYWJsZU5vdE51bGwsXG4gICAgZGlzYWJsZVVuaXF1ZSxcbiAgICBmaWVsZHMsXG4gICAgaW5kZXhlcyxcbiAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICBuZXdUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBwYXJlbnRUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ6IHJvb3RSZWxhdGlvbnNUb0J1aWxkIHx8IHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgcm9vdFRhYmxlSURDb2xUeXBlOiByb290VGFibGVJRENvbFR5cGUgfHwgaWRDb2xUeXBlLFxuICAgIHJvb3RUYWJsZU5hbWUsXG4gIH0pKVxuXG4gIGlmICh0aW1lc3RhbXBzKSB7XG4gICAgY29sdW1ucy5jcmVhdGVkQXQgPSB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7XG4gICAgICBtb2RlOiAnc3RyaW5nJyxcbiAgICAgIHByZWNpc2lvbjogMyxcbiAgICAgIHdpdGhUaW1lem9uZTogdHJ1ZSxcbiAgICB9KVxuICAgICAgLmRlZmF1bHROb3coKVxuICAgICAgLm5vdE51bGwoKVxuICAgIGNvbHVtbnMudXBkYXRlZEF0ID0gdGltZXN0YW1wKCd1cGRhdGVkX2F0Jywge1xuICAgICAgbW9kZTogJ3N0cmluZycsXG4gICAgICBwcmVjaXNpb246IDMsXG4gICAgICB3aXRoVGltZXpvbmU6IHRydWUsXG4gICAgfSlcbiAgICAgIC5kZWZhdWx0Tm93KClcbiAgICAgIC5ub3ROdWxsKClcbiAgfVxuXG4gIGNvbnN0IHRhYmxlID0gYWRhcHRlci5wZ1NjaGVtYS50YWJsZSh0YWJsZU5hbWUsIGNvbHVtbnMsIChjb2xzKSA9PiB7XG4gICAgY29uc3QgZXh0cmFDb25maWcgPSBPYmplY3QuZW50cmllcyhiYXNlRXh0cmFDb25maWcpLnJlZHVjZSgoY29uZmlnLCBba2V5LCBmdW5jXSkgPT4ge1xuICAgICAgY29uZmlnW2tleV0gPSBmdW5jKGNvbHMpXG4gICAgICByZXR1cm4gY29uZmlnXG4gICAgfSwge30pXG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoaW5kZXhlcykucmVkdWNlKChhY2MsIFtjb2xOYW1lLCBmdW5jXSkgPT4ge1xuICAgICAgYWNjW2NvbE5hbWVdID0gZnVuYyhjb2xzKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIGV4dHJhQ29uZmlnKVxuICB9KVxuXG4gIGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0gPSB0YWJsZVxuXG4gIGlmIChoYXNMb2NhbGl6ZWRGaWVsZCkge1xuICAgIGNvbnN0IGxvY2FsZVRhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fbG9jYWxlc2BcbiAgICBsb2NhbGVzQ29sdW1ucy5pZCA9IHNlcmlhbCgnaWQnKS5wcmltYXJ5S2V5KClcbiAgICBsb2NhbGVzQ29sdW1ucy5fbG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdfbG9jYWxlJykubm90TnVsbCgpXG4gICAgbG9jYWxlc0NvbHVtbnMuX3BhcmVudElEID0gcGFyZW50SURDb2x1bW5NYXBbaWRDb2xUeXBlXSgnX3BhcmVudF9pZCcpXG4gICAgICAucmVmZXJlbmNlcygoKSA9PiB0YWJsZS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAubm90TnVsbCgpXG5cbiAgICBsb2NhbGVzVGFibGUgPSBhZGFwdGVyLnBnU2NoZW1hLnRhYmxlKGxvY2FsZVRhYmxlTmFtZSwgbG9jYWxlc0NvbHVtbnMsIChjb2xzKSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobG9jYWxlc0luZGV4ZXMpLnJlZHVjZShcbiAgICAgICAgKGFjYywgW2NvbE5hbWUsIGZ1bmNdKSA9PiB7XG4gICAgICAgICAgYWNjW2NvbE5hbWVdID0gZnVuYyhjb2xzKVxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIF9sb2NhbGVQYXJlbnQ6IHVuaXF1ZShgJHtsb2NhbGVUYWJsZU5hbWV9X2xvY2FsZV9wYXJlbnRfaWRfdW5pcXVlYCkub24oXG4gICAgICAgICAgICBjb2xzLl9sb2NhbGUsXG4gICAgICAgICAgICBjb2xzLl9wYXJlbnRJRCxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgIH0pXG5cbiAgICBhZGFwdGVyLnRhYmxlc1tsb2NhbGVUYWJsZU5hbWVdID0gbG9jYWxlc1RhYmxlXG5cbiAgICBjb25zdCBsb2NhbGVzVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMobG9jYWxlc1RhYmxlLCAoeyBvbmUgfSkgPT4gKHtcbiAgICAgIF9wYXJlbnRJRDogb25lKHRhYmxlLCB7XG4gICAgICAgIGZpZWxkczogW2xvY2FsZXNUYWJsZS5fcGFyZW50SURdLFxuICAgICAgICByZWZlcmVuY2VzOiBbdGFibGUuaWRdLFxuICAgICAgfSksXG4gICAgfSkpXG5cbiAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7bG9jYWxlVGFibGVOYW1lfWBdID0gbG9jYWxlc1RhYmxlUmVsYXRpb25zXG4gIH1cblxuICBpZiAoaGFzTWFueVRleHRGaWVsZCAmJiBidWlsZFRleHRzKSB7XG4gICAgY29uc3QgdGV4dHNUYWJsZU5hbWUgPSBgJHtyb290VGFibGVOYW1lfV90ZXh0c2BcbiAgICBjb25zdCBjb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge1xuICAgICAgaWQ6IHNlcmlhbCgnaWQnKS5wcmltYXJ5S2V5KCksXG4gICAgICBvcmRlcjogaW50ZWdlcignb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICBwYXJlbnQ6IHBhcmVudElEQ29sdW1uTWFwW2lkQ29sVHlwZV0oJ3BhcmVudF9pZCcpXG4gICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IHRhYmxlLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgIHBhdGg6IHZhcmNoYXIoJ3BhdGgnKS5ub3ROdWxsKCksXG4gICAgICB0ZXh0OiB2YXJjaGFyKCd0ZXh0JyksXG4gICAgfVxuXG4gICAgaWYgKGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQpIHtcbiAgICAgIGNvbHVtbnMubG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdsb2NhbGUnKVxuICAgIH1cblxuICAgIHRleHRzVGFibGUgPSBhZGFwdGVyLnBnU2NoZW1hLnRhYmxlKHRleHRzVGFibGVOYW1lLCBjb2x1bW5zLCAoY29scykgPT4ge1xuICAgICAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgSW5kZXhCdWlsZGVyPiA9IHtcbiAgICAgICAgb3JkZXJQYXJlbnRJZHg6IGluZGV4KGAke3RleHRzVGFibGVOYW1lfV9vcmRlcl9wYXJlbnRfaWR4YCkub24oY29scy5vcmRlciwgY29scy5wYXJlbnQpLFxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzTWFueVRleHRGaWVsZCA9PT0gJ2luZGV4Jykge1xuICAgICAgICBpbmRleGVzLnRleHRfaWR4ID0gaW5kZXgoYCR7dGV4dHNUYWJsZU5hbWV9X3RleHRfaWR4YCkub24oY29scy50ZXh0KVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkge1xuICAgICAgICBpbmRleGVzLmxvY2FsZVBhcmVudCA9IGluZGV4KGAke3RleHRzVGFibGVOYW1lfV9sb2NhbGVfcGFyZW50YCkub24oY29scy5sb2NhbGUsIGNvbHMucGFyZW50KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5kZXhlc1xuICAgIH0pXG5cbiAgICBhZGFwdGVyLnRhYmxlc1t0ZXh0c1RhYmxlTmFtZV0gPSB0ZXh0c1RhYmxlXG5cbiAgICBjb25zdCB0ZXh0c1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKHRleHRzVGFibGUsICh7IG9uZSB9KSA9PiAoe1xuICAgICAgcGFyZW50OiBvbmUodGFibGUsIHtcbiAgICAgICAgZmllbGRzOiBbdGV4dHNUYWJsZS5wYXJlbnRdLFxuICAgICAgICByZWZlcmVuY2VzOiBbdGFibGUuaWRdLFxuICAgICAgfSksXG4gICAgfSkpXG5cbiAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7dGV4dHNUYWJsZU5hbWV9YF0gPSB0ZXh0c1RhYmxlUmVsYXRpb25zXG4gIH1cblxuICBpZiAoaGFzTWFueU51bWJlckZpZWxkICYmIGJ1aWxkTnVtYmVycykge1xuICAgIGNvbnN0IG51bWJlcnNUYWJsZU5hbWUgPSBgJHtyb290VGFibGVOYW1lfV9udW1iZXJzYFxuICAgIGNvbnN0IGNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICBpZDogc2VyaWFsKCdpZCcpLnByaW1hcnlLZXkoKSxcbiAgICAgIG51bWJlcjogbnVtZXJpYygnbnVtYmVyJyksXG4gICAgICBvcmRlcjogaW50ZWdlcignb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICBwYXJlbnQ6IHBhcmVudElEQ29sdW1uTWFwW2lkQ29sVHlwZV0oJ3BhcmVudF9pZCcpXG4gICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IHRhYmxlLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgIHBhdGg6IHZhcmNoYXIoJ3BhdGgnKS5ub3ROdWxsKCksXG4gICAgfVxuXG4gICAgaWYgKGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgY29sdW1ucy5sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ2xvY2FsZScpXG4gICAgfVxuXG4gICAgbnVtYmVyc1RhYmxlID0gYWRhcHRlci5wZ1NjaGVtYS50YWJsZShudW1iZXJzVGFibGVOYW1lLCBjb2x1bW5zLCAoY29scykgPT4ge1xuICAgICAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgSW5kZXhCdWlsZGVyPiA9IHtcbiAgICAgICAgb3JkZXJQYXJlbnRJZHg6IGluZGV4KGAke251bWJlcnNUYWJsZU5hbWV9X29yZGVyX3BhcmVudF9pZHhgKS5vbihjb2xzLm9yZGVyLCBjb2xzLnBhcmVudCksXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNNYW55TnVtYmVyRmllbGQgPT09ICdpbmRleCcpIHtcbiAgICAgICAgaW5kZXhlcy5udW1iZXJJZHggPSBpbmRleChgJHtudW1iZXJzVGFibGVOYW1lfV9udW1iZXJfaWR4YCkub24oY29scy5udW1iZXIpXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgaW5kZXhlcy5sb2NhbGVQYXJlbnQgPSBpbmRleChgJHtudW1iZXJzVGFibGVOYW1lfV9sb2NhbGVfcGFyZW50YCkub24oXG4gICAgICAgICAgY29scy5sb2NhbGUsXG4gICAgICAgICAgY29scy5wYXJlbnQsXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluZGV4ZXNcbiAgICB9KVxuXG4gICAgYWRhcHRlci50YWJsZXNbbnVtYmVyc1RhYmxlTmFtZV0gPSBudW1iZXJzVGFibGVcblxuICAgIGNvbnN0IG51bWJlcnNUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhudW1iZXJzVGFibGUsICh7IG9uZSB9KSA9PiAoe1xuICAgICAgcGFyZW50OiBvbmUodGFibGUsIHtcbiAgICAgICAgZmllbGRzOiBbbnVtYmVyc1RhYmxlLnBhcmVudF0sXG4gICAgICAgIHJlZmVyZW5jZXM6IFt0YWJsZS5pZF0sXG4gICAgICB9KSxcbiAgICB9KSlcblxuICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHtudW1iZXJzVGFibGVOYW1lfWBdID0gbnVtYmVyc1RhYmxlUmVsYXRpb25zXG4gIH1cblxuICBpZiAoYnVpbGRSZWxhdGlvbnNoaXBzKSB7XG4gICAgaWYgKHJlbGF0aW9uc2hpcHMuc2l6ZSkge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgaWQ6IHNlcmlhbCgnaWQnKS5wcmltYXJ5S2V5KCksXG4gICAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLFxuICAgICAgICBwYXJlbnQ6IHBhcmVudElEQ29sdW1uTWFwW2lkQ29sVHlwZV0oJ3BhcmVudF9pZCcpXG4gICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gdGFibGUuaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgIC5ub3ROdWxsKCksXG4gICAgICAgIHBhdGg6IHZhcmNoYXIoJ3BhdGgnKS5ub3ROdWxsKCksXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkge1xuICAgICAgICByZWxhdGlvbnNoaXBDb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJylcbiAgICAgIH1cblxuICAgICAgcmVsYXRpb25zaGlwcy5mb3JFYWNoKChyZWxhdGlvblRvKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFJlbGF0aW9uVG8gPSB0b1NuYWtlQ2FzZShyZWxhdGlvblRvKVxuICAgICAgICBsZXQgY29sVHlwZSA9IGFkYXB0ZXIuaWRUeXBlID09PSAndXVpZCcgPyAndXVpZCcgOiAnaW50ZWdlcidcbiAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25DdXN0b21JRCA9IGFkYXB0ZXIucGF5bG9hZC5jb2xsZWN0aW9uc1tcbiAgICAgICAgICByZWxhdGlvblRvXG4gICAgICAgIF0uY29uZmlnLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICAgICAgaWYgKHJlbGF0ZWRDb2xsZWN0aW9uQ3VzdG9tSUQ/LnR5cGUgPT09ICdudW1iZXInKSBjb2xUeXBlID0gJ251bWVyaWMnXG4gICAgICAgIGlmIChyZWxhdGVkQ29sbGVjdGlvbkN1c3RvbUlEPy50eXBlID09PSAndGV4dCcpIGNvbFR5cGUgPSAndmFyY2hhcidcblxuICAgICAgICByZWxhdGlvbnNoaXBDb2x1bW5zW2Ake3JlbGF0aW9uVG99SURgXSA9IHBhcmVudElEQ29sdW1uTWFwW2NvbFR5cGVdKFxuICAgICAgICAgIGAke2Zvcm1hdHRlZFJlbGF0aW9uVG99X2lkYCxcbiAgICAgICAgKS5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW2Zvcm1hdHRlZFJlbGF0aW9uVG9dLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3JlbHNgXG5cbiAgICAgIHJlbGF0aW9uc2hpcHNUYWJsZSA9IGFkYXB0ZXIucGdTY2hlbWEudGFibGUoXG4gICAgICAgIHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUsXG4gICAgICAgIHJlbGF0aW9uc2hpcENvbHVtbnMsXG4gICAgICAgIChjb2xzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgICAgICAgIG9yZGVyOiBpbmRleChgJHtyZWxhdGlvbnNoaXBzVGFibGVOYW1lfV9vcmRlcl9pZHhgKS5vbihjb2xzLm9yZGVyKSxcbiAgICAgICAgICAgIHBhcmVudElkeDogaW5kZXgoYCR7cmVsYXRpb25zaGlwc1RhYmxlTmFtZX1fcGFyZW50X2lkeGApLm9uKGNvbHMucGFyZW50KSxcbiAgICAgICAgICAgIHBhdGhJZHg6IGluZGV4KGAke3JlbGF0aW9uc2hpcHNUYWJsZU5hbWV9X3BhdGhfaWR4YCkub24oY29scy5wYXRoKSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5sb2NhbGVJZHggPSBpbmRleChgJHtyZWxhdGlvbnNoaXBzVGFibGVOYW1lfV9sb2NhbGVfaWR4YCkub24oY29scy5sb2NhbGUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICBhZGFwdGVyLnRhYmxlc1tyZWxhdGlvbnNoaXBzVGFibGVOYW1lXSA9IHJlbGF0aW9uc2hpcHNUYWJsZVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBzVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMocmVsYXRpb25zaGlwc1RhYmxlLCAoeyBvbmUgfSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgIHBhcmVudDogb25lKHRhYmxlLCB7XG4gICAgICAgICAgICBmaWVsZHM6IFtyZWxhdGlvbnNoaXBzVGFibGUucGFyZW50XSxcbiAgICAgICAgICAgIHJlZmVyZW5jZXM6IFt0YWJsZS5pZF0sXG4gICAgICAgICAgICByZWxhdGlvbk5hbWU6ICdfcmVscycsXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICByZWxhdGlvbnNoaXBzLmZvckVhY2goKHJlbGF0aW9uVG8pID0+IHtcbiAgICAgICAgICBjb25zdCByZWxhdGVkVGFibGVOYW1lID0gdG9TbmFrZUNhc2UocmVsYXRpb25UbylcbiAgICAgICAgICBjb25zdCBpZENvbHVtbk5hbWUgPSBgJHtyZWxhdGlvblRvfUlEYFxuICAgICAgICAgIHJlc3VsdFtpZENvbHVtbk5hbWVdID0gb25lKGFkYXB0ZXIudGFibGVzW3JlbGF0ZWRUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICBmaWVsZHM6IFtyZWxhdGlvbnNoaXBzVGFibGVbaWRDb2x1bW5OYW1lXV0sXG4gICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcmVsYXRlZFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfSlcblxuICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke3JlbGF0aW9uc2hpcHNUYWJsZU5hbWV9YF0gPSByZWxhdGlvbnNoaXBzVGFibGVSZWxhdGlvbnNcbiAgICB9XG4gIH1cblxuICBjb25zdCB0YWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyh0YWJsZSwgKHsgbWFueSB9KSA9PiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHt9XG5cbiAgICByZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICB9KVxuXG4gICAgaWYgKGhhc0xvY2FsaXplZEZpZWxkKSB7XG4gICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KGxvY2FsZXNUYWJsZSlcbiAgICB9XG5cbiAgICBpZiAoaGFzTWFueVRleHRGaWVsZCkge1xuICAgICAgcmVzdWx0Ll90ZXh0cyA9IG1hbnkodGV4dHNUYWJsZSlcbiAgICB9XG4gICAgaWYgKGhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgcmVzdWx0Ll9udW1iZXJzID0gbWFueShudW1iZXJzVGFibGUpXG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aW9uc2hpcHMuc2l6ZSAmJiByZWxhdGlvbnNoaXBzVGFibGUpIHtcbiAgICAgIHJlc3VsdC5fcmVscyA9IG1hbnkocmVsYXRpb25zaGlwc1RhYmxlLCB7XG4gICAgICAgIHJlbGF0aW9uTmFtZTogJ19yZWxzJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KVxuXG4gIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHt0YWJsZU5hbWV9YF0gPSB0YWJsZVJlbGF0aW9uc1xuXG4gIHJldHVybiB7IGhhc01hbnlOdW1iZXJGaWVsZCwgaGFzTWFueVRleHRGaWVsZCwgcmVsYXRpb25zVG9CdWlsZCB9XG59XG4iXSwibmFtZXMiOlsiYnVpbGRUYWJsZSIsImFkYXB0ZXIiLCJiYXNlQ29sdW1ucyIsImJhc2VFeHRyYUNvbmZpZyIsImJ1aWxkTnVtYmVycyIsImJ1aWxkUmVsYXRpb25zaGlwcyIsImJ1aWxkVGV4dHMiLCJkaXNhYmxlTm90TnVsbCIsImRpc2FibGVVbmlxdWUiLCJmaWVsZHMiLCJyb290UmVsYXRpb25zVG9CdWlsZCIsInJvb3RSZWxhdGlvbnNoaXBzIiwicm9vdFRhYmxlSURDb2xUeXBlIiwicm9vdFRhYmxlTmFtZSIsImluY29taW5nUm9vdFRhYmxlTmFtZSIsInRhYmxlTmFtZSIsInRpbWVzdGFtcHMiLCJjb2x1bW5zIiwiaW5kZXhlcyIsImhhc0xvY2FsaXplZEZpZWxkIiwiaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJoYXNNYW55VGV4dEZpZWxkIiwiaGFzTWFueU51bWJlckZpZWxkIiwiaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCIsImhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsImxvY2FsZXNDb2x1bW5zIiwibG9jYWxlc0luZGV4ZXMiLCJsb2NhbGVzVGFibGUiLCJ0ZXh0c1RhYmxlIiwibnVtYmVyc1RhYmxlIiwicmVsYXRpb25zaGlwcyIsIlNldCIsInJlbGF0aW9uc2hpcHNUYWJsZSIsInJlbGF0aW9uc1RvQnVpbGQiLCJNYXAiLCJpZENvbFR5cGUiLCJzZXRDb2x1bW5JRCIsInRyYXZlcnNlRmllbGRzIiwibmV3VGFibGVOYW1lIiwicGFyZW50VGFibGVOYW1lIiwiY3JlYXRlZEF0IiwidGltZXN0YW1wIiwibW9kZSIsInByZWNpc2lvbiIsIndpdGhUaW1lem9uZSIsImRlZmF1bHROb3ciLCJub3ROdWxsIiwidXBkYXRlZEF0IiwidGFibGUiLCJwZ1NjaGVtYSIsImNvbHMiLCJleHRyYUNvbmZpZyIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJjb25maWciLCJrZXkiLCJmdW5jIiwiYWNjIiwiY29sTmFtZSIsInRhYmxlcyIsImxvY2FsZVRhYmxlTmFtZSIsImlkIiwic2VyaWFsIiwicHJpbWFyeUtleSIsIl9sb2NhbGUiLCJlbnVtcyIsImVudW1fX2xvY2FsZXMiLCJfcGFyZW50SUQiLCJwYXJlbnRJRENvbHVtbk1hcCIsInJlZmVyZW5jZXMiLCJvbkRlbGV0ZSIsIl9sb2NhbGVQYXJlbnQiLCJ1bmlxdWUiLCJvbiIsImxvY2FsZXNUYWJsZVJlbGF0aW9ucyIsInJlbGF0aW9ucyIsIm9uZSIsInRleHRzVGFibGVOYW1lIiwib3JkZXIiLCJpbnRlZ2VyIiwicGFyZW50IiwicGF0aCIsInZhcmNoYXIiLCJ0ZXh0IiwibG9jYWxlIiwib3JkZXJQYXJlbnRJZHgiLCJpbmRleCIsInRleHRfaWR4IiwibG9jYWxlUGFyZW50IiwidGV4dHNUYWJsZVJlbGF0aW9ucyIsIm51bWJlcnNUYWJsZU5hbWUiLCJudW1iZXIiLCJudW1lcmljIiwibnVtYmVySWR4IiwibnVtYmVyc1RhYmxlUmVsYXRpb25zIiwic2l6ZSIsInJlbGF0aW9uc2hpcENvbHVtbnMiLCJmb3JFYWNoIiwicmVsYXRpb25UbyIsImZvcm1hdHRlZFJlbGF0aW9uVG8iLCJ0b1NuYWtlQ2FzZSIsImNvbFR5cGUiLCJpZFR5cGUiLCJyZWxhdGVkQ29sbGVjdGlvbkN1c3RvbUlEIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsInJlc3VsdCIsInBhcmVudElkeCIsInBhdGhJZHgiLCJsb2NhbGVJZHgiLCJyZWxhdGlvbnNoaXBzVGFibGVSZWxhdGlvbnMiLCJyZWxhdGlvbk5hbWUiLCJyZWxhdGVkVGFibGVOYW1lIiwiaWRDb2x1bW5OYW1lIiwidGFibGVSZWxhdGlvbnMiLCJtYW55IiwidmFsIiwiX2xvY2FsZXMiLCJfdGV4dHMiLCJfbnVtYmVycyIsIl9yZWxzIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBNkN2QkE7OztlQUFBQTs7OzRCQW5DYTt3QkFDa0Q7dUJBQzNDO29FQUNUO21DQUlVOzZCQUNOO2dDQUNHOzs7Ozs7QUEwQnhCLE1BQU1BLGFBQWEsQ0FBQyxFQUN6QkMsT0FBTyxFQUNQQyxjQUFjLENBQUMsQ0FBQyxFQUNoQkMsa0JBQWtCLENBQUMsQ0FBQyxFQUNwQkMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLFVBQVUsRUFDVkMsY0FBYyxFQUNkQyxnQkFBZ0IsS0FBSyxFQUNyQkMsTUFBTSxFQUNOQyxvQkFBb0IsRUFDcEJDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQyxlQUFlQyxxQkFBcUIsRUFDcENDLFNBQVMsRUFDVEMsVUFBVSxFQUNMO0lBQ0wsTUFBTUgsZ0JBQWdCQyx5QkFBeUJDO0lBQy9DLE1BQU1FLFVBQTJDZjtJQUNq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
|
package/dist/types.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { ColumnBaseConfig, ColumnDataType, DrizzleConfig, ExtractTablesWithRelations, Relation, Relations } from 'drizzle-orm';
|
2
2
|
import type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres';
|
3
|
-
import type { PgColumn, PgEnum, PgTableWithColumns, PgTransaction } from 'drizzle-orm/pg-core';
|
3
|
+
import type { PgColumn, PgEnum, PgSchema, PgTableWithColumns, PgTransaction } from 'drizzle-orm/pg-core';
|
4
|
+
import type { PgTableFn } from 'drizzle-orm/pg-core/table';
|
4
5
|
import type { Payload } from 'payload';
|
5
6
|
import type { BaseDatabaseAdapter } from 'payload/database';
|
6
7
|
import type { PayloadRequest } from 'payload/types';
|
@@ -12,6 +13,7 @@ export type Args = {
|
|
12
13
|
migrationDir?: string;
|
13
14
|
pool: PoolConfig;
|
14
15
|
push?: boolean;
|
16
|
+
schemaName?: string;
|
15
17
|
};
|
16
18
|
export type GenericColumn = PgColumn<ColumnBaseConfig<ColumnDataType, string>, Record<string, unknown>>;
|
17
19
|
export type GenericColumns = {
|
@@ -36,11 +38,15 @@ export type PostgresAdapter = BaseDatabaseAdapter & {
|
|
36
38
|
fieldConstraints: Record<string, Record<string, string>>;
|
37
39
|
idType: Args['idType'];
|
38
40
|
logger: DrizzleConfig['logger'];
|
41
|
+
pgSchema?: {
|
42
|
+
table: PgTableFn;
|
43
|
+
} | PgSchema;
|
39
44
|
pool: Pool;
|
40
45
|
poolOptions: Args['pool'];
|
41
46
|
push: boolean;
|
42
47
|
relations: Record<string, GenericRelation>;
|
43
48
|
schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
|
49
|
+
schemaName?: Args['schemaName'];
|
44
50
|
sessions: {
|
45
51
|
[id: string]: {
|
46
52
|
db: DrizzleTransaction;
|
@@ -48,7 +54,7 @@ export type PostgresAdapter = BaseDatabaseAdapter & {
|
|
48
54
|
resolve: () => Promise<void>;
|
49
55
|
};
|
50
56
|
};
|
51
|
-
tables: Record<string, GenericTable
|
57
|
+
tables: Record<string, GenericTable | PgTableWithColumns<any>>;
|
52
58
|
};
|
53
59
|
export type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar';
|
54
60
|
export type PostgresAdapterResult = (args: {
|
package/dist/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,QAAQ,EACR,SAAS,EACV,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAM/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AASnC,eAAO,MAAM,SAAS,mHAYnB,IAAI,eAkUN,CAAA"}
|
package/dist/upsertRow/index.js
CHANGED
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "upsertRow", {
|
|
10
10
|
});
|
11
11
|
const _drizzleorm = require("drizzle-orm");
|
12
12
|
const _errors = require("payload/errors");
|
13
|
-
const _utilities = require("payload/utilities");
|
14
13
|
const _buildFindManyArgs = require("../find/buildFindManyArgs");
|
15
14
|
const _read = require("../transform/read");
|
16
15
|
const _write = require("../transform/write");
|
@@ -260,7 +259,7 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
|
|
260
259
|
field: adapter.fieldConstraints[tableName][error.constraint],
|
261
260
|
message: req.t('error:valueMustBeUnique')
|
262
261
|
}
|
263
|
-
], req
|
262
|
+
], req.t) : error;
|
264
263
|
}
|
265
264
|
// //////////////////////////////////
|
266
265
|
// RETRIEVE NEWLY UPDATED ROW
|
@@ -284,4 +283,4 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
|
|
284
283
|
return result;
|
285
284
|
};
|
286
285
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IGkxOG5Jbml0IH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgcmVxLFxuICB0YWJsZU5hbWUsXG4gIHVwc2VydFRhcmdldCxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nOlxuICAvLyBiYXNlIHJvdywgbG9jYWxlcywgcmVsYXRpb25zaGlwcywgYmxvY2tzLCBhbmQgYXJyYXlzXG4gIGNvbnN0IHJvd1RvSW5zZXJ0ID0gdHJhbnNmb3JtRm9yV3JpdGUoe1xuICAgIGFkYXB0ZXIsXG4gICAgZGF0YSxcbiAgICBmaWVsZHMsXG4gICAgcGF0aCxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgLy8gRmlyc3QsIHdlIGluc2VydCB0aGUgbWFpbiByb3dcbiAgbGV0IGluc2VydGVkUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIHRyeSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHVwc2VydFRhcmdldCB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkXG5cbiAgICAgIGlmIChpZCkge1xuICAgICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0IH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0LCB3aGVyZSB9KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSlcbiAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZXNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpb25zVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IHRleHRzVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgYmxvY2tzVG9JbnNlcnQ6IHsgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdIH0gPSB7fVxuICAgIGNvbnN0IHNlbGVjdHNUb0luc2VydDogeyBbc2VsZWN0VGFibGVOYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIH0gPSB7fVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmZvckVhY2goKFtsb2NhbGUsIGxvY2FsZVJvd10pID0+IHtcbiAgICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGxvY2FsZVJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICAgIGxvY2FsZXNUb0luc2VydC5wdXNoKGxvY2FsZVJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlbGF0aW9uc2hpcHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgcmVsYXRpb24ucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHRleHRzLCBhZGQgcGFyZW50IHRvIGVhY2hcbiAgICBpZiAocm93VG9JbnNlcnQudGV4dHMubGVuZ3RoID4gMCkge1xuICAgICAgcm93VG9JbnNlcnQudGV4dHMuZm9yRWFjaCgodGV4dFJvdykgPT4ge1xuICAgICAgICB0ZXh0Um93LnBhcmVudCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIHRleHRzVG9JbnNlcnQucHVzaCh0ZXh0Um93KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbnVtYmVycywgYWRkIHBhcmVudCB0byBlYWNoXG4gICAgaWYgKHJvd1RvSW5zZXJ0Lm51bWJlcnMubGVuZ3RoID4gMCkge1xuICAgICAgcm93VG9JbnNlcnQubnVtYmVycy5mb3JFYWNoKChudW1iZXJSb3cpID0+IHtcbiAgICAgICAgbnVtYmVyUm93LnBhcmVudCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIG51bWJlcnNUb0luc2VydC5wdXNoKG51bWJlclJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHNlbGVjdHMsIGFkZCBwYXJlbnQgdG8gZWFjaCwgYW5kIHRoZW5cbiAgICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LnNlbGVjdHMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LnNlbGVjdHMpLmZvckVhY2goKFtzZWxlY3RUYWJsZU5hbWUsIHNlbGVjdFJvd3NdKSA9PiB7XG4gICAgICAgIHNlbGVjdFJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiByb3cucGFyZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcm93LnBhcmVudCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0pIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdID0gW11cbiAgICAgICAgICBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXS5wdXNoKHJvdylcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAgIC8vIHN0b3JlIGJ5IHRhYmxlIG5hbWUgYW5kIHJvd3NcbiAgICBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5ibG9ja3MpLmZvckVhY2goKGJsb2NrTmFtZSkgPT4ge1xuICAgICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgICAgYmxvY2tSb3cucm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGlmICghYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSkgYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSA9IFtdXG4gICAgICAgIGlmIChibG9ja1Jvdy5yb3cudXVpZCkge1xuICAgICAgICAgIGRlbGV0ZSBibG9ja1Jvdy5yb3cudXVpZFxuICAgICAgICB9XG4gICAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgTE9DQUxFU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYWxlVGFibGUgPSBhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXVxuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBkYi5pbnNlcnQobG9jYWxlVGFibGUpLnZhbHVlcyhsb2NhbGVzVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBSRUxBVElPTlNISVBTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fcmVsc2BcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBkYixcbiAgICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICAgIHBhcmVudENvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICAgIHJvd3M6IFsuLi5yZWxhdGlvbnNUb0luc2VydCwgLi4ucm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlXSxcbiAgICAgICAgdGFibGVOYW1lOiByZWxhdGlvbnNoaXBzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVsYXRpb25zVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IFRFWFRTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgdGV4dHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3RleHRzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogdGV4dHNUb0luc2VydCxcbiAgICAgICAgdGFibGVOYW1lOiB0ZXh0c1RhYmxlTmFtZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHRleHRzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RleHRzVGFibGVOYW1lXSkudmFsdWVzKHRleHRzVG9JbnNlcnQpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBudW1iZXJzVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9udW1iZXJzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogbnVtYmVyc1RvSW5zZXJ0LFxuICAgICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW251bWJlcnNUYWJsZU5hbWVdKS52YWx1ZXMobnVtYmVyc1RvSW5zZXJ0KS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQkxPQ0tTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGJsb2NrTmFtZSBvZiByb3dUb0luc2VydC5ibG9ja3NUb0RlbGV0ZSkge1xuICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWBcbiAgICAgICAgY29uc3QgYmxvY2tUYWJsZSA9IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXVxuICAgICAgICBhd2FpdCBkYi5kZWxldGUoYmxvY2tUYWJsZSkud2hlcmUoZXEoYmxvY2tUYWJsZS5fcGFyZW50SUQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtibG9ja05hbWUsIGJsb2NrUm93c10gb2YgT2JqZWN0LmVudHJpZXMoYmxvY2tzVG9JbnNlcnQpKSB7XG4gICAgICBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdID0gYXdhaXQgZGJcbiAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXSlcbiAgICAgICAgLnZhbHVlcyhibG9ja1Jvd3MubWFwKCh7IHJvdyB9KSA9PiByb3cpKVxuICAgICAgICAucmV0dXJuaW5nKClcblxuICAgICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXS5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgYmxvY2tSb3dzW2ldLnJvdyA9IHJvd1xuICAgICAgfSlcblxuICAgICAgY29uc3QgYmxvY2tMb2NhbGVJbmRleE1hcDogbnVtYmVyW10gPSBbXVxuXG4gICAgICBjb25zdCBibG9ja0xvY2FsZVJvd3NUb0luc2VydCA9IGJsb2NrUm93cy5yZWR1Y2UoKGFjYywgYmxvY2tSb3csIGkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5lbnRyaWVzKGJsb2NrUm93LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5mb3JFYWNoKChbYmxvY2tMb2NhbGUsIGJsb2NrTG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhibG9ja0xvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVEYXRhLl9wYXJlbnRJRCA9IGJsb2NrUm93LnJvdy5pZFxuICAgICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX2xvY2FsZSA9IGJsb2NrTG9jYWxlXG4gICAgICAgICAgICAgIGFjYy5wdXNoKGJsb2NrTG9jYWxlRGF0YSlcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVJbmRleE1hcC5wdXNoKGkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIFtdKVxuXG4gICAgICBpZiAoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCBkYlxuICAgICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja05hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICAudmFsdWVzKGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBpbnNlcnRBcnJheXMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXM6IGJsb2NrUm93cy5tYXAoKHsgYXJyYXlzIH0pID0+IGFycmF5cyksXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRSb3dzOiBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIEFSUkFZUyBSRUNVUlNJVkVMWVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGFycmF5VGFibGVOYW1lIG9mIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmFycmF5cykpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdBcnJheVJvd3Moe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgZGIsXG4gICAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgaW5zZXJ0QXJyYXlzKHtcbiAgICAgIGFkYXB0ZXIsXG4gICAgICBhcnJheXM6IFtyb3dUb0luc2VydC5hcnJheXNdLFxuICAgICAgZGIsXG4gICAgICBwYXJlbnRSb3dzOiBbaW5zZXJ0ZWRSb3ddLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIGhhc01hbnkgU0VMRUNUU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGZvciAoY29uc3QgW3NlbGVjdFRhYmxlTmFtZSwgdGFibGVSb3dzXSBvZiBPYmplY3QuZW50cmllcyhzZWxlY3RzVG9JbnNlcnQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RUYWJsZSA9IGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV1cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IGRiLmRlbGV0ZShzZWxlY3RUYWJsZSkud2hlcmUoZXEoc2VsZWN0VGFibGUucGFyZW50LCBpbnNlcnRlZFJvdy5pZCkpXG4gICAgICB9XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoc2VsZWN0VGFibGUpLnZhbHVlcyh0YWJsZVJvd3MpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yLmNvZGUgPT09ICcyMzUwNSdcbiAgICAgID8gbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiBhZGFwdGVyLmZpZWxkQ29uc3RyYWludHNbdGFibGVOYW1lXVtlcnJvci5jb25zdHJhaW50XSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogcmVxLnQoJ2Vycm9yOnZhbHVlTXVzdEJlVW5pcXVlJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVxPy50ID8/IGkxOG5Jbml0KHJlcS5wYXlsb2FkLmNvbmZpZy5pMThuKS50LFxuICAgICAgICApXG4gICAgICA6IGVycm9yXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFJFVFJJRVZFIE5FV0xZIFVQREFURUQgUk9XXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCBmaW5kTWFueUFyZ3MgPSBidWlsZEZpbmRNYW55QXJncyh7XG4gICAgYWRhcHRlcixcbiAgICBkZXB0aDogMCxcbiAgICBmaWVsZHMsXG4gICAgdGFibGVOYW1lLFxuICB9KVxuXG4gIGZpbmRNYW55QXJncy53aGVyZSA9IGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGluc2VydGVkUm93LmlkKVxuXG4gIGNvbnN0IGRvYyA9IGF3YWl0IGRiLnF1ZXJ5W3RhYmxlTmFtZV0uZmluZEZpcnN0KGZpbmRNYW55QXJncylcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRSQU5TRk9STSBEQVRBXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm08VD4oe1xuICAgIGNvbmZpZzogYWRhcHRlci5wYXlsb2FkLmNvbmZpZyxcbiAgICBkYXRhOiBkb2MsXG4gICAgZmllbGRzLFxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ1cHNlcnRSb3ciLCJpZCIsImFkYXB0ZXIiLCJkYXRhIiwiZGIiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwidGFibGVOYW1lIiwidXBzZXJ0VGFyZ2V0Iiwid2hlcmUiLCJyb3dUb0luc2VydCIsInRyYW5zZm9ybUZvcldyaXRlIiwiaW5zZXJ0ZWRSb3ciLCJ0YXJnZXQiLCJ0YWJsZXMiLCJyb3ciLCJpbnNlcnQiLCJ2YWx1ZXMiLCJvbkNvbmZsaWN0RG9VcGRhdGUiLCJzZXQiLCJyZXR1cm5pbmciLCJsb2NhbGVzVG9JbnNlcnQiLCJyZWxhdGlvbnNUb0luc2VydCIsInRleHRzVG9JbnNlcnQiLCJudW1iZXJzVG9JbnNlcnQiLCJibG9ja3NUb0luc2VydCIsInNlbGVjdHNUb0luc2VydCIsIk9iamVjdCIsImtleXMiLCJsb2NhbGVzIiwibGVuZ3RoIiwiZW50cmllcyIsImZvckVhY2giLCJsb2NhbGUiLCJsb2NhbGVSb3ciLCJfcGFyZW50SUQiLCJfbG9jYWxlIiwicHVzaCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbiIsInBhcmVudCIsInRleHRzIiwidGV4dFJvdyIsIm51bWJlcnMiLCJudW1iZXJSb3ciLCJzZWxlY3RzIiwic2VsZWN0VGFibGVOYW1lIiwic2VsZWN0Um93cyIsImJsb2NrcyIsImJsb2NrTmFtZSIsImJsb2NrUm93IiwidXVpZCIsImxvY2FsZVRhYmxlIiwiZGVsZXRlIiwiZXEiLCJyZWxhdGlvbnNoaXBzVGFibGVOYW1lIiwiZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoIiwibG9jYWxlQ29sdW1uTmFtZSIsInBhcmVudENvbHVtbk5hbWUiLCJwYXJlbnRJRCIsInBhdGhDb2x1bW5OYW1lIiwicm93cyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsInRleHRzVGFibGVOYW1lIiwibnVtYmVyc1RhYmxlTmFtZSIsImluc2VydGVkQmxvY2tSb3dzIiwiYmxvY2tzVG9EZWxldGUiLCJibG9ja1RhYmxlTmFtZSIsImJsb2NrVGFibGUiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZXJyb3IiLCJjb2RlIiwiVmFsaWRhdGlvbkVycm9yIiwiZmllbGQiLCJmaWVsZENvbnN0cmFpbnRzIiwiY29uc3RyYWludCIsIm1lc3NhZ2UiLCJ0IiwiaTE4bkluaXQiLCJwYXlsb2FkIiwiY29uZmlnIiwiaTE4biIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJkb2MiLCJxdWVyeSIsImZpbmRGaXJzdCIsInJlc3VsdCIsInRyYW5zZm9ybSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWlCdkJBOzs7ZUFBQUE7Ozs0QkFkTTt3QkFDYTsyQkFDUDttQ0FLUztzQkFDUjt1QkFDUTt5Q0FDTTswQ0FDQzs4QkFDWjtBQUV0QixNQUFNQSxZQUFZLE9BQTZCLEVBQ3BEQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQUUsRUFDVEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNE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
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcblxuaW1wb3J0IHR5cGUgeyBCbG9ja1Jvd1RvSW5zZXJ0IH0gZnJvbSAnLi4vdHJhbnNmb3JtL3dyaXRlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgYnVpbGRGaW5kTWFueUFyZ3MgfSBmcm9tICcuLi9maW5kL2J1aWxkRmluZE1hbnlBcmdzJ1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnLi4vdHJhbnNmb3JtL3JlYWQnXG5pbXBvcnQgeyB0cmFuc2Zvcm1Gb3JXcml0ZSB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZSdcbmltcG9ydCB7IGRlbGV0ZUV4aXN0aW5nQXJyYXlSb3dzIH0gZnJvbSAnLi9kZWxldGVFeGlzdGluZ0FycmF5Um93cydcbmltcG9ydCB7IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoJ1xuaW1wb3J0IHsgaW5zZXJ0QXJyYXlzIH0gZnJvbSAnLi9pbnNlcnRBcnJheXMnXG5cbmV4cG9ydCBjb25zdCB1cHNlcnRSb3cgPSBhc3luYyA8VCBleHRlbmRzIFR5cGVXaXRoSUQ+KHtcbiAgaWQsXG4gIGFkYXB0ZXIsXG4gIGRhdGEsXG4gIGRiLFxuICBmaWVsZHMsXG4gIG9wZXJhdGlvbixcbiAgcGF0aCA9ICcnLFxuICByZXEsXG4gIHRhYmxlTmFtZSxcbiAgdXBzZXJ0VGFyZ2V0LFxuICB3aGVyZSxcbn06IEFyZ3MpOiBQcm9taXNlPFQ+ID0+IHtcbiAgLy8gU3BsaXQgb3V0IHRoZSBpbmNvbWluZyBkYXRhIGludG8gdGhlIGNvcnJlc3BvbmRpbmc6XG4gIC8vIGJhc2Ugcm93LCBsb2NhbGVzLCByZWxhdGlvbnNoaXBzLCBibG9ja3MsIGFuZCBhcnJheXNcbiAgY29uc3Qgcm93VG9JbnNlcnQgPSB0cmFuc2Zvcm1Gb3JXcml0ZSh7XG4gICAgYWRhcHRlcixcbiAgICBkYXRhLFxuICAgIGZpZWxkcyxcbiAgICBwYXRoLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICAvLyBGaXJzdCwgd2UgaW5zZXJ0IHRoZSBtYWluIHJvd1xuICBsZXQgaW5zZXJ0ZWRSb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgdHJ5IHtcbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdXBzZXJ0VGFyZ2V0IHx8IGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWRcblxuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIHJvd1RvSW5zZXJ0LnJvdy5pZCA9IGlkXG4gICAgICAgIDtbaW5zZXJ0ZWRSb3ddID0gYXdhaXQgZGJcbiAgICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgICAgLm9uQ29uZmxpY3REb1VwZGF0ZSh7IHNldDogcm93VG9JbnNlcnQucm93LCB0YXJnZXQgfSlcbiAgICAgICAgICAucmV0dXJuaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDtbaW5zZXJ0ZWRSb3ddID0gYXdhaXQgZGJcbiAgICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgICAgLm9uQ29uZmxpY3REb1VwZGF0ZSh7IHNldDogcm93VG9JbnNlcnQucm93LCB0YXJnZXQsIHdoZXJlIH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIDtbaW5zZXJ0ZWRSb3ddID0gYXdhaXQgZGJcbiAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAudmFsdWVzKHJvd1RvSW5zZXJ0LnJvdylcbiAgICAgICAgLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxlc1RvSW5zZXJ0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0gW11cbiAgICBjb25zdCByZWxhdGlvbnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgdGV4dHNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgbnVtYmVyc1RvSW5zZXJ0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0gW11cbiAgICBjb25zdCBibG9ja3NUb0luc2VydDogeyBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W10gfSA9IHt9XG4gICAgY29uc3Qgc2VsZWN0c1RvSW5zZXJ0OiB7IFtzZWxlY3RUYWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfSA9IHt9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbG9jYWxlIHJvd3Mgd2l0aCBkYXRhLCBhZGQgdGhlIHBhcmVudCBhbmQgbG9jYWxlIHRvIGVhY2hcbiAgICBpZiAoT2JqZWN0LmtleXMocm93VG9JbnNlcnQubG9jYWxlcykubGVuZ3RoID4gMCkge1xuICAgICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQubG9jYWxlcykuZm9yRWFjaCgoW2xvY2FsZSwgbG9jYWxlUm93XSkgPT4ge1xuICAgICAgICBsb2NhbGVSb3cuX3BhcmVudElEID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgbG9jYWxlUm93Ll9sb2NhbGUgPSBsb2NhbGVcbiAgICAgICAgbG9jYWxlc1RvSW5zZXJ0LnB1c2gobG9jYWxlUm93KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgcmVsYXRpb25zaGlwcywgYWRkIHBhcmVudCB0byBlYWNoXG4gICAgaWYgKHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcm93VG9JbnNlcnQucmVsYXRpb25zaGlwcy5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICByZWxhdGlvbi5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICByZWxhdGlvbnNUb0luc2VydC5wdXNoKHJlbGF0aW9uKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgdGV4dHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC50ZXh0cy5sZW5ndGggPiAwKSB7XG4gICAgICByb3dUb0luc2VydC50ZXh0cy5mb3JFYWNoKCh0ZXh0Um93KSA9PiB7XG4gICAgICAgIHRleHRSb3cucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgdGV4dHNUb0luc2VydC5wdXNoKHRleHRSb3cpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBudW1iZXJzLCBhZGQgcGFyZW50IHRvIGVhY2hcbiAgICBpZiAocm93VG9JbnNlcnQubnVtYmVycy5sZW5ndGggPiAwKSB7XG4gICAgICByb3dUb0luc2VydC5udW1iZXJzLmZvckVhY2goKG51bWJlclJvdykgPT4ge1xuICAgICAgICBudW1iZXJSb3cucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgbnVtYmVyc1RvSW5zZXJ0LnB1c2gobnVtYmVyUm93KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgc2VsZWN0cywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAgIC8vIHN0b3JlIGJ5IHRhYmxlIG5hbWUgYW5kIHJvd3NcbiAgICBpZiAoT2JqZWN0LmtleXMocm93VG9JbnNlcnQuc2VsZWN0cykubGVuZ3RoID4gMCkge1xuICAgICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQuc2VsZWN0cykuZm9yRWFjaCgoW3NlbGVjdFRhYmxlTmFtZSwgc2VsZWN0Um93c10pID0+IHtcbiAgICAgICAgc2VsZWN0Um93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJvdy5wYXJlbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByb3cucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXSkgc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0gPSBbXVxuICAgICAgICAgIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdLnB1c2gocm93KVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgYmxvY2tzLCBhZGQgcGFyZW50IHRvIGVhY2gsIGFuZCB0aGVuXG4gICAgLy8gc3RvcmUgYnkgdGFibGUgbmFtZSBhbmQgcm93c1xuICAgIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmJsb2NrcykuZm9yRWFjaCgoYmxvY2tOYW1lKSA9PiB7XG4gICAgICByb3dUb0luc2VydC5ibG9ja3NbYmxvY2tOYW1lXS5mb3JFYWNoKChibG9ja1JvdykgPT4ge1xuICAgICAgICBibG9ja1Jvdy5yb3cuX3BhcmVudElEID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgaWYgKCFibG9ja3NUb0luc2VydFtibG9ja05hbWVdKSBibG9ja3NUb0luc2VydFtibG9ja05hbWVdID0gW11cbiAgICAgICAgaWYgKGJsb2NrUm93LnJvdy51dWlkKSB7XG4gICAgICAgICAgZGVsZXRlIGJsb2NrUm93LnJvdy51dWlkXG4gICAgICAgIH1cbiAgICAgICAgYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXS5wdXNoKGJsb2NrUm93KVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBMT0NBTEVTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKGxvY2FsZXNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBsb2NhbGVUYWJsZSA9IGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fbG9jYWxlc2BdXG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IGRiLmRlbGV0ZShsb2NhbGVUYWJsZSkud2hlcmUoZXEobG9jYWxlVGFibGUuX3BhcmVudElELCBpbnNlcnRlZFJvdy5pZCkpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRiLmluc2VydChsb2NhbGVUYWJsZSkudmFsdWVzKGxvY2FsZXNUb0luc2VydClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIFJFTEFUSU9OU0hJUFNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCByZWxhdGlvbnNoaXBzVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9yZWxzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogWy4uLnJlbGF0aW9uc1RvSW5zZXJ0LCAuLi5yb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzVG9EZWxldGVdLFxuICAgICAgICB0YWJsZU5hbWU6IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChyZWxhdGlvbnNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoYWRhcHRlci50YWJsZXNbcmVsYXRpb25zaGlwc1RhYmxlTmFtZV0pLnZhbHVlcyhyZWxhdGlvbnNUb0luc2VydClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIGhhc01hbnkgVEVYVFNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCB0ZXh0c1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fdGV4dHNgXG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgZGIsXG4gICAgICAgIGxvY2FsZUNvbHVtbk5hbWU6ICdsb2NhbGUnLFxuICAgICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICBwYXRoQ29sdW1uTmFtZTogJ3BhdGgnLFxuICAgICAgICByb3dzOiB0ZXh0c1RvSW5zZXJ0LFxuICAgICAgICB0YWJsZU5hbWU6IHRleHRzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodGV4dHNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGV4dHNUYWJsZU5hbWVdKS52YWx1ZXModGV4dHNUb0luc2VydCkucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIGhhc01hbnkgTlVNQkVSU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IG51bWJlcnNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X251bWJlcnNgXG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgZGIsXG4gICAgICAgIGxvY2FsZUNvbHVtbk5hbWU6ICdsb2NhbGUnLFxuICAgICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICBwYXRoQ29sdW1uTmFtZTogJ3BhdGgnLFxuICAgICAgICByb3dzOiBudW1iZXJzVG9JbnNlcnQsXG4gICAgICAgIHRhYmxlTmFtZTogbnVtYmVyc1RhYmxlTmFtZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKG51bWJlcnNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoYWRhcHRlci50YWJsZXNbbnVtYmVyc1RhYmxlTmFtZV0pLnZhbHVlcyhudW1iZXJzVG9JbnNlcnQpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBCTE9DS1NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBpbnNlcnRlZEJsb2NrUm93czogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4gPSB7fVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGZvciAoY29uc3QgYmxvY2tOYW1lIG9mIHJvd1RvSW5zZXJ0LmJsb2Nrc1RvRGVsZXRlKSB7XG4gICAgICAgIGNvbnN0IGJsb2NrVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja05hbWV9YFxuICAgICAgICBjb25zdCBibG9ja1RhYmxlID0gYWRhcHRlci50YWJsZXNbYmxvY2tUYWJsZU5hbWVdXG4gICAgICAgIGF3YWl0IGRiLmRlbGV0ZShibG9ja1RhYmxlKS53aGVyZShlcShibG9ja1RhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2Jsb2NrTmFtZSwgYmxvY2tSb3dzXSBvZiBPYmplY3QuZW50cmllcyhibG9ja3NUb0luc2VydCkpIHtcbiAgICAgIGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWBdKVxuICAgICAgICAudmFsdWVzKGJsb2NrUm93cy5tYXAoKHsgcm93IH0pID0+IHJvdykpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuXG4gICAgICBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICBibG9ja1Jvd3NbaV0ucm93ID0gcm93XG4gICAgICB9KVxuXG4gICAgICBjb25zdCBibG9ja0xvY2FsZUluZGV4TWFwOiBudW1iZXJbXSA9IFtdXG5cbiAgICAgIGNvbnN0IGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0ID0gYmxvY2tSb3dzLnJlZHVjZSgoYWNjLCBibG9ja1JvdywgaSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LmVudHJpZXMoYmxvY2tSb3cubG9jYWxlcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGJsb2NrUm93LmxvY2FsZXMpLmZvckVhY2goKFtibG9ja0xvY2FsZSwgYmxvY2tMb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGJsb2NrTG9jYWxlRGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX3BhcmVudElEID0gYmxvY2tSb3cucm93LmlkXG4gICAgICAgICAgICAgIGJsb2NrTG9jYWxlRGF0YS5fbG9jYWxlID0gYmxvY2tMb2NhbGVcbiAgICAgICAgICAgICAgYWNjLnB1c2goYmxvY2tMb2NhbGVEYXRhKVxuICAgICAgICAgICAgICBibG9ja0xvY2FsZUluZGV4TWFwLnB1c2goaSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pXG5cbiAgICAgIGlmIChibG9ja0xvY2FsZVJvd3NUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1fbG9jYWxlc2BdKVxuICAgICAgICAgIC52YWx1ZXMoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQpXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGFycmF5czogYmxvY2tSb3dzLm1hcCgoeyBhcnJheXMgfSkgPT4gYXJyYXlzKSxcbiAgICAgICAgZGIsXG4gICAgICAgIHBhcmVudFJvd3M6IGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0sXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQVJSQVlTIFJFQ1VSU0lWRUxZXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGZvciAoY29uc3QgYXJyYXlUYWJsZU5hbWUgb2YgT2JqZWN0LmtleXMocm93VG9JbnNlcnQuYXJyYXlzKSkge1xuICAgICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ0FycmF5Um93cyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBkYixcbiAgICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgICAgdGFibGVOYW1lOiBhcnJheVRhYmxlTmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhd2FpdCBpbnNlcnRBcnJheXMoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGFycmF5czogW3Jvd1RvSW5zZXJ0LmFycmF5c10sXG4gICAgICBkYixcbiAgICAgIHBhcmVudFJvd3M6IFtpbnNlcnRlZFJvd10sXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgaGFzTWFueSBTRUxFQ1RTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZm9yIChjb25zdCBbc2VsZWN0VGFibGVOYW1lLCB0YWJsZVJvd3NdIG9mIE9iamVjdC5lbnRyaWVzKHNlbGVjdHNUb0luc2VydCkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdFRhYmxlID0gYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXVxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgYXdhaXQgZGIuZGVsZXRlKHNlbGVjdFRhYmxlKS53aGVyZShlcShzZWxlY3RUYWJsZS5wYXJlbnQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cbiAgICAgIGF3YWl0IGRiLmluc2VydChzZWxlY3RUYWJsZSkudmFsdWVzKHRhYmxlUm93cykucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJzIzNTA1J1xuICAgICAgPyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6IGFkYXB0ZXIuZmllbGRDb25zdHJhaW50c1t0YWJsZU5hbWVdW2Vycm9yLmNvbnN0cmFpbnRdLFxuICAgICAgICAgICAgICBtZXNzYWdlOiByZXEudCgnZXJyb3I6dmFsdWVNdXN0QmVVbmlxdWUnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXEudCxcbiAgICAgICAgKVxuICAgICAgOiBlcnJvclxuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBSRVRSSUVWRSBORVdMWSBVUERBVEVEIFJPV1xuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgZmluZE1hbnlBcmdzID0gYnVpbGRGaW5kTWFueUFyZ3Moe1xuICAgIGFkYXB0ZXIsXG4gICAgZGVwdGg6IDAsXG4gICAgZmllbGRzLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICBmaW5kTWFueUFyZ3Mud2hlcmUgPSBlcShhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkLCBpbnNlcnRlZFJvdy5pZClcblxuICBjb25zdCBkb2MgPSBhd2FpdCBkYi5xdWVyeVt0YWJsZU5hbWVdLmZpbmRGaXJzdChmaW5kTWFueUFyZ3MpXG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBUUkFOU0ZPUk0gREFUQVxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgcmVzdWx0ID0gdHJhbnNmb3JtPFQ+KHtcbiAgICBjb25maWc6IGFkYXB0ZXIucGF5bG9hZC5jb25maWcsXG4gICAgZGF0YTogZG9jLFxuICAgIGZpZWxkcyxcbiAgfSlcblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsidXBzZXJ0Um93IiwiaWQiLCJhZGFwdGVyIiwiZGF0YSIsImRiIiwiZmllbGRzIiwib3BlcmF0aW9uIiwicGF0aCIsInJlcSIsInRhYmxlTmFtZSIsInVwc2VydFRhcmdldCIsIndoZXJlIiwicm93VG9JbnNlcnQiLCJ0cmFuc2Zvcm1Gb3JXcml0ZSIsImluc2VydGVkUm93IiwidGFyZ2V0IiwidGFibGVzIiwicm93IiwiaW5zZXJ0IiwidmFsdWVzIiwib25Db25mbGljdERvVXBkYXRlIiwic2V0IiwicmV0dXJuaW5nIiwibG9jYWxlc1RvSW5zZXJ0IiwicmVsYXRpb25zVG9JbnNlcnQiLCJ0ZXh0c1RvSW5zZXJ0IiwibnVtYmVyc1RvSW5zZXJ0IiwiYmxvY2tzVG9JbnNlcnQiLCJzZWxlY3RzVG9JbnNlcnQiLCJPYmplY3QiLCJrZXlzIiwibG9jYWxlcyIsImxlbmd0aCIsImVudHJpZXMiLCJmb3JFYWNoIiwibG9jYWxlIiwibG9jYWxlUm93IiwiX3BhcmVudElEIiwiX2xvY2FsZSIsInB1c2giLCJyZWxhdGlvbnNoaXBzIiwicmVsYXRpb24iLCJwYXJlbnQiLCJ0ZXh0cyIsInRleHRSb3ciLCJudW1iZXJzIiwibnVtYmVyUm93Iiwic2VsZWN0cyIsInNlbGVjdFRhYmxlTmFtZSIsInNlbGVjdFJvd3MiLCJibG9ja3MiLCJibG9ja05hbWUiLCJibG9ja1JvdyIsInV1aWQiLCJsb2NhbGVUYWJsZSIsImRlbGV0ZSIsImVxIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsImRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCIsImxvY2FsZUNvbHVtbk5hbWUiLCJwYXJlbnRDb2x1bW5OYW1lIiwicGFyZW50SUQiLCJwYXRoQ29sdW1uTmFtZSIsInJvd3MiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJ0ZXh0c1RhYmxlTmFtZSIsIm51bWJlcnNUYWJsZU5hbWUiLCJpbnNlcnRlZEJsb2NrUm93cyIsImJsb2Nrc1RvRGVsZXRlIiwiYmxvY2tUYWJsZU5hbWUiLCJibG9ja1RhYmxlIiwiYmxvY2tSb3dzIiwibWFwIiwiaSIsImJsb2NrTG9jYWxlSW5kZXhNYXAiLCJibG9ja0xvY2FsZVJvd3NUb0luc2VydCIsInJlZHVjZSIsImFjYyIsImJsb2NrTG9jYWxlIiwiYmxvY2tMb2NhbGVEYXRhIiwiaW5zZXJ0QXJyYXlzIiwiYXJyYXlzIiwicGFyZW50Um93cyIsImFycmF5VGFibGVOYW1lIiwiZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MiLCJ0YWJsZVJvd3MiLCJzZWxlY3RUYWJsZSIsImVycm9yIiwiY29kZSIsIlZhbGlkYXRpb25FcnJvciIsImZpZWxkIiwiZmllbGRDb25zdHJhaW50cyIsImNvbnN0cmFpbnQiLCJtZXNzYWdlIiwidCIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJkb2MiLCJxdWVyeSIsImZpbmRGaXJzdCIsInJlc3VsdCIsInRyYW5zZm9ybSIsImNvbmZpZyIsInBheWxvYWQiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFnQnZCQTs7O2VBQUFBOzs7NEJBYk07d0JBQ2E7bUNBS0U7c0JBQ1I7dUJBQ1E7eUNBQ007MENBQ0M7OEJBQ1o7QUFFdEIsTUFBTUEsWUFBWSxPQUE2QixFQUNwREMsRUFBRSxFQUNGQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsRUFBRSxFQUNGQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsT0FBTyxFQUFFLEVBQ1RDLEdBQUcsRUFDSEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLEtBQUssRUFDQTtJQUNMLHNEQUFzRDtJQUN0RCx1REFBdUQ7SUFDdkQsTUFBTUMsY0FBY0MsSUFBQUEsd0JBQWlCLEVBQUM7UUFDcENYO1FBQ0FDO1FBQ0FFO1FBQ0FFO1FBQ0FFO0lBQ0Y7SUFFQSxnQ0FBZ0M7SUFDaEMsSUFBSUs7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
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"insertArrays.d.ts","sourceRoot":"","sources":["../../src/upsertRow/insertArrays.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,EAAE,CAAA;IACH,EAAE,EAAE,SAAS,CAAA;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACtC,CAAA;AAYD,eAAO,MAAM,YAAY,wCAA+C,IAAI,KAAG,QAAQ,IAAI,
|
1
|
+
{"version":3,"file":"insertArrays.d.ts","sourceRoot":"","sources":["../../src/upsertRow/insertArrays.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,EAAE,CAAA;IACH,EAAE,EAAE,SAAS,CAAA;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACtC,CAAA;AAYD,eAAO,MAAM,YAAY,wCAA+C,IAAI,KAAG,QAAQ,IAAI,CAyE1F,CAAA"}
|
@@ -24,7 +24,7 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
24
24
|
const parentID = parentRows[parentRowIndex].id;
|
25
25
|
// Add any sub arrays that need to be created
|
26
26
|
// We will call this recursively below
|
27
|
-
arrayRows.forEach((arrayRow)=>{
|
27
|
+
arrayRows.forEach((arrayRow, i)=>{
|
28
28
|
if (Object.keys(arrayRow.arrays).length > 0) {
|
29
29
|
rowsByTable[tableName].arrays.push(arrayRow.arrays);
|
30
30
|
}
|
@@ -35,6 +35,9 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
35
35
|
arrayRowLocaleData._parentID = arrayRow.row.id;
|
36
36
|
arrayRowLocaleData._locale = arrayRowLocale;
|
37
37
|
rowsByTable[tableName].locales.push(arrayRowLocaleData);
|
38
|
+
if (!arrayRow.row.id) {
|
39
|
+
arrayRowLocaleData._getParentID = (rows)=>rows[i].id;
|
40
|
+
}
|
38
41
|
});
|
39
42
|
});
|
40
43
|
});
|
@@ -49,6 +52,15 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
49
52
|
}
|
50
53
|
// Insert locale rows
|
51
54
|
if (adapter.tables[`${tableName}_locales`] && row.locales.length > 0) {
|
55
|
+
if (!row.locales[0]._parentID) {
|
56
|
+
row.locales = row.locales.map((localeRow, i)=>{
|
57
|
+
if (typeof localeRow._getParentID === 'function') {
|
58
|
+
localeRow._parentID = localeRow._getParentID(insertedRows);
|
59
|
+
delete localeRow._getParentID;
|
60
|
+
}
|
61
|
+
return localeRow;
|
62
|
+
});
|
63
|
+
}
|
52
64
|
await db.insert(adapter.tables[`${tableName}_locales`]).values(row.locales).returning();
|
53
65
|
}
|
54
66
|
// If there are sub arrays, call this function recursively
|
@@ -63,4 +75,4 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
63
75
|
}
|
64
76
|
};
|
65
77
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5zZXJ0QXJyYXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERyaXp6bGVEQiwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9W11cbiAgZGI6IERyaXp6bGVEQlxuICBwYXJlbnRSb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG59XG5cbnR5cGUgUm93c0J5VGFibGUgPSB7XG4gIFt0YWJsZU5hbWU6IHN0cmluZ106IHtcbiAgICBhcnJheXM6IHtcbiAgICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICAgIH1bXVxuICAgIGxvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydEFycmF5cyA9IGFzeW5jICh7IGFkYXB0ZXIsIGFycmF5cywgZGIsIHBhcmVudFJvd3MgfTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAvLyBNYWludGFpbiBhIG1hcCBvZiBmbGF0dGVuZWQgcm93cyBieSB0YWJsZVxuICBjb25zdCByb3dzQnlUYWJsZTogUm93c0J5VGFibGUgPSB7fVxuXG4gIGFycmF5cy5mb3JFYWNoKChhcnJheXNCeVRhYmxlLCBwYXJlbnRSb3dJbmRleCkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKGFycmF5c0J5VGFibGUpLmZvckVhY2goKFt0YWJsZU5hbWUsIGFycmF5Um93c10pID0+
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5zZXJ0QXJyYXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERyaXp6bGVEQiwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9W11cbiAgZGI6IERyaXp6bGVEQlxuICBwYXJlbnRSb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG59XG5cbnR5cGUgUm93c0J5VGFibGUgPSB7XG4gIFt0YWJsZU5hbWU6IHN0cmluZ106IHtcbiAgICBhcnJheXM6IHtcbiAgICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICAgIH1bXVxuICAgIGxvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydEFycmF5cyA9IGFzeW5jICh7IGFkYXB0ZXIsIGFycmF5cywgZGIsIHBhcmVudFJvd3MgfTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAvLyBNYWludGFpbiBhIG1hcCBvZiBmbGF0dGVuZWQgcm93cyBieSB0YWJsZVxuICBjb25zdCByb3dzQnlUYWJsZTogUm93c0J5VGFibGUgPSB7fVxuXG4gIGFycmF5cy5mb3JFYWNoKChhcnJheXNCeVRhYmxlLCBwYXJlbnRSb3dJbmRleCkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKGFycmF5c0J5VGFibGUpLmZvckVhY2goKFt0YWJsZU5hbWUsIGFycmF5Um93c10pID0+IHtcbiAgICAgIC8vIElmIHRoZSB0YWJsZSBkb2Vzbid0IGV4aXN0IGluIG1hcCwgaW5pdGlhbGl6ZSBpdFxuICAgICAgaWYgKCFyb3dzQnlUYWJsZVt0YWJsZU5hbWVdKSB7XG4gICAgICAgIHJvd3NCeVRhYmxlW3RhYmxlTmFtZV0gPSB7XG4gICAgICAgICAgYXJyYXlzOiBbXSxcbiAgICAgICAgICBsb2NhbGVzOiBbXSxcbiAgICAgICAgICByb3dzOiBbXSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnRJRCA9IHBhcmVudFJvd3NbcGFyZW50Um93SW5kZXhdLmlkXG5cbiAgICAgIC8vIEFkZCBhbnkgc3ViIGFycmF5cyB0aGF0IG5lZWQgdG8gYmUgY3JlYXRlZFxuICAgICAgLy8gV2Ugd2lsbCBjYWxsIHRoaXMgcmVjdXJzaXZlbHkgYmVsb3dcbiAgICAgIGFycmF5Um93cy5mb3JFYWNoKChhcnJheVJvdywgaSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXJyYXlSb3cuYXJyYXlzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcm93c0J5VGFibGVbdGFibGVOYW1lXS5hcnJheXMucHVzaChhcnJheVJvdy5hcnJheXMpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdXAgcGFyZW50IElEcyBmb3IgYm90aCByb3cgYW5kIGxvY2FsZSByb3dcbiAgICAgICAgYXJyYXlSb3cucm93Ll9wYXJlbnRJRCA9IHBhcmVudElEXG4gICAgICAgIHJvd3NCeVRhYmxlW3RhYmxlTmFtZV0ucm93cy5wdXNoKGFycmF5Um93LnJvdylcblxuICAgICAgICBPYmplY3QuZW50cmllcyhhcnJheVJvdy5sb2NhbGVzKS5mb3JFYWNoKChbYXJyYXlSb3dMb2NhbGUsIGFycmF5Um93TG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICBhcnJheVJvd0xvY2FsZURhdGEuX3BhcmVudElEID0gYXJyYXlSb3cucm93LmlkXG4gICAgICAgICAgYXJyYXlSb3dMb2NhbGVEYXRhLl9sb2NhbGUgPSBhcnJheVJvd0xvY2FsZVxuICAgICAgICAgIHJvd3NCeVRhYmxlW3RhYmxlTmFtZV0ubG9jYWxlcy5wdXNoKGFycmF5Um93TG9jYWxlRGF0YSlcbiAgICAgICAgICBpZiAoIWFycmF5Um93LnJvdy5pZCkge1xuICAgICAgICAgICAgYXJyYXlSb3dMb2NhbGVEYXRhLl9nZXRQYXJlbnRJRCA9IChyb3dzKSA9PiByb3dzW2ldLmlkXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9KVxuXG4gIC8vIEluc2VydCBhbGwgY29ycmVzcG9uZGluZyBhcnJheXNcbiAgLy8gKG9uZSBpbnNlcnQgcGVyIGFycmF5IHRhYmxlKVxuICBmb3IgKGNvbnN0IFt0YWJsZU5hbWUsIHJvd10gb2YgT2JqZWN0LmVudHJpZXMocm93c0J5VGFibGUpKSB7XG4gICAgLy8gdGhlIG5lc3RlZCBhcnJheXMgbmVlZCB0aGUgSUQgZm9yIHRoZSBwYXJlbnRJRCBmb3JlaWduIGtleVxuICAgIGxldCBpbnNlcnRlZFJvd3M6IEFyZ3NbJ3BhcmVudFJvd3MnXVxuICAgIGlmIChyb3cucm93cy5sZW5ndGggPiAwKSB7XG4gICAgICBpbnNlcnRlZFJvd3MgPSBhd2FpdCBkYi5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSkudmFsdWVzKHJvdy5yb3dzKS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIEluc2VydCBsb2NhbGUgcm93c1xuICAgIGlmIChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXSAmJiByb3cubG9jYWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoIXJvdy5sb2NhbGVzWzBdLl9wYXJlbnRJRCkge1xuICAgICAgICByb3cubG9jYWxlcyA9IHJvdy5sb2NhbGVzLm1hcCgobG9jYWxlUm93LCBpKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVSb3cuX2dldFBhcmVudElEID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsb2NhbGVSb3cuX3BhcmVudElEID0gbG9jYWxlUm93Ll9nZXRQYXJlbnRJRChpbnNlcnRlZFJvd3MpXG4gICAgICAgICAgICBkZWxldGUgbG9jYWxlUm93Ll9nZXRQYXJlbnRJRFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbG9jYWxlUm93XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9sb2NhbGVzYF0pLnZhbHVlcyhyb3cubG9jYWxlcykucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgc3ViIGFycmF5cywgY2FsbCB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5XG4gICAgaWYgKHJvdy5hcnJheXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgaW5zZXJ0QXJyYXlzKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgYXJyYXlzOiByb3cuYXJyYXlzLFxuICAgICAgICBkYixcbiAgICAgICAgcGFyZW50Um93czogaW5zZXJ0ZWRSb3dzLFxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbnNlcnRBcnJheXMiLCJhZGFwdGVyIiwiYXJyYXlzIiwiZGIiLCJwYXJlbnRSb3dzIiwicm93c0J5VGFibGUiLCJmb3JFYWNoIiwiYXJyYXlzQnlUYWJsZSIsInBhcmVudFJvd0luZGV4IiwiT2JqZWN0IiwiZW50cmllcyIsInRhYmxlTmFtZSIsImFycmF5Um93cyIsImxvY2FsZXMiLCJyb3dzIiwicGFyZW50SUQiLCJpZCIsImFycmF5Um93IiwiaSIsImtleXMiLCJsZW5ndGgiLCJwdXNoIiwicm93IiwiX3BhcmVudElEIiwiYXJyYXlSb3dMb2NhbGUiLCJhcnJheVJvd0xvY2FsZURhdGEiLCJfbG9jYWxlIiwiX2dldFBhcmVudElEIiwiaW5zZXJ0ZWRSb3dzIiwiaW5zZXJ0Iiwi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
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import type {
|
2
|
-
export declare const createMigrationTable: (
|
1
|
+
import type { PostgresAdapter } from '../types';
|
2
|
+
export declare const createMigrationTable: (adapter: PostgresAdapter) => Promise<void>;
|
3
3
|
//# sourceMappingURL=createMigrationTable.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createMigrationTable.d.ts","sourceRoot":"","sources":["../../src/utilities/createMigrationTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"createMigrationTable.d.ts","sourceRoot":"","sources":["../../src/utilities/createMigrationTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,oBAAoB,YAAmB,eAAe,KAAG,QAAQ,IAAI,CAYjF,CAAA"}
|
@@ -9,14 +9,15 @@ Object.defineProperty(exports, "createMigrationTable", {
|
|
9
9
|
}
|
10
10
|
});
|
11
11
|
const _drizzleorm = require("drizzle-orm");
|
12
|
-
const createMigrationTable = async (
|
13
|
-
|
12
|
+
const createMigrationTable = async (adapter)=>{
|
13
|
+
const prependSchema = adapter.schemaName ? `"${adapter.schemaName}".` : '';
|
14
|
+
await adapter.drizzle.execute(_drizzleorm.sql.raw(`CREATE TABLE IF NOT EXISTS ${prependSchema}"payload_migrations" (
|
14
15
|
"id" serial PRIMARY KEY NOT NULL,
|
15
16
|
"name" varchar,
|
16
17
|
"batch" numeric,
|
17
18
|
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
18
19
|
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
19
|
-
);`);
|
20
|
+
);`));
|
20
21
|
};
|
21
22
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3JlYXRlTWlncmF0aW9uVGFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaWdyYXRpb25UYWJsZSA9IGFzeW5jIChhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcHJlcGVuZFNjaGVtYSA9IGFkYXB0ZXIuc2NoZW1hTmFtZSA/IGBcIiR7YWRhcHRlci5zY2hlbWFOYW1lfVwiLmAgOiAnJ1xuXG4gIGF3YWl0IGFkYXB0ZXIuZHJpenpsZS5leGVjdXRlKFxuICAgIHNxbC5yYXcoYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTICR7cHJlcGVuZFNjaGVtYX1cInBheWxvYWRfbWlncmF0aW9uc1wiIChcbiAgXCJpZFwiIHNlcmlhbCBQUklNQVJZIEtFWSBOT1QgTlVMTCxcbiAgXCJuYW1lXCIgdmFyY2hhcixcbiAgXCJiYXRjaFwiIG51bWVyaWMsXG4gIFwidXBkYXRlZF9hdFwiIHRpbWVzdGFtcCgzKSB3aXRoIHRpbWUgem9uZSBERUZBVUxUIG5vdygpIE5PVCBOVUxMLFxuICBcImNyZWF0ZWRfYXRcIiB0aW1lc3RhbXAoMykgd2l0aCB0aW1lIHpvbmUgREVGQVVMVCBub3coKSBOT1QgTlVMTFxuKTtgKSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZU1pZ3JhdGlvblRhYmxlIiwiYWRhcHRlciIsInByZXBlbmRTY2hlbWEiLCJzY2hlbWFOYW1lIiwiZHJpenpsZSIsImV4ZWN1dGUiLCJzcWwiLCJyYXciXSwibWFwcGluZ3MiOiI7Ozs7K0JBSWFBOzs7ZUFBQUE7Ozs0QkFKTztBQUliLE1BQU1BLHVCQUF1QixPQUFPQztJQUN6QyxNQUFNQyxnQkFBZ0JELFFBQVFFLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRUYsUUFBUUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHO0lBRXhFLE1BQU1GLFFBQVFHLE9BQU8sQ0FBQ0MsT0FBTyxDQUMzQkMsZUFBRyxDQUFDQyxHQUFHLENBQUMsQ0FBQywyQkFBMkIsRUFBRUwsY0FBYzs7Ozs7O0VBTXRELENBQUM7QUFFSCJ9
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@payloadcms/db-postgres",
|
3
|
-
"version": "0.
|
3
|
+
"version": "3.0.0-alpha.18",
|
4
4
|
"description": "The officially supported Postgres database adapter for Payload",
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
6
6
|
"license": "MIT",
|
@@ -13,10 +13,10 @@
|
|
13
13
|
"main": "./dist/index.js",
|
14
14
|
"types": "./dist/index.d.ts",
|
15
15
|
"dependencies": {
|
16
|
-
"@libsql/client": "^0.
|
16
|
+
"@libsql/client": "^0.5.2",
|
17
17
|
"console-table-printer": "2.11.2",
|
18
18
|
"drizzle-kit": "0.20.14-1f2c838",
|
19
|
-
"drizzle-orm": "0.29.
|
19
|
+
"drizzle-orm": "0.29.4",
|
20
20
|
"pg": "8.11.3",
|
21
21
|
"prompts": "2.4.2",
|
22
22
|
"to-snake-case": "1.0.0",
|
@@ -25,11 +25,11 @@
|
|
25
25
|
"devDependencies": {
|
26
26
|
"@types/pg": "8.10.2",
|
27
27
|
"@types/to-snake-case": "1.0.0",
|
28
|
-
"payload": "
|
28
|
+
"payload": "3.0.0-alpha.18",
|
29
29
|
"@payloadcms/eslint-config": "1.1.1"
|
30
30
|
},
|
31
31
|
"peerDependencies": {
|
32
|
-
"payload": "
|
32
|
+
"payload": "3.0.0-alpha.18"
|
33
33
|
},
|
34
34
|
"publishConfig": {
|
35
35
|
"registry": "https://registry.npmjs.org/"
|