@payloadcms/db-postgres 0.4.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,7 +46,7 @@ const getDefaultDrizzleSnapshot = ()=>({
46
46
  tables: {},
47
47
  version: '5'
48
48
  });
49
- const createMigration = async function createMigration({ migrationName, payload }) {
49
+ const createMigration = async function createMigration({ forceAcceptWarning, migrationName, payload }) {
50
50
  const dir = payload.db.migrationDir;
51
51
  if (!_fs.default.existsSync(dir)) {
52
52
  _fs.default.mkdirSync(dir);
@@ -68,7 +68,7 @@ const createMigration = async function createMigration({ migrationName, payload
68
68
  const drizzleJsonAfter = generateDrizzleJson(this.schema);
69
69
  const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
70
70
  const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore);
71
- if (!sqlStatementsUp.length && !sqlStatementsDown.length) {
71
+ if (!sqlStatementsUp.length && !sqlStatementsDown.length && !forceAcceptWarning) {
72
72
  const { confirm: shouldCreateBlankMigration } = await (0, _prompts.default)({
73
73
  name: 'confirm',
74
74
  type: 'confirm',
@@ -92,4 +92,4 @@ const createMigration = async function createMigration({ migrationName, payload
92
92
  });
93
93
  };
94
94
 
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVNaWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXgsIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgRHJpenpsZVNuYXBzaG90SlNPTiB9IGZyb20gJ2RyaXp6bGUta2l0L3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZU1pZ3JhdGlvbiB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwcm9tcHRzIGZyb20gJ3Byb21wdHMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi90eXBlcydcblxuY29uc3QgbWlncmF0aW9uVGVtcGxhdGUgPSAoXG4gIHVwU1FMPzogc3RyaW5nLFxuICBkb3duU1FMPzogc3RyaW5nLFxuKSA9PiBgaW1wb3J0IHsgTWlncmF0ZVVwQXJncywgTWlncmF0ZURvd25BcmdzIH0gZnJvbSAnQHBheWxvYWRjbXMvZGItcG9zdGdyZXMnXG5pbXBvcnQgeyBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKHsgcGF5bG9hZCB9OiBNaWdyYXRlVXBBcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke1xuICB1cFNRTFxuICAgID8gYGF3YWl0IHBheWxvYWQuZGIuZHJpenpsZS5leGVjdXRlKHNxbFxcYFxuXG4ke3VwU1FMfVxcYCk7XG5gXG4gICAgOiAnLy8gTWlncmF0aW9uIGNvZGUnXG59XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bih7IHBheWxvYWQgfTogTWlncmF0ZURvd25BcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke1xuICBkb3duU1FMXG4gICAgPyBgYXdhaXQgcGF5bG9hZC5kYi5kcml6emxlLmV4ZWN1dGUoc3FsXFxgXG5cbiR7ZG93blNRTH1cXGApO1xuYFxuICAgIDogJy8vIE1pZ3JhdGlvbiBjb2RlJ1xufVxufTtcbmBcblxuY29uc3QgZ2V0RGVmYXVsdERyaXp6bGVTbmFwc2hvdCA9ICgpOiBEcml6emxlU25hcHNob3RKU09OID0+ICh7XG4gIGlkOiAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyxcbiAgX21ldGE6IHtcbiAgICBjb2x1bW5zOiB7fSxcbiAgICBzY2hlbWFzOiB7fSxcbiAgICB0YWJsZXM6IHt9LFxuICB9LFxuICBkaWFsZWN0OiAncGcnLFxuICBlbnVtczoge30sXG4gIHByZXZJZDogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwJyxcbiAgc2NoZW1hczoge30sXG4gIHRhYmxlczoge30sXG4gIHZlcnNpb246ICc1Jyxcbn0pXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaWdyYXRpb246IENyZWF0ZU1pZ3JhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pZ3JhdGlvbihcbiAgdGhpczogUG9zdGdyZXNBZGFwdGVyLFxuICB7IG1pZ3JhdGlvbk5hbWUsIHBheWxvYWQgfSxcbikge1xuICBjb25zdCBkaXIgPSBwYXlsb2FkLmRiLm1pZ3JhdGlvbkRpclxuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuICAgIGZzLm1rZGlyU3luYyhkaXIpXG4gIH1cblxuICBjb25zdCB7IGdlbmVyYXRlRHJpenpsZUpzb24sIGdlbmVyYXRlTWlncmF0aW9uIH0gPSByZXF1aXJlKCdkcml6emxlLWtpdC9wYXlsb2FkJylcblxuICBjb25zdCBbeXl5bW1kZCwgaGhtbXNzXSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpXG4gIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB5eXltbWRkLnJlcGxhY2UoL1xcRC9nLCAnJylcbiAgY29uc3QgZm9ybWF0dGVkVGltZSA9IGhobW1zcy5zcGxpdCgnLicpWzBdLnJlcGxhY2UoL1xcRC9nLCAnJylcblxuICBjb25zdCB0aW1lc3RhbXAgPSBgJHtmb3JtYXR0ZWREYXRlfV8ke2Zvcm1hdHRlZFRpbWV9YFxuXG4gIGNvbnN0IGZpbGVOYW1lID0gbWlncmF0aW9uTmFtZVxuICAgID8gYCR7dGltZXN0YW1wfV8ke21pZ3JhdGlvbk5hbWUucmVwbGFjZSgvXFxXL2csICdfJyl9YFxuICAgIDogYCR7dGltZXN0YW1wfWBcblxuICBjb25zdCBmaWxlUGF0aCA9IGAke2Rpcn0vJHtmaWxlTmFtZX1gXG5cbiAgbGV0IGRyaXp6bGVKc29uQmVmb3JlID0gZ2V0RGVmYXVsdERyaXp6bGVTbmFwc2hvdCgpXG5cbiAgLy8gR2V0IGxhdGVzdCBtaWdyYXRpb24gc25hcHNob3RcbiAgY29uc3QgbGF0ZXN0U25hcHNob3QgPSBmc1xuICAgIC5yZWFkZGlyU3luYyhkaXIpXG4gICAgLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCgnLmpzb24nKSlcbiAgICAuc29ydCgpXG4gICAgLnJldmVyc2UoKT8uWzBdXG5cbiAgaWYgKGxhdGVzdFNuYXBzaG90KSB7XG4gICAgY29uc3QgbGF0ZXN0U25hcHNob3RKU09OID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhgJHtkaXJ9LyR7bGF0ZXN0U25hcHNob3R9YCwgJ3V0ZjgnKSxcbiAgICApIGFzIERyaXp6bGVTbmFwc2hvdEpTT05cblxuICAgIGRyaXp6bGVKc29uQmVmb3JlID0gbGF0ZXN0U25hcHNob3RKU09OXG4gIH1cblxuICBjb25zdCBkcml6emxlSnNvbkFmdGVyID0gZ2VuZXJhdGVEcml6emxlSnNvbih0aGlzLnNjaGVtYSlcbiAgY29uc3Qgc3FsU3RhdGVtZW50c1VwID0gYXdhaXQgZ2VuZXJhdGVNaWdyYXRpb24oZHJpenpsZUpzb25CZWZvcmUsIGRyaXp6bGVKc29uQWZ0ZXIpXG4gIGNvbnN0IHNxbFN0YXRlbWVudHNEb3duID0gYXdhaXQgZ2VuZXJhdGVNaWdyYXRpb24oZHJpenpsZUpzb25BZnRlciwgZHJpenpsZUpzb25CZWZvcmUpXG5cbiAgaWYgKCFzcWxTdGF0ZW1lbnRzVXAubGVuZ3RoICYmICFzcWxTdGF0ZW1lbnRzRG93bi5sZW5ndGgpIHtcbiAgICBjb25zdCB7IGNvbmZpcm06IHNob3VsZENyZWF0ZUJsYW5rTWlncmF0aW9uIH0gPSBhd2FpdCBwcm9tcHRzKFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29uZmlybScsXG4gICAgICAgIHR5cGU6ICdjb25maXJtJyxcbiAgICAgICAgaW5pdGlhbDogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6ICdObyBzY2hlbWEgY2hhbmdlcyBkZXRlY3RlZC4gV291bGQgeW91IGxpa2UgdG8gY3JlYXRlIGEgYmxhbmsgbWlncmF0aW9uIGZpbGU/JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIClcblxuICAgIGlmICghc2hvdWxkQ3JlYXRlQmxhbmtNaWdyYXRpb24pIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKVxuICAgIH1cbiAgfVxuXG4gIC8vIHdyaXRlIHNjaGVtYVxuICBmcy53cml0ZUZpbGVTeW5jKGAke2ZpbGVQYXRofS5qc29uYCwgSlNPTi5zdHJpbmdpZnkoZHJpenpsZUpzb25BZnRlciwgbnVsbCwgMikpXG5cbiAgLy8gd3JpdGUgbWlncmF0aW9uXG4gIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgYCR7ZmlsZVBhdGh9LnRzYCxcbiAgICBtaWdyYXRpb25UZW1wbGF0ZShcbiAgICAgIHNxbFN0YXRlbWVudHNVcC5sZW5ndGggPyBzcWxTdGF0ZW1lbnRzVXA/LmpvaW4oJ1xcbicpIDogdW5kZWZpbmVkLFxuICAgICAgc3FsU3RhdGVtZW50c0Rvd24ubGVuZ3RoID8gc3FsU3RhdGVtZW50c0Rvd24/LmpvaW4oJ1xcbicpIDogdW5kZWZpbmVkLFxuICAgICksXG4gIClcbiAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGlvbiBjcmVhdGVkIGF0ICR7ZmlsZVBhdGh9LnRzYCB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZU1pZ3JhdGlvbiIsIm1pZ3JhdGlvblRlbXBsYXRlIiwidXBTUUwiLCJkb3duU1FMIiwiZ2V0RGVmYXVsdERyaXp6bGVTbmFwc2hvdCIsImlkIiwiX21ldGEiLCJjb2x1bW5zIiwic2NoZW1hcyIsInRhYmxlcyIsImRpYWxlY3QiLCJlbnVtcyIsInByZXZJZCIsInZlcnNpb24iLCJtaWdyYXRpb25OYW1lIiwicGF5bG9hZCIsImRpciIsImRiIiwibWlncmF0aW9uRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZ2VuZXJhdGVEcml6emxlSnNvbiIsImdlbmVyYXRlTWlncmF0aW9uIiwicmVxdWlyZSIsInl5eW1tZGQiLCJoaG1tc3MiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzcGxpdCIsImZvcm1hdHRlZERhdGUiLCJyZXBsYWNlIiwiZm9ybWF0dGVkVGltZSIsInRpbWVzdGFtcCIsImZpbGVOYW1lIiwiZmlsZVBhdGgiLCJkcml6emxlSnNvbkJlZm9yZSIsImxhdGVzdFNuYXBzaG90IiwicmVhZGRpclN5bmMiLCJmaWx0ZXIiLCJmaWxlIiwiZW5kc1dpdGgiLCJzb3J0IiwicmV2ZXJzZSIsImxhdGVzdFNuYXBzaG90SlNPTiIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlU3luYyIsImRyaXp6bGVKc29uQWZ0ZXIiLCJzY2hlbWEiLCJzcWxTdGF0ZW1lbnRzVXAiLCJzcWxTdGF0ZW1lbnRzRG93biIsImxlbmd0aCIsImNvbmZpcm0iLCJzaG91bGRDcmVhdGVCbGFua01pZ3JhdGlvbiIsInByb21wdHMiLCJuYW1lIiwidHlwZSIsImluaXRpYWwiLCJtZXNzYWdlIiwib25DYW5jZWwiLCJwcm9jZXNzIiwiZXhpdCIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiLCJqb2luIiwidW5kZWZpbmVkIiwibG9nZ2VyIiwiaW5mbyIsIm1zZyJdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEOzs7OytCQXFENUNBOzs7ZUFBQUE7OzsyREFqREU7Z0VBQ0s7Ozs7OztBQUlw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
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVNaWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXgsIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgRHJpenpsZVNuYXBzaG90SlNPTiB9IGZyb20gJ2RyaXp6bGUta2l0L3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZU1pZ3JhdGlvbiB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwcm9tcHRzIGZyb20gJ3Byb21wdHMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi90eXBlcydcblxuY29uc3QgbWlncmF0aW9uVGVtcGxhdGUgPSAoXG4gIHVwU1FMPzogc3RyaW5nLFxuICBkb3duU1FMPzogc3RyaW5nLFxuKSA9PiBgaW1wb3J0IHsgTWlncmF0ZVVwQXJncywgTWlncmF0ZURvd25BcmdzIH0gZnJvbSAnQHBheWxvYWRjbXMvZGItcG9zdGdyZXMnXG5pbXBvcnQgeyBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKHsgcGF5bG9hZCB9OiBNaWdyYXRlVXBBcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke1xuICB1cFNRTFxuICAgID8gYGF3YWl0IHBheWxvYWQuZGIuZHJpenpsZS5leGVjdXRlKHNxbFxcYFxuXG4ke3VwU1FMfVxcYCk7XG5gXG4gICAgOiAnLy8gTWlncmF0aW9uIGNvZGUnXG59XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bih7IHBheWxvYWQgfTogTWlncmF0ZURvd25BcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke1xuICBkb3duU1FMXG4gICAgPyBgYXdhaXQgcGF5bG9hZC5kYi5kcml6emxlLmV4ZWN1dGUoc3FsXFxgXG5cbiR7ZG93blNRTH1cXGApO1xuYFxuICAgIDogJy8vIE1pZ3JhdGlvbiBjb2RlJ1xufVxufTtcbmBcblxuY29uc3QgZ2V0RGVmYXVsdERyaXp6bGVTbmFwc2hvdCA9ICgpOiBEcml6emxlU25hcHNob3RKU09OID0+ICh7XG4gIGlkOiAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyxcbiAgX21ldGE6IHtcbiAgICBjb2x1bW5zOiB7fSxcbiAgICBzY2hlbWFzOiB7fSxcbiAgICB0YWJsZXM6IHt9LFxuICB9LFxuICBkaWFsZWN0OiAncGcnLFxuICBlbnVtczoge30sXG4gIHByZXZJZDogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwJyxcbiAgc2NoZW1hczoge30sXG4gIHRhYmxlczoge30sXG4gIHZlcnNpb246ICc1Jyxcbn0pXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaWdyYXRpb246IENyZWF0ZU1pZ3JhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pZ3JhdGlvbihcbiAgdGhpczogUG9zdGdyZXNBZGFwdGVyLFxuICB7IGZvcmNlQWNjZXB0V2FybmluZywgbWlncmF0aW9uTmFtZSwgcGF5bG9hZCB9LFxuKSB7XG4gIGNvbnN0IGRpciA9IHBheWxvYWQuZGIubWlncmF0aW9uRGlyXG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgZnMubWtkaXJTeW5jKGRpcilcbiAgfVxuXG4gIGNvbnN0IHsgZ2VuZXJhdGVEcml6emxlSnNvbiwgZ2VuZXJhdGVNaWdyYXRpb24gfSA9IHJlcXVpcmUoJ2RyaXp6bGUta2l0L3BheWxvYWQnKVxuXG4gIGNvbnN0IFt5eXltbWRkLCBoaG1tc3NdID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylcbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHl5eW1tZGQucmVwbGFjZSgvXFxEL2csICcnKVxuICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gaGhtbXNzLnNwbGl0KCcuJylbMF0ucmVwbGFjZSgvXFxEL2csICcnKVxuXG4gIGNvbnN0IHRpbWVzdGFtcCA9IGAke2Zvcm1hdHRlZERhdGV9XyR7Zm9ybWF0dGVkVGltZX1gXG5cbiAgY29uc3QgZmlsZU5hbWUgPSBtaWdyYXRpb25OYW1lXG4gICAgPyBgJHt0aW1lc3RhbXB9XyR7bWlncmF0aW9uTmFtZS5yZXBsYWNlKC9cXFcvZywgJ18nKX1gXG4gICAgOiBgJHt0aW1lc3RhbXB9YFxuXG4gIGNvbnN0IGZpbGVQYXRoID0gYCR7ZGlyfS8ke2ZpbGVOYW1lfWBcblxuICBsZXQgZHJpenpsZUpzb25CZWZvcmUgPSBnZXREZWZhdWx0RHJpenpsZVNuYXBzaG90KClcblxuICAvLyBHZXQgbGF0ZXN0IG1pZ3JhdGlvbiBzbmFwc2hvdFxuICBjb25zdCBsYXRlc3RTbmFwc2hvdCA9IGZzXG4gICAgLnJlYWRkaXJTeW5jKGRpcilcbiAgICAuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCcuanNvbicpKVxuICAgIC5zb3J0KClcbiAgICAucmV2ZXJzZSgpPy5bMF1cblxuICBpZiAobGF0ZXN0U25hcHNob3QpIHtcbiAgICBjb25zdCBsYXRlc3RTbmFwc2hvdEpTT04gPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKGAke2Rpcn0vJHtsYXRlc3RTbmFwc2hvdH1gLCAndXRmOCcpLFxuICAgICkgYXMgRHJpenpsZVNuYXBzaG90SlNPTlxuXG4gICAgZHJpenpsZUpzb25CZWZvcmUgPSBsYXRlc3RTbmFwc2hvdEpTT05cbiAgfVxuXG4gIGNvbnN0IGRyaXp6bGVKc29uQWZ0ZXIgPSBnZW5lcmF0ZURyaXp6bGVKc29uKHRoaXMuc2NoZW1hKVxuICBjb25zdCBzcWxTdGF0ZW1lbnRzVXAgPSBhd2FpdCBnZW5lcmF0ZU1pZ3JhdGlvbihkcml6emxlSnNvbkJlZm9yZSwgZHJpenpsZUpzb25BZnRlcilcbiAgY29uc3Qgc3FsU3RhdGVtZW50c0Rvd24gPSBhd2FpdCBnZW5lcmF0ZU1pZ3JhdGlvbihkcml6emxlSnNvbkFmdGVyLCBkcml6emxlSnNvbkJlZm9yZSlcblxuICBpZiAoIXNxbFN0YXRlbWVudHNVcC5sZW5ndGggJiYgIXNxbFN0YXRlbWVudHNEb3duLmxlbmd0aCAmJiAhZm9yY2VBY2NlcHRXYXJuaW5nKSB7XG4gICAgY29uc3QgeyBjb25maXJtOiBzaG91bGRDcmVhdGVCbGFua01pZ3JhdGlvbiB9ID0gYXdhaXQgcHJvbXB0cyhcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvbmZpcm0nLFxuICAgICAgICB0eXBlOiAnY29uZmlybScsXG4gICAgICAgIGluaXRpYWw6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiAnTm8gc2NoZW1hIGNoYW5nZXMgZGV0ZWN0ZWQuIFdvdWxkIHlvdSBsaWtlIHRvIGNyZWF0ZSBhIGJsYW5rIG1pZ3JhdGlvbiBmaWxlPycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvbkNhbmNlbDogKCkgPT4ge1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgwKVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApXG5cbiAgICBpZiAoIXNob3VsZENyZWF0ZUJsYW5rTWlncmF0aW9uKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMClcbiAgICB9XG4gIH1cblxuICAvLyB3cml0ZSBzY2hlbWFcbiAgZnMud3JpdGVGaWxlU3luYyhgJHtmaWxlUGF0aH0uanNvbmAsIEpTT04uc3RyaW5naWZ5KGRyaXp6bGVKc29uQWZ0ZXIsIG51bGwsIDIpKVxuXG4gIC8vIHdyaXRlIG1pZ3JhdGlvblxuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIGAke2ZpbGVQYXRofS50c2AsXG4gICAgbWlncmF0aW9uVGVtcGxhdGUoXG4gICAgICBzcWxTdGF0ZW1lbnRzVXAubGVuZ3RoID8gc3FsU3RhdGVtZW50c1VwPy5qb2luKCdcXG4nKSA6IHVuZGVmaW5lZCxcbiAgICAgIHNxbFN0YXRlbWVudHNEb3duLmxlbmd0aCA/IHNxbFN0YXRlbWVudHNEb3duPy5qb2luKCdcXG4nKSA6IHVuZGVmaW5lZCxcbiAgICApLFxuICApXG4gIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpb24gY3JlYXRlZCBhdCAke2ZpbGVQYXRofS50c2AgfSlcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVNaWdyYXRpb24iLCJtaWdyYXRpb25UZW1wbGF0ZSIsInVwU1FMIiwiZG93blNRTCIsImdldERlZmF1bHREcml6emxlU25hcHNob3QiLCJpZCIsIl9tZXRhIiwiY29sdW1ucyIsInNjaGVtYXMiLCJ0YWJsZXMiLCJkaWFsZWN0IiwiZW51bXMiLCJwcmV2SWQiLCJ2ZXJzaW9uIiwiZm9yY2VBY2NlcHRXYXJuaW5nIiwibWlncmF0aW9uTmFtZSIsInBheWxvYWQiLCJkaXIiLCJkYiIsIm1pZ3JhdGlvbkRpciIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImdlbmVyYXRlRHJpenpsZUpzb24iLCJnZW5lcmF0ZU1pZ3JhdGlvbiIsInJlcXVpcmUiLCJ5eXltbWRkIiwiaGhtbXNzIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJmb3JtYXR0ZWREYXRlIiwicmVwbGFjZSIsImZvcm1hdHRlZFRpbWUiLCJ0aW1lc3RhbXAiLCJmaWxlTmFtZSIsImZpbGVQYXRoIiwiZHJpenpsZUpzb25CZWZvcmUiLCJsYXRlc3RTbmFwc2hvdCIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZmlsZSIsImVuZHNXaXRoIiwic29ydCIsInJldmVyc2UiLCJsYXRlc3RTbmFwc2hvdEpTT04iLCJKU09OIiwicGFyc2UiLCJyZWFkRmlsZVN5bmMiLCJkcml6emxlSnNvbkFmdGVyIiwic2NoZW1hIiwic3FsU3RhdGVtZW50c1VwIiwic3FsU3RhdGVtZW50c0Rvd24iLCJsZW5ndGgiLCJjb25maXJtIiwic2hvdWxkQ3JlYXRlQmxhbmtNaWdyYXRpb24iLCJwcm9tcHRzIiwibmFtZSIsInR5cGUiLCJpbml0aWFsIiwibWVzc2FnZSIsIm9uQ2FuY2VsIiwicHJvY2VzcyIsImV4aXQiLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5Iiwiam9pbiIsInVuZGVmaW5lZCIsImxvZ2dlciIsImluZm8iLCJtc2ciXSwibWFw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
@@ -155,7 +155,7 @@ const findMany = async function find({ adapter, fields, limit: limitArg, locale,
155
155
  methods: selectCountMethods,
156
156
  query: db.select({
157
157
  count: (0, _drizzleorm.sql)`count
158
- (*)`
158
+ (DISTINCT ${adapter.tables[tableName].id})`
159
159
  }).from(table).where(where)
160
160
  });
161
161
  totalDocs = Number(countResult[0].count);
@@ -197,4 +197,4 @@ const findMany = async function find({ adapter, fields, limit: limitArg, locale,
197
197
  };
198
198
  };
199
199
 
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kL2ZpbmRNYW55LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmluZEFyZ3MgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgUGF5bG9hZFJlcXVlc3QsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBpbkFycmF5LCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcblxuaW1wb3J0IHR5cGUgeyBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2hhaW5lZE1ldGhvZHMgfSBmcm9tICcuL2NoYWluTWV0aG9kcydcblxuaW1wb3J0IGJ1aWxkUXVlcnkgZnJvbSAnLi4vcXVlcmllcy9idWlsZFF1ZXJ5J1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnLi4vdHJhbnNmb3JtL3JlYWQnXG5pbXBvcnQgeyBidWlsZEZpbmRNYW55QXJncyB9IGZyb20gJy4vYnVpbGRGaW5kTWFueUFyZ3MnXG5pbXBvcnQgeyBjaGFpbk1ldGhvZHMgfSBmcm9tICcuL2NoYWluTWV0aG9kcydcblxudHlwZSBBcmdzID0gT21pdDxGaW5kQXJncywgJ2NvbGxlY3Rpb24nPiAmIHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGZpZWxkczogRmllbGRbXVxuICB0YWJsZU5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZmluZE1hbnkgPSBhc3luYyBmdW5jdGlvbiBmaW5kKHtcbiAgYWRhcHRlcixcbiAgZmllbGRzLFxuICBsaW1pdDogbGltaXRBcmcsXG4gIGxvY2FsZSxcbiAgcGFnZSA9IDEsXG4gIHBhZ2luYXRpb24sXG4gIHJlcSA9IHt9IGFzIFBheWxvYWRSZXF1ZXN0LFxuICBza2lwLFxuICBzb3J0LFxuICB0YWJsZU5hbWUsXG4gIHdoZXJlOiB3aGVyZUFyZyxcbn06IEFyZ3MpIHtcbiAgY29uc3QgZGIgPSBhZGFwdGVyLnNlc3Npb25zW3JlcS50cmFuc2FjdGlvbklEXT8uZGIgfHwgYWRhcHRlci5kcml6emxlXG4gIGNvbnN0IHRhYmxlID0gYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXVxuXG4gIGNvbnN0IGxpbWl0ID0gbGltaXRBcmcgPz8gMTBcbiAgbGV0IHRvdGFsRG9jczogbnVtYmVyXG4gIGxldCB0b3RhbFBhZ2VzOiBudW1iZXJcbiAgbGV0IGhhc1ByZXZQYWdlOiBib29sZWFuXG4gIGxldCBoYXNOZXh0UGFnZTogYm9vbGVhblxuICBsZXQgcGFnaW5nQ291bnRlcjogbnVtYmVyXG4gIGxldCBzZWxlY3REaXN0aW5jdFJlc3VsdFxuXG4gIGNvbnN0IHsgam9pbkFsaWFzZXMsIGpvaW5zLCBvcmRlckJ5LCBzZWxlY3RGaWVsZHMsIHdoZXJlIH0gPSBhd2FpdCBidWlsZFF1ZXJ5KHtcbiAgICBhZGFwdGVyLFxuICAgIGZpZWxkcyxcbiAgICBsb2NhbGUsXG4gICAgc29ydCxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IHdoZXJlQXJnLFxuICB9KVxuXG4gIGNvbnN0IG9yZGVyZWRJRE1hcDogUmVjb3JkPG51bWJlciB8IHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGxldCBvcmRlcmVkSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdXG5cbiAgY29uc3Qgc2VsZWN0RGlzdGluY3RNZXRob2RzOiBDaGFpbmVkTWV0aG9kcyA9IFtdXG5cbiAgaWYgKG9yZGVyQnk/Lm9yZGVyICYmIG9yZGVyQnk/LmNvbHVtbikge1xuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHtcbiAgICAgIGFyZ3M6IFtvcmRlckJ5Lm9yZGVyKG9yZGVyQnkuY29sdW1uKV0sXG4gICAgICBtZXRob2Q6ICdvcmRlckJ5JyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmluZE1hbnlBcmdzID0gYnVpbGRGaW5kTWFueUFyZ3Moe1xuICAgIGFkYXB0ZXIsXG4gICAgZGVwdGg6IDAsXG4gICAgZmllbGRzLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICAvLyBvbmx5IGZldGNoIElEcyB3aGVuIGEgc29ydCBvciB3aGVyZSBxdWVyeSBpcyB1c2VkIHRoYXQgbmVlZHMgdG8gYmUgZG9uZSBvbiBqb2luIHRhYmxlcywgb3RoZXJ3aXNlIHRoZXNlIGNhbiBiZSBkb25lIGRpcmVjdGx5IG9uIHRoZSB0YWJsZSBpbiBmaW5kTWFueVxuICBpZiAoT2JqZWN0LmtleXMoam9pbnMpLmxlbmd0aCA+IDAgfHwgam9pbkFsaWFzZXMubGVuZ3RoID4gMCkge1xuICAgIGlmICh3aGVyZSkge1xuICAgICAgc2VsZWN0RGlzdGluY3RNZXRob2RzLnB1c2goeyBhcmdzOiBbd2hlcmVdLCBtZXRob2Q6ICd3aGVyZScgfSlcbiAgICB9XG5cbiAgICBqb2luQWxpYXNlcy5mb3JFYWNoKCh7IGNvbmRpdGlvbiwgdGFibGUgfSkgPT4ge1xuICAgICAgc2VsZWN0RGlzdGluY3RNZXRob2RzLnB1c2goe1xuICAgICAgICBhcmdzOiBbdGFibGUsIGNvbmRpdGlvbl0sXG4gICAgICAgIG1ldGhvZDogJ2xlZnRKb2luJyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIE9iamVjdC5lbnRyaWVzKGpvaW5zKS5mb3JFYWNoKChbam9pblRhYmxlLCBjb25kaXRpb25dKSA9PiB7XG4gICAgICBpZiAoam9pblRhYmxlKSB7XG4gICAgICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHtcbiAgICAgICAgICBhcmdzOiBbYWRhcHRlci50YWJsZXNbam9pblRhYmxlXSwgY29uZGl0aW9uXSxcbiAgICAgICAgICBtZXRob2Q6ICdsZWZ0Sm9pbicsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHsgYXJnczogW3NraXAgfHwgKHBhZ2UgLSAxKSAqIGxpbWl0XSwgbWV0aG9kOiAnb2Zmc2V0JyB9KVxuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHsgYXJnczogW2xpbWl0ID09PSAwID8gdW5kZWZpbmVkIDogbGltaXRdLCBtZXRob2Q6ICdsaW1pdCcgfSlcblxuICAgIHNlbGVjdERpc3RpbmN0UmVzdWx0ID0gYXdhaXQgY2hhaW5NZXRob2RzKHtcbiAgICAgIG1ldGhvZHM6IHNlbGVjdERpc3RpbmN0TWV0aG9kcyxcbiAgICAgIHF1ZXJ5OiBkYi5zZWxlY3REaXN0aW5jdChzZWxlY3RGaWVsZHMpLmZyb20odGFibGUpLFxuICAgIH0pXG5cbiAgICBpZiAoc2VsZWN0RGlzdGluY3RSZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb2NzOiBbXSxcbiAgICAgICAgaGFzTmV4dFBhZ2U6IGZhbHNlLFxuICAgICAgICBoYXNQcmV2UGFnZTogZmFsc2UsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBuZXh0UGFnZTogbnVsbCxcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGFnaW5nQ291bnRlcjogMCxcbiAgICAgICAgcHJldlBhZ2U6IG51bGwsXG4gICAgICAgIHRvdGFsRG9jczogMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gc2V0IHRoZSBpZCBpbiBhbiBvYmplY3QgZm9yIHNvcnRpbmcgbGF0ZXJcbiAgICBzZWxlY3REaXN0aW5jdFJlc3VsdC5mb3JFYWNoKCh7IGlkIH0sIGkpID0+IHtcbiAgICAgIG9yZGVyZWRJRE1hcFtpZCBhcyBudW1iZXIgfCBzdHJpbmddID0gaVxuICAgIH0pXG4gICAgb3JkZXJlZElEcyA9IE9iamVjdC5rZXlzKG9yZGVyZWRJRE1hcClcbiAgICBmaW5kTWFueUFyZ3Mud2hlcmUgPSBpbkFycmF5KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIG9yZGVyZWRJRHMpXG4gIH0gZWxzZSB7XG4gICAgZmluZE1hbnlBcmdzLmxpbWl0ID0gbGltaXRBcmcgPT09IDAgPyB1bmRlZmluZWQgOiBsaW1pdEFyZ1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gc2tpcCB8fCAocGFnZSAtIDEpICogbGltaXRBcmdcblxuICAgIGlmICghTnVtYmVyLmlzTmFOKG9mZnNldCkpIGZpbmRNYW55QXJncy5vZmZzZXQgPSBvZmZzZXRcblxuICAgIGlmICh3aGVyZSkge1xuICAgICAgZmluZE1hbnlBcmdzLndoZXJlID0gd2hlcmVcbiAgICB9XG4gICAgZmluZE1hbnlBcmdzLm9yZGVyQnkgPSBvcmRlckJ5Lm9yZGVyKG9yZGVyQnkuY29sdW1uKVxuICB9XG5cbiAgY29uc3QgZmluZFByb21pc2UgPSBkYi5xdWVyeVt0YWJsZU5hbWVdLmZpbmRNYW55KGZpbmRNYW55QXJncylcblxuICBpZiAocGFnaW5hdGlvbiAhPT0gZmFsc2UgJiYgKG9yZGVyZWRJRHMgPyBvcmRlcmVkSURzPy5sZW5ndGggPj0gbGltaXQgOiB0cnVlKSkge1xuICAgIGNvbnN0IHNlbGVjdENvdW50TWV0aG9kczogQ2hhaW5lZE1ldGhvZHMgPSBbXVxuXG4gICAgam9pbkFsaWFzZXMuZm9yRWFjaCgoeyBjb25kaXRpb24sIHRhYmxlIH0pID0+IHtcbiAgICAgIHNlbGVjdENvdW50TWV0aG9kcy5wdXNoKHtcbiAgICAgICAgYXJnczogW3RhYmxlLCBjb25kaXRpb25dLFxuICAgICAgICBtZXRob2Q6ICdsZWZ0Sm9pbicsXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBPYmplY3QuZW50cmllcyhqb2lucykuZm9yRWFjaCgoW2pvaW5UYWJsZSwgY29uZGl0aW9uXSkgPT4ge1xuICAgICAgaWYgKGpvaW5UYWJsZSkge1xuICAgICAgICBzZWxlY3RDb3VudE1ldGhvZHMucHVzaCh7XG4gICAgICAgICAgYXJnczogW2FkYXB0ZXIudGFibGVzW2pvaW5UYWJsZV0sIGNvbmRpdGlvbl0sXG4gICAgICAgICAgbWV0aG9kOiAnbGVmdEpvaW4nLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBjb3VudFJlc3VsdCA9IGF3YWl0IGNoYWluTWV0aG9kcyh7XG4gICAgICBtZXRob2RzOiBzZWxlY3RDb3VudE1ldGhvZHMsXG4gICAgICBxdWVyeTogZGJcbiAgICAgICAgLnNlbGVjdCh7XG4gICAgICAgICAgY291bnQ6IHNxbDxudW1iZXI+YGNvdW50XG4gICAgICAgICAgICAgICgqKWAsXG4gICAgICAgIH0pXG4gICAgICAgIC5mcm9tKHRhYmxlKVxuICAgICAgICAud2hlcmUod2hlcmUpLFxuICAgIH0pXG4gICAgdG90YWxEb2NzID0gTnVtYmVyKGNvdW50UmVzdWx0WzBdLmNvdW50KVxuICAgIHRvdGFsUGFnZXMgPSB0eXBlb2YgbGltaXQgPT09ICdudW1iZXInICYmIGxpbWl0ICE9PSAwID8gTWF0aC5jZWlsKHRvdGFsRG9jcyAvIGxpbWl0KSA6IDFcbiAgICBoYXNQcmV2UGFnZSA9IHBhZ2UgPiAxXG4gICAgaGFzTmV4dFBhZ2UgPSB0b3RhbFBhZ2VzID4gcGFnZVxuICAgIHBhZ2luZ0NvdW50ZXIgPSAocGFnZSAtIDEpICogbGltaXQgKyAxXG4gIH1cblxuICBjb25zdCByYXdEb2NzID0gYXdhaXQgZmluZFByb21pc2VcbiAgLy8gc29ydCByYXdEb2NzIGZyb20gc2VsZWN0UXVlcnlcbiAgaWYgKE9iamVjdC5rZXlzKG9yZGVyZWRJRE1hcCkubGVuZ3RoID4gMCkge1xuICAgIHJhd0RvY3Muc29ydCgoYSwgYikgPT4gb3JkZXJlZElETWFwW2EuaWRdIC0gb3JkZXJlZElETWFwW2IuaWRdKVxuICB9XG5cbiAgaWYgKHBhZ2luYXRpb24gPT09IGZhbHNlIHx8ICF0b3RhbERvY3MpIHtcbiAgICB0b3RhbERvY3MgPSByYXdEb2NzLmxlbmd0aFxuICAgIHRvdGFsUGFnZXMgPSAxXG4gICAgcGFnaW5nQ291bnRlciA9IDFcbiAgICBoYXNQcmV2UGFnZSA9IGZhbHNlXG4gICAgaGFzTmV4dFBhZ2UgPSBmYWxzZVxuICB9XG5cbiAgY29uc3QgZG9jcyA9IHJhd0RvY3MubWFwKChkYXRhOiBUeXBlV2l0aElEKSA9PiB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh7XG4gICAgICBjb25maWc6IGFkYXB0ZXIucGF5bG9hZC5jb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgZmllbGRzLFxuICAgIH0pXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBkb2NzLFxuICAgIGhhc05leHRQYWdlLFxuICAgIGhhc1ByZXZQYWdlLFxuICAgIGxpbWl0LFxuICAgIG5leHRQYWdlOiBoYXNOZXh0UGFnZSA/IHBhZ2UgKyAxIDogbnVsbCxcbiAgICBwYWdlLFxuICAgIHBhZ2luZ0NvdW50ZXIsXG4gICAgcHJldlBhZ2U6IGhhc1ByZXZQYWdlID8gcGFnZSAtIDEgOiBudWxsLFxuICAgIHRvdGFsRG9jcyxcbiAgICB0b3RhbFBhZ2VzLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZmluZE1hbnkiLCJmaW5kIiwiYWRhcHRlciIsImZpZWxkcyIsImxpbWl0IiwibGltaXRBcmciLCJsb2NhbGUiLCJwYWdlIiwicGFnaW5hdGlvbiIsInJlcSIsInNraXAiLCJzb3J0IiwidGFibGVOYW1lIiwid2hlcmUiLCJ3aGVyZUFyZyIsImRiIiwic2Vzc2lvbnMiLCJ0cmFuc2FjdGlvbklEIiwiZHJpenpsZSIsInRhYmxlIiwidGFibGVzIiwidG90YWxEb2NzIiwidG90YWxQYWdlcyIsImhhc1ByZXZQYWdlIiwiaGFzTmV4dFBhZ2UiLCJwYWdpbmdDb3VudGVyIiwic2VsZWN0RGlzdGluY3RSZXN1bHQiLCJqb2luQWxpYXNlcyIsImpvaW5zIiwib3JkZXJCeSIsInNlbGVjdEZpZWxkcyIsImJ1aWxkUXVlcnkiLCJvcmRlcmVkSURNYXAiLCJvcmRlcmVkSURzIiwic2VsZWN0RGlzdGluY3RNZXRob2RzIiwib3JkZXIiLCJjb2x1bW4iLCJwdXNoIiwiYXJncyIsIm1ldGhvZCIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZm9yRWFjaCIsImNvbmRpdGlvbiIsImVudHJpZXMiLCJqb2luVGFibGUiLCJ1bmRlZmluZWQiLCJjaGFpbk1ldGhvZHMiLCJtZXRob2RzIiwicXVlcnkiLCJzZWxlY3REaXN0aW5jdCIsImZyb20iLCJkb2NzIiwibmV4dFBhZ2UiLCJwcmV2UGFnZSIsImlkIiwiaSIsImluQXJyYXkiLCJvZmZzZXQiLCJOdW1iZXIiLCJpc05hTiIsImZpbmRQcm9taXNlIiwic2VsZWN0Q291bnRNZXRob2RzIiwiY291bnRSZXN1bHQiLCJzZWxlY3QiLCJjb3VudCIsInNxbCIsIk1hdGgiLCJjZWlsIiwicmF3RG9jcyIsImEiLCJiIiwibWFwIiwiZGF0YSIsInRyYW5zZm9ybSIsImNvbmZpZyIsInBheWxvYWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBbUJhQTs7O2VBQUFBOzs7NEJBaEJnQjttRUFLTjtzQkFDRzttQ0FDUTs4QkFDTDs7Ozs7O0FBUXRCLE1BQU1BLFdBQVcsZUFBZUMsS0FBSyxFQUMxQ0MsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLE9BQU9DLFFBQVEsRUFDZkMsTUFBTSxFQUNOQyxPQUFPLENBQUMsRUFDUkMsVUFBVSxFQUNWQyxNQUFNLENBQUMsQ0FBbUIsRUFDMUJDLElBQUksRUFDSkMsSUFBSSxFQUNKQyxTQUFTLEVBQ1RDLE9BQU9DLFFBQVEsRUFDVjtJQUNMLE1BQU1DLEtBQUtiLFFBQVFjLFFBQVEsQ0FBQ1AsSUFBSVEsYUFBYSxDQUFDLEVBQUVGLE1BQU1iLFFBQVFnQixPQUFPO0lBQ3JFLE1BQU1DLFFBQVFqQixRQUFRa0IsTUFBTSxDQUFDUixVQUFVO0lBRXZDLE1BQU1SLFFBQVFDLFlBQVk7SUFDMUIsSUFBSWdCO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUVKLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFakIsS0FBSyxFQUFFLEdBQUcsTUFBTWtCLElBQUFBLG1CQUFVLEVBQUM7UUFDNUU3QjtRQUNBQztRQUNBRztRQUNBSztRQUNBQztRQUNBQyxPQUFPQztJQUNUO0lBRUEsTUFBTWtCLGVBQWdELENBQUM7SUFDdkQsSUFBSUM7SUFFSixNQUFNQyx3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
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kL2ZpbmRNYW55LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmluZEFyZ3MgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgUGF5bG9hZFJlcXVlc3QsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBpbkFycmF5LCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcblxuaW1wb3J0IHR5cGUgeyBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2hhaW5lZE1ldGhvZHMgfSBmcm9tICcuL2NoYWluTWV0aG9kcydcblxuaW1wb3J0IGJ1aWxkUXVlcnkgZnJvbSAnLi4vcXVlcmllcy9idWlsZFF1ZXJ5J1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnLi4vdHJhbnNmb3JtL3JlYWQnXG5pbXBvcnQgeyBidWlsZEZpbmRNYW55QXJncyB9IGZyb20gJy4vYnVpbGRGaW5kTWFueUFyZ3MnXG5pbXBvcnQgeyBjaGFpbk1ldGhvZHMgfSBmcm9tICcuL2NoYWluTWV0aG9kcydcblxudHlwZSBBcmdzID0gT21pdDxGaW5kQXJncywgJ2NvbGxlY3Rpb24nPiAmIHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGZpZWxkczogRmllbGRbXVxuICB0YWJsZU5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZmluZE1hbnkgPSBhc3luYyBmdW5jdGlvbiBmaW5kKHtcbiAgYWRhcHRlcixcbiAgZmllbGRzLFxuICBsaW1pdDogbGltaXRBcmcsXG4gIGxvY2FsZSxcbiAgcGFnZSA9IDEsXG4gIHBhZ2luYXRpb24sXG4gIHJlcSA9IHt9IGFzIFBheWxvYWRSZXF1ZXN0LFxuICBza2lwLFxuICBzb3J0LFxuICB0YWJsZU5hbWUsXG4gIHdoZXJlOiB3aGVyZUFyZyxcbn06IEFyZ3MpIHtcbiAgY29uc3QgZGIgPSBhZGFwdGVyLnNlc3Npb25zW3JlcS50cmFuc2FjdGlvbklEXT8uZGIgfHwgYWRhcHRlci5kcml6emxlXG4gIGNvbnN0IHRhYmxlID0gYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXVxuXG4gIGNvbnN0IGxpbWl0ID0gbGltaXRBcmcgPz8gMTBcbiAgbGV0IHRvdGFsRG9jczogbnVtYmVyXG4gIGxldCB0b3RhbFBhZ2VzOiBudW1iZXJcbiAgbGV0IGhhc1ByZXZQYWdlOiBib29sZWFuXG4gIGxldCBoYXNOZXh0UGFnZTogYm9vbGVhblxuICBsZXQgcGFnaW5nQ291bnRlcjogbnVtYmVyXG4gIGxldCBzZWxlY3REaXN0aW5jdFJlc3VsdFxuXG4gIGNvbnN0IHsgam9pbkFsaWFzZXMsIGpvaW5zLCBvcmRlckJ5LCBzZWxlY3RGaWVsZHMsIHdoZXJlIH0gPSBhd2FpdCBidWlsZFF1ZXJ5KHtcbiAgICBhZGFwdGVyLFxuICAgIGZpZWxkcyxcbiAgICBsb2NhbGUsXG4gICAgc29ydCxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IHdoZXJlQXJnLFxuICB9KVxuXG4gIGNvbnN0IG9yZGVyZWRJRE1hcDogUmVjb3JkPG51bWJlciB8IHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGxldCBvcmRlcmVkSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdXG5cbiAgY29uc3Qgc2VsZWN0RGlzdGluY3RNZXRob2RzOiBDaGFpbmVkTWV0aG9kcyA9IFtdXG5cbiAgaWYgKG9yZGVyQnk/Lm9yZGVyICYmIG9yZGVyQnk/LmNvbHVtbikge1xuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHtcbiAgICAgIGFyZ3M6IFtvcmRlckJ5Lm9yZGVyKG9yZGVyQnkuY29sdW1uKV0sXG4gICAgICBtZXRob2Q6ICdvcmRlckJ5JyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmluZE1hbnlBcmdzID0gYnVpbGRGaW5kTWFueUFyZ3Moe1xuICAgIGFkYXB0ZXIsXG4gICAgZGVwdGg6IDAsXG4gICAgZmllbGRzLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICAvLyBvbmx5IGZldGNoIElEcyB3aGVuIGEgc29ydCBvciB3aGVyZSBxdWVyeSBpcyB1c2VkIHRoYXQgbmVlZHMgdG8gYmUgZG9uZSBvbiBqb2luIHRhYmxlcywgb3RoZXJ3aXNlIHRoZXNlIGNhbiBiZSBkb25lIGRpcmVjdGx5IG9uIHRoZSB0YWJsZSBpbiBmaW5kTWFueVxuICBpZiAoT2JqZWN0LmtleXMoam9pbnMpLmxlbmd0aCA+IDAgfHwgam9pbkFsaWFzZXMubGVuZ3RoID4gMCkge1xuICAgIGlmICh3aGVyZSkge1xuICAgICAgc2VsZWN0RGlzdGluY3RNZXRob2RzLnB1c2goeyBhcmdzOiBbd2hlcmVdLCBtZXRob2Q6ICd3aGVyZScgfSlcbiAgICB9XG5cbiAgICBqb2luQWxpYXNlcy5mb3JFYWNoKCh7IGNvbmRpdGlvbiwgdGFibGUgfSkgPT4ge1xuICAgICAgc2VsZWN0RGlzdGluY3RNZXRob2RzLnB1c2goe1xuICAgICAgICBhcmdzOiBbdGFibGUsIGNvbmRpdGlvbl0sXG4gICAgICAgIG1ldGhvZDogJ2xlZnRKb2luJyxcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIE9iamVjdC5lbnRyaWVzKGpvaW5zKS5mb3JFYWNoKChbam9pblRhYmxlLCBjb25kaXRpb25dKSA9PiB7XG4gICAgICBpZiAoam9pblRhYmxlKSB7XG4gICAgICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHtcbiAgICAgICAgICBhcmdzOiBbYWRhcHRlci50YWJsZXNbam9pblRhYmxlXSwgY29uZGl0aW9uXSxcbiAgICAgICAgICBtZXRob2Q6ICdsZWZ0Sm9pbicsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHsgYXJnczogW3NraXAgfHwgKHBhZ2UgLSAxKSAqIGxpbWl0XSwgbWV0aG9kOiAnb2Zmc2V0JyB9KVxuICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHsgYXJnczogW2xpbWl0ID09PSAwID8gdW5kZWZpbmVkIDogbGltaXRdLCBtZXRob2Q6ICdsaW1pdCcgfSlcblxuICAgIHNlbGVjdERpc3RpbmN0UmVzdWx0ID0gYXdhaXQgY2hhaW5NZXRob2RzKHtcbiAgICAgIG1ldGhvZHM6IHNlbGVjdERpc3RpbmN0TWV0aG9kcyxcbiAgICAgIHF1ZXJ5OiBkYi5zZWxlY3REaXN0aW5jdChzZWxlY3RGaWVsZHMpLmZyb20odGFibGUpLFxuICAgIH0pXG5cbiAgICBpZiAoc2VsZWN0RGlzdGluY3RSZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb2NzOiBbXSxcbiAgICAgICAgaGFzTmV4dFBhZ2U6IGZhbHNlLFxuICAgICAgICBoYXNQcmV2UGFnZTogZmFsc2UsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBuZXh0UGFnZTogbnVsbCxcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGFnaW5nQ291bnRlcjogMCxcbiAgICAgICAgcHJldlBhZ2U6IG51bGwsXG4gICAgICAgIHRvdGFsRG9jczogMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gc2V0IHRoZSBpZCBpbiBhbiBvYmplY3QgZm9yIHNvcnRpbmcgbGF0ZXJcbiAgICBzZWxlY3REaXN0aW5jdFJlc3VsdC5mb3JFYWNoKCh7IGlkIH0sIGkpID0+IHtcbiAgICAgIG9yZGVyZWRJRE1hcFtpZCBhcyBudW1iZXIgfCBzdHJpbmddID0gaVxuICAgIH0pXG4gICAgb3JkZXJlZElEcyA9IE9iamVjdC5rZXlzKG9yZGVyZWRJRE1hcClcbiAgICBmaW5kTWFueUFyZ3Mud2hlcmUgPSBpbkFycmF5KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIG9yZGVyZWRJRHMpXG4gIH0gZWxzZSB7XG4gICAgZmluZE1hbnlBcmdzLmxpbWl0ID0gbGltaXRBcmcgPT09IDAgPyB1bmRlZmluZWQgOiBsaW1pdEFyZ1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gc2tpcCB8fCAocGFnZSAtIDEpICogbGltaXRBcmdcblxuICAgIGlmICghTnVtYmVyLmlzTmFOKG9mZnNldCkpIGZpbmRNYW55QXJncy5vZmZzZXQgPSBvZmZzZXRcblxuICAgIGlmICh3aGVyZSkge1xuICAgICAgZmluZE1hbnlBcmdzLndoZXJlID0gd2hlcmVcbiAgICB9XG4gICAgZmluZE1hbnlBcmdzLm9yZGVyQnkgPSBvcmRlckJ5Lm9yZGVyKG9yZGVyQnkuY29sdW1uKVxuICB9XG5cbiAgY29uc3QgZmluZFByb21pc2UgPSBkYi5xdWVyeVt0YWJsZU5hbWVdLmZpbmRNYW55KGZpbmRNYW55QXJncylcblxuICBpZiAocGFnaW5hdGlvbiAhPT0gZmFsc2UgJiYgKG9yZGVyZWRJRHMgPyBvcmRlcmVkSURzPy5sZW5ndGggPj0gbGltaXQgOiB0cnVlKSkge1xuICAgIGNvbnN0IHNlbGVjdENvdW50TWV0aG9kczogQ2hhaW5lZE1ldGhvZHMgPSBbXVxuXG4gICAgam9pbkFsaWFzZXMuZm9yRWFjaCgoeyBjb25kaXRpb24sIHRhYmxlIH0pID0+IHtcbiAgICAgIHNlbGVjdENvdW50TWV0aG9kcy5wdXNoKHtcbiAgICAgICAgYXJnczogW3RhYmxlLCBjb25kaXRpb25dLFxuICAgICAgICBtZXRob2Q6ICdsZWZ0Sm9pbicsXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBPYmplY3QuZW50cmllcyhqb2lucykuZm9yRWFjaCgoW2pvaW5UYWJsZSwgY29uZGl0aW9uXSkgPT4ge1xuICAgICAgaWYgKGpvaW5UYWJsZSkge1xuICAgICAgICBzZWxlY3RDb3VudE1ldGhvZHMucHVzaCh7XG4gICAgICAgICAgYXJnczogW2FkYXB0ZXIudGFibGVzW2pvaW5UYWJsZV0sIGNvbmRpdGlvbl0sXG4gICAgICAgICAgbWV0aG9kOiAnbGVmdEpvaW4nLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBjb3VudFJlc3VsdCA9IGF3YWl0IGNoYWluTWV0aG9kcyh7XG4gICAgICBtZXRob2RzOiBzZWxlY3RDb3VudE1ldGhvZHMsXG4gICAgICBxdWVyeTogZGJcbiAgICAgICAgLnNlbGVjdCh7XG4gICAgICAgICAgY291bnQ6IHNxbDxudW1iZXI+YGNvdW50XG4gICAgICAgICAgICAgIChESVNUSU5DVCAke2FkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWR9KWAsXG4gICAgICAgIH0pXG4gICAgICAgIC5mcm9tKHRhYmxlKVxuICAgICAgICAud2hlcmUod2hlcmUpLFxuICAgIH0pXG4gICAgdG90YWxEb2NzID0gTnVtYmVyKGNvdW50UmVzdWx0WzBdLmNvdW50KVxuICAgIHRvdGFsUGFnZXMgPSB0eXBlb2YgbGltaXQgPT09ICdudW1iZXInICYmIGxpbWl0ICE9PSAwID8gTWF0aC5jZWlsKHRvdGFsRG9jcyAvIGxpbWl0KSA6IDFcbiAgICBoYXNQcmV2UGFnZSA9IHBhZ2UgPiAxXG4gICAgaGFzTmV4dFBhZ2UgPSB0b3RhbFBhZ2VzID4gcGFnZVxuICAgIHBhZ2luZ0NvdW50ZXIgPSAocGFnZSAtIDEpICogbGltaXQgKyAxXG4gIH1cblxuICBjb25zdCByYXdEb2NzID0gYXdhaXQgZmluZFByb21pc2VcbiAgLy8gc29ydCByYXdEb2NzIGZyb20gc2VsZWN0UXVlcnlcbiAgaWYgKE9iamVjdC5rZXlzKG9yZGVyZWRJRE1hcCkubGVuZ3RoID4gMCkge1xuICAgIHJhd0RvY3Muc29ydCgoYSwgYikgPT4gb3JkZXJlZElETWFwW2EuaWRdIC0gb3JkZXJlZElETWFwW2IuaWRdKVxuICB9XG5cbiAgaWYgKHBhZ2luYXRpb24gPT09IGZhbHNlIHx8ICF0b3RhbERvY3MpIHtcbiAgICB0b3RhbERvY3MgPSByYXdEb2NzLmxlbmd0aFxuICAgIHRvdGFsUGFnZXMgPSAxXG4gICAgcGFnaW5nQ291bnRlciA9IDFcbiAgICBoYXNQcmV2UGFnZSA9IGZhbHNlXG4gICAgaGFzTmV4dFBhZ2UgPSBmYWxzZVxuICB9XG5cbiAgY29uc3QgZG9jcyA9IHJhd0RvY3MubWFwKChkYXRhOiBUeXBlV2l0aElEKSA9PiB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh7XG4gICAgICBjb25maWc6IGFkYXB0ZXIucGF5bG9hZC5jb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgZmllbGRzLFxuICAgIH0pXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBkb2NzLFxuICAgIGhhc05leHRQYWdlLFxuICAgIGhhc1ByZXZQYWdlLFxuICAgIGxpbWl0LFxuICAgIG5leHRQYWdlOiBoYXNOZXh0UGFnZSA/IHBhZ2UgKyAxIDogbnVsbCxcbiAgICBwYWdlLFxuICAgIHBhZ2luZ0NvdW50ZXIsXG4gICAgcHJldlBhZ2U6IGhhc1ByZXZQYWdlID8gcGFnZSAtIDEgOiBudWxsLFxuICAgIHRvdGFsRG9jcyxcbiAgICB0b3RhbFBhZ2VzLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZmluZE1hbnkiLCJmaW5kIiwiYWRhcHRlciIsImZpZWxkcyIsImxpbWl0IiwibGltaXRBcmciLCJsb2NhbGUiLCJwYWdlIiwicGFnaW5hdGlvbiIsInJlcSIsInNraXAiLCJzb3J0IiwidGFibGVOYW1lIiwid2hlcmUiLCJ3aGVyZUFyZyIsImRiIiwic2Vzc2lvbnMiLCJ0cmFuc2FjdGlvbklEIiwiZHJpenpsZSIsInRhYmxlIiwidGFibGVzIiwidG90YWxEb2NzIiwidG90YWxQYWdlcyIsImhhc1ByZXZQYWdlIiwiaGFzTmV4dFBhZ2UiLCJwYWdpbmdDb3VudGVyIiwic2VsZWN0RGlzdGluY3RSZXN1bHQiLCJqb2luQWxpYXNlcyIsImpvaW5zIiwib3JkZXJCeSIsInNlbGVjdEZpZWxkcyIsImJ1aWxkUXVlcnkiLCJvcmRlcmVkSURNYXAiLCJvcmRlcmVkSURzIiwic2VsZWN0RGlzdGluY3RNZXRob2RzIiwib3JkZXIiLCJjb2x1bW4iLCJwdXNoIiwiYXJncyIsIm1ldGhvZCIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZm9yRWFjaCIsImNvbmRpdGlvbiIsImVudHJpZXMiLCJqb2luVGFibGUiLCJ1bmRlZmluZWQiLCJjaGFpbk1ldGhvZHMiLCJtZXRob2RzIiwicXVlcnkiLCJzZWxlY3REaXN0aW5jdCIsImZyb20iLCJkb2NzIiwibmV4dFBhZ2UiLCJwcmV2UGFnZSIsImlkIiwiaSIsImluQXJyYXkiLCJvZmZzZXQiLCJOdW1iZXIiLCJpc05hTiIsImZpbmRQcm9taXNlIiwic2VsZWN0Q291bnRNZXRob2RzIiwiY291bnRSZXN1bHQiLCJzZWxlY3QiLCJjb3VudCIsInNxbCIsIk1hdGgiLCJjZWlsIiwicmF3RG9jcyIsImEiLCJiIiwibWFwIiwiZGF0YSIsInRyYW5zZm9ybSIsImNvbmZpZyIsInBheWxvYWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBbUJhQTs7O2VBQUFBOzs7NEJBaEJnQjttRUFLTjtzQkFDRzttQ0FDUTs4QkFDTDs7Ozs7O0FBUXRCLE1BQU1BLFdBQVcsZUFBZUMsS0FBSyxFQUMxQ0MsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLE9BQU9DLFFBQVEsRUFDZkMsTUFBTSxFQUNOQyxPQUFPLENBQUMsRUFDUkMsVUFBVSxFQUNWQyxNQUFNLENBQUMsQ0FBbUIsRUFDMUJDLElBQUksRUFDSkMsSUFBSSxFQUNKQyxTQUFTLEVBQ1RDLE9BQU9DLFFBQVEsRUFDVjtJQUNMLE1BQU1DLEtBQUtiLFFBQVFjLFFBQVEsQ0FBQ1AsSUFBSVEsYUFBYSxDQUFDLEVBQUVGLE1BQU1iLFFBQVFnQixPQUFPO0lBQ3JFLE1BQU1DLFFBQVFqQixRQUFRa0IsTUFBTSxDQUFDUixVQUFVO0lBRXZDLE1BQU1SLFFBQVFDLFlBQVk7SUFDMUIsSUFBSWdCO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUVKLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFakIsS0FBSyxFQUFFLEdBQUcsTUFBTWtCLElBQUFBLG1CQUFVLEVBQUM7UUFDNUU3QjtRQUNBQztRQUNBRztRQUNBSztRQUNBQztRQUNBQyxPQUFPQztJQUNUO0lBRUEsTUFB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
@@ -38,7 +38,9 @@ async function migrateDown() {
38
38
  throw new Error(`Migration ${migration.name} not found locally.`);
39
39
  }
40
40
  const start = Date.now();
41
- const req = {};
41
+ const req = {
42
+ payload
43
+ };
42
44
  try {
43
45
  payload.logger.info({
44
46
  msg: `Migrating down: ${migrationFile.name}`
@@ -71,4 +73,4 @@ async function migrateDown() {
71
73
  }
72
74
  }
73
75
 
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlRG93bi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCwgbm8tYXdhaXQtaW4tbG9vcCAqL1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldE1pZ3JhdGlvbnMsIHJlYWRNaWdyYXRpb25GaWxlcyB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICdwYXlsb2FkL2Rpc3QvdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IG1pZ3JhdGlvblRhYmxlRXhpc3RzIH0gZnJvbSAnLi91dGlsaXRpZXMvbWlncmF0aW9uVGFibGVFeGlzdHMnXG5pbXBvcnQgeyBwYXJzZUVycm9yIH0gZnJvbSAnLi91dGlsaXRpZXMvcGFyc2VFcnJvcidcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVEb3duKHRoaXM6IFBvc3RncmVzQWRhcHRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBheWxvYWQgfSA9IHRoaXNcbiAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCByZWFkTWlncmF0aW9uRmlsZXMoeyBwYXlsb2FkIH0pXG5cbiAgY29uc3QgeyBleGlzdGluZ01pZ3JhdGlvbnMsIGxhdGVzdEJhdGNoIH0gPSBhd2FpdCBnZXRNaWdyYXRpb25zKHtcbiAgICBwYXlsb2FkLFxuICB9KVxuXG4gIGlmICghZXhpc3RpbmdNaWdyYXRpb25zPy5sZW5ndGgpIHtcbiAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiAnTm8gbWlncmF0aW9ucyB0byByb2xsYmFjay4nIH0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBwYXlsb2FkLmxvZ2dlci5pbmZvKHtcbiAgICBtc2c6IGBSb2xsaW5nIGJhY2sgYmF0Y2ggJHtsYXRlc3RCYXRjaH0gY29uc2lzdGluZyBvZiAke2V4aXN0aW5nTWlncmF0aW9ucy5sZW5ndGh9IG1pZ3JhdGlvbihzKS5gLFxuICB9KVxuXG4gIGNvbnN0IGxhdGVzdEJhdGNoTWlncmF0aW9ucyA9IGV4aXN0aW5nTWlncmF0aW9ucy5maWx0ZXIoKHsgYmF0Y2ggfSkgPT4gYmF0Y2ggPT09IGxhdGVzdEJhdGNoKVxuXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIGxhdGVzdEJhdGNoTWlncmF0aW9ucykge1xuICAgIGNvbnN0IG1pZ3JhdGlvbkZpbGUgPSBtaWdyYXRpb25GaWxlcy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1pZ3JhdGlvbi5uYW1lKVxuICAgIGlmICghbWlncmF0aW9uRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0gbm90IGZvdW5kIGxvY2FsbHkuYClcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KClcbiAgICBjb25zdCByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdFxuXG4gICAgdHJ5IHtcbiAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpbmcgZG93bjogJHttaWdyYXRpb25GaWxlLm5hbWV9YCB9KVxuICAgICAgYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIGF3YWl0IG1pZ3JhdGlvbkZpbGUuZG93bih7IHBheWxvYWQsIHJlcSB9KVxuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgICAgIG1zZzogYE1pZ3JhdGVkIGRvd246ICAke21pZ3JhdGlvbkZpbGUubmFtZX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWAsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB0YWJsZUV4aXN0cyA9IGF3YWl0IG1pZ3JhdGlvblRhYmxlRXhpc3RzKHRoaXMuZHJpenpsZSlcbiAgICAgIGlmICh0YWJsZUV4aXN0cykge1xuICAgICAgICBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgaWQ6IG1pZ3JhdGlvbi5pZCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1taWdyYXRpb25zJyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNvbW1pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgZXJyLFxuICAgICAgICBtc2c6IHBhcnNlRXJyb3IoZXJyLCBgRXJyb3IgbWlncmF0aW5nIGRvd24gJHttaWdyYXRpb25GaWxlLm5hbWV9LiBSb2xsaW5nIGJhY2suYCksXG4gICAgICB9KVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsibWlncmF0ZURvd24iLCJwYXlsb2FkIiwibWlncmF0aW9uRmlsZXMiLCJyZWFkTWlncmF0aW9uRmlsZXMiLCJleGlzdGluZ01pZ3JhdGlvbnMiLCJsYXRlc3RCYXRjaCIsImdldE1pZ3JhdGlvbnMiLCJsZW5ndGgiLCJsb2dnZXIiLCJpbmZvIiwibXNnIiwibGF0ZXN0QmF0Y2hNaWdyYXRpb25zIiwiZmlsdGVyIiwiYmF0Y2giLCJtaWdyYXRpb24iLCJtaWdyYXRpb25GaWxlIiwiZmluZCIsIm0iLCJuYW1lIiwiRXJyb3IiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJyZXEiLCJpbml0VHJhbnNhY3Rpb24iLCJkb3duIiwidGFibGVFeGlzdHMiLCJtaWdyYXRpb25UYWJsZUV4aXN0cyIsImRyaXp6bGUiLCJkZWxldGUiLCJpZCIsImNvbGxlY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImVyciIsImtpbGxUcmFuc2FjdGlvbiIsImVycm9yIiwicGFyc2VFcnJvciIsInByb2Nlc3MiLCJleGl0Il0sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7Ozs7K0JBYW5DQTs7O2VBQUFBOzs7MEJBVjRCO21DQUNoQjtpQ0FDRjtpQ0FDQTtzQ0FJSzs0QkFDVjtBQUVwQixlQUFlQTtJQUNwQixNQUFNLEVBQUVDLE9BQU8sRUFBRSxHQUFHLElBQUk7SUFDeEIsTUFBTUMsaUJBQWlCLE1BQU1DLElBQUFBLDRCQUFrQixFQUFDO1FBQUVGO0lBQVE7SUFFMUQsTUFBTSxFQUFFRyxrQkFBa0IsRUFBRUMsV0FBVyxFQUFFLEdBQUcsTUFBTUMsSUFBQUEsdUJBQWEsRUFBQztRQUM5REw7SUFDRjtJQUVBLElBQUksQ0FBQ0csb0JBQW9CRyxRQUFRO1FBQy9CTixRQUFRTyxNQUFNLENBQUNDLElBQUksQ0FBQztZQUFFQyxLQUFLO1FBQTZCO1FBQ3hEO0lBQ0Y7SUFFQVQsUUFBUU8sTUFBTSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRUwsWUFBWSxlQUFlLEVBQUVELG1CQUFtQkcsTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUNuRztJQUVBLE1BQU1JLHdCQUF3QlAsbUJBQW1CUSxNQUFNLENBQUMsQ0FBQyxFQUFFQyxLQUFLLEVBQUUsR0FBS0EsVUFBVVI7SUFFakYsS0FBSyxNQUFNUyxhQUFhSCxzQkFBdUI7UUFDN0MsTUFBTUksZ0JBQWdCYixlQUFlYyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLSixVQUFVSSxJQUFJO1FBQzFFLElBQUksQ0FBQ0gsZUFBZTtZQUNsQixNQUFNLElBQUlJLE1BQU0sQ0FBQyxVQUFVLEVBQUVMLFVBQVVJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNsRTtRQUVBLE1BQU1FLFFBQVFDLEtBQUtDLEdBQUc7UUFDdEIsTUFBTUMsTUFBTSxDQUFDO1FBRWIsSUFBSTtZQUNGdEIsUUFBUU8sTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQUVDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUssY0FBY0csSUFBSSxDQUFDLENBQUM7WUFBQztZQUNuRSxNQUFNTSxJQUFBQSxnQ0FBZSxFQUFDRDtZQUN0QixNQUFNUixjQUFjVSxJQUFJLENBQUM7Z0JBQUV4QjtnQkFBU3NCO1lBQUk7WUFDeEN0QixRQUFRTyxNQUFNLENBQUNDLElBQUksQ0FBQztnQkFDbEJDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUssY0FBY0csSUFBSSxDQUFDLEVBQUUsRUFBRUcsS0FBS0MsR0FBRyxLQUFLRixNQUFNLEdBQUcsQ0FBQztZQUN4RTtZQUVBLE1BQU1NLGNBQWMsTUFBTUMsSUFBQUEsMENBQW9CLEVBQUMsSUFBSSxDQUFDQyxPQUFPO1lBQzNELElBQUlGLGFBQWE7Z0JBQ2YsTUFBTXpCLFFBQVE0QixNQUFNLENBQUM7b0JBQ25CQyxJQUFJaEIsVUFBVWdCLEVBQUU7b0JBQ2hCQyxZQUFZO29CQUNaUjtnQkFDRjtZQUNGO1lBRUEsTUFBTVMsSUFBQUEsb0NBQWlCLEVBQUNUO1FBQzFCLEVBQUUsT0FBT1UsS0FBYztZQUNyQixNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDWDtZQUV0QnRCLFFBQVFPLE1BQU0sQ0FBQzJCLEtBQUssQ0FBQztnQkFDbkJGO2dCQUNBdkIsS0FBSzBCLElBQUFBLHNCQUFVLEVBQUNILEtBQUssQ0FBQyxxQkFBcUIsRUFBRWxCLGNBQWNHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbEY7WUFDQW1CLFFBQVFDLElBQUksQ0FBQztRQUNmO0lBQ0Y7QUFDRiJ9
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlRG93bi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCwgbm8tYXdhaXQtaW4tbG9vcCAqL1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldE1pZ3JhdGlvbnMsIHJlYWRNaWdyYXRpb25GaWxlcyB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICdwYXlsb2FkL2Rpc3QvdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IG1pZ3JhdGlvblRhYmxlRXhpc3RzIH0gZnJvbSAnLi91dGlsaXRpZXMvbWlncmF0aW9uVGFibGVFeGlzdHMnXG5pbXBvcnQgeyBwYXJzZUVycm9yIH0gZnJvbSAnLi91dGlsaXRpZXMvcGFyc2VFcnJvcidcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVEb3duKHRoaXM6IFBvc3RncmVzQWRhcHRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBheWxvYWQgfSA9IHRoaXNcbiAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCByZWFkTWlncmF0aW9uRmlsZXMoeyBwYXlsb2FkIH0pXG5cbiAgY29uc3QgeyBleGlzdGluZ01pZ3JhdGlvbnMsIGxhdGVzdEJhdGNoIH0gPSBhd2FpdCBnZXRNaWdyYXRpb25zKHtcbiAgICBwYXlsb2FkLFxuICB9KVxuXG4gIGlmICghZXhpc3RpbmdNaWdyYXRpb25zPy5sZW5ndGgpIHtcbiAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiAnTm8gbWlncmF0aW9ucyB0byByb2xsYmFjay4nIH0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBwYXlsb2FkLmxvZ2dlci5pbmZvKHtcbiAgICBtc2c6IGBSb2xsaW5nIGJhY2sgYmF0Y2ggJHtsYXRlc3RCYXRjaH0gY29uc2lzdGluZyBvZiAke2V4aXN0aW5nTWlncmF0aW9ucy5sZW5ndGh9IG1pZ3JhdGlvbihzKS5gLFxuICB9KVxuXG4gIGNvbnN0IGxhdGVzdEJhdGNoTWlncmF0aW9ucyA9IGV4aXN0aW5nTWlncmF0aW9ucy5maWx0ZXIoKHsgYmF0Y2ggfSkgPT4gYmF0Y2ggPT09IGxhdGVzdEJhdGNoKVxuXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIGxhdGVzdEJhdGNoTWlncmF0aW9ucykge1xuICAgIGNvbnN0IG1pZ3JhdGlvbkZpbGUgPSBtaWdyYXRpb25GaWxlcy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1pZ3JhdGlvbi5uYW1lKVxuICAgIGlmICghbWlncmF0aW9uRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0gbm90IGZvdW5kIGxvY2FsbHkuYClcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KClcbiAgICBjb25zdCByZXEgPSB7IHBheWxvYWQgfSBhcyBQYXlsb2FkUmVxdWVzdFxuXG4gICAgdHJ5IHtcbiAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpbmcgZG93bjogJHttaWdyYXRpb25GaWxlLm5hbWV9YCB9KVxuICAgICAgYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIGF3YWl0IG1pZ3JhdGlvbkZpbGUuZG93bih7IHBheWxvYWQsIHJlcSB9KVxuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgICAgIG1zZzogYE1pZ3JhdGVkIGRvd246ICAke21pZ3JhdGlvbkZpbGUubmFtZX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWAsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB0YWJsZUV4aXN0cyA9IGF3YWl0IG1pZ3JhdGlvblRhYmxlRXhpc3RzKHRoaXMuZHJpenpsZSlcbiAgICAgIGlmICh0YWJsZUV4aXN0cykge1xuICAgICAgICBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgaWQ6IG1pZ3JhdGlvbi5pZCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1taWdyYXRpb25zJyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNvbW1pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgZXJyLFxuICAgICAgICBtc2c6IHBhcnNlRXJyb3IoZXJyLCBgRXJyb3IgbWlncmF0aW5nIGRvd24gJHttaWdyYXRpb25GaWxlLm5hbWV9LiBSb2xsaW5nIGJhY2suYCksXG4gICAgICB9KVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsibWlncmF0ZURvd24iLCJwYXlsb2FkIiwibWlncmF0aW9uRmlsZXMiLCJyZWFkTWlncmF0aW9uRmlsZXMiLCJleGlzdGluZ01pZ3JhdGlvbnMiLCJsYXRlc3RCYXRjaCIsImdldE1pZ3JhdGlvbnMiLCJsZW5ndGgiLCJsb2dnZXIiLCJpbmZvIiwibXNnIiwibGF0ZXN0QmF0Y2hNaWdyYXRpb25zIiwiZmlsdGVyIiwiYmF0Y2giLCJtaWdyYXRpb24iLCJtaWdyYXRpb25GaWxlIiwiZmluZCIsIm0iLCJuYW1lIiwiRXJyb3IiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJyZXEiLCJpbml0VHJhbnNhY3Rpb24iLCJkb3duIiwidGFibGVFeGlzdHMiLCJtaWdyYXRpb25UYWJsZUV4aXN0cyIsImRyaXp6bGUiLCJkZWxldGUiLCJpZCIsImNvbGxlY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImVyciIsImtpbGxUcmFuc2FjdGlvbiIsImVycm9yIiwicGFyc2VFcnJvciIsInByb2Nlc3MiLCJleGl0Il0sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7Ozs7K0JBYW5DQTs7O2VBQUFBOzs7MEJBVjRCO21DQUNoQjtpQ0FDRjtpQ0FDQTtzQ0FJSzs0QkFDVjtBQUVwQixlQUFlQTtJQUNwQixNQUFNLEVBQUVDLE9BQU8sRUFBRSxHQUFHLElBQUk7SUFDeEIsTUFBTUMsaUJBQWlCLE1BQU1DLElBQUFBLDRCQUFrQixFQUFDO1FBQUVGO0lBQVE7SUFFMUQsTUFBTSxFQUFFRyxrQkFBa0IsRUFBRUMsV0FBVyxFQUFFLEdBQUcsTUFBTUMsSUFBQUEsdUJBQWEsRUFBQztRQUM5REw7SUFDRjtJQUVBLElBQUksQ0FBQ0csb0JBQW9CRyxRQUFRO1FBQy9CTixRQUFRTyxNQUFNLENBQUNDLElBQUksQ0FBQztZQUFFQyxLQUFLO1FBQTZCO1FBQ3hEO0lBQ0Y7SUFFQVQsUUFBUU8sTUFBTSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRUwsWUFBWSxlQUFlLEVBQUVELG1CQUFtQkcsTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUNuRztJQUVBLE1BQU1JLHdCQUF3QlAsbUJBQW1CUSxNQUFNLENBQUMsQ0FBQyxFQUFFQyxLQUFLLEVBQUUsR0FBS0EsVUFBVVI7SUFFakYsS0FBSyxNQUFNUyxhQUFhSCxzQkFBdUI7UUFDN0MsTUFBTUksZ0JBQWdCYixlQUFlYyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLSixVQUFVSSxJQUFJO1FBQzFFLElBQUksQ0FBQ0gsZUFBZTtZQUNsQixNQUFNLElBQUlJLE1BQU0sQ0FBQyxVQUFVLEVBQUVMLFVBQVVJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNsRTtRQUVBLE1BQU1FLFFBQVFDLEtBQUtDLEdBQUc7UUFDdEIsTUFBTUMsTUFBTTtZQUFFdEI7UUFBUTtRQUV0QixJQUFJO1lBQ0ZBLFFBQVFPLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO2dCQUFFQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUVLLGNBQWNHLElBQUksQ0FBQyxDQUFDO1lBQUM7WUFDbkUsTUFBTU0sSUFBQUEsZ0NBQWUsRUFBQ0Q7WUFDdEIsTUFBTVIsY0FBY1UsSUFBSSxDQUFDO2dCQUFFeEI7Z0JBQVNzQjtZQUFJO1lBQ3hDdEIsUUFBUU8sTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQ2xCQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUVLLGNBQWNHLElBQUksQ0FBQyxFQUFFLEVBQUVHLEtBQUtDLEdBQUcsS0FBS0YsTUFBTSxHQUFHLENBQUM7WUFDeEU7WUFFQSxNQUFNTSxjQUFjLE1BQU1DLElBQUFBLDBDQUFvQixFQUFDLElBQUksQ0FBQ0MsT0FBTztZQUMzRCxJQUFJRixhQUFhO2dCQUNmLE1BQU16QixRQUFRNEIsTUFBTSxDQUFDO29CQUNuQkMsSUFBSWhCLFVBQVVnQixFQUFFO29CQUNoQkMsWUFBWTtvQkFDWlI7Z0JBQ0Y7WUFDRjtZQUVBLE1BQU1TLElBQUFBLG9DQUFpQixFQUFDVDtRQUMxQixFQUFFLE9BQU9VLEtBQWM7WUFDckIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ1g7WUFFdEJ0QixRQUFRTyxNQUFNLENBQUMyQixLQUFLLENBQUM7Z0JBQ25CRjtnQkFDQXZCLEtBQUswQixJQUFBQSxzQkFBVSxFQUFDSCxLQUFLLENBQUMscUJBQXFCLEVBQUVsQixjQUFjRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ2xGO1lBQ0FtQixRQUFRQyxJQUFJLENBQUM7UUFDZjtJQUNGO0FBQ0YifQ==
@@ -2,5 +2,7 @@ import type { PostgresAdapter } from './types';
2
2
  /**
3
3
  * Drop the current database and run all migrate up functions
4
4
  */
5
- export declare function migrateFresh(this: PostgresAdapter): Promise<void>;
5
+ export declare function migrateFresh(this: PostgresAdapter, { forceAcceptWarning }: {
6
+ forceAcceptWarning?: boolean;
7
+ }): Promise<void>;
6
8
  //# sourceMappingURL=migrateFresh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DvE"}
1
+ {"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,eAAe,EACrB,EAAE,kBAA0B,EAAE;;CAAA,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Df"}
@@ -20,20 +20,22 @@ function _interop_require_default(obj) {
20
20
  default: obj
21
21
  };
22
22
  }
23
- async function migrateFresh() {
23
+ async function migrateFresh({ forceAcceptWarning = false }) {
24
24
  const { payload } = this;
25
- const { confirm: acceptWarning } = await (0, _prompts.default)({
26
- name: 'confirm',
27
- type: 'confirm',
28
- initial: false,
29
- message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`
30
- }, {
31
- onCancel: ()=>{
25
+ if (forceAcceptWarning === false) {
26
+ const { confirm: acceptWarning } = await (0, _prompts.default)({
27
+ name: 'confirm',
28
+ type: 'confirm',
29
+ initial: false,
30
+ message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`
31
+ }, {
32
+ onCancel: ()=>{
33
+ process.exit(0);
34
+ }
35
+ });
36
+ if (!acceptWarning) {
32
37
  process.exit(0);
33
38
  }
34
- });
35
- if (!acceptWarning) {
36
- process.exit(0);
37
39
  }
38
40
  payload.logger.info({
39
41
  msg: `Dropping database.`
@@ -83,4 +85,4 @@ async function migrateFresh() {
83
85
  }
84
86
  }
85
87
 
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlRnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJ1xuaW1wb3J0IHsgcmVhZE1pZ3JhdGlvbkZpbGVzIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAncGF5bG9hZC9kaXN0L3V0aWxpdGllcy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAncGF5bG9hZC9kaXN0L3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgcHJvbXB0cyBmcm9tICdwcm9tcHRzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlRXJyb3IgfSBmcm9tICcuL3V0aWxpdGllcy9wYXJzZUVycm9yJ1xuXG4vKipcbiAqIERyb3AgdGhlIGN1cnJlbnQgZGF0YWJhc2UgYW5kIHJ1biBhbGwgbWlncmF0ZSB1cCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVGcmVzaCh0aGlzOiBQb3N0Z3Jlc0FkYXB0ZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXlsb2FkIH0gPSB0aGlzXG5cbiAgY29uc3QgeyBjb25maXJtOiBhY2NlcHRXYXJuaW5nIH0gPSBhd2FpdCBwcm9tcHRzKFxuICAgIHtcbiAgICAgIG5hbWU6ICdjb25maXJtJyxcbiAgICAgIHR5cGU6ICdjb25maXJtJyxcbiAgICAgIGluaXRpYWw6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogYFdBUk5JTkc6IFRoaXMgd2lsbCBkcm9wIHlvdXIgZGF0YWJhc2UgYW5kIHJ1biBhbGwgbWlncmF0aW9ucy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/YCxcbiAgICB9LFxuICAgIHtcbiAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgwKVxuICAgICAgfSxcbiAgICB9LFxuICApXG5cbiAgaWYgKCFhY2NlcHRXYXJuaW5nKSB7XG4gICAgcHJvY2Vzcy5leGl0KDApXG4gIH1cblxuICBwYXlsb2FkLmxvZ2dlci5pbmZvKHtcbiAgICBtc2c6IGBEcm9wcGluZyBkYXRhYmFzZS5gLFxuICB9KVxuXG4gIGF3YWl0IHRoaXMuZHJpenpsZS5leGVjdXRlKHNxbGBkcm9wIHNjaGVtYSBwdWJsaWMgY2FzY2FkZTtcbiAgY3JlYXRlIHNjaGVtYSBwdWJsaWM7YClcblxuICBjb25zdCBtaWdyYXRpb25GaWxlcyA9IGF3YWl0IHJlYWRNaWdyYXRpb25GaWxlcyh7IHBheWxvYWQgfSlcbiAgcGF5bG9hZC5sb2dnZXIuZGVidWcoe1xuICAgIG1zZzogYEZvdW5kICR7bWlncmF0aW9uRmlsZXMubGVuZ3RofSBtaWdyYXRpb24gZmlsZXMuYCxcbiAgfSlcblxuICBjb25zdCByZXEgPSB7IHBheWxvYWQgfSBhcyBQYXlsb2FkUmVxdWVzdFxuICAvLyBSdW4gYWxsIG1pZ3JhdGUgdXBcbiAgZm9yIChjb25zdCBtaWdyYXRpb24gb2YgbWlncmF0aW9uRmlsZXMpIHtcbiAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiBgTWlncmF0aW5nOiAke21pZ3JhdGlvbi5uYW1lfWAgfSlcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpXG4gICAgICBhd2FpdCBpbml0VHJhbnNhY3Rpb24ocmVxKVxuICAgICAgYXdhaXQgbWlncmF0aW9uLnVwKHsgcGF5bG9hZCwgcmVxIH0pXG4gICAgICBhd2FpdCBwYXlsb2FkLmNyZWF0ZSh7XG4gICAgICAgIGNvbGxlY3Rpb246ICdwYXlsb2FkLW1pZ3JhdGlvbnMnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbmFtZTogbWlncmF0aW9uLm5hbWUsXG4gICAgICAgICAgYmF0Y2g6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgICBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRlZDogICR7bWlncmF0aW9uLm5hbWV9ICgke0RhdGUubm93KCkgLSBzdGFydH1tcylgIH0pXG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgICAgcGF5bG9hZC5sb2dnZXIuZXJyb3Ioe1xuICAgICAgICBlcnIsXG4gICAgICAgIG1zZzogcGFyc2VFcnJvcihlcnIsIGBFcnJvciBydW5uaW5nIG1pZ3JhdGlvbiAke21pZ3JhdGlvbi5uYW1lfS4gUm9sbGluZyBiYWNrYCksXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1pZ3JhdGVGcmVzaCIsInBheWxvYWQiLCJjb25maXJtIiwiYWNjZXB0V2FybmluZyIsInByb21wdHMiLCJuYW1lIiwidHlwZSIsImluaXRpYWwiLCJtZXNzYWdlIiwib25DYW5jZWwiLCJwcm9jZXNzIiwiZXhpdCIsImxvZ2dlciIsImluZm8iLCJtc2ciLCJkcml6emxlIiwiZXhlY3V0ZSIsInNxbCIsIm1pZ3JhdGlvbkZpbGVzIiwicmVhZE1pZ3JhdGlvbkZpbGVzIiwiZGVidWciLCJsZW5ndGgiLCJyZXEiLCJtaWdyYXRpb24iLCJzdGFydCIsIkRhdGUiLCJub3ciLCJpbml0VHJhbnNhY3Rpb24iLCJ1cCIsImNyZWF0ZSIsImNvbGxlY3Rpb24iLCJkYXRhIiwiYmF0Y2giLCJjb21taXRUcmFuc2FjdGlvbiIsImVyciIsImtpbGxUcmFuc2FjdGlvbiIsImVycm9yIiwicGFyc2VFcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQnNCQTs7O2VBQUFBOzs7NEJBZEY7MEJBQ2U7bUNBQ0Q7aUNBQ0Y7aUNBQ0E7Z0VBQ1o7NEJBSU87Ozs7OztBQUtwQixlQUFlQTtJQUNwQixNQUFNLEVBQUVDLE9BQU8sRUFBRSxHQUFHLElBQUk7SUFFeEIsTUFBTSxFQUFFQyxTQUFTQyxhQUFhLEVBQUUsR0FBRyxNQUFNQyxJQUFBQSxnQkFBTyxFQUM5QztRQUNFQyxNQUFNO1FBQ05DLE1BQU07UUFDTkMsU0FBUztRQUNUQyxTQUFTLENBQUMsK0ZBQStGLENBQUM7SUFDNUcsR0FDQTtRQUNFQyxVQUFVO1lBQ1JDLFFBQVFDLElBQUksQ0FBQztRQUNmO0lBQ0Y7SUFHRixJQUFJLENBQUNSLGVBQWU7UUFDbEJPLFFBQVFDLElBQUksQ0FBQztJQUNmO0lBRUFWLFFBQVFXLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1FBQ2xCQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7SUFDM0I7SUFFQSxNQUFNLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUNDLElBQUFBLGVBQUcsQ0FBQSxDQUFDO3VCQUNWLENBQUM7SUFFdEIsTUFBTUMsaUJBQWlCLE1BQU1DLElBQUFBLDRCQUFrQixFQUFDO1FBQUVsQjtJQUFRO0lBQzFEQSxRQUFRVyxNQUFNLENBQUNRLEtBQUssQ0FBQztRQUNuQk4sS0FBSyxDQUFDLE1BQU0sRUFBRUksZUFBZUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hEO0lBRUEsTUFBTUMsTUFBTTtRQUFFckI7SUFBUTtJQUN0QixxQkFBcUI7SUFDckIsS0FBSyxNQUFNc0IsYUFBYUwsZUFBZ0I7UUFDdENqQixRQUFRVyxNQUFNLENBQUNDLElBQUksQ0FBQztZQUFFQyxLQUFLLENBQUMsV0FBVyxFQUFFUyxVQUFVbEIsSUFBSSxDQUFDLENBQUM7UUFBQztRQUMxRCxJQUFJO1lBQ0YsTUFBTW1CLFFBQVFDLEtBQUtDLEdBQUc7WUFDdEIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ0w7WUFDdEIsTUFBTUMsVUFBVUssRUFBRSxDQUFDO2dCQUFFM0I7Z0JBQVNxQjtZQUFJO1lBQ2xDLE1BQU1yQixRQUFRNEIsTUFBTSxDQUFDO2dCQUNuQkMsWUFBWTtnQkFDWkMsTUFBTTtvQkFDSjFCLE1BQU1rQixVQUFVbEIsSUFBSTtvQkFDcEIyQixPQUFPO2dCQUNUO2dCQUNBVjtZQUNGO1lBQ0EsTUFBTVcsSUFBQUEsb0NBQWlCLEVBQUNYO1lBRXhCckIsUUFBUVcsTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQUVDLEtBQUssQ0FBQyxXQUFXLEVBQUVTLFVBQVVsQixJQUFJLENBQUMsRUFBRSxFQUFFb0IsS0FBS0MsR0FBRyxLQUFLRixNQUFNLEdBQUcsQ0FBQztZQUFDO1FBQ3RGLEVBQUUsT0FBT1UsS0FBYztZQUNyQixNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDYjtZQUN0QnJCLFFBQVFXLE1BQU0sQ0FBQ3dCLEtBQUssQ0FBQztnQkFDbkJGO2dCQUNBcEIsS0FBS3VCLElBQUFBLHNCQUFVLEVBQUNILEtBQUssQ0FBQyx3QkFBd0IsRUFBRVgsVUFBVWxCLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDaEY7UUFDRjtJQUNGO0FBQ0YifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlRnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJ1xuaW1wb3J0IHsgcmVhZE1pZ3JhdGlvbkZpbGVzIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAncGF5bG9hZC9kaXN0L3V0aWxpdGllcy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJ3BheWxvYWQvZGlzdC91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAncGF5bG9hZC9kaXN0L3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgcHJvbXB0cyBmcm9tICdwcm9tcHRzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlRXJyb3IgfSBmcm9tICcuL3V0aWxpdGllcy9wYXJzZUVycm9yJ1xuXG4vKipcbiAqIERyb3AgdGhlIGN1cnJlbnQgZGF0YWJhc2UgYW5kIHJ1biBhbGwgbWlncmF0ZSB1cCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVGcmVzaChcbiAgdGhpczogUG9zdGdyZXNBZGFwdGVyLFxuICB7IGZvcmNlQWNjZXB0V2FybmluZyA9IGZhbHNlIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXlsb2FkIH0gPSB0aGlzXG5cbiAgaWYgKGZvcmNlQWNjZXB0V2FybmluZyA9PT0gZmFsc2UpIHtcbiAgICBjb25zdCB7IGNvbmZpcm06IGFjY2VwdFdhcm5pbmcgfSA9IGF3YWl0IHByb21wdHMoXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb25maXJtJyxcbiAgICAgICAgdHlwZTogJ2NvbmZpcm0nLFxuICAgICAgICBpbml0aWFsOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZTogYFdBUk5JTkc6IFRoaXMgd2lsbCBkcm9wIHlvdXIgZGF0YWJhc2UgYW5kIHJ1biBhbGwgbWlncmF0aW9ucy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9uQ2FuY2VsOiAoKSA9PiB7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIClcblxuICAgIGlmICghYWNjZXB0V2FybmluZykge1xuICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgfVxuICB9XG5cbiAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgbXNnOiBgRHJvcHBpbmcgZGF0YWJhc2UuYCxcbiAgfSlcblxuICBhd2FpdCB0aGlzLmRyaXp6bGUuZXhlY3V0ZShzcWxgZHJvcCBzY2hlbWEgcHVibGljIGNhc2NhZGU7XG4gIGNyZWF0ZSBzY2hlbWEgcHVibGljO2ApXG5cbiAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCByZWFkTWlncmF0aW9uRmlsZXMoeyBwYXlsb2FkIH0pXG4gIHBheWxvYWQubG9nZ2VyLmRlYnVnKHtcbiAgICBtc2c6IGBGb3VuZCAke21pZ3JhdGlvbkZpbGVzLmxlbmd0aH0gbWlncmF0aW9uIGZpbGVzLmAsXG4gIH0pXG5cbiAgY29uc3QgcmVxID0geyBwYXlsb2FkIH0gYXMgUGF5bG9hZFJlcXVlc3RcbiAgLy8gUnVuIGFsbCBtaWdyYXRlIHVwXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIG1pZ3JhdGlvbkZpbGVzKSB7XG4gICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGluZzogJHttaWdyYXRpb24ubmFtZX1gIH0pXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgICAgYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIGF3YWl0IG1pZ3JhdGlvbi51cCh7IHBheWxvYWQsIHJlcSB9KVxuICAgICAgYXdhaXQgcGF5bG9hZC5jcmVhdGUoe1xuICAgICAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1taWdyYXRpb25zJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG5hbWU6IG1pZ3JhdGlvbi5uYW1lLFxuICAgICAgICAgIGJhdGNoOiAxLFxuICAgICAgICB9LFxuICAgICAgICByZXEsXG4gICAgICB9KVxuICAgICAgYXdhaXQgY29tbWl0VHJhbnNhY3Rpb24ocmVxKVxuXG4gICAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiBgTWlncmF0ZWQ6ICAke21pZ3JhdGlvbi5uYW1lfSAoJHtEYXRlLm5vdygpIC0gc3RhcnR9bXMpYCB9KVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgZXJyLFxuICAgICAgICBtc2c6IHBhcnNlRXJyb3IoZXJyLCBgRXJyb3IgcnVubmluZyBtaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0uIFJvbGxpbmcgYmFja2ApLFxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtaWdyYXRlRnJlc2giLCJmb3JjZUFjY2VwdFdhcm5pbmciLCJwYXlsb2FkIiwiY29uZmlybSIsImFjY2VwdFdhcm5pbmciLCJwcm9tcHRzIiwibmFtZSIsInR5cGUiLCJpbml0aWFsIiwibWVzc2FnZSIsIm9uQ2FuY2VsIiwicHJvY2VzcyIsImV4aXQiLCJsb2dnZXIiLCJpbmZvIiwibXNnIiwiZHJpenpsZSIsImV4ZWN1dGUiLCJzcWwiLCJtaWdyYXRpb25GaWxlcyIsInJlYWRNaWdyYXRpb25GaWxlcyIsImRlYnVnIiwibGVuZ3RoIiwicmVxIiwibWlncmF0aW9uIiwic3RhcnQiLCJEYXRlIiwibm93IiwiaW5pdFRyYW5zYWN0aW9uIiwidXAiLCJjcmVhdGUiLCJjb2xsZWN0aW9uIiwiZGF0YSIsImJhdGNoIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJlcnIiLCJraWxsVHJhbnNhY3Rpb24iLCJlcnJvciIsInBhcnNlRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0JzQkE7OztlQUFBQTs7OzRCQWRGOzBCQUNlO21DQUNEO2lDQUNGO2lDQUNBO2dFQUNaOzRCQUlPOzs7Ozs7QUFLcEIsZUFBZUEsYUFFcEIsRUFBRUMscUJBQXFCLEtBQUssRUFBRTtJQUU5QixNQUFNLEVBQUVDLE9BQU8sRUFBRSxHQUFHLElBQUk7SUFFeEIsSUFBSUQsdUJBQXVCLE9BQU87UUFDaEMsTUFBTSxFQUFFRSxTQUFTQyxhQUFhLEVBQUUsR0FBRyxNQUFNQyxJQUFBQSxnQkFBTyxFQUM5QztZQUNFQyxNQUFNO1lBQ05DLE1BQU07WUFDTkMsU0FBUztZQUNUQyxTQUFTLENBQUMsK0ZBQStGLENBQUM7UUFDNUcsR0FDQTtZQUNFQyxVQUFVO2dCQUNSQyxRQUFRQyxJQUFJLENBQUM7WUFDZjtRQUNGO1FBR0YsSUFBSSxDQUFDUixlQUFlO1lBQ2xCTyxRQUFRQyxJQUFJLENBQUM7UUFDZjtJQUNGO0lBRUFWLFFBQVFXLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1FBQ2xCQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7SUFDM0I7SUFFQSxNQUFNLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUNDLElBQUFBLGVBQUcsQ0FBQSxDQUFDO3VCQUNWLENBQUM7SUFFdEIsTUFBTUMsaUJBQWlCLE1BQU1DLElBQUFBLDRCQUFrQixFQUFDO1FBQUVsQjtJQUFRO0lBQzFEQSxRQUFRVyxNQUFNLENBQUNRLEtBQUssQ0FBQztRQUNuQk4sS0FBSyxDQUFDLE1BQU0sRUFBRUksZUFBZUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hEO0lBRUEsTUFBTUMsTUFBTTtRQUFFckI7SUFBUTtJQUN0QixxQkFBcUI7SUFDckIsS0FBSyxNQUFNc0IsYUFBYUwsZUFBZ0I7UUFDdENqQixRQUFRVyxNQUFNLENBQUNDLElBQUksQ0FBQztZQUFFQyxLQUFLLENBQUMsV0FBVyxFQUFFUyxVQUFVbEIsSUFBSSxDQUFDLENBQUM7UUFBQztRQUMxRCxJQUFJO1lBQ0YsTUFBTW1CLFFBQVFDLEtBQUtDLEdBQUc7WUFDdEIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ0w7WUFDdEIsTUFBTUMsVUFBVUssRUFBRSxDQUFDO2dCQUFFM0I7Z0JBQVNxQjtZQUFJO1lBQ2xDLE1BQU1yQixRQUFRNEIsTUFBTSxDQUFDO2dCQUNuQkMsWUFBWTtnQkFDWkMsTUFBTTtvQkFDSjFCLE1BQU1rQixVQUFVbEIsSUFBSTtvQkFDcEIyQixPQUFPO2dCQUNUO2dCQUNBVjtZQUNGO1lBQ0EsTUFBTVcsSUFBQUEsb0NBQWlCLEVBQUNYO1lBRXhCckIsUUFBUVcsTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQUVDLEtBQUssQ0FBQyxXQUFXLEVBQUVTLFVBQVVsQixJQUFJLENBQUMsRUFBRSxFQUFFb0IsS0FBS0MsR0FBRyxLQUFLRixNQUFNLEdBQUcsQ0FBQztZQUFDO1FBQ3RGLEVBQUUsT0FBT1UsS0FBYztZQUNyQixNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDYjtZQUN0QnJCLFFBQVFXLE1BQU0sQ0FBQ3dCLEtBQUssQ0FBQztnQkFDbkJGO2dCQUNBcEIsS0FBS3VCLElBQUFBLHNCQUFVLEVBQUNILEtBQUssQ0FBQyx3QkFBd0IsRUFBRVgsVUFBVWxCLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDaEY7UUFDRjtJQUNGO0FBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAU1E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1E,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,kBAAkB,CAAA;IACzB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mQAehC,IAAI,KAAG,WAoXT,CAAA"}
1
+ {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAU1E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1E,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,kBAAkB,CAAA;IACzB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mQAehC,IAAI,KAAG,WA8WT,CAAA"}
@@ -83,7 +83,7 @@ const getTableColumnFromPath = ({ adapter, aliasTable, collectionPath, columnPre
83
83
  aliasTable,
84
84
  collectionPath,
85
85
  columnPrefix: `${columnPrefix}${field.name}_`,
86
- constraintPath,
86
+ constraintPath: `${constraintPath}${field.name}.`,
87
87
  constraints,
88
88
  fields: field.fields,
89
89
  joinAliases,
@@ -130,7 +130,7 @@ const getTableColumnFromPath = ({ adapter, aliasTable, collectionPath, columnPre
130
130
  aliasTable,
131
131
  collectionPath,
132
132
  columnPrefix: `${columnPrefix}${field.name}_`,
133
- constraintPath,
133
+ constraintPath: `${constraintPath}${field.name}.`,
134
134
  constraints,
135
135
  fields: field.fields,
136
136
  joinAliases,
@@ -249,15 +249,10 @@ const getTableColumnFromPath = ({ adapter, aliasTable, collectionPath, columnPre
249
249
  const aliasRelationshipTable = (0, _pgcore.alias)(adapter.tables[relationTableName], aliasRelationshipTableName);
250
250
  // Join in the relationships table
251
251
  joinAliases.push({
252
- condition: (0, _drizzleorm.eq)((aliasTable || adapter.tables[rootTableName]).id, aliasRelationshipTable.parent),
252
+ condition: (0, _drizzleorm.and)((0, _drizzleorm.eq)((aliasTable || adapter.tables[rootTableName]).id, aliasRelationshipTable.parent), (0, _drizzleorm.like)(aliasRelationshipTable.path, `${constraintPath}${field.name}`)),
253
253
  table: aliasRelationshipTable
254
254
  });
255
255
  selectFields[`${relationTableName}.path`] = aliasRelationshipTable.path;
256
- constraints.push({
257
- columnName: 'path',
258
- table: aliasRelationshipTable,
259
- value: `${constraintPath}${field.name}`
260
- });
261
256
  let newAliasTable;
262
257
  if (typeof field.relationTo === 'string') {
263
258
  newTableName = `${(0, _tosnakecase.default)(field.relationTo)}`;
@@ -340,7 +335,7 @@ const getTableColumnFromPath = ({ adapter, aliasTable, collectionPath, columnPre
340
335
  columnName: `${columnPrefix}${field.name}`,
341
336
  constraints,
342
337
  field,
343
- pathSegments: pathSegments,
338
+ pathSegments,
344
339
  table: targetTable
345
340
  };
346
341
  }
@@ -350,4 +345,4 @@ const getTableColumnFromPath = ({ adapter, aliasTable, collectionPath, columnPre
350
345
  throw new _errors.APIError(`Cannot find field for path at ${fieldPath}`);
351
346
  };
352
347
 
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGVxLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IGFsaWFzIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBHZW5lcmljVGFibGUsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXMsIEJ1aWxkUXVlcnlKb2lucyB9IGZyb20gJy4vYnVpbGRRdWVyeSdcblxudHlwZSBDb25zdHJhaW50ID0ge1xuICBjb2x1bW5OYW1lOiBzdHJpbmdcbiAgdGFibGU6IEdlbmVyaWNUYWJsZVxuICB2YWx1ZTogdW5rbm93blxufVxuXG50eXBlIFRhYmxlQ29sdW1uID0ge1xuICBjb2x1bW5OYW1lPzogc3RyaW5nXG4gIGNvbnN0cmFpbnRzOiBDb25zdHJhaW50W11cbiAgZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YVxuICBnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZT86ICh2YWw6IHVua25vd24pID0+IHN0cmluZ1xuICBwYXRoU2VnbWVudHM/OiBzdHJpbmdbXVxuICByYXdDb2x1bW4/OiBTUUxcbiAgdGFibGU6IEdlbmVyaWNUYWJsZVxufVxuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhbGlhc1RhYmxlPzogR2VuZXJpY1RhYmxlXG4gIGNvbGxlY3Rpb25QYXRoOiBzdHJpbmdcbiAgY29sdW1uUHJlZml4Pzogc3RyaW5nXG4gIGNvbnN0cmFpbnRQYXRoPzogc3RyaW5nXG4gIGNvbnN0cmFpbnRzPzogQ29uc3RyYWludFtdXG4gIGZpZWxkczogKEZpZWxkIHwgVGFiQXNGaWVsZClbXVxuICBqb2luQWxpYXNlczogQnVpbGRRdWVyeUpvaW5BbGlhc2VzXG4gIGpvaW5zOiBCdWlsZFF1ZXJ5Sm9pbnNcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBhdGhTZWdtZW50czogc3RyaW5nW11cbiAgcm9vdFRhYmxlTmFtZT86IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFRyYW5zZm9ybXMgcGF0aCB0byB0YWJsZSBhbmQgY29sdW1uIG5hbWVcbiAqIEFkZHMgdGFibGVzIHRvIGBqb2luYFxuICogQHJldHVybnMgVGFibGVDb2x1bW5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggPSAoe1xuICBhZGFwdGVyLFxuICBhbGlhc1RhYmxlLFxuICBjb2xsZWN0aW9uUGF0aCxcbiAgY29sdW1uUHJlZml4ID0gJycsXG4gIGNvbnN0cmFpbnRQYXRoOiBpbmNvbWluZ0NvbnN0cmFpbnRQYXRoLFxuICBjb25zdHJhaW50cyA9IFtdLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlOiBpbmNvbWluZ0xvY2FsZSxcbiAgcGF0aFNlZ21lbnRzOiBpbmNvbWluZ1NlZ21lbnRzLFxuICByb290VGFibGVOYW1lOiBpbmNvbWluZ1Jvb3RUYWJsZU5hbWUsXG4gIHNlbGVjdEZpZWxkcyxcbiAgdGFibGVOYW1lLFxufTogQXJncyk6IFRhYmxlQ29sdW1uID0+IHtcbiAgY29uc3QgZmllbGRQYXRoID0gaW5jb21pbmdTZWdtZW50c1swXVxuICBsZXQgbG9jYWxlID0gaW5jb21pbmdMb2NhbGVcbiAgY29uc3Qgcm9vdFRhYmxlTmFtZSA9IGluY29taW5nUm9vdFRhYmxlTmFtZSB8fCB0YWJsZU5hbWVcbiAgbGV0IGNvbnN0cmFpbnRQYXRoID0gaW5jb21pbmdDb25zdHJhaW50UGF0aCB8fCAnJ1xuXG4gIGNvbnN0IGZpZWxkID0gZmxhdHRlblRvcExldmVsRmllbGRzKGZpZWxkcyBhcyBGaWVsZFtdKS5maW5kKFxuICAgIChmaWVsZFRvRmluZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZFRvRmluZCkgJiYgZmllbGRUb0ZpbmQubmFtZSA9PT0gZmllbGRQYXRoLFxuICApIGFzIEZpZWxkIHwgVGFiQXNGaWVsZFxuICBsZXQgbmV3VGFibGVOYW1lID0gdGFibGVOYW1lXG5cbiAgaWYgKCFmaWVsZCAmJiBmaWVsZFBhdGggPT09ICdpZCcpIHtcbiAgICBzZWxlY3RGaWVsZHMuaWQgPSBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLmlkXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbk5hbWU6ICdpZCcsXG4gICAgICBjb25zdHJhaW50cyxcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgfSxcbiAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLFxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWVsZCkge1xuICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IFsuLi5pbmNvbWluZ1NlZ21lbnRzXVxuXG4gICAgLy8gSWYgbmV4dCBzZWdtZW50IGlzIGEgbG9jYWxlLFxuICAgIC8vIHdlIG5lZWQgdG8gdGFrZSBpdCBvdXQgYW5kIHVzZSBpdCBhcyB0aGUgbG9jYWxlIGZyb20gdGhpcyBwb2ludCBvblxuICAgIGlmICgnbG9jYWxpemVkJyBpbiBmaWVsZCAmJiBmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIGNvbnN0IG1hdGNoZWRMb2NhbGUgPSBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5maW5kKFxuICAgICAgICAobG9jYWxlKSA9PiBsb2NhbGUgPT09IHBhdGhTZWdtZW50c1sxXSxcbiAgICAgIClcblxuICAgICAgaWYgKG1hdGNoZWRMb2NhbGUpIHtcbiAgICAgICAgbG9jYWxlID0gbWF0Y2hlZExvY2FsZVxuICAgICAgICBwYXRoU2VnbWVudHMuc3BsaWNlKDEsIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBhbGlhc1RhYmxlLFxuICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb25zdHJhaW50UGF0aCxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICAgICAgICAuLi50YWIsXG4gICAgICAgICAgICB0eXBlOiAndGFiJyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgam9pbnMsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgY2FzZSAndGFiJzoge1xuICAgICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYWxpYXNUYWJsZSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXh9JHtmaWVsZC5uYW1lfV9gLFxuICAgICAgICAgICAgY29uc3RyYWludFBhdGgsXG4gICAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgICBqb2lucyxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHNlbGVjdEZpZWxkcyxcbiAgICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYWxpYXNUYWJsZSxcbiAgICAgICAgICBjb2xsZWN0aW9uUGF0aCxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29uc3RyYWludFBhdGgsXG4gICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgam9pbnMsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgaWYgKGxvY2FsZSAmJiBmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBuZXdUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXG5cbiAgICAgICAgICBqb2luc1t0YWJsZU5hbWVdID0gZXEoXG4gICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkLFxuICAgICAgICAgICAgYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fcGFyZW50SUQsXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChsb2NhbGUgIT09ICdhbGwnKSB7XG4gICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogJ19sb2NhbGUnLFxuICAgICAgICAgICAgICB0YWJsZTogYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXSxcbiAgICAgICAgICAgICAgdmFsdWU6IGxvY2FsZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUYWJsZUNvbHVtbkZyb21QYXRoKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGFsaWFzVGFibGUsXG4gICAgICAgICAgY29sbGVjdGlvblBhdGgsXG4gICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXh9JHtmaWVsZC5uYW1lfV9gLFxuICAgICAgICAgIGNvbnN0cmFpbnRQYXRoLFxuICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGpvaW5BbGlhc2VzLFxuICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXRoU2VnbWVudHM6IHBhdGhTZWdtZW50cy5zbGljZSgxKSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgIHNlbGVjdEZpZWxkcyxcbiAgICAgICAgICB0YWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgIG5ld1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fJHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG4gICAgICAgIGNvbnN0cmFpbnRQYXRoID0gYCR7Y29uc3RyYWludFBhdGh9JHtmaWVsZC5uYW1lfS4lLmBcbiAgICAgICAgaWYgKGxvY2FsZSAmJiBmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBqb2luc1tuZXdUYWJsZU5hbWVdID0gYW5kKFxuICAgICAgICAgICAgZXEoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZCwgYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fcGFyZW50SUQpLFxuICAgICAgICAgICAgZXEoYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fbG9jYWxlLCBsb2NhbGUpLFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAobG9jYWxlICE9PSAnYWxsJykge1xuICAgICAgICAgICAgY29uc3RyYWludHMucHVzaCh7XG4gICAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdfbG9jYWxlJyxcbiAgICAgICAgICAgICAgdGFibGU6IGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgIHZhbHVlOiBsb2NhbGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBqb2luc1tuZXdUYWJsZU5hbWVdID0gZXEoXG4gICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkLFxuICAgICAgICAgICAgYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fcGFyZW50SUQsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUYWJsZUNvbHVtbkZyb21QYXRoKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgIGNvbnN0cmFpbnRQYXRoLFxuICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGpvaW5BbGlhc2VzLFxuICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXRoU2VnbWVudHM6IHBhdGhTZWdtZW50cy5zbGljZSgxKSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgIHNlbGVjdEZpZWxkcyxcbiAgICAgICAgICB0YWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgICBsZXQgYmxvY2tUYWJsZUNvbHVtbjogVGFibGVDb2x1bW5cbiAgICAgICAgbGV0IG5ld1RhYmxlTmFtZTogc3RyaW5nXG4gICAgICAgIGNvbnN0IGhhc0Jsb2NrRmllbGQgPSBmaWVsZC5ibG9ja3Muc29tZSgoYmxvY2spID0+IHtcbiAgICAgICAgICBuZXdUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke3RvU25ha2VDYXNlKGJsb2NrLnNsdWcpfWBcbiAgICAgICAgICBjb25zdHJhaW50UGF0aCA9IGAke2NvbnN0cmFpbnRQYXRofSR7ZmllbGQubmFtZX0uJS5gXG4gICAgICAgICAgbGV0IHJlc3VsdFxuICAgICAgICAgIGNvbnN0IGJsb2NrQ29uc3RyYWludHMgPSBbXVxuICAgICAgICAgIGNvbnN0IGJsb2NrU2VsZWN0RmllbGRzID0ge31cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgICAgICBjb25zdHJhaW50UGF0aCxcbiAgICAgICAgICAgICAgY29uc3RyYWludHM6IGJsb2NrQ29uc3RyYWludHMsXG4gICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgICAgam9pbnMsXG4gICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHNlbGVjdEZpZWxkczogYmxvY2tTZWxlY3RGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBmaW5lLCBub3QgZXZlcnkgYmxvY2sgd2lsbCBoYXZlIHRoZSBmaWVsZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGJsb2NrVGFibGVDb2x1bW4gPSByZXN1bHRcbiAgICAgICAgICBjb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLmNvbmNhdChibG9ja0NvbnN0cmFpbnRzKVxuICAgICAgICAgIHNlbGVjdEZpZWxkcyA9IHsgLi4uc2VsZWN0RmllbGRzLCAuLi5ibG9ja1NlbGVjdEZpZWxkcyB9XG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgICAgam9pbnNbbmV3VGFibGVOYW1lXSA9IGFuZChcbiAgICAgICAgICAgICAgZXEoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZCwgYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fcGFyZW50SUQpLFxuICAgICAgICAgICAgICBlcShhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLl9sb2NhbGUsIGxvY2FsZSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdfbG9jYWxlJyxcbiAgICAgICAgICAgICAgICB0YWJsZTogYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbG9jYWxlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBqb2luc1tuZXdUYWJsZU5hbWVdID0gZXEoXG4gICAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsXG4gICAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX3BhcmVudElELFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9KVxuICAgICAgICBpZiAoaGFzQmxvY2tGaWVsZCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiBibG9ja1RhYmxlQ29sdW1uLmNvbHVtbk5hbWUsXG4gICAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICAgIGZpZWxkOiBibG9ja1RhYmxlQ29sdW1uLmZpZWxkLFxuICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgICByYXdDb2x1bW46IGJsb2NrVGFibGVDb2x1bW4ucmF3Q29sdW1uLFxuICAgICAgICAgICAgdGFibGU6IGJsb2NrVGFibGVDb2x1bW4udGFibGUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoU2VnbWVudHNbMV0gPT09ICdibG9ja1R5cGUnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKCdRdWVyeWluZyBvbiBibG9ja1R5cGUgaXMgbm90IHN1cHBvcnRlZCcpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgbGV0IHJlbGF0aW9uc2hpcEZpZWxkc1xuICAgICAgICBjb25zdCByZWxhdGlvblRhYmxlTmFtZSA9IGAke3Jvb3RUYWJsZU5hbWV9X3JlbHNgXG4gICAgICAgIGNvbnN0IG5ld0NvbGxlY3Rpb25QYXRoID0gcGF0aFNlZ21lbnRzLnNsaWNlKDEpLmpvaW4oJy4nKVxuICAgICAgICBjb25zdCBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlTmFtZSA9IHV1aWQoKVxuICAgICAgICBjb25zdCBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlID0gYWxpYXMoXG4gICAgICAgICAgYWRhcHRlci50YWJsZXNbcmVsYXRpb25UYWJsZU5hbWVdLFxuICAgICAgICAgIGFsaWFzUmVsYXRpb25zaGlwVGFibGVOYW1lLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gSm9pbiBpbiB0aGUgcmVsYXRpb25zaGlwcyB0YWJsZVxuICAgICAgICBqb2luQWxpYXNlcy5wdXNoKHtcbiAgICAgICAgICBjb25kaXRpb246IGVxKFxuICAgICAgICAgICAgKGFsaWFzVGFibGUgfHwgYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0pLmlkLFxuICAgICAgICAgICAgYWxpYXNSZWxhdGlvbnNoaXBUYWJsZS5wYXJlbnQsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0YWJsZTogYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZWxlY3RGaWVsZHNbYCR7cmVsYXRpb25UYWJsZU5hbWV9LnBhdGhgXSA9IGFsaWFzUmVsYXRpb25zaGlwVGFibGUucGF0aFxuXG4gICAgICAgIGNvbnN0cmFpbnRzLnB1c2goe1xuICAgICAgICAgIGNvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgICB0YWJsZTogYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSxcbiAgICAgICAgICB2YWx1ZTogYCR7Y29uc3RyYWludFBhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgIH0pXG5cbiAgICAgICAgbGV0IG5ld0FsaWFzVGFibGVcblxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkLnJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgbmV3VGFibGVOYW1lID0gYCR7dG9TbmFrZUNhc2UoZmllbGQucmVsYXRpb25Ubyl9YFxuICAgICAgICAgIC8vIHBhcmVudCB0byByZWxhdGlvbnNoaXAgam9pbiB0YWJsZVxuICAgICAgICAgIHJlbGF0aW9uc2hpcEZpZWxkcyA9IGFkYXB0ZXIucGF5bG9hZC5jb2xsZWN0aW9uc1tmaWVsZC5yZWxhdGlvblRvXS5jb25maWcuZmllbGRzXG5cbiAgICAgICAgICBuZXdBbGlhc1RhYmxlID0gYWxpYXMoYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXSwgdG9TbmFrZUNhc2UodXVpZCgpKSlcblxuICAgICAgICAgIGpvaW5BbGlhc2VzLnB1c2goe1xuICAgICAgICAgICAgY29uZGl0aW9uOiBlcShuZXdBbGlhc1RhYmxlLmlkLCBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlW2Ake2ZpZWxkLnJlbGF0aW9uVG99SURgXSksXG4gICAgICAgICAgICB0YWJsZTogbmV3QWxpYXNUYWJsZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKG5ld0NvbGxlY3Rpb25QYXRoID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYCR7ZmllbGQucmVsYXRpb25Ub31JRGAsXG4gICAgICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgdGFibGU6IGFsaWFzUmVsYXRpb25zaGlwVGFibGUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG5ld0NvbGxlY3Rpb25QYXRoID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgY29uc3QgdGFibGVDb2x1bW5zTmFtZXMgPSBmaWVsZC5yZWxhdGlvblRvLm1hcChcbiAgICAgICAgICAgIChyZWxhdGlvblRvKSA9PiBgXCIke2FsaWFzUmVsYXRpb25zaGlwVGFibGVOYW1lfVwiLlwiJHt0b1NuYWtlQ2FzZShyZWxhdGlvblRvKX1faWRcImAsXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgcmF3Q29sdW1uOiBzcWwucmF3KGBDT0FMRVNDRSgke3RhYmxlQ29sdW1uc05hbWVzLmpvaW4oJywgJyl9KWApLFxuICAgICAgICAgICAgdGFibGU6IGFsaWFzUmVsYXRpb25zaGlwVGFibGUsXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG5ld0NvbGxlY3Rpb25QYXRoID09PSAncmVsYXRpb25UbycpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvblRvID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSA/IGZpZWxkLnJlbGF0aW9uVG8gOiBbZmllbGQucmVsYXRpb25Ub11cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZ2V0Tm90TnVsbENvbHVtbkJ5VmFsdWU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlZFJlbGF0aW9uID0gcmVsYXRpb25Uby5maW5kKChyZWxhdGlvbikgPT4gcmVsYXRpb24gPT09IHZhbClcbiAgICAgICAgICAgICAgaWYgKG1hdGNoZWRSZWxhdGlvbikgcmV0dXJuIGAke21hdGNoZWRSZWxhdGlvbn1JRGBcbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRhYmxlOiBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlLFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYWxpYXNUYWJsZTogbmV3QWxpYXNUYWJsZSxcbiAgICAgICAgICBjb2xsZWN0aW9uUGF0aDogbmV3Q29sbGVjdGlvblBhdGgsXG4gICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgZmllbGRzOiByZWxhdGlvbnNoaXBGaWVsZHMsXG4gICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgam9pbnMsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgdGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgICAgLy8gSWYgbG9jYWxpemVkLCB3ZSBnbyB0byBsb2NhbGl6ZWQgdGFibGUgYW5kIHNldCBhbGlhc1RhYmxlIHRvIHVuZGVmaW5lZFxuICAgICAgICAgICAgLy8gc28gaXQgaXMgbm90IHBpY2tlZCB1cCBiZWxvdyB0byBiZSB1c2VkIGFzIHRhcmdldFRhYmxlXG4gICAgICAgICAgICBuZXdUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXG5cbiAgICAgICAgICAgIGNvbnN0IHBhcmVudFRhYmxlID0gYWxpYXNUYWJsZSB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdXG5cbiAgICAgICAgICAgIGpvaW5zW25ld1RhYmxlTmFtZV0gPSBlcShwYXJlbnRUYWJsZS5pZCwgYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fcGFyZW50SUQpXG5cbiAgICAgICAgICAgIGFsaWFzVGFibGUgPSB1bmRlZmluZWRcblxuICAgICAgICAgICAgaWYgKGxvY2FsZSAhPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZTogJ19sb2NhbGUnLFxuICAgICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsb2NhbGUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdGFyZ2V0VGFibGUgPSBhbGlhc1RhYmxlIHx8IGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV1cblxuICAgICAgICAgIHNlbGVjdEZpZWxkc1tgJHtuZXdUYWJsZU5hbWV9LiR7Y29sdW1uUHJlZml4fSR7ZmllbGQubmFtZX1gXSA9XG4gICAgICAgICAgICB0YXJnZXRUYWJsZVtgJHtjb2x1bW5QcmVmaXh9JHtmaWVsZC5uYW1lfWBdXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogYCR7Y29sdW1uUHJlZml4fSR7ZmllbGQubmFtZX1gLFxuICAgICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLFxuICAgICAgICAgICAgdGFibGU6IHRhcmdldFRhYmxlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBBUElFcnJvcihgQ2Fubm90IGZpbmQgZmllbGQgZm9yIHBhdGggYXQgJHtmaWVsZFBhdGh9YClcbn1cbiJdLCJuYW1lcyI6WyJnZXRUYWJsZUNvbHVtbkZyb21QYXRoIiwiYWRhcHRlciIsImFsaWFzVGFibGUiLCJjb2xsZWN0aW9uUGF0aCIsImNvbHVtblByZWZpeCIsImNvbnN0cmFpbnRQYXRoIiwiaW5jb21pbmdDb25zdHJhaW50UGF0aCIsImNvbnN0cmFpbnRzIiwiZmllbGRzIiwiam9pbkFsaWFzZXMiLCJqb2lucyIsImxvY2FsZSIsImluY29taW5nTG9jYWxlIiwicGF0aFNlZ21lbnRzIiwiaW5jb21pbmdTZWdtZW50cyIsInJvb3RUYWJsZU5hbWUiLCJpbmNvbWluZ1Jvb3RUYWJsZU5hbWUiLCJzZWxlY3RGaWVsZHMiLCJ0YWJsZU5hbWUiLCJmaWVsZFBhdGgiLCJmaWVsZCIsImZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyIsImZpbmQiLCJmaWVsZFRvRmluZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwibmV3VGFibGVOYW1lIiwiaWQiLCJ0YWJsZXMiLCJjb2x1bW5OYW1lIiwidHlwZSIsInRhYmxlIiwibG9jYWxpemVkIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsIm1hdGNoZWRMb2NhbGUiLCJsb2NhbGVDb2RlcyIsInNwbGljZSIsInRhYnMiLCJtYXAiLCJ0YWIiLCJzbGljZSIsInRhYkhhc05hbWUiLCJlcSIsIl9wYXJlbnRJRCIsInB1c2giLCJ2YWx1ZSIsInRvU25ha2VDYXNlIiwiYW5kIiwiX2xvY2FsZSIsImJsb2NrVGFibGVDb2x1bW4iLCJoYXNCbG9ja0ZpZWxkIiwiYmxvY2tzIiwic29tZSIsImJsb2NrIiwic2x1ZyIsInJlc3VsdCIsImJsb2NrQ29uc3RyYWludHMiLCJibG9ja1NlbGVjdEZpZWxkcyIsImVycm9yIiwiY29uY2F0IiwicmF3Q29sdW1uIiwiQVBJRXJyb3IiLCJyZWxhdGlvbnNoaXBGaWVsZHMiLCJyZWxhdGlvblRhYmxlTmFtZSIsIm5ld0NvbGxlY3Rpb25QYXRoIiwiam9pbiIsImFsaWFzUmVsYXRpb25zaGlwVGFibGVOYW1lIiwidXVpZCIsImFsaWFzUmVsYXRpb25zaGlwVGFibGUiLCJhbGlhcyIsImNvbmRpdGlvbiIsInBhcmVudCIsInBhdGgiLCJuZXdBbGlhc1RhYmxlIiwicmVsYXRpb25UbyIsImNvbGxlY3Rpb25zIiwidGFibGVDb2x1bW5zTmFtZXMiLCJzcWwiLCJyYXciLCJBcnJheSIsImlzQXJyYXkiLCJnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSIsInZhbCIsIm1hdGNoZWRSZWxhdGlvbiIsInJlbGF0aW9uIiwidW5kZWZpbmVkIiwicGFyZW50VGFibGUiLCJ0YXJnZXRUYWJsZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQW9EdkJBOzs7ZUFBQUE7Ozs0QkFoRGdCO3dCQUNQO3dCQUNHO3VCQUNvQjsyQkFDUDtvRUFDZDtzQkFDRzs7Ozs7O0FBMENwQixNQUFNQSx5QkFBeUIsQ0FBQyxFQUNyQ0MsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZDLGNBQWMsRUFDZEMsZUFBZSxFQUFFLEVBQ2pCQyxnQkFBZ0JDLHNCQUFzQixFQUN0Q0MsY0FBYyxFQUFFLEVBQ2hCQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMs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
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGVxLCBsaWtlLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IGFsaWFzIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBHZW5lcmljVGFibGUsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXMsIEJ1aWxkUXVlcnlKb2lucyB9IGZyb20gJy4vYnVpbGRRdWVyeSdcblxudHlwZSBDb25zdHJhaW50ID0ge1xuICBjb2x1bW5OYW1lOiBzdHJpbmdcbiAgdGFibGU6IEdlbmVyaWNUYWJsZVxuICB2YWx1ZTogdW5rbm93blxufVxuXG50eXBlIFRhYmxlQ29sdW1uID0ge1xuICBjb2x1bW5OYW1lPzogc3RyaW5nXG4gIGNvbnN0cmFpbnRzOiBDb25zdHJhaW50W11cbiAgZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YVxuICBnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZT86ICh2YWw6IHVua25vd24pID0+IHN0cmluZ1xuICBwYXRoU2VnbWVudHM/OiBzdHJpbmdbXVxuICByYXdDb2x1bW4/OiBTUUxcbiAgdGFibGU6IEdlbmVyaWNUYWJsZVxufVxuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhbGlhc1RhYmxlPzogR2VuZXJpY1RhYmxlXG4gIGNvbGxlY3Rpb25QYXRoOiBzdHJpbmdcbiAgY29sdW1uUHJlZml4Pzogc3RyaW5nXG4gIGNvbnN0cmFpbnRQYXRoPzogc3RyaW5nXG4gIGNvbnN0cmFpbnRzPzogQ29uc3RyYWludFtdXG4gIGZpZWxkczogKEZpZWxkIHwgVGFiQXNGaWVsZClbXVxuICBqb2luQWxpYXNlczogQnVpbGRRdWVyeUpvaW5BbGlhc2VzXG4gIGpvaW5zOiBCdWlsZFF1ZXJ5Sm9pbnNcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBhdGhTZWdtZW50czogc3RyaW5nW11cbiAgcm9vdFRhYmxlTmFtZT86IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFRyYW5zZm9ybXMgcGF0aCB0byB0YWJsZSBhbmQgY29sdW1uIG5hbWVcbiAqIEFkZHMgdGFibGVzIHRvIGBqb2luYFxuICogQHJldHVybnMgVGFibGVDb2x1bW5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggPSAoe1xuICBhZGFwdGVyLFxuICBhbGlhc1RhYmxlLFxuICBjb2xsZWN0aW9uUGF0aCxcbiAgY29sdW1uUHJlZml4ID0gJycsXG4gIGNvbnN0cmFpbnRQYXRoOiBpbmNvbWluZ0NvbnN0cmFpbnRQYXRoLFxuICBjb25zdHJhaW50cyA9IFtdLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlOiBpbmNvbWluZ0xvY2FsZSxcbiAgcGF0aFNlZ21lbnRzOiBpbmNvbWluZ1NlZ21lbnRzLFxuICByb290VGFibGVOYW1lOiBpbmNvbWluZ1Jvb3RUYWJsZU5hbWUsXG4gIHNlbGVjdEZpZWxkcyxcbiAgdGFibGVOYW1lLFxufTogQXJncyk6IFRhYmxlQ29sdW1uID0+IHtcbiAgY29uc3QgZmllbGRQYXRoID0gaW5jb21pbmdTZWdtZW50c1swXVxuICBsZXQgbG9jYWxlID0gaW5jb21pbmdMb2NhbGVcbiAgY29uc3Qgcm9vdFRhYmxlTmFtZSA9IGluY29taW5nUm9vdFRhYmxlTmFtZSB8fCB0YWJsZU5hbWVcbiAgbGV0IGNvbnN0cmFpbnRQYXRoID0gaW5jb21pbmdDb25zdHJhaW50UGF0aCB8fCAnJ1xuXG4gIGNvbnN0IGZpZWxkID0gZmxhdHRlblRvcExldmVsRmllbGRzKGZpZWxkcyBhcyBGaWVsZFtdKS5maW5kKFxuICAgIChmaWVsZFRvRmluZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZFRvRmluZCkgJiYgZmllbGRUb0ZpbmQubmFtZSA9PT0gZmllbGRQYXRoLFxuICApIGFzIEZpZWxkIHwgVGFiQXNGaWVsZFxuICBsZXQgbmV3VGFibGVOYW1lID0gdGFibGVOYW1lXG5cbiAgaWYgKCFmaWVsZCAmJiBmaWVsZFBhdGggPT09ICdpZCcpIHtcbiAgICBzZWxlY3RGaWVsZHMuaWQgPSBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLmlkXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbk5hbWU6ICdpZCcsXG4gICAgICBjb25zdHJhaW50cyxcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgfSxcbiAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLFxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWVsZCkge1xuICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IFsuLi5pbmNvbWluZ1NlZ21lbnRzXVxuXG4gICAgLy8gSWYgbmV4dCBzZWdtZW50IGlzIGEgbG9jYWxlLFxuICAgIC8vIHdlIG5lZWQgdG8gdGFrZSBpdCBvdXQgYW5kIHVzZSBpdCBhcyB0aGUgbG9jYWxlIGZyb20gdGhpcyBwb2ludCBvblxuICAgIGlmICgnbG9jYWxpemVkJyBpbiBmaWVsZCAmJiBmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIGNvbnN0IG1hdGNoZWRMb2NhbGUgPSBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5maW5kKFxuICAgICAgICAobG9jYWxlKSA9PiBsb2NhbGUgPT09IHBhdGhTZWdtZW50c1sxXSxcbiAgICAgIClcblxuICAgICAgaWYgKG1hdGNoZWRMb2NhbGUpIHtcbiAgICAgICAgbG9jYWxlID0gbWF0Y2hlZExvY2FsZVxuICAgICAgICBwYXRoU2VnbWVudHMuc3BsaWNlKDEsIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBhbGlhc1RhYmxlLFxuICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb25zdHJhaW50UGF0aCxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7XG4gICAgICAgICAgICAuLi50YWIsXG4gICAgICAgICAgICB0eXBlOiAndGFiJyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgam9pbnMsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgY2FzZSAndGFiJzoge1xuICAgICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYWxpYXNUYWJsZSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXh9JHtmaWVsZC5uYW1lfV9gLFxuICAgICAgICAgICAgY29uc3RyYWludFBhdGg6IGAke2NvbnN0cmFpbnRQYXRofSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgdGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBhbGlhc1RhYmxlLFxuICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb25zdHJhaW50UGF0aCxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICBqb2lucyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgdGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICBpZiAobG9jYWxlICYmIGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgIG5ld1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fbG9jYWxlc2BcblxuICAgICAgICAgIGpvaW5zW3RhYmxlTmFtZV0gPSBlcShcbiAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsXG4gICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLl9wYXJlbnRJRCxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKGxvY2FsZSAhPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goe1xuICAgICAgICAgICAgICBjb2x1bW5OYW1lOiAnX2xvY2FsZScsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLFxuICAgICAgICAgICAgICB2YWx1ZTogbG9jYWxlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYWxpYXNUYWJsZSxcbiAgICAgICAgICBjb2xsZWN0aW9uUGF0aCxcbiAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtblByZWZpeH0ke2ZpZWxkLm5hbWV9X2AsXG4gICAgICAgICAgY29uc3RyYWludFBhdGg6IGAke2NvbnN0cmFpbnRQYXRofSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICBqb2lucyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgdGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICBuZXdUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuICAgICAgICBjb25zdHJhaW50UGF0aCA9IGAke2NvbnN0cmFpbnRQYXRofSR7ZmllbGQubmFtZX0uJS5gXG4gICAgICAgIGlmIChsb2NhbGUgJiYgZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgam9pbnNbbmV3VGFibGVOYW1lXSA9IGFuZChcbiAgICAgICAgICAgIGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX3BhcmVudElEKSxcbiAgICAgICAgICAgIGVxKGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX2xvY2FsZSwgbG9jYWxlKSxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKGxvY2FsZSAhPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goe1xuICAgICAgICAgICAgICBjb2x1bW5OYW1lOiAnX2xvY2FsZScsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLFxuICAgICAgICAgICAgICB2YWx1ZTogbG9jYWxlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgam9pbnNbbmV3VGFibGVOYW1lXSA9IGVxKFxuICAgICAgICAgICAgYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZCxcbiAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX3BhcmVudElELFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBjb2xsZWN0aW9uUGF0aCxcbiAgICAgICAgICBjb25zdHJhaW50UGF0aCxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICBqb2lucyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcGF0aFNlZ21lbnRzOiBwYXRoU2VnbWVudHMuc2xpY2UoMSksXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgdGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgbGV0IGJsb2NrVGFibGVDb2x1bW46IFRhYmxlQ29sdW1uXG4gICAgICAgIGxldCBuZXdUYWJsZU5hbWU6IHN0cmluZ1xuICAgICAgICBjb25zdCBoYXNCbG9ja0ZpZWxkID0gZmllbGQuYmxvY2tzLnNvbWUoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgbmV3VGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9ibG9ja3NfJHt0b1NuYWtlQ2FzZShibG9jay5zbHVnKX1gXG4gICAgICAgICAgY29uc3RyYWludFBhdGggPSBgJHtjb25zdHJhaW50UGF0aH0ke2ZpZWxkLm5hbWV9LiUuYFxuICAgICAgICAgIGxldCByZXN1bHRcbiAgICAgICAgICBjb25zdCBibG9ja0NvbnN0cmFpbnRzID0gW11cbiAgICAgICAgICBjb25zdCBibG9ja1NlbGVjdEZpZWxkcyA9IHt9XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uUGF0aCxcbiAgICAgICAgICAgICAgY29uc3RyYWludFBhdGgsXG4gICAgICAgICAgICAgIGNvbnN0cmFpbnRzOiBibG9ja0NvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgam9pbkFsaWFzZXMsXG4gICAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgICAgICBzZWxlY3RGaWVsZHM6IGJsb2NrU2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgICB0YWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgZmluZSwgbm90IGV2ZXJ5IGJsb2NrIHdpbGwgaGF2ZSB0aGUgZmllbGRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBibG9ja1RhYmxlQ29sdW1uID0gcmVzdWx0XG4gICAgICAgICAgY29uc3RyYWludHMgPSBjb25zdHJhaW50cy5jb25jYXQoYmxvY2tDb25zdHJhaW50cylcbiAgICAgICAgICBzZWxlY3RGaWVsZHMgPSB7IC4uLnNlbGVjdEZpZWxkcywgLi4uYmxvY2tTZWxlY3RGaWVsZHMgfVxuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICAgIGpvaW5zW25ld1RhYmxlTmFtZV0gPSBhbmQoXG4gICAgICAgICAgICAgIGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX3BhcmVudElEKSxcbiAgICAgICAgICAgICAgZXEoYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXS5fbG9jYWxlLCBsb2NhbGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiAnX2xvY2FsZScsXG4gICAgICAgICAgICAgICAgdGFibGU6IGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IGxvY2FsZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgam9pbnNbbmV3VGFibGVOYW1lXSA9IGVxKFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkLFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdLl9wYXJlbnRJRCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGhhc0Jsb2NrRmllbGQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sdW1uTmFtZTogYmxvY2tUYWJsZUNvbHVtbi5jb2x1bW5OYW1lLFxuICAgICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgICBmaWVsZDogYmxvY2tUYWJsZUNvbHVtbi5maWVsZCxcbiAgICAgICAgICAgIHBhdGhTZWdtZW50czogcGF0aFNlZ21lbnRzLnNsaWNlKDEpLFxuICAgICAgICAgICAgcmF3Q29sdW1uOiBibG9ja1RhYmxlQ29sdW1uLnJhd0NvbHVtbixcbiAgICAgICAgICAgIHRhYmxlOiBibG9ja1RhYmxlQ29sdW1uLnRhYmxlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFNlZ21lbnRzWzFdID09PSAnYmxvY2tUeXBlJykge1xuICAgICAgICAgIHRocm93IG5ldyBBUElFcnJvcignUXVlcnlpbmcgb24gYmxvY2tUeXBlIGlzIG5vdCBzdXBwb3J0ZWQnKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgIGxldCByZWxhdGlvbnNoaXBGaWVsZHNcbiAgICAgICAgY29uc3QgcmVsYXRpb25UYWJsZU5hbWUgPSBgJHtyb290VGFibGVOYW1lfV9yZWxzYFxuICAgICAgICBjb25zdCBuZXdDb2xsZWN0aW9uUGF0aCA9IHBhdGhTZWdtZW50cy5zbGljZSgxKS5qb2luKCcuJylcbiAgICAgICAgY29uc3QgYWxpYXNSZWxhdGlvbnNoaXBUYWJsZU5hbWUgPSB1dWlkKClcbiAgICAgICAgY29uc3QgYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSA9IGFsaWFzKFxuICAgICAgICAgIGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uVGFibGVOYW1lXSxcbiAgICAgICAgICBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlTmFtZSxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIEpvaW4gaW4gdGhlIHJlbGF0aW9uc2hpcHMgdGFibGVcbiAgICAgICAgam9pbkFsaWFzZXMucHVzaCh7XG4gICAgICAgICAgY29uZGl0aW9uOiBhbmQoXG4gICAgICAgICAgICBlcSgoYWxpYXNUYWJsZSB8fCBhZGFwdGVyLnRhYmxlc1tyb290VGFibGVOYW1lXSkuaWQsIGFsaWFzUmVsYXRpb25zaGlwVGFibGUucGFyZW50KSxcbiAgICAgICAgICAgIGxpa2UoYWxpYXNSZWxhdGlvbnNoaXBUYWJsZS5wYXRoLCBgJHtjb25zdHJhaW50UGF0aH0ke2ZpZWxkLm5hbWV9YCksXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0YWJsZTogYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZWxlY3RGaWVsZHNbYCR7cmVsYXRpb25UYWJsZU5hbWV9LnBhdGhgXSA9IGFsaWFzUmVsYXRpb25zaGlwVGFibGUucGF0aFxuXG4gICAgICAgIGxldCBuZXdBbGlhc1RhYmxlXG5cbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC5yZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG5ld1RhYmxlTmFtZSA9IGAke3RvU25ha2VDYXNlKGZpZWxkLnJlbGF0aW9uVG8pfWBcbiAgICAgICAgICAvLyBwYXJlbnQgdG8gcmVsYXRpb25zaGlwIGpvaW4gdGFibGVcbiAgICAgICAgICByZWxhdGlvbnNoaXBGaWVsZHMgPSBhZGFwdGVyLnBheWxvYWQuY29sbGVjdGlvbnNbZmllbGQucmVsYXRpb25Ub10uY29uZmlnLmZpZWxkc1xuXG4gICAgICAgICAgbmV3QWxpYXNUYWJsZSA9IGFsaWFzKGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0sIHRvU25ha2VDYXNlKHV1aWQoKSkpXG5cbiAgICAgICAgICBqb2luQWxpYXNlcy5wdXNoKHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogZXEobmV3QWxpYXNUYWJsZS5pZCwgYWxpYXNSZWxhdGlvbnNoaXBUYWJsZVtgJHtmaWVsZC5yZWxhdGlvblRvfUlEYF0pLFxuICAgICAgICAgICAgdGFibGU6IG5ld0FsaWFzVGFibGUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChuZXdDb2xsZWN0aW9uUGF0aCA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGAke2ZpZWxkLnJlbGF0aW9uVG99SURgLFxuICAgICAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIHRhYmxlOiBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChuZXdDb2xsZWN0aW9uUGF0aCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIGNvbnN0IHRhYmxlQ29sdW1uc05hbWVzID0gZmllbGQucmVsYXRpb25Uby5tYXAoXG4gICAgICAgICAgICAocmVsYXRpb25UbykgPT4gYFwiJHthbGlhc1JlbGF0aW9uc2hpcFRhYmxlTmFtZX1cIi5cIiR7dG9TbmFrZUNhc2UocmVsYXRpb25Ubyl9X2lkXCJgLFxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHJhd0NvbHVtbjogc3FsLnJhdyhgQ09BTEVTQ0UoJHt0YWJsZUNvbHVtbnNOYW1lcy5qb2luKCcsICcpfSlgKSxcbiAgICAgICAgICAgIHRhYmxlOiBhbGlhc1JlbGF0aW9uc2hpcFRhYmxlLFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChuZXdDb2xsZWN0aW9uUGF0aCA9PT0gJ3JlbGF0aW9uVG8nKSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25UbyA9IEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykgPyBmaWVsZC5yZWxhdGlvblRvIDogW2ZpZWxkLnJlbGF0aW9uVG9dXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIGdldE5vdE51bGxDb2x1bW5CeVZhbHVlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRSZWxhdGlvbiA9IHJlbGF0aW9uVG8uZmluZCgocmVsYXRpb24pID0+IHJlbGF0aW9uID09PSB2YWwpXG4gICAgICAgICAgICAgIGlmIChtYXRjaGVkUmVsYXRpb24pIHJldHVybiBgJHttYXRjaGVkUmVsYXRpb259SURgXG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YWJsZTogYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKCdOb3Qgc3VwcG9ydGVkJylcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRUYWJsZUNvbHVtbkZyb21QYXRoKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGFsaWFzVGFibGU6IG5ld0FsaWFzVGFibGUsXG4gICAgICAgICAgY29sbGVjdGlvblBhdGg6IG5ld0NvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgIGZpZWxkczogcmVsYXRpb25zaGlwRmllbGRzLFxuICAgICAgICAgIGpvaW5BbGlhc2VzLFxuICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXRoU2VnbWVudHM6IHBhdGhTZWdtZW50cy5zbGljZSgxKSxcbiAgICAgICAgICByb290VGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICAgIC8vIElmIGxvY2FsaXplZCwgd2UgZ28gdG8gbG9jYWxpemVkIHRhYmxlIGFuZCBzZXQgYWxpYXNUYWJsZSB0byB1bmRlZmluZWRcbiAgICAgICAgICAgIC8vIHNvIGl0IGlzIG5vdCBwaWNrZWQgdXAgYmVsb3cgdG8gYmUgdXNlZCBhcyB0YXJnZXRUYWJsZVxuICAgICAgICAgICAgbmV3VGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9sb2NhbGVzYFxuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRUYWJsZSA9IGFsaWFzVGFibGUgfHwgYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXVxuXG4gICAgICAgICAgICBqb2luc1tuZXdUYWJsZU5hbWVdID0gZXEocGFyZW50VGFibGUuaWQsIGFkYXB0ZXIudGFibGVzW25ld1RhYmxlTmFtZV0uX3BhcmVudElEKVxuXG4gICAgICAgICAgICBhbGlhc1RhYmxlID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICAgIGlmIChsb2NhbGUgIT09ICdhbGwnKSB7XG4gICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6ICdfbG9jYWxlJyxcbiAgICAgICAgICAgICAgICB0YWJsZTogYWRhcHRlci50YWJsZXNbbmV3VGFibGVOYW1lXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbG9jYWxlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRhcmdldFRhYmxlID0gYWxpYXNUYWJsZSB8fCBhZGFwdGVyLnRhYmxlc1tuZXdUYWJsZU5hbWVdXG5cbiAgICAgICAgICBzZWxlY3RGaWVsZHNbYCR7bmV3VGFibGVOYW1lfS4ke2NvbHVtblByZWZpeH0ke2ZpZWxkLm5hbWV9YF0gPVxuICAgICAgICAgICAgdGFyZ2V0VGFibGVbYCR7Y29sdW1uUHJlZml4fSR7ZmllbGQubmFtZX1gXVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IGAke2NvbHVtblByZWZpeH0ke2ZpZWxkLm5hbWV9YCxcbiAgICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICBwYXRoU2VnbWVudHMsXG4gICAgICAgICAgICB0YWJsZTogdGFyZ2V0VGFibGUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFQSUVycm9yKGBDYW5ub3QgZmluZCBmaWVsZCBmb3IgcGF0aCBhdCAke2ZpZWxkUGF0aH1gKVxufVxuIl0sIm5hbWVzIjpbImdldFRhYmxlQ29sdW1uRnJvbVBhdGgiLCJhZGFwdGVyIiwiYWxpYXNUYWJsZSIsImNvbGxlY3Rpb25QYXRoIiwiY29sdW1uUHJlZml4IiwiY29uc3RyYWludFBhdGgiLCJpbmNvbWluZ0NvbnN0cmFpbnRQYXRoIiwiY29uc3RyYWludHMiLCJmaWVsZHMiLCJqb2luQWxpYXNlcyIsImpvaW5zIiwibG9jYWxlIiwiaW5jb21pbmdMb2NhbGUiLCJwYXRoU2VnbWVudHMiLCJpbmNvbWluZ1NlZ21lbnRzIiwicm9vdFRhYmxlTmFtZSIsImluY29taW5nUm9vdFRhYmxlTmFtZSIsInNlbGVjdEZpZWxkcyIsInRhYmxlTmFtZSIsImZpZWxkUGF0aCIsImZpZWxkIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZmluZCIsImZpZWxkVG9GaW5kIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJuZXdUYWJsZU5hbWUiLCJpZCIsInRhYmxlcyIsImNvbHVtbk5hbWUiLCJ0eXBlIiwidGFibGUiLCJsb2NhbGl6ZWQiLCJwYXlsb2FkIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwibWF0Y2hlZExvY2FsZSIsImxvY2FsZUNvZGVzIiwic3BsaWNlIiwidGFicyIsIm1hcCIsInRhYiIsInNsaWNlIiwidGFiSGFzTmFtZSIsImVxIiwiX3BhcmVudElEIiwicHVzaCIsInZhbHVlIiwidG9TbmFrZUNhc2UiLCJhbmQiLCJfbG9jYWxlIiwiYmxvY2tUYWJsZUNvbHVtbiIsImhhc0Jsb2NrRmllbGQiLCJibG9ja3MiLCJzb21lIiwiYmxvY2siLCJzbHVnIiwicmVzdWx0IiwiYmxvY2tDb25zdHJhaW50cyIsImJsb2NrU2VsZWN0RmllbGRzIiwiZXJyb3IiLCJjb25jYXQiLCJyYXdDb2x1bW4iLCJBUElFcnJvciIsInJlbGF0aW9uc2hpcEZpZWxkcyIsInJlbGF0aW9uVGFibGVOYW1lIiwibmV3Q29sbGVjdGlvblBhdGgiLCJqb2luIiwiYWxpYXNSZWxhdGlvbnNoaXBUYWJsZU5hbWUiLCJ1dWlkIiwiYWxpYXNSZWxhdGlvbnNoaXBUYWJsZSIsImFsaWFzIiwiY29uZGl0aW9uIiwicGFyZW50IiwibGlrZSIsInBhdGgiLCJuZXdBbGlhc1RhYmxlIiwicmVsYXRpb25UbyIsImNvbGxlY3Rpb25zIiwidGFibGVDb2x1bW5zTmFtZXMiLCJzcWwiLCJyYXciLCJBcnJheSIsImlzQXJyYXkiLCJnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSIsInZhbCIsIm1hdGNoZWRSZWxhdGlvbiIsInJlbGF0aW9uIiwidW5kZWZpbmVkIiwicGFyZW50VGFibGUiLCJ0YXJnZXRUYWJsZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQW9EdkJBOzs7ZUFBQUE7Ozs0QkFoRHNCO3dCQUNiO3dCQUNHO3VCQUNvQjsyQkFDUDtvRUFDZDtzQkFDRzs7Ozs7O0FBMENwQixNQUFNQSx5QkFBeUIsQ0FBQyxFQUNyQ0MsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZDLGNBQWMsRUFDZEMsZUFBZSxFQUFFLEVBQ2pCQyxnQkFBZ0JDLHNCQUFzQixFQUN0Q0MsY0FBYyxFQUFFLEVBQ2hCQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxRQUFRQyxjQUFjLEVB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
@@ -1 +1 @@
1
- {"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,eAAe,CAAA;AAM3D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAS1E,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,MAAM,EACN,WAAW,EACX,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAiMrB"}
1
+ {"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,eAAe,CAAA;AAM3D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAS1E,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,WAAW,EAAE,qBAAqB,CAAA;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,MAAM,EACN,WAAW,EACX,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CA2MrB"}
@@ -162,6 +162,14 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
162
162
  NULL`);
163
163
  break;
164
164
  }
165
+ if (operator === 'equals' && queryValue === null) {
166
+ constraints.push((0, _drizzleorm.isNull)(rawColumn || table[columnName]));
167
+ break;
168
+ }
169
+ if (operator === 'not_equals' && queryValue === null) {
170
+ constraints.push((0, _drizzleorm.isNotNull)(rawColumn || table[columnName]));
171
+ break;
172
+ }
165
173
  constraints.push(_operatorMap.operatorMap[queryOperator](rawColumn || table[columnName], queryValue));
166
174
  }
167
175
  }
@@ -183,4 +191,4 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
183
191
  return result;
184
192
  }
185
193
 
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3BhcnNlUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBPcGVyYXRvciwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGlsaWtlLCBpc05vdE51bGwsIGlzTnVsbCwgbmUsIG5vdEluQXJyYXksIG9yLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IHZhbGlkT3BlcmF0b3JzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRRdWVyeUpvaW5BbGlhc2VzLCBCdWlsZFF1ZXJ5Sm9pbnMgfSBmcm9tICcuL2J1aWxkUXVlcnknXG5cbmltcG9ydCB7IGJ1aWxkQW5kT3JDb25kaXRpb25zIH0gZnJvbSAnLi9idWlsZEFuZE9yQ29uZGl0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUpTT05RdWVyeSB9IGZyb20gJy4vY3JlYXRlSlNPTlF1ZXJ5J1xuaW1wb3J0IHsgY29udmVydFBhdGhUb0pTT05UcmF2ZXJzYWwgfSBmcm9tICcuL2NyZWF0ZUpTT05RdWVyeS9jb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCdcbmltcG9ydCB7IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggfSBmcm9tICcuL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgnXG5pbXBvcnQgeyBvcGVyYXRvck1hcCB9IGZyb20gJy4vb3BlcmF0b3JNYXAnXG5pbXBvcnQgeyBzYW5pdGl6ZVF1ZXJ5VmFsdWUgfSBmcm9tICcuL3Nhbml0aXplUXVlcnlWYWx1ZSdcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGpvaW5BbGlhc2VzOiBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXNcbiAgam9pbnM6IEJ1aWxkUXVlcnlKb2luc1xuICBsb2NhbGU6IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG4gIHdoZXJlOiBXaGVyZVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VQYXJhbXMoe1xuICBhZGFwdGVyLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlLFxuICBzZWxlY3RGaWVsZHMsXG4gIHRhYmxlTmFtZSxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxTUUw+IHtcbiAgbGV0IHJlc3VsdDogU1FMXG4gIGNvbnN0IGNvbnN0cmFpbnRzOiBTUUxbXSA9IFtdXG5cbiAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA+IDApIHtcbiAgICAvLyBXZSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgd2hlcmVLZXkgaXMgYW4gQU5ELCBPUiwgb3IgYSBzY2hlbWEgcGF0aFxuICAgIGZvciAoY29uc3QgcmVsYXRpb25PclBhdGggb2YgT2JqZWN0LmtleXMod2hlcmUpKSB7XG4gICAgICBpZiAocmVsYXRpb25PclBhdGgpIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgIGxldCBjb25kaXRpb25PcGVyYXRvcjogJ2FuZCcgfCAnb3InXG4gICAgICAgIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnYW5kJykge1xuICAgICAgICAgIGNvbmRpdGlvbk9wZXJhdG9yID0gJ2FuZCdcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnb3InKSB7XG4gICAgICAgICAgY29uZGl0aW9uT3BlcmF0b3IgPSAnb3InXG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IGJ1aWx0Q29uZGl0aW9ucyA9IGF3YWl0IGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChidWlsdENvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvck1hcFtjb25kaXRpb25PcGVyYXRvcl0ocmVzdWx0LCAuLi5idWlsdENvbmRpdGlvbnMpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvck1hcFtjb25kaXRpb25PcGVyYXRvcl0oLi4uYnVpbHRDb25kaXRpb25zKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJdCdzIGEgcGF0aCAtIGFuZCB0aGVyZSBjYW4gYmUgbXVsdGlwbGUgY29tcGFyaXNvbnMgb24gYSBzaW5nbGUgcGF0aC5cbiAgICAgICAgICAvLyBGb3IgZXhhbXBsZSAtIHRpdGxlIGxpa2UgJ3Rlc3QnIGFuZCB0aXRsZSBub3QgZXF1YWwgdG8gJ3Rlc3RlcidcbiAgICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGxvb3Agb24ga2V5cyBhZ2FpbiBoZXJlIHRvIGhhbmRsZSBlYWNoIG9wZXJhdG9yIGluZGVwZW5kZW50bHlcbiAgICAgICAgICBjb25zdCBwYXRoT3BlcmF0b3JzID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgICAgaWYgKHR5cGVvZiBwYXRoT3BlcmF0b3JzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBPYmplY3Qua2V5cyhwYXRoT3BlcmF0b3JzKSkge1xuICAgICAgICAgICAgICBpZiAodmFsaWRPcGVyYXRvcnMuaW5jbHVkZXMob3BlcmF0b3IgYXMgT3BlcmF0b3IpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzOiBxdWVyeUNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgICBnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgIHJhd0NvbHVtbixcbiAgICAgICAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRUYWJsZUNvbHVtbkZyb21QYXRoKHtcbiAgICAgICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uUGF0aDogcmVsYXRpb25PclBhdGgsXG4gICAgICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiByZWxhdGlvbk9yUGF0aC5yZXBsYWNlKC9fXy9nLCAnLicpLnNwbGl0KCcuJyksXG4gICAgICAgICAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVtvcGVyYXRvcl1cblxuICAgICAgICAgICAgICAgIHF1ZXJ5Q29uc3RyYWludHMuZm9yRWFjaCgoeyBjb2x1bW5OYW1lOiBjb2wsIHRhYmxlOiBjb25zdHJhaW50VGFibGUsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2gob3BlcmF0b3JNYXAubGlrZShjb25zdHJhaW50VGFibGVbY29sXSwgdmFsdWUpKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChvcGVyYXRvck1hcC5lcXVhbHMoY29uc3RyYWludFRhYmxlW2NvbF0sIHZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgWydqc29uJywgJ3JpY2hUZXh0J10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocGF0aFNlZ21lbnRzKSAmJlxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aFNlZ21lbnRzLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICBzZWdtZW50cy51bnNoaWZ0KHRhYmxlW2NvbHVtbk5hbWVdLm5hbWUpXG5cbiAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNyZWF0ZUpTT05RdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBzZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdEFzQXJyYXk6IFsnY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdFJvb3RBc0FycmF5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChzcWwucmF3KGpzb25RdWVyeSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNvbnZlcnRQYXRoVG9KU09OVHJhdmVyc2FsKHBhdGhTZWdtZW50cylcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHsgb3BlcmF0b3I6ICdpbGlrZScsIHdpbGRjYXJkOiAnJScgfSxcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiB7IG9wZXJhdG9yOiAnPScsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgICBleGlzdHM6IHsgb3BlcmF0b3I6IHZhbCA9PT0gdHJ1ZSA/ICdpcyBub3QgbnVsbCcgOiAnaXMgbnVsbCcgfSxcbiAgICAgICAgICAgICAgICAgICAgbGlrZTogeyBvcGVyYXRvcjogJ2xpa2UnLCB3aWxkY2FyZDogJyUnIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdF9lcXVhbHM6IHsgb3BlcmF0b3I6ICc8PicsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gYCcke29wZXJhdG9yS2V5c1tvcGVyYXRvcl0ud2lsZGNhcmR9JHt2YWx9JHtvcGVyYXRvcktleXNbb3BlcmF0b3JdLndpbGRjYXJkfSdgXG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSAnJ1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWwucmF3KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3RhYmxlW2NvbHVtbk5hbWVdLm5hbWV9JHtqc29uUXVlcnl9ICR7b3BlcmF0b3JLZXlzW29wZXJhdG9yXS5vcGVyYXRvcn0gJHtmb3JtYXR0ZWRWYWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGdldE5vdE51bGxDb2x1bW5CeVZhbHVlKHZhbClcbiAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goaXNOb3ROdWxsKHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFt7IHBhdGg6IHJlbGF0aW9uT3JQYXRoIH1dKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdsaWtlJykge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYW5kKC4uLnZhbC5zcGxpdCgnICcpLm1hcCgod29yZCkgPT4gaWxpa2UodGFibGVbY29sdW1uTmFtZV0sIGAlJHt3b3JkfSVgKSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRRdWVyeVZhbHVlID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvbk9yUGF0aCxcbiAgICAgICAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKHNhbml0aXplZFF1ZXJ5VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBvcGVyYXRvcjogcXVlcnlPcGVyYXRvciwgdmFsdWU6IHF1ZXJ5VmFsdWUgfSA9IHNhbml0aXplZFF1ZXJ5VmFsdWVcblxuICAgICAgICAgICAgICAgIGlmIChxdWVyeU9wZXJhdG9yID09PSAnbm90X2VxdWFscycgJiYgcXVlcnlWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgb3IoXG4gICAgICAgICAgICAgICAgICAgICAgaXNOdWxsKHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSksXG4gICAgICAgICAgICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuICAgICAgICAgICAgICAgICAgICAgIG5lPGFueT4ocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdLCBxdWVyeVZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSAmJlxuICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShxdWVyeVZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPT09ICdub3RfaW4nXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWxgJHtub3RJbkFycmF5KHRhYmxlW2NvbHVtbk5hbWVdLCBxdWVyeVZhbHVlKX0gT1JcbiAgICAgICAgICAgICAgICAgICAgJHt0YWJsZVtjb2x1bW5OYW1lXX1cbiAgICAgICAgICAgICAgICAgICAgSVNcbiAgICAgICAgICAgICAgICAgICAgTlVMTGAsXG4gICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yTWFwW3F1ZXJ5T3BlcmF0b3JdKHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjb25zdHJhaW50cy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmVzdWx0ID0gYW5kKHJlc3VsdCwgLi4uY29uc3RyYWludHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGFuZCguLi5jb25zdHJhaW50cylcbiAgICB9XG4gIH1cbiAgaWYgKGNvbnN0cmFpbnRzLmxlbmd0aCA9PT0gMSAmJiAhcmVzdWx0KSB7XG4gICAgO1tyZXN1bHRdID0gY29uc3RyYWludHNcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhcmFtcyIsImFkYXB0ZXIiLCJmaWVsZHMiLCJqb2luQWxpYXNlcyIsImpvaW5zIiwibG9jYWxlIiwic2VsZWN0RmllbGRzIiwidGFibGVOYW1lIiwid2hlcmUiLCJyZXN1bHQiLCJjb25zdHJhaW50cyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJyZWxhdGlvbk9yUGF0aCIsImNvbmRpdGlvbiIsImNvbmRpdGlvbk9wZXJhdG9yIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImlzQXJyYXkiLCJidWlsdENvbmRpdGlvbnMiLCJidWlsZEFuZE9yQ29uZGl0aW9ucyIsIm9wZXJhdG9yTWFwIiwicGF0aE9wZXJhdG9ycyIsIm9wZXJhdG9yIiwidmFsaWRPcGVyYXRvcnMiLCJpbmNsdWRlcyIsImNvbHVtbk5hbWUiLCJxdWVyeUNvbnN0cmFpbnRzIiwiZmllbGQiLCJnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSIsInBhdGhTZWdtZW50cyIsInJhd0NvbHVtbiIsInRhYmxlIiwiZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCIsImNvbGxlY3Rpb25QYXRoIiwicmVwbGFjZSIsInNwbGl0IiwidmFsIiwiZm9yRWFjaCIsImNvbCIsImNvbnN0cmFpbnRUYWJsZSIsInZhbHVlIiwiaW5kZXhPZiIsInB1c2giLCJsaWtlIiwiZXF1YWxzIiwidHlwZSIsInNlZ21lbnRzIiwic2xpY2UiLCJ1bnNoaWZ0IiwibmFtZSIsImpzb25RdWVyeSIsImNyZWF0ZUpTT05RdWVyeSIsInRyZWF0QXNBcnJheSIsInRyZWF0Um9vdEFzQXJyYXkiLCJzcWwiLCJyYXciLCJjb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCIsIm9wZXJhdG9yS2V5cyIsImNvbnRhaW5zIiwid2lsZGNhcmQiLCJleGlzdHMiLCJub3RfZXF1YWxzIiwiZm9ybWF0dGVkVmFsdWUiLCJpc05vdE51bGwiLCJRdWVyeUVycm9yIiwicGF0aCIsImFuZCIsIm1hcCIsIndvcmQiLCJpbGlrZSIsInNhbml0aXplZFF1ZXJ5VmFsdWUiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJxdWVyeU9wZXJhdG9yIiwicXVlcnlWYWx1ZSIsIm9yIiwiaXNOdWxsIiwibmUiLCJub3RJbkFycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7Ozs7K0JBNkJiQTs7O2VBQUFBOzs7NEJBekJpRDt3QkFDNUM7dUJBQ0k7c0NBS007aUNBQ0w7NENBQ1c7d0NBQ0o7NkJBQ1g7b0NBQ087QUFhNUIsZUFBZUEsWUFBWSxFQUNoQ0MsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxLQUFLLEVBQ0E7SUFDTCxJQUFJQztJQUNKLE1BQU1DLGNBQXFCLEVBQUU7SUFFN0IsSUFBSSxPQUFPRixVQUFVLFlBQVlHLE9BQU9DLElBQUksQ0FBQ0osT0FBT0ssTUFBTSxHQUFHLEdBQUc7UUFDOUQsdUVBQXVFO1FBQ3ZFLEtBQUssTUFBTUMsa0JBQWtCSCxPQUFPQyxJQUFJLENBQUNKLE9BQVE7WUFDL0MsSUFBSU0sZ0JBQWdCO2dCQUNsQixNQUFNQyxZQUFZUCxLQUFLLENBQUNNLGVBQWU7Z0JBQ3ZDLElBQUlFO2dCQUNKLElBQUlGLGVBQWVHLFdBQVcsT0FBTyxPQUFPO29CQUMxQ0Qsb0JBQW9CO2dCQUN0QixPQUFPLElBQUlGLGVBQWVHLFdBQVcsT0FBTyxNQUFNO29CQUNoREQsb0JBQW9CO2dCQUN0Qjtn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
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3BhcnNlUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBPcGVyYXRvciwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGlsaWtlLCBpc05vdE51bGwsIGlzTnVsbCwgbmUsIG5vdEluQXJyYXksIG9yLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IHZhbGlkT3BlcmF0b3JzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRRdWVyeUpvaW5BbGlhc2VzLCBCdWlsZFF1ZXJ5Sm9pbnMgfSBmcm9tICcuL2J1aWxkUXVlcnknXG5cbmltcG9ydCB7IGJ1aWxkQW5kT3JDb25kaXRpb25zIH0gZnJvbSAnLi9idWlsZEFuZE9yQ29uZGl0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUpTT05RdWVyeSB9IGZyb20gJy4vY3JlYXRlSlNPTlF1ZXJ5J1xuaW1wb3J0IHsgY29udmVydFBhdGhUb0pTT05UcmF2ZXJzYWwgfSBmcm9tICcuL2NyZWF0ZUpTT05RdWVyeS9jb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCdcbmltcG9ydCB7IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggfSBmcm9tICcuL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgnXG5pbXBvcnQgeyBvcGVyYXRvck1hcCB9IGZyb20gJy4vb3BlcmF0b3JNYXAnXG5pbXBvcnQgeyBzYW5pdGl6ZVF1ZXJ5VmFsdWUgfSBmcm9tICcuL3Nhbml0aXplUXVlcnlWYWx1ZSdcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGpvaW5BbGlhc2VzOiBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXNcbiAgam9pbnM6IEJ1aWxkUXVlcnlKb2luc1xuICBsb2NhbGU6IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG4gIHdoZXJlOiBXaGVyZVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VQYXJhbXMoe1xuICBhZGFwdGVyLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlLFxuICBzZWxlY3RGaWVsZHMsXG4gIHRhYmxlTmFtZSxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxTUUw+IHtcbiAgbGV0IHJlc3VsdDogU1FMXG4gIGNvbnN0IGNvbnN0cmFpbnRzOiBTUUxbXSA9IFtdXG5cbiAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA+IDApIHtcbiAgICAvLyBXZSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgd2hlcmVLZXkgaXMgYW4gQU5ELCBPUiwgb3IgYSBzY2hlbWEgcGF0aFxuICAgIGZvciAoY29uc3QgcmVsYXRpb25PclBhdGggb2YgT2JqZWN0LmtleXMod2hlcmUpKSB7XG4gICAgICBpZiAocmVsYXRpb25PclBhdGgpIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgIGxldCBjb25kaXRpb25PcGVyYXRvcjogJ2FuZCcgfCAnb3InXG4gICAgICAgIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnYW5kJykge1xuICAgICAgICAgIGNvbmRpdGlvbk9wZXJhdG9yID0gJ2FuZCdcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnb3InKSB7XG4gICAgICAgICAgY29uZGl0aW9uT3BlcmF0b3IgPSAnb3InXG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IGJ1aWx0Q29uZGl0aW9ucyA9IGF3YWl0IGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChidWlsdENvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvck1hcFtjb25kaXRpb25PcGVyYXRvcl0ocmVzdWx0LCAuLi5idWlsdENvbmRpdGlvbnMpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvck1hcFtjb25kaXRpb25PcGVyYXRvcl0oLi4uYnVpbHRDb25kaXRpb25zKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJdCdzIGEgcGF0aCAtIGFuZCB0aGVyZSBjYW4gYmUgbXVsdGlwbGUgY29tcGFyaXNvbnMgb24gYSBzaW5nbGUgcGF0aC5cbiAgICAgICAgICAvLyBGb3IgZXhhbXBsZSAtIHRpdGxlIGxpa2UgJ3Rlc3QnIGFuZCB0aXRsZSBub3QgZXF1YWwgdG8gJ3Rlc3RlcidcbiAgICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIGxvb3Agb24ga2V5cyBhZ2FpbiBoZXJlIHRvIGhhbmRsZSBlYWNoIG9wZXJhdG9yIGluZGVwZW5kZW50bHlcbiAgICAgICAgICBjb25zdCBwYXRoT3BlcmF0b3JzID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgICAgaWYgKHR5cGVvZiBwYXRoT3BlcmF0b3JzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBPYmplY3Qua2V5cyhwYXRoT3BlcmF0b3JzKSkge1xuICAgICAgICAgICAgICBpZiAodmFsaWRPcGVyYXRvcnMuaW5jbHVkZXMob3BlcmF0b3IgYXMgT3BlcmF0b3IpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzOiBxdWVyeUNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgICBnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgIHJhd0NvbHVtbixcbiAgICAgICAgICAgICAgICAgIHRhYmxlLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRUYWJsZUNvbHVtbkZyb21QYXRoKHtcbiAgICAgICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uUGF0aDogcmVsYXRpb25PclBhdGgsXG4gICAgICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiByZWxhdGlvbk9yUGF0aC5yZXBsYWNlKC9fXy9nLCAnLicpLnNwbGl0KCcuJyksXG4gICAgICAgICAgICAgICAgICBzZWxlY3RGaWVsZHMsXG4gICAgICAgICAgICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVtvcGVyYXRvcl1cblxuICAgICAgICAgICAgICAgIHF1ZXJ5Q29uc3RyYWludHMuZm9yRWFjaCgoeyBjb2x1bW5OYW1lOiBjb2wsIHRhYmxlOiBjb25zdHJhaW50VGFibGUsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2gob3BlcmF0b3JNYXAubGlrZShjb25zdHJhaW50VGFibGVbY29sXSwgdmFsdWUpKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChvcGVyYXRvck1hcC5lcXVhbHMoY29uc3RyYWludFRhYmxlW2NvbF0sIHZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgWydqc29uJywgJ3JpY2hUZXh0J10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocGF0aFNlZ21lbnRzKSAmJlxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aFNlZ21lbnRzLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICBzZWdtZW50cy51bnNoaWZ0KHRhYmxlW2NvbHVtbk5hbWVdLm5hbWUpXG5cbiAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNyZWF0ZUpTT05RdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBzZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdEFzQXJyYXk6IFsnY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdFJvb3RBc0FycmF5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChzcWwucmF3KGpzb25RdWVyeSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNvbnZlcnRQYXRoVG9KU09OVHJhdmVyc2FsKHBhdGhTZWdtZW50cylcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHsgb3BlcmF0b3I6ICdpbGlrZScsIHdpbGRjYXJkOiAnJScgfSxcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiB7IG9wZXJhdG9yOiAnPScsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgICBleGlzdHM6IHsgb3BlcmF0b3I6IHZhbCA9PT0gdHJ1ZSA/ICdpcyBub3QgbnVsbCcgOiAnaXMgbnVsbCcgfSxcbiAgICAgICAgICAgICAgICAgICAgbGlrZTogeyBvcGVyYXRvcjogJ2xpa2UnLCB3aWxkY2FyZDogJyUnIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdF9lcXVhbHM6IHsgb3BlcmF0b3I6ICc8PicsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gYCcke29wZXJhdG9yS2V5c1tvcGVyYXRvcl0ud2lsZGNhcmR9JHt2YWx9JHtvcGVyYXRvcktleXNbb3BlcmF0b3JdLndpbGRjYXJkfSdgXG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSAnJ1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWwucmF3KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3RhYmxlW2NvbHVtbk5hbWVdLm5hbWV9JHtqc29uUXVlcnl9ICR7b3BlcmF0b3JLZXlzW29wZXJhdG9yXS5vcGVyYXRvcn0gJHtmb3JtYXR0ZWRWYWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGdldE5vdE51bGxDb2x1bW5CeVZhbHVlKHZhbClcbiAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goaXNOb3ROdWxsKHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFt7IHBhdGg6IHJlbGF0aW9uT3JQYXRoIH1dKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdsaWtlJykge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYW5kKC4uLnZhbC5zcGxpdCgnICcpLm1hcCgod29yZCkgPT4gaWxpa2UodGFibGVbY29sdW1uTmFtZV0sIGAlJHt3b3JkfSVgKSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRRdWVyeVZhbHVlID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvbk9yUGF0aCxcbiAgICAgICAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKHNhbml0aXplZFF1ZXJ5VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBvcGVyYXRvcjogcXVlcnlPcGVyYXRvciwgdmFsdWU6IHF1ZXJ5VmFsdWUgfSA9IHNhbml0aXplZFF1ZXJ5VmFsdWVcblxuICAgICAgICAgICAgICAgIGlmIChxdWVyeU9wZXJhdG9yID09PSAnbm90X2VxdWFscycgJiYgcXVlcnlWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgb3IoXG4gICAgICAgICAgICAgICAgICAgICAgaXNOdWxsKHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSksXG4gICAgICAgICAgICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuICAgICAgICAgICAgICAgICAgICAgIG5lPGFueT4ocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdLCBxdWVyeVZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSAmJlxuICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShxdWVyeVZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPT09ICdub3RfaW4nXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWxgJHtub3RJbkFycmF5KHRhYmxlW2NvbHVtbk5hbWVdLCBxdWVyeVZhbHVlKX0gT1JcbiAgICAgICAgICAgICAgICAgICAgJHt0YWJsZVtjb2x1bW5OYW1lXX1cbiAgICAgICAgICAgICAgICAgICAgSVNcbiAgICAgICAgICAgICAgICAgICAgTlVMTGAsXG4gICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSAnZXF1YWxzJyAmJiBxdWVyeVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKGlzTnVsbChyYXdDb2x1bW4gfHwgdGFibGVbY29sdW1uTmFtZV0pKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdub3RfZXF1YWxzJyAmJiBxdWVyeVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKGlzTm90TnVsbChyYXdDb2x1bW4gfHwgdGFibGVbY29sdW1uTmFtZV0pKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3JNYXBbcXVlcnlPcGVyYXRvcl0ocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdLCBxdWVyeVZhbHVlKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApIHtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSBhbmQocmVzdWx0LCAuLi5jb25zdHJhaW50cylcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYW5kKC4uLmNvbnN0cmFpbnRzKVxuICAgIH1cbiAgfVxuICBpZiAoY29uc3RyYWludHMubGVuZ3RoID09PSAxICYmICFyZXN1bHQpIHtcbiAgICA7W3Jlc3VsdF0gPSBjb25zdHJhaW50c1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbInBhcnNlUGFyYW1zIiwiYWRhcHRlciIsImZpZWxkcyIsImpvaW5BbGlhc2VzIiwiam9pbnMiLCJsb2NhbGUiLCJzZWxlY3RGaWVsZHMiLCJ0YWJsZU5hbWUiLCJ3aGVyZSIsInJlc3VsdCIsImNvbnN0cmFpbnRzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInJlbGF0aW9uT3JQYXRoIiwiY29uZGl0aW9uIiwiY29uZGl0aW9uT3BlcmF0b3IiLCJ0b0xvd2VyQ2FzZSIsIkFycmF5IiwiaXNBcnJheSIsImJ1aWx0Q29uZGl0aW9ucyIsImJ1aWxkQW5kT3JDb25kaXRpb25zIiwib3BlcmF0b3JNYXAiLCJwYXRoT3BlcmF0b3JzIiwib3BlcmF0b3IiLCJ2YWxpZE9wZXJhdG9ycyIsImluY2x1ZGVzIiwiY29sdW1uTmFtZSIsInF1ZXJ5Q29uc3RyYWludHMiLCJmaWVsZCIsImdldE5vdE51bGxDb2x1bW5CeVZhbHVlIiwicGF0aFNlZ21lbnRzIiwicmF3Q29sdW1uIiwidGFibGUiLCJnZXRUYWJsZUNvbHVtbkZyb21QYXRoIiwiY29sbGVjdGlvblBhdGgiLCJyZXBsYWNlIiwic3BsaXQiLCJ2YWwiLCJmb3JFYWNoIiwiY29sIiwiY29uc3RyYWludFRhYmxlIiwidmFsdWUiLCJpbmRleE9mIiwicHVzaCIsImxpa2UiLCJlcXVhbHMiLCJ0eXBlIiwic2VnbWVudHMiLCJzbGljZSIsInVuc2hpZnQiLCJuYW1lIiwianNvblF1ZXJ5IiwiY3JlYXRlSlNPTlF1ZXJ5IiwidHJlYXRBc0FycmF5IiwidHJlYXRSb290QXNBcnJheSIsInNxbCIsInJhdyIsImNvbnZlcnRQYXRoVG9KU09OVHJhdmVyc2FsIiwib3BlcmF0b3JLZXlzIiwiY29udGFpbnMiLCJ3aWxkY2FyZCIsImV4aXN0cyIsIm5vdF9lcXVhbHMiLCJmb3JtYXR0ZWRWYWx1ZSIsImlzTm90TnVsbCIsIlF1ZXJ5RXJyb3IiLCJwYXRoIiwiYW5kIiwibWFwIiwid29yZCIsImlsaWtlIiwic2FuaXRpemVkUXVlcnlWYWx1ZSIsInNhbml0aXplUXVlcnlWYWx1ZSIsInF1ZXJ5T3BlcmF0b3IiLCJxdWVyeVZhbHVlIiwib3IiLCJpc051bGwiLCJuZSIsIm5vdEluQXJyYXkiXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQzs7OzsrQkE2QmJBOzs7ZUFBQUE7Ozs0QkF6QmlEO3dCQUM1Qzt1QkFDSTtzQ0FLTTtpQ0FDTDs0Q0FDVzt3Q0FDSjs2QkFDWDtvQ0FDTztBQWE1QixlQUFlQSxZQUFZLEVBQ2hDQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsV0FBVyxFQUNYQyxL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
@@ -5,9 +5,9 @@ type Args = {
5
5
  adapter: PostgresAdapter;
6
6
  baseColumns?: Record<string, PgColumnBuilder>;
7
7
  baseExtraConfig?: Record<string, (cols: GenericColumns) => IndexBuilder | UniqueConstraintBuilder>;
8
- buildTexts?: boolean;
9
8
  buildNumbers?: boolean;
10
9
  buildRelationships?: boolean;
10
+ buildTexts?: boolean;
11
11
  disableNotNull: boolean;
12
12
  disableUnique: boolean;
13
13
  fields: Field[];
@@ -19,10 +19,10 @@ type Args = {
19
19
  timestamps?: boolean;
20
20
  };
21
21
  type Result = {
22
- hasManyTextField: 'index' | boolean;
23
22
  hasManyNumberField: 'index' | boolean;
23
+ hasManyTextField: 'index' | boolean;
24
24
  relationsToBuild: Map<string, string>;
25
25
  };
26
- export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, buildTexts, buildNumbers, buildRelationships, disableNotNull, disableUnique, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, }: Args) => Result;
26
+ export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, buildNumbers, buildRelationships, buildTexts, disableNotNull, disableUnique, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, }: Args) => Result;
27
27
  export {};
28
28
  //# sourceMappingURL=build.d.ts.map