@payloadcms/db-postgres 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,7 @@ type Args = {
8
8
  blocks: {
9
9
  [blockType: string]: BlockRowToInsert[];
10
10
  };
11
+ blocksToDelete: Set<string>;
11
12
  data: unknown;
12
13
  field: ArrayField;
13
14
  locale?: string;
@@ -19,6 +20,6 @@ type Args = {
19
20
  [tableName: string]: Record<string, unknown>[];
20
21
  };
21
22
  };
22
- export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, }: Args) => ArrayRowToInsert[];
23
+ export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, }: Args) => ArrayRowToInsert[];
23
24
  export {};
24
25
  //# sourceMappingURL=array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,2IAaxB,IAAI,uBA0DN,CAAA"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,2JAcxB,IAAI,uBA2DN,CAAA"}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "transformArray", {
10
10
  });
11
11
  const _isArrayOfRows = require("../../utilities/isArrayOfRows");
12
12
  const _traverseFields = require("./traverseFields");
13
- const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects })=>{
13
+ const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects })=>{
14
14
  const newRows = [];
15
15
  const hasUUID = adapter.tables[arrayTableName]._uuid;
16
16
  if ((0, _isArrayOfRows.isArrayOfRows)(data)) {
@@ -44,6 +44,7 @@ const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, data,
44
44
  arrays: newRow.arrays,
45
45
  baseTableName,
46
46
  blocks,
47
+ blocksToDelete,
47
48
  columnPrefix: '',
48
49
  data: arrayRow,
49
50
  fieldPrefix: '',
@@ -63,4 +64,4 @@ const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, data,
63
64
  return newRows;
64
65
  };
65
66
 
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgQXJyYXlGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQsIEJsb2NrUm93VG9JbnNlcnQsIFJlbGF0aW9uc2hpcFRvRGVsZXRlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNBcnJheU9mUm93cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pc0FycmF5T2ZSb3dzJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhcnJheVRhYmxlTmFtZTogc3RyaW5nXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBkYXRhOiB1bmtub3duXG4gIGZpZWxkOiBBcnJheUZpZWxkXG4gIGxvY2FsZT86IHN0cmluZ1xuICBudW1iZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIHBhdGg6IHN0cmluZ1xuICByZWxhdGlvbnNoaXBzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZTogUmVsYXRpb25zaGlwVG9EZWxldGVbXVxuICBzZWxlY3RzOiB7XG4gICAgW3RhYmxlTmFtZTogc3RyaW5nXTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1BcnJheSA9ICh7XG4gIGFkYXB0ZXIsXG4gIGFycmF5VGFibGVOYW1lLFxuICBiYXNlVGFibGVOYW1lLFxuICBibG9ja3MsXG4gIGRhdGEsXG4gIGZpZWxkLFxuICBsb2NhbGUsXG4gIG51bWJlcnMsXG4gIHBhdGgsXG4gIHJlbGF0aW9uc2hpcHMsXG4gIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgc2VsZWN0cyxcbn06IEFyZ3MpID0+IHtcbiAgY29uc3QgbmV3Um93czogQXJyYXlSb3dUb0luc2VydFtdID0gW11cbiAgY29uc3QgaGFzVVVJRCA9IGFkYXB0ZXIudGFibGVzW2FycmF5VGFibGVOYW1lXS5fdXVpZFxuXG4gIGlmIChpc0FycmF5T2ZSb3dzKGRhdGEpKSB7XG4gICAgZGF0YS5mb3JFYWNoKChhcnJheVJvdywgaSkgPT4ge1xuICAgICAgY29uc3QgbmV3Um93OiBBcnJheVJvd1RvSW5zZXJ0ID0ge1xuICAgICAgICBhcnJheXM6IHt9LFxuICAgICAgICBsb2NhbGVzOiB7fSxcbiAgICAgICAgcm93OiB7XG4gICAgICAgICAgX29yZGVyOiBpICsgMSxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBhIF91dWlkIGZpZWxkIG9uIGFycmF5cyxcbiAgICAgIC8vIHRoYXQgbWVhbnMgdGhlIElEIGhhcyB0byBiZSB1bmlxdWUsXG4gICAgICAvLyBhbmQgb3VyIGlkcyB3aXRoaW4gYXJyYXlzIGFyZSBub3QgdW5pcXVlLlxuICAgICAgLy8gU28gbW92ZSB0aGUgSUQgdG8gYSB1dWlkIGZpZWxkIGZvciBzdG9yYWdlXG4gICAgICAvLyBhbmQgYWxsb3cgdGhlIGRhdGFiYXNlIHRvIGdlbmVyYXRlIGEgc2VyaWFsIGlkIGF1dG9tYXRpY2FsbHlcbiAgICAgIGlmIChoYXNVVUlEKSB7XG4gICAgICAgIG5ld1Jvdy5yb3cuX3V1aWQgPSBhcnJheVJvdy5pZFxuICAgICAgICBkZWxldGUgYXJyYXlSb3cuaWRcbiAgICAgIH1cblxuICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICBuZXdSb3cubG9jYWxlc1tsb2NhbGVdID0ge1xuICAgICAgICAgIF9sb2NhbGU6IGxvY2FsZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgIG5ld1Jvdy5yb3cuX2xvY2FsZSA9IGxvY2FsZVxuICAgICAgfVxuXG4gICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGFycmF5czogbmV3Um93LmFycmF5cyxcbiAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgYmxvY2tzLFxuICAgICAgICBjb2x1bW5QcmVmaXg6ICcnLFxuICAgICAgICBkYXRhOiBhcnJheVJvdyxcbiAgICAgICAgZmllbGRQcmVmaXg6ICcnLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgbG9jYWxlczogbmV3Um93LmxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgcm93OiBuZXdSb3cucm93LFxuICAgICAgICBzZWxlY3RzLFxuICAgICAgfSlcblxuICAgICAgbmV3Um93cy5wdXNoKG5ld1JvdylcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIG5ld1Jvd3Ncbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1BcnJheSIsImFkYXB0ZXIiLCJhcnJheVRhYmxlTmFtZSIsImJhc2VUYWJsZU5hbWUiLCJibG9ja3MiLCJkYXRhIiwiZmllbGQiLCJsb2NhbGUiLCJudW1iZXJzIiwicGF0aCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJzZWxlY3RzIiwibmV3Um93cyIsImhhc1VVSUQiLCJ0YWJsZXMiLCJfdXVpZCIsImlzQXJyYXlPZlJvd3MiLCJmb3JFYWNoIiwiYXJyYXlSb3ciLCJpIiwibmV3Um93IiwiYXJyYXlzIiwibG9jYWxlcyIsInJvdyIsIl9vcmRlciIsImlkIiwiX2xvY2FsZSIsImxvY2FsaXplZCIsInRyYXZlcnNlRmllbGRzIiwiY29sdW1uUHJlZml4IiwiZmllbGRQcmVmaXgiLCJmaWVsZHMiLCJwYXJlbnRUYWJsZU5hbWUiLCJuYW1lIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTRCdkJBOzs7ZUFBQUE7OzsrQkF0QmlCO2dDQUNDO0FBcUJ4QixNQUFNQSxpQkFBaUIsQ0FBQyxFQUM3QkMsT0FBTyxFQUNQQyxjQUFjLEVBQ2RDLGFBQWEsRUFDYkMsTUFBTSxFQUNOQyxJQUFJLEVBQ0pDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLE9BQU8sRUFDRjtJQUNMLE1BQU1DLFVBQThCLEVBQUU7SUFDdEMsTUFBTUMsVUFBVWIsUUFBUWMsTUFBTSxDQUFDYixlQUFlLENBQUNjLEtBQUs7SUFFcEQsSUFBSUMsSUFBQUEsNEJBQWEsRUFBQ1osT0FBTztRQUN2QkEsS0FBS2EsT0FBTyxDQUFDLENBQUNDLFVBQVVDO1lBQ3RCLE1BQU1DLFNBQTJCO2dCQUMvQkMsUUFBUSxDQUFDO2dCQUNUQyxTQUFTLENBQUM7Z0JBQ1ZDLEtBQUs7b0JBQ0hDLFFBQVFMLElBQUk7Z0JBQ2Q7WUFDRjtZQUVBLCtDQUErQztZQUMvQyxzQ0FBc0M7WUFDdEMsNENBQTRDO1lBQzVDLDZDQUE2QztZQUM3QywrREFBK0Q7WUFDL0QsSUFBSU4sU0FBUztnQkFDWE8sT0FBT0csR0FBRyxDQUFDUixLQUFLLEdBQUdHLFNBQVNPLEVBQUU7Z0JBQzlCLE9BQU9QLFNBQVNPLEVBQUU7WUFDcEI7WUFFQSxJQUFJbkIsUUFBUTtnQkFDVmMsT0FBT0UsT0FBTyxDQUFDaEIsT0FBTyxHQUFHO29CQUN2Qm9CLFNBQVNwQjtnQkFDWDtZQUNGO1lBRUEsSUFBSUQsTUFBTXNCLFNBQVMsRUFBRTtnQkFDbkJQLE9BQU9HLEdBQUcsQ0FBQ0csT0FBTyxHQUFHcEI7WUFDdkI7WUFFQXNCLElBQUFBLDhCQUFjLEVBQUM7Z0JBQ2I1QjtnQkFDQXFCLFFBQVFELE9BQU9DLE1BQU07Z0JBQ3JCbkI7Z0JBQ0FDO2dCQUNBMEIsY0FBYztnQkFDZHpCLE1BQU1jO2dCQUNOWSxhQUFhO2dCQUNiQyxRQUFRMUIsTUFBTTBCLE1BQU07Z0JBQ3BCVCxTQUFTRixPQUFPRSxPQUFPO2dCQUN2QmY7Z0JBQ0F5QixpQkFBaUIvQjtnQkFDakJPLE1BQU0sQ0FBQyxFQUFFQSxRQUFRLEdBQUcsRUFBRUgsTUFBTTRCLElBQUksQ0FBQyxDQUFDLEVBQUVkLEVBQUUsQ0FBQyxDQUFDO2dCQUN4Q1Y7Z0JBQ0FDO2dCQUNBYSxLQUFLSCxPQUFPRyxHQUFHO2dCQUNmWjtZQUNGO1lBRUFDLFFBQVFzQixJQUFJLENBQUNkO1FBQ2Y7SUFDRjtJQUVBLE9BQU9SO0FBQ1QifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgQXJyYXlGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQsIEJsb2NrUm93VG9JbnNlcnQsIFJlbGF0aW9uc2hpcFRvRGVsZXRlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNBcnJheU9mUm93cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pc0FycmF5T2ZSb3dzJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhcnJheVRhYmxlTmFtZTogc3RyaW5nXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBibG9ja3NUb0RlbGV0ZTogU2V0PHN0cmluZz5cbiAgZGF0YTogdW5rbm93blxuICBmaWVsZDogQXJyYXlGaWVsZFxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbnVtYmVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICBwYXRoOiBzdHJpbmdcbiAgcmVsYXRpb25zaGlwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICByZWxhdGlvbnNoaXBzVG9EZWxldGU6IFJlbGF0aW9uc2hpcFRvRGVsZXRlW11cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQXJyYXkgPSAoe1xuICBhZGFwdGVyLFxuICBhcnJheVRhYmxlTmFtZSxcbiAgYmFzZVRhYmxlTmFtZSxcbiAgYmxvY2tzLFxuICBibG9ja3NUb0RlbGV0ZSxcbiAgZGF0YSxcbiAgZmllbGQsXG4gIGxvY2FsZSxcbiAgbnVtYmVycyxcbiAgcGF0aCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICBzZWxlY3RzLFxufTogQXJncykgPT4ge1xuICBjb25zdCBuZXdSb3dzOiBBcnJheVJvd1RvSW5zZXJ0W10gPSBbXVxuICBjb25zdCBoYXNVVUlEID0gYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLl91dWlkXG5cbiAgaWYgKGlzQXJyYXlPZlJvd3MoZGF0YSkpIHtcbiAgICBkYXRhLmZvckVhY2goKGFycmF5Um93LCBpKSA9PiB7XG4gICAgICBjb25zdCBuZXdSb3c6IEFycmF5Um93VG9JbnNlcnQgPSB7XG4gICAgICAgIGFycmF5czoge30sXG4gICAgICAgIGxvY2FsZXM6IHt9LFxuICAgICAgICByb3c6IHtcbiAgICAgICAgICBfb3JkZXI6IGkgKyAxLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIGEgX3V1aWQgZmllbGQgb24gYXJyYXlzLFxuICAgICAgLy8gdGhhdCBtZWFucyB0aGUgSUQgaGFzIHRvIGJlIHVuaXF1ZSxcbiAgICAgIC8vIGFuZCBvdXIgaWRzIHdpdGhpbiBhcnJheXMgYXJlIG5vdCB1bmlxdWUuXG4gICAgICAvLyBTbyBtb3ZlIHRoZSBJRCB0byBhIHV1aWQgZmllbGQgZm9yIHN0b3JhZ2VcbiAgICAgIC8vIGFuZCBhbGxvdyB0aGUgZGF0YWJhc2UgdG8gZ2VuZXJhdGUgYSBzZXJpYWwgaWQgYXV0b21hdGljYWxseVxuICAgICAgaWYgKGhhc1VVSUQpIHtcbiAgICAgICAgbmV3Um93LnJvdy5fdXVpZCA9IGFycmF5Um93LmlkXG4gICAgICAgIGRlbGV0ZSBhcnJheVJvdy5pZFxuICAgICAgfVxuXG4gICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgIG5ld1Jvdy5sb2NhbGVzW2xvY2FsZV0gPSB7XG4gICAgICAgICAgX2xvY2FsZTogbG9jYWxlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgbmV3Um93LnJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICB9XG5cbiAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgYXJyYXlzOiBuZXdSb3cuYXJyYXlzLFxuICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICBibG9ja3MsXG4gICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICBjb2x1bW5QcmVmaXg6ICcnLFxuICAgICAgICBkYXRhOiBhcnJheVJvdyxcbiAgICAgICAgZmllbGRQcmVmaXg6ICcnLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgbG9jYWxlczogbmV3Um93LmxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgcm93OiBuZXdSb3cucm93LFxuICAgICAgICBzZWxlY3RzLFxuICAgICAgfSlcblxuICAgICAgbmV3Um93cy5wdXNoKG5ld1JvdylcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIG5ld1Jvd3Ncbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1BcnJheSIsImFkYXB0ZXIiLCJhcnJheVRhYmxlTmFtZSIsImJhc2VUYWJsZU5hbWUiLCJibG9ja3MiLCJibG9ja3NUb0RlbGV0ZSIsImRhdGEiLCJmaWVsZCIsImxvY2FsZSIsIm51bWJlcnMiLCJwYXRoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsInNlbGVjdHMiLCJuZXdSb3dzIiwiaGFzVVVJRCIsInRhYmxlcyIsIl91dWlkIiwiaXNBcnJheU9mUm93cyIsImZvckVhY2giLCJhcnJheVJvdyIsImkiLCJuZXdSb3ciLCJhcnJheXMiLCJsb2NhbGVzIiwicm93IiwiX29yZGVyIiwiaWQiLCJfbG9jYWxlIiwibG9jYWxpemVkIiwidHJhdmVyc2VGaWVsZHMiLCJjb2x1bW5QcmVmaXgiLCJmaWVsZFByZWZpeCIsImZpZWxkcyIsInBhcmVudFRhYmxlTmFtZSIsIm5hbWUiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBNkJ2QkE7OztlQUFBQTs7OytCQXZCaUI7Z0NBQ0M7QUFzQnhCLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsSUFBSSxFQUNKQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMscUJBQXFCLEVBQ3JCQyxPQUFPLEVBQ0Y7SUFDTCxNQUFNQyxVQUE4QixFQUFFO0lBQ3RDLE1BQU1DLFVBQVVkLFFBQVFlLE1BQU0sQ0FBQ2QsZUFBZSxDQUFDZSxLQUFLO0lBRXBELElBQUlDLElBQUFBLDRCQUFhLEVBQUNaLE9BQU87UUFDdkJBLEtBQUthLE9BQU8sQ0FBQyxDQUFDQyxVQUFVQztZQUN0QixNQUFNQyxTQUEyQjtnQkFDL0JDLFFBQVEsQ0FBQztnQkFDVEMsU0FBUyxDQUFDO2dCQUNWQyxLQUFLO29CQUNIQyxRQUFRTCxJQUFJO2dCQUNkO1lBQ0Y7WUFFQSwrQ0FBK0M7WUFDL0Msc0NBQXNDO1lBQ3RDLDRDQUE0QztZQUM1Qyw2Q0FBNkM7WUFDN0MsK0RBQStEO1lBQy9ELElBQUlOLFNBQVM7Z0JBQ1hPLE9BQU9HLEdBQUcsQ0FBQ1IsS0FBSyxHQUFHRyxTQUFTTyxFQUFFO2dCQUM5QixPQUFPUCxTQUFTTyxFQUFFO1lBQ3BCO1lBRUEsSUFBSW5CLFFBQVE7Z0JBQ1ZjLE9BQU9FLE9BQU8sQ0FBQ2hCLE9BQU8sR0FBRztvQkFDdkJvQixTQUFTcEI7Z0JBQ1g7WUFDRjtZQUVBLElBQUlELE1BQU1zQixTQUFTLEVBQUU7Z0JBQ25CUCxPQUFPRyxHQUFHLENBQUNHLE9BQU8sR0FBR3BCO1lBQ3ZCO1lBRUFzQixJQUFBQSw4QkFBYyxFQUFDO2dCQUNiN0I7Z0JBQ0FzQixRQUFRRCxPQUFPQyxNQUFNO2dCQUNyQnBCO2dCQUNBQztnQkFDQUM7Z0JBQ0EwQixjQUFjO2dCQUNkekIsTUFBTWM7Z0JBQ05ZLGFBQWE7Z0JBQ2JDLFFBQVExQixNQUFNMEIsTUFBTTtnQkFDcEJULFNBQVNGLE9BQU9FLE9BQU87Z0JBQ3ZCZjtnQkFDQXlCLGlCQUFpQmhDO2dCQUNqQlEsTUFBTSxDQUFDLEVBQUVBLFFBQVEsR0FBRyxFQUFFSCxNQUFNNEIsSUFBSSxDQUFDLENBQUMsRUFBRWQsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDVjtnQkFDQUM7Z0JBQ0FhLEtBQUtILE9BQU9HLEdBQUc7Z0JBQ2ZaO1lBQ0Y7WUFFQUMsUUFBUXNCLElBQUksQ0FBQ2Q7UUFDZjtJQUNGO0lBRUEsT0FBT1I7QUFDVCJ9
@@ -7,6 +7,7 @@ type Args = {
7
7
  blocks: {
8
8
  [blockType: string]: BlockRowToInsert[];
9
9
  };
10
+ blocksToDelete: Set<string>;
10
11
  data: Record<string, unknown>[];
11
12
  field: BlockField;
12
13
  locale?: string;
@@ -18,6 +19,6 @@ type Args = {
18
19
  [tableName: string]: Record<string, unknown>[];
19
20
  };
20
21
  };
21
- export declare const transformBlocks: ({ adapter, baseTableName, blocks, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, }: Args) => void;
22
+ export declare const transformBlocks: ({ adapter, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, }: Args) => void;
22
23
  export {};
23
24
  //# sourceMappingURL=blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAIrE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AACD,eAAO,MAAM,eAAe,2HAYzB,IAAI,SAuDN,CAAA"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAIrE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AACD,eAAO,MAAM,eAAe,2IAazB,IAAI,SAwDN,CAAA"}
@@ -15,7 +15,7 @@ function _interop_require_default(obj) {
15
15
  default: obj
16
16
  };
17
17
  }
18
- const transformBlocks = ({ adapter, baseTableName, blocks, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects })=>{
18
+ const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects })=>{
19
19
  data.forEach((blockRow, i)=>{
20
20
  if (typeof blockRow.blockType !== 'string') return;
21
21
  const matchedBlock = field.blocks.find(({ slug })=>slug === blockRow.blockType);
@@ -47,6 +47,7 @@ const transformBlocks = ({ adapter, baseTableName, blocks, data, field, locale,
47
47
  arrays: newRow.arrays,
48
48
  baseTableName,
49
49
  blocks,
50
+ blocksToDelete,
50
51
  columnPrefix: '',
51
52
  data: blockRow,
52
53
  fieldPrefix: '',
@@ -64,4 +65,4 @@ const transformBlocks = ({ adapter, baseTableName, blocks, data, field, locale,
64
65
  });
65
66
  };
66
67
 
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYmxvY2tzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEJsb2NrRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCwgUmVsYXRpb25zaGlwVG9EZWxldGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIGZpZWxkOiBCbG9ja0ZpZWxkXG4gIGxvY2FsZT86IHN0cmluZ1xuICBudW1iZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIHBhdGg6IHN0cmluZ1xuICByZWxhdGlvbnNoaXBzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZTogUmVsYXRpb25zaGlwVG9EZWxldGVbXVxuICBzZWxlY3RzOiB7XG4gICAgW3RhYmxlTmFtZTogc3RyaW5nXTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICB9XG59XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQmxvY2tzID0gKHtcbiAgYWRhcHRlcixcbiAgYmFzZVRhYmxlTmFtZSxcbiAgYmxvY2tzLFxuICBkYXRhLFxuICBmaWVsZCxcbiAgbG9jYWxlLFxuICBudW1iZXJzLFxuICBwYXRoLFxuICByZWxhdGlvbnNoaXBzLFxuICByZWxhdGlvbnNoaXBzVG9EZWxldGUsXG4gIHNlbGVjdHMsXG59OiBBcmdzKSA9PiB7XG4gIGRhdGEuZm9yRWFjaCgoYmxvY2tSb3csIGkpID0+IHtcbiAgICBpZiAodHlwZW9mIGJsb2NrUm93LmJsb2NrVHlwZSAhPT0gJ3N0cmluZycpIHJldHVyblxuICAgIGNvbnN0IG1hdGNoZWRCbG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gYmxvY2tSb3cuYmxvY2tUeXBlKVxuICAgIGlmICghbWF0Y2hlZEJsb2NrKSByZXR1cm5cbiAgICBjb25zdCBibG9ja1R5cGUgPSB0b1NuYWtlQ2FzZShibG9ja1Jvdy5ibG9ja1R5cGUpXG5cbiAgICBpZiAoIWJsb2Nrc1tibG9ja1R5cGVdKSBibG9ja3NbYmxvY2tUeXBlXSA9IFtdXG5cbiAgICBjb25zdCBuZXdSb3c6IEJsb2NrUm93VG9JbnNlcnQgPSB7XG4gICAgICBhcnJheXM6IHt9LFxuICAgICAgbG9jYWxlczoge30sXG4gICAgICByb3c6IHtcbiAgICAgICAgX29yZGVyOiBpICsgMSxcbiAgICAgICAgX3BhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICB9LFxuICAgIH1cblxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgbG9jYWxlKSBuZXdSb3cucm93Ll9sb2NhbGUgPSBsb2NhbGVcblxuICAgIGNvbnN0IGJsb2NrVGFibGVOYW1lID0gYCR7YmFzZVRhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tUeXBlfWBcblxuICAgIGNvbnN0IGhhc1VVSUQgPSBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0uX3V1aWRcblxuICAgIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgYSBfdXVpZCBmaWVsZCBvbiBhcnJheXMsXG4gICAgLy8gdGhhdCBtZWFucyB0aGUgSUQgaGFzIHRvIGJlIHVuaXF1ZSxcbiAgICAvLyBhbmQgb3VyIGlkcyB3aXRoaW4gYXJyYXlzIGFyZSBub3QgdW5pcXVlLlxuICAgIC8vIFNvIG1vdmUgdGhlIElEIHRvIGEgdXVpZCBmaWVsZCBmb3Igc3RvcmFnZVxuICAgIC8vIGFuZCBhbGxvdyB0aGUgZGF0YWJhc2UgdG8gZ2VuZXJhdGUgYSBzZXJpYWwgaWQgYXV0b21hdGljYWxseVxuICAgIGlmIChoYXNVVUlEKSB7XG4gICAgICBuZXdSb3cucm93Ll91dWlkID0gYmxvY2tSb3cuaWRcbiAgICAgIGRlbGV0ZSBibG9ja1Jvdy5pZFxuICAgIH1cblxuICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgIGFkYXB0ZXIsXG4gICAgICBhcnJheXM6IG5ld1Jvdy5hcnJheXMsXG4gICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgYmxvY2tzLFxuICAgICAgY29sdW1uUHJlZml4OiAnJyxcbiAgICAgIGRhdGE6IGJsb2NrUm93LFxuICAgICAgZmllbGRQcmVmaXg6ICcnLFxuICAgICAgZmllbGRzOiBtYXRjaGVkQmxvY2suZmllbGRzLFxuICAgICAgbG9jYWxlczogbmV3Um93LmxvY2FsZXMsXG4gICAgICBudW1iZXJzLFxuICAgICAgcGFyZW50VGFibGVOYW1lOiBibG9ja1RhYmxlTmFtZSxcbiAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgcm93OiBuZXdSb3cucm93LFxuICAgICAgc2VsZWN0cyxcbiAgICB9KVxuXG4gICAgYmxvY2tzW2Jsb2NrVHlwZV0ucHVzaChuZXdSb3cpXG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQmxvY2tzIiwiYWRhcHRlciIsImJhc2VUYWJsZU5hbWUiLCJibG9ja3MiLCJkYXRhIiwiZmllbGQiLCJsb2NhbGUiLCJudW1iZXJzIiwicGF0aCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJzZWxlY3RzIiwiZm9yRWFjaCIsImJsb2NrUm93IiwiaSIsImJsb2NrVHlwZSIsIm1hdGNoZWRCbG9jayIsImZpbmQiLCJzbHVnIiwidG9TbmFrZUNhc2UiLCJuZXdSb3ciLCJhcnJheXMiLCJsb2NhbGVzIiwicm93IiwiX29yZGVyIiwiX3BhdGgiLCJuYW1lIiwibG9jYWxpemVkIiwiX2xvY2FsZSIsImJsb2NrVGFibGVOYW1lIiwiaGFzVVVJRCIsInRhYmxlcyIsIl91dWlkIiwiaWQiLCJ0cmF2ZXJzZUZpZWxkcyIsImNvbHVtblByZWZpeCIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwicGFyZW50VGFibGVOYW1lIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTJCdkJBOzs7ZUFBQUE7OztvRUF4Qlc7Z0NBS087Ozs7OztBQW1CeEIsTUFBTUEsa0JBQWtCLENBQUMsRUFDOUJDLE9BQU8sRUFDUEMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLElBQUksRUFDSkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLHFCQUFxQixFQUNyQkMsT0FBTyxFQUNGO0lBQ0xQLEtBQUtRLE9BQU8sQ0FBQyxDQUFDQyxVQUFVQztRQUN0QixJQUFJLE9BQU9ELFNBQVNFLFNBQVMsS0FBSyxVQUFVO1FBQzVDLE1BQU1DLGVBQWVYLE1BQU1GLE1BQU0sQ0FBQ2MsSUFBSSxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFLEdBQUtBLFNBQVNMLFNBQVNFLFNBQVM7UUFDaEYsSUFBSSxDQUFDQyxjQUFjO1FBQ25CLE1BQU1ELFlBQVlJLElBQUFBLG9CQUFXLEVBQUNOLFNBQVNFLFNBQVM7UUFFaEQsSUFBSSxDQUFDWixNQUFNLENBQUNZLFVBQVUsRUFBRVosTUFBTSxDQUFDWSxVQUFVLEdBQUcsRUFBRTtRQUU5QyxNQUFNSyxTQUEyQjtZQUMvQkMsUUFBUSxDQUFDO1lBQ1RDLFNBQVMsQ0FBQztZQUNWQyxLQUFLO2dCQUNIQyxRQUFRVixJQUFJO2dCQUNaVyxPQUFPLENBQUMsRUFBRWpCLEtBQUssRUFBRUgsTUFBTXFCLElBQUksQ0FBQyxDQUFDO1lBQy9CO1FBQ0Y7UUFFQSxJQUFJckIsTUFBTXNCLFNBQVMsSUFBSXJCLFFBQVFjLE9BQU9HLEdBQUcsQ0FBQ0ssT0FBTyxHQUFHdEI7UUFFcEQsTUFBTXVCLGlCQUFpQixDQUFDLEVBQUUzQixjQUFjLFFBQVEsRUFBRWEsVUFBVSxDQUFDO1FBRTdELE1BQU1lLFVBQVU3QixRQUFROEIsTUFBTSxDQUFDRixlQUFlLENBQUNHLEtBQUs7UUFFcEQsK0NBQStDO1FBQy9DLHNDQUFzQztRQUN0Qyw0Q0FBNEM7UUFDNUMsNkNBQTZDO1FBQzdDLCtEQUErRDtRQUMvRCxJQUFJRixTQUFTO1lBQ1hWLE9BQU9HLEdBQUcsQ0FBQ1MsS0FBSyxHQUFHbkIsU0FBU29CLEVBQUU7WUFDOUIsT0FBT3BCLFNBQVNvQixFQUFFO1FBQ3BCO1FBRUFDLElBQUFBLDhCQUFjLEVBQUM7WUFDYmpDO1lBQ0FvQixRQUFRRCxPQUFPQyxNQUFNO1lBQ3JCbkI7WUFDQUM7WUFDQWdDLGNBQWM7WUFDZC9CLE1BQU1TO1lBQ051QixhQUFhO1lBQ2JDLFFBQVFyQixhQUFhcUIsTUFBTTtZQUMzQmYsU0FBU0YsT0FBT0UsT0FBTztZQUN2QmY7WUFDQStCLGlCQUFpQlQ7WUFDakJyQixNQUFNLENBQUMsRUFBRUEsUUFBUSxHQUFHLEVBQUVILE1BQU1xQixJQUFJLENBQUMsQ0FBQyxFQUFFWixFQUFFLENBQUMsQ0FBQztZQUN4Q0w7WUFDQUM7WUFDQWEsS0FBS0gsT0FBT0csR0FBRztZQUNmWjtRQUNGO1FBRUFSLE1BQU0sQ0FBQ1ksVUFBVSxDQUFDd0IsSUFBSSxDQUFDbkI7SUFDekI7QUFDRiJ9
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYmxvY2tzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEJsb2NrRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCwgUmVsYXRpb25zaGlwVG9EZWxldGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBibG9ja3NUb0RlbGV0ZTogU2V0PHN0cmluZz5cbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICBmaWVsZDogQmxvY2tGaWVsZFxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbnVtYmVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICBwYXRoOiBzdHJpbmdcbiAgcmVsYXRpb25zaGlwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICByZWxhdGlvbnNoaXBzVG9EZWxldGU6IFJlbGF0aW9uc2hpcFRvRGVsZXRlW11cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxufVxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUJsb2NrcyA9ICh7XG4gIGFkYXB0ZXIsXG4gIGJhc2VUYWJsZU5hbWUsXG4gIGJsb2NrcyxcbiAgYmxvY2tzVG9EZWxldGUsXG4gIGRhdGEsXG4gIGZpZWxkLFxuICBsb2NhbGUsXG4gIG51bWJlcnMsXG4gIHBhdGgsXG4gIHJlbGF0aW9uc2hpcHMsXG4gIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgc2VsZWN0cyxcbn06IEFyZ3MpID0+IHtcbiAgZGF0YS5mb3JFYWNoKChibG9ja1JvdywgaSkgPT4ge1xuICAgIGlmICh0eXBlb2YgYmxvY2tSb3cuYmxvY2tUeXBlICE9PSAnc3RyaW5nJykgcmV0dXJuXG4gICAgY29uc3QgbWF0Y2hlZEJsb2NrID0gZmllbGQuYmxvY2tzLmZpbmQoKHsgc2x1ZyB9KSA9PiBzbHVnID09PSBibG9ja1Jvdy5ibG9ja1R5cGUpXG4gICAgaWYgKCFtYXRjaGVkQmxvY2spIHJldHVyblxuICAgIGNvbnN0IGJsb2NrVHlwZSA9IHRvU25ha2VDYXNlKGJsb2NrUm93LmJsb2NrVHlwZSlcblxuICAgIGlmICghYmxvY2tzW2Jsb2NrVHlwZV0pIGJsb2Nrc1tibG9ja1R5cGVdID0gW11cblxuICAgIGNvbnN0IG5ld1JvdzogQmxvY2tSb3dUb0luc2VydCA9IHtcbiAgICAgIGFycmF5czoge30sXG4gICAgICBsb2NhbGVzOiB7fSxcbiAgICAgIHJvdzoge1xuICAgICAgICBfb3JkZXI6IGkgKyAxLFxuICAgICAgICBfcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9YCxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBsb2NhbGUpIG5ld1Jvdy5yb3cuX2xvY2FsZSA9IGxvY2FsZVxuXG4gICAgY29uc3QgYmxvY2tUYWJsZU5hbWUgPSBgJHtiYXNlVGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja1R5cGV9YFxuXG4gICAgY29uc3QgaGFzVVVJRCA9IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXS5fdXVpZFxuXG4gICAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBhIF91dWlkIGZpZWxkIG9uIGFycmF5cyxcbiAgICAvLyB0aGF0IG1lYW5zIHRoZSBJRCBoYXMgdG8gYmUgdW5pcXVlLFxuICAgIC8vIGFuZCBvdXIgaWRzIHdpdGhpbiBhcnJheXMgYXJlIG5vdCB1bmlxdWUuXG4gICAgLy8gU28gbW92ZSB0aGUgSUQgdG8gYSB1dWlkIGZpZWxkIGZvciBzdG9yYWdlXG4gICAgLy8gYW5kIGFsbG93IHRoZSBkYXRhYmFzZSB0byBnZW5lcmF0ZSBhIHNlcmlhbCBpZCBhdXRvbWF0aWNhbGx5XG4gICAgaWYgKGhhc1VVSUQpIHtcbiAgICAgIG5ld1Jvdy5yb3cuX3V1aWQgPSBibG9ja1Jvdy5pZFxuICAgICAgZGVsZXRlIGJsb2NrUm93LmlkXG4gICAgfVxuXG4gICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGFycmF5czogbmV3Um93LmFycmF5cyxcbiAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICBibG9ja3MsXG4gICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgIGNvbHVtblByZWZpeDogJycsXG4gICAgICBkYXRhOiBibG9ja1JvdyxcbiAgICAgIGZpZWxkUHJlZml4OiAnJyxcbiAgICAgIGZpZWxkczogbWF0Y2hlZEJsb2NrLmZpZWxkcyxcbiAgICAgIGxvY2FsZXM6IG5ld1Jvdy5sb2NhbGVzLFxuICAgICAgbnVtYmVycyxcbiAgICAgIHBhcmVudFRhYmxlTmFtZTogYmxvY2tUYWJsZU5hbWUsXG4gICAgICBwYXRoOiBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX0uJHtpfS5gLFxuICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgIHJvdzogbmV3Um93LnJvdyxcbiAgICAgIHNlbGVjdHMsXG4gICAgfSlcblxuICAgIGJsb2Nrc1tibG9ja1R5cGVdLnB1c2gobmV3Um93KVxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUJsb2NrcyIsImFkYXB0ZXIiLCJiYXNlVGFibGVOYW1lIiwiYmxvY2tzIiwiYmxvY2tzVG9EZWxldGUiLCJkYXRhIiwiZmllbGQiLCJsb2NhbGUiLCJudW1iZXJzIiwicGF0aCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJzZWxlY3RzIiwiZm9yRWFjaCIsImJsb2NrUm93IiwiaSIsImJsb2NrVHlwZSIsIm1hdGNoZWRCbG9jayIsImZpbmQiLCJzbHVnIiwidG9TbmFrZUNhc2UiLCJuZXdSb3ciLCJhcnJheXMiLCJsb2NhbGVzIiwicm93IiwiX29yZGVyIiwiX3BhdGgiLCJuYW1lIiwibG9jYWxpemVkIiwiX2xvY2FsZSIsImJsb2NrVGFibGVOYW1lIiwiaGFzVVVJRCIsInRhYmxlcyIsIl91dWlkIiwiaWQiLCJ0cmF2ZXJzZUZpZWxkcyIsImNvbHVtblByZWZpeCIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwicGFyZW50VGFibGVOYW1lIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTRCdkJBOzs7ZUFBQUE7OztvRUF6Qlc7Z0NBS087Ozs7OztBQW9CeEIsTUFBTUEsa0JBQWtCLENBQUMsRUFDOUJDLE9BQU8sRUFDUEMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsSUFBSSxFQUNKQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMscUJBQXFCLEVBQ3JCQyxPQUFPLEVBQ0Y7SUFDTFAsS0FBS1EsT0FBTyxDQUFDLENBQUNDLFVBQVVDO1FBQ3RCLElBQUksT0FBT0QsU0FBU0UsU0FBUyxLQUFLLFVBQVU7UUFDNUMsTUFBTUMsZUFBZVgsTUFBTUgsTUFBTSxDQUFDZSxJQUFJLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUUsR0FBS0EsU0FBU0wsU0FBU0UsU0FBUztRQUNoRixJQUFJLENBQUNDLGNBQWM7UUFDbkIsTUFBTUQsWUFBWUksSUFBQUEsb0JBQVcsRUFBQ04sU0FBU0UsU0FBUztRQUVoRCxJQUFJLENBQUNiLE1BQU0sQ0FBQ2EsVUFBVSxFQUFFYixNQUFNLENBQUNhLFVBQVUsR0FBRyxFQUFFO1FBRTlDLE1BQU1LLFNBQTJCO1lBQy9CQyxRQUFRLENBQUM7WUFDVEMsU0FBUyxDQUFDO1lBQ1ZDLEtBQUs7Z0JBQ0hDLFFBQVFWLElBQUk7Z0JBQ1pXLE9BQU8sQ0FBQyxFQUFFakIsS0FBSyxFQUFFSCxNQUFNcUIsSUFBSSxDQUFDLENBQUM7WUFDL0I7UUFDRjtRQUVBLElBQUlyQixNQUFNc0IsU0FBUyxJQUFJckIsUUFBUWMsT0FBT0csR0FBRyxDQUFDSyxPQUFPLEdBQUd0QjtRQUVwRCxNQUFNdUIsaUJBQWlCLENBQUMsRUFBRTVCLGNBQWMsUUFBUSxFQUFFYyxVQUFVLENBQUM7UUFFN0QsTUFBTWUsVUFBVTlCLFFBQVErQixNQUFNLENBQUNGLGVBQWUsQ0FBQ0csS0FBSztRQUVwRCwrQ0FBK0M7UUFDL0Msc0NBQXNDO1FBQ3RDLDRDQUE0QztRQUM1Qyw2Q0FBNkM7UUFDN0MsK0RBQStEO1FBQy9ELElBQUlGLFNBQVM7WUFDWFYsT0FBT0csR0FBRyxDQUFDUyxLQUFLLEdBQUduQixTQUFTb0IsRUFBRTtZQUM5QixPQUFPcEIsU0FBU29CLEVBQUU7UUFDcEI7UUFFQUMsSUFBQUEsOEJBQWMsRUFBQztZQUNibEM7WUFDQXFCLFFBQVFELE9BQU9DLE1BQU07WUFDckJwQjtZQUNBQztZQUNBQztZQUNBZ0MsY0FBYztZQUNkL0IsTUFBTVM7WUFDTnVCLGFBQWE7WUFDYkMsUUFBUXJCLGFBQWFxQixNQUFNO1lBQzNCZixTQUFTRixPQUFPRSxPQUFPO1lBQ3ZCZjtZQUNBK0IsaUJBQWlCVDtZQUNqQnJCLE1BQU0sQ0FBQyxFQUFFQSxRQUFRLEdBQUcsRUFBRUgsTUFBTXFCLElBQUksQ0FBQyxDQUFDLEVBQUVaLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDTDtZQUNBQztZQUNBYSxLQUFLSCxPQUFPRyxHQUFHO1lBQ2ZaO1FBQ0Y7UUFFQVQsTUFBTSxDQUFDYSxVQUFVLENBQUN3QixJQUFJLENBQUNuQjtJQUN6QjtBQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,gDAM3B,IAAI,KAAG,WAmCT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,gDAM3B,IAAI,KAAG,WAqCT,CAAA"}
@@ -14,6 +14,7 @@ const transformForWrite = ({ adapter, data, fields, path = '', tableName })=>{
14
14
  const rowToInsert = {
15
15
  arrays: {},
16
16
  blocks: {},
17
+ blocksToDelete: new Set(),
17
18
  locales: {},
18
19
  numbers: [],
19
20
  relationships: [],
@@ -28,6 +29,7 @@ const transformForWrite = ({ adapter, data, fields, path = '', tableName })=>{
28
29
  arrays: rowToInsert.arrays,
29
30
  baseTableName: tableName,
30
31
  blocks: rowToInsert.blocks,
32
+ blocksToDelete: rowToInsert.blocksToDelete,
31
33
  columnPrefix: '',
32
34
  data,
33
35
  fieldPrefix: '',
@@ -44,4 +46,4 @@ const transformForWrite = ({ adapter, data, fields, path = '', tableName })=>{
44
46
  return rowToInsert;
45
47
  };
46
48
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSb3dUb0luc2VydCB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmllbGRzOiBGaWVsZFtdXG4gIHBhdGg/OiBzdHJpbmdcbiAgdGFibGVOYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUZvcldyaXRlID0gKHtcbiAgYWRhcHRlcixcbiAgZGF0YSxcbiAgZmllbGRzLFxuICBwYXRoID0gJycsXG4gIHRhYmxlTmFtZSxcbn06IEFyZ3MpOiBSb3dUb0luc2VydCA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHJvd3MgdG8gaW5zZXJ0IC8gZGVsZXRlXG4gIGNvbnN0IHJvd1RvSW5zZXJ0OiBSb3dUb0luc2VydCA9IHtcbiAgICBhcnJheXM6IHt9LFxuICAgIGJsb2Nrczoge30sXG4gICAgbG9jYWxlczoge30sXG4gICAgbnVtYmVyczogW10sXG4gICAgcmVsYXRpb25zaGlwczogW10sXG4gICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlOiBbXSxcbiAgICByb3c6IHt9LFxuICAgIHNlbGVjdHM6IHt9LFxuICB9XG5cbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgYnVpbGRpbmcgdXAgdGhlXG4gIC8vIGFib3ZlIHJvd1RvSW5zZXJ0XG4gIHRyYXZlcnNlRmllbGRzKHtcbiAgICBhZGFwdGVyLFxuICAgIGFycmF5czogcm93VG9JbnNlcnQuYXJyYXlzLFxuICAgIGJhc2VUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBibG9ja3M6IHJvd1RvSW5zZXJ0LmJsb2NrcyxcbiAgICBjb2x1bW5QcmVmaXg6ICcnLFxuICAgIGRhdGEsXG4gICAgZmllbGRQcmVmaXg6ICcnLFxuICAgIGZpZWxkcyxcbiAgICBsb2NhbGVzOiByb3dUb0luc2VydC5sb2NhbGVzLFxuICAgIG51bWJlcnM6IHJvd1RvSW5zZXJ0Lm51bWJlcnMsXG4gICAgcGFyZW50VGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgcGF0aCxcbiAgICByZWxhdGlvbnNoaXBzOiByb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLFxuICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZTogcm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgIHJvdzogcm93VG9JbnNlcnQucm93LFxuICAgIHNlbGVjdHM6IHJvd1RvSW5zZXJ0LnNlbGVjdHMsXG4gIH0pXG5cbiAgcmV0dXJuIHJvd1RvSW5zZXJ0XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtRm9yV3JpdGUiLCJhZGFwdGVyIiwiZGF0YSIsImZpZWxkcyIsInBhdGgiLCJ0YWJsZU5hbWUiLCJyb3dUb0luc2VydCIsImFycmF5cyIsImJsb2NrcyIsImxvY2FsZXMiLCJudW1iZXJzIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsInJvdyIsInNlbGVjdHMiLCJ0cmF2ZXJzZUZpZWxkcyIsImJhc2VUYWJsZU5hbWUiLCJjb2x1bW5QcmVmaXgiLCJmaWVsZFByZWZpeCIsInBhcmVudFRhYmxlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWdCdkJBOzs7ZUFBQUE7OztnQ0FWa0I7QUFVeEIsTUFBTUEsb0JBQW9CLENBQUMsRUFDaENDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxNQUFNLEVBQ05DLE9BQU8sRUFBRSxFQUNUQyxTQUFTLEVBQ0o7SUFDTCwyREFBMkQ7SUFDM0QsTUFBTUMsY0FBMkI7UUFDL0JDLFFBQVEsQ0FBQztRQUNUQyxRQUFRLENBQUM7UUFDVEMsU0FBUyxDQUFDO1FBQ1ZDLFNBQVMsRUFBRTtRQUNYQyxlQUFlLEVBQUU7UUFDakJDLHVCQUF1QixFQUFFO1FBQ3pCQyxLQUFLLENBQUM7UUFDTkMsU0FBUyxDQUFDO0lBQ1o7SUFFQSxtREFBbUQ7SUFDbkQsb0JBQW9CO0lBQ3BCQyxJQUFBQSw4QkFBYyxFQUFDO1FBQ2JkO1FBQ0FNLFFBQVFELFlBQVlDLE1BQU07UUFDMUJTLGVBQWVYO1FBQ2ZHLFFBQVFGLFlBQVlFLE1BQU07UUFDMUJTLGNBQWM7UUFDZGY7UUFDQWdCLGFBQWE7UUFDYmY7UUFDQU0sU0FBU0gsWUFBWUcsT0FBTztRQUM1QkMsU0FBU0osWUFBWUksT0FBTztRQUM1QlMsaUJBQWlCZDtRQUNqQkQ7UUFDQU8sZUFBZUwsWUFBWUssYUFBYTtRQUN4Q0MsdUJBQXVCTixZQUFZTSxxQkFBcUI7UUFDeERDLEtBQUtQLFlBQVlPLEdBQUc7UUFDcEJDLFNBQVNSLFlBQVlRLE9BQU87SUFDOUI7SUFFQSxPQUFPUjtBQUNUIn0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSb3dUb0luc2VydCB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmllbGRzOiBGaWVsZFtdXG4gIHBhdGg/OiBzdHJpbmdcbiAgdGFibGVOYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUZvcldyaXRlID0gKHtcbiAgYWRhcHRlcixcbiAgZGF0YSxcbiAgZmllbGRzLFxuICBwYXRoID0gJycsXG4gIHRhYmxlTmFtZSxcbn06IEFyZ3MpOiBSb3dUb0luc2VydCA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHJvd3MgdG8gaW5zZXJ0IC8gZGVsZXRlXG4gIGNvbnN0IHJvd1RvSW5zZXJ0OiBSb3dUb0luc2VydCA9IHtcbiAgICBhcnJheXM6IHt9LFxuICAgIGJsb2Nrczoge30sXG4gICAgYmxvY2tzVG9EZWxldGU6IG5ldyBTZXQoKSxcbiAgICBsb2NhbGVzOiB7fSxcbiAgICBudW1iZXJzOiBbXSxcbiAgICByZWxhdGlvbnNoaXBzOiBbXSxcbiAgICByZWxhdGlvbnNoaXBzVG9EZWxldGU6IFtdLFxuICAgIHJvdzoge30sXG4gICAgc2VsZWN0czoge30sXG4gIH1cblxuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyB1cCB0aGVcbiAgLy8gYWJvdmUgcm93VG9JbnNlcnRcbiAgdHJhdmVyc2VGaWVsZHMoe1xuICAgIGFkYXB0ZXIsXG4gICAgYXJyYXlzOiByb3dUb0luc2VydC5hcnJheXMsXG4gICAgYmFzZVRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIGJsb2Nrczogcm93VG9JbnNlcnQuYmxvY2tzLFxuICAgIGJsb2Nrc1RvRGVsZXRlOiByb3dUb0luc2VydC5ibG9ja3NUb0RlbGV0ZSxcbiAgICBjb2x1bW5QcmVmaXg6ICcnLFxuICAgIGRhdGEsXG4gICAgZmllbGRQcmVmaXg6ICcnLFxuICAgIGZpZWxkcyxcbiAgICBsb2NhbGVzOiByb3dUb0luc2VydC5sb2NhbGVzLFxuICAgIG51bWJlcnM6IHJvd1RvSW5zZXJ0Lm51bWJlcnMsXG4gICAgcGFyZW50VGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgcGF0aCxcbiAgICByZWxhdGlvbnNoaXBzOiByb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLFxuICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZTogcm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgIHJvdzogcm93VG9JbnNlcnQucm93LFxuICAgIHNlbGVjdHM6IHJvd1RvSW5zZXJ0LnNlbGVjdHMsXG4gIH0pXG5cbiAgcmV0dXJuIHJvd1RvSW5zZXJ0XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtRm9yV3JpdGUiLCJhZGFwdGVyIiwiZGF0YSIsImZpZWxkcyIsInBhdGgiLCJ0YWJsZU5hbWUiLCJyb3dUb0luc2VydCIsImFycmF5cyIsImJsb2NrcyIsImJsb2Nrc1RvRGVsZXRlIiwiU2V0IiwibG9jYWxlcyIsIm51bWJlcnMiLCJyZWxhdGlvbnNoaXBzIiwicmVsYXRpb25zaGlwc1RvRGVsZXRlIiwicm93Iiwic2VsZWN0cyIsInRyYXZlcnNlRmllbGRzIiwiYmFzZVRhYmxlTmFtZSIsImNvbHVtblByZWZpeCIsImZpZWxkUHJlZml4IiwicGFyZW50VGFibGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBZ0J2QkE7OztlQUFBQTs7O2dDQVZrQjtBQVV4QixNQUFNQSxvQkFBb0IsQ0FBQyxFQUNoQ0MsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLE1BQU0sRUFDTkMsT0FBTyxFQUFFLEVBQ1RDLFNBQVMsRUFDSjtJQUNMLDJEQUEyRDtJQUMzRCxNQUFNQyxjQUEyQjtRQUMvQkMsUUFBUSxDQUFDO1FBQ1RDLFFBQVEsQ0FBQztRQUNUQyxnQkFBZ0IsSUFBSUM7UUFDcEJDLFNBQVMsQ0FBQztRQUNWQyxTQUFTLEVBQUU7UUFDWEMsZUFBZSxFQUFFO1FBQ2pCQyx1QkFBdUIsRUFBRTtRQUN6QkMsS0FBSyxDQUFDO1FBQ05DLFNBQVMsQ0FBQztJQUNaO0lBRUEsbURBQW1EO0lBQ25ELG9CQUFvQjtJQUNwQkMsSUFBQUEsOEJBQWMsRUFBQztRQUNiaEI7UUFDQU0sUUFBUUQsWUFBWUMsTUFBTTtRQUMxQlcsZUFBZWI7UUFDZkcsUUFBUUYsWUFBWUUsTUFBTTtRQUMxQkMsZ0JBQWdCSCxZQUFZRyxjQUFjO1FBQzFDVSxjQUFjO1FBQ2RqQjtRQUNBa0IsYUFBYTtRQUNiakI7UUFDQVEsU0FBU0wsWUFBWUssT0FBTztRQUM1QkMsU0FBU04sWUFBWU0sT0FBTztRQUM1QlMsaUJBQWlCaEI7UUFDakJEO1FBQ0FTLGVBQWVQLFlBQVlPLGFBQWE7UUFDeENDLHVCQUF1QlIsWUFBWVEscUJBQXFCO1FBQ3hEQyxLQUFLVCxZQUFZUyxHQUFHO1FBQ3BCQyxTQUFTVixZQUFZVSxPQUFPO0lBQzlCO0lBRUEsT0FBT1Y7QUFDVCJ9
@@ -13,6 +13,7 @@ type Args = {
13
13
  blocks: {
14
14
  [blockType: string]: BlockRowToInsert[];
15
15
  };
16
+ blocksToDelete: Set<string>;
16
17
  /**
17
18
  * A snake-case field prefix, representing prior fields
18
19
  * Ex: my_group_my_named_tab_
@@ -43,6 +44,6 @@ type Args = {
43
44
  [tableName: string]: Record<string, unknown>[];
44
45
  };
45
46
  };
46
- export declare const traverseFields: ({ adapter, arrays, baseTableName, blocks, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects, }: Args) => void;
47
+ export declare const traverseFields: ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects, }: Args) => void;
47
48
  export {};
48
49
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAK1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AASvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,qNAmBxB,IAAI,SAwYN,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAK1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AASvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,qOAoBxB,IAAI,SAsZN,CAAA"}
@@ -21,7 +21,7 @@ function _interop_require_default(obj) {
21
21
  default: obj
22
22
  };
23
23
  }
24
- const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects })=>{
24
+ const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, locales, numbers, parentTableName, path, relationships, relationshipsToDelete, row, selects })=>{
25
25
  fields.forEach((field)=>{
26
26
  let columnName = '';
27
27
  let fieldName = '';
@@ -43,6 +43,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
43
43
  arrayTableName,
44
44
  baseTableName,
45
45
  blocks,
46
+ blocksToDelete,
46
47
  data: localeData,
47
48
  field,
48
49
  locale: localeKey,
@@ -62,6 +63,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
62
63
  arrayTableName,
63
64
  baseTableName,
64
65
  blocks,
66
+ blocksToDelete,
65
67
  data: data[field.name],
66
68
  field,
67
69
  numbers,
@@ -75,6 +77,9 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
75
77
  return;
76
78
  }
77
79
  if (field.type === 'blocks') {
80
+ field.blocks.forEach(({ slug })=>{
81
+ blocksToDelete.add((0, _tosnakecase.default)(slug));
82
+ });
78
83
  if (field.localized) {
79
84
  if (typeof data[field.name] === 'object' && data[field.name] !== null) {
80
85
  Object.entries(data[field.name]).forEach(([localeKey, localeData])=>{
@@ -83,6 +88,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
83
88
  adapter,
84
89
  baseTableName,
85
90
  blocks,
91
+ blocksToDelete,
86
92
  data: localeData,
87
93
  field,
88
94
  locale: localeKey,
@@ -100,6 +106,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
100
106
  adapter,
101
107
  baseTableName,
102
108
  blocks,
109
+ blocksToDelete,
103
110
  data: fieldData,
104
111
  field,
105
112
  numbers,
@@ -120,6 +127,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
120
127
  arrays,
121
128
  baseTableName,
122
129
  blocks,
130
+ blocksToDelete,
123
131
  columnPrefix: `${columnName}_`,
124
132
  data: localeData,
125
133
  existingLocales,
@@ -142,6 +150,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
142
150
  arrays,
143
151
  baseTableName,
144
152
  blocks,
153
+ blocksToDelete,
145
154
  columnPrefix: `${columnName}_`,
146
155
  data: data[field.name],
147
156
  existingLocales,
@@ -171,6 +180,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
171
180
  arrays,
172
181
  baseTableName,
173
182
  blocks,
183
+ blocksToDelete,
174
184
  columnPrefix: `${columnPrefix || ''}${(0, _tosnakecase.default)(tab.name)}_`,
175
185
  data: localeData,
176
186
  existingLocales,
@@ -193,6 +203,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
193
203
  arrays,
194
204
  baseTableName,
195
205
  blocks,
206
+ blocksToDelete,
196
207
  columnPrefix: `${columnPrefix || ''}${(0, _tosnakecase.default)(tab.name)}_`,
197
208
  data: data[tab.name],
198
209
  existingLocales,
@@ -215,6 +226,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
215
226
  arrays,
216
227
  baseTableName,
217
228
  blocks,
229
+ blocksToDelete,
218
230
  columnPrefix,
219
231
  data,
220
232
  existingLocales,
@@ -238,6 +250,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
238
250
  arrays,
239
251
  baseTableName,
240
252
  blocks,
253
+ blocksToDelete,
241
254
  columnPrefix,
242
255
  data,
243
256
  existingLocales,
@@ -386,4 +399,4 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, columnPrefix,
386
399
  });
387
400
  };
388
401
 
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0b1NuYWtlQ2FzZSBmcm9tICd0by1zbmFrZS1jYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcnJheVJvd1RvSW5zZXJ0LCBCbG9ja1Jvd1RvSW5zZXJ0LCBSZWxhdGlvbnNoaXBUb0RlbGV0ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzQXJyYXlPZlJvd3MgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaXNBcnJheU9mUm93cydcbmltcG9ydCB7IHRyYW5zZm9ybUFycmF5IH0gZnJvbSAnLi9hcnJheSdcbmltcG9ydCB7IHRyYW5zZm9ybUJsb2NrcyB9IGZyb20gJy4vYmxvY2tzJ1xuaW1wb3J0IHsgdHJhbnNmb3JtTnVtYmVycyB9IGZyb20gJy4vbnVtYmVycydcbmltcG9ydCB7IHRyYW5zZm9ybVJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwcydcbmltcG9ydCB7IHRyYW5zZm9ybVNlbGVjdHMgfSBmcm9tICcuL3NlbGVjdHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBiYXNlIHRhYmxlXG4gICAqL1xuICBiYXNlVGFibGVOYW1lOiBzdHJpbmdcbiAgYmxvY2tzOiB7XG4gICAgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdXG4gIH1cbiAgLyoqXG4gICAqIEEgc25ha2UtY2FzZSBmaWVsZCBwcmVmaXgsIHJlcHJlc2VudGluZyBwcmlvciBmaWVsZHNcbiAgICogRXg6IG15X2dyb3VwX215X25hbWVkX3RhYl9cbiAgICovXG4gIGNvbHVtblByZWZpeDogc3RyaW5nXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGV4aXN0aW5nTG9jYWxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgLyoqXG4gICAqIEEgcHJlZml4IHRoYXQgd2lsbCByZXRhaW4gY2FtZWwtY2FzZSBmb3JtYXR0aW5nLCByZXByZXNlbnRpbmcgcHJpb3IgZmllbGRzXG4gICAqIEV4OiBteUdyb3VwX215TmFtZWRUYWJfXG4gICAqL1xuICBmaWVsZFByZWZpeDogc3RyaW5nXG4gIGZpZWxkczogRmllbGRbXVxuICBmb3JjZWRMb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlczoge1xuICAgIFtsb2NhbGU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIH1cbiAgbnVtYmVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICAvKipcbiAgICogVGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgcGFyZW50IHRhYmxlXG4gICAqL1xuICBwYXJlbnRUYWJsZU5hbWU6IHN0cmluZ1xuICBwYXRoOiBzdHJpbmdcbiAgcmVsYXRpb25zaGlwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICByZWxhdGlvbnNoaXBzVG9EZWxldGU6IFJlbGF0aW9uc2hpcFRvRGVsZXRlW11cbiAgcm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzZWxlY3RzOiB7XG4gICAgW3RhYmxlTmFtZTogc3RyaW5nXTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZpZWxkcyA9ICh7XG4gIGFkYXB0ZXIsXG4gIGFycmF5cyxcbiAgYmFzZVRhYmxlTmFtZSxcbiAgYmxvY2tzLFxuICBjb2x1bW5QcmVmaXgsXG4gIGRhdGEsXG4gIGV4aXN0aW5nTG9jYWxlcyxcbiAgZmllbGRQcmVmaXgsXG4gIGZpZWxkcyxcbiAgZm9yY2VkTG9jYWxlLFxuICBsb2NhbGVzLFxuICBudW1iZXJzLFxuICBwYXJlbnRUYWJsZU5hbWUsXG4gIHBhdGgsXG4gIHJlbGF0aW9uc2hpcHMsXG4gIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgcm93LFxuICBzZWxlY3RzLFxufTogQXJncykgPT4ge1xuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBsZXQgY29sdW1uTmFtZSA9ICcnXG4gICAgbGV0IGZpZWxkTmFtZSA9ICcnXG4gICAgbGV0IGZpZWxkRGF0YTogdW5rbm93blxuXG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICBjb2x1bW5OYW1lID0gYCR7Y29sdW1uUHJlZml4IHx8ICcnfSR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuICAgICAgZmllbGROYW1lID0gYCR7ZmllbGRQcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lfWBcbiAgICAgIGZpZWxkRGF0YSA9IGRhdGFbZmllbGQubmFtZV1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgY29uc3QgYXJyYXlUYWJsZU5hbWUgPSBgJHtwYXJlbnRUYWJsZU5hbWV9XyR7Y29sdW1uTmFtZX1gXG5cbiAgICAgIGlmICghYXJyYXlzW2FycmF5VGFibGVOYW1lXSkgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IFtdXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJiBkYXRhW2ZpZWxkLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVtmaWVsZC5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1Jvd3MgPSB0cmFuc2Zvcm1BcnJheSh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBhcnJheVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIGFycmF5c1thcnJheVRhYmxlTmFtZV0gPSBhcnJheXNbYXJyYXlUYWJsZU5hbWVdLmNvbmNhdChuZXdSb3dzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSB0cmFuc2Zvcm1BcnJheSh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBhcnJheVRhYmxlTmFtZSxcbiAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBkYXRhOiBkYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICB9KVxuXG4gICAgICAgIGFycmF5c1thcnJheVRhYmxlTmFtZV0gPSBhcnJheXNbYXJyYXlUYWJsZU5hbWVdLmNvbmNhdChuZXdSb3dzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2Jsb2NrcycpIHtcbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJiBkYXRhW2ZpZWxkLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVtmaWVsZC5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheU9mUm93cyhmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZ3JvdXAnKSB7XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtbk5hbWV9X2AsXG4gICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkTmFtZX1fYCxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGZvcmNlZExvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzVG9EZWxldGUsXG4gICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgc2VsZWN0cyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgIGNvbHVtblByZWZpeDogYCR7Y29sdW1uTmFtZX1fYCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfV9gLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVt0YWIubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbdGFiLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGFiLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW3RhYi5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICAgIGNvbHVtblByZWZpeDogYCR7Y29sdW1uUHJlZml4IHx8ICcnfSR7dG9TbmFrZUNhc2UodGFiLm5hbWUpfV9gLFxuICAgICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke3RhYi5uYW1lfV9gLFxuICAgICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgZm9yY2VkTG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHt0YWIubmFtZX0uYCxcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzVG9EZWxldGUsXG4gICAgICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBhcnJheXMsXG4gICAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBibG9ja3MsXG4gICAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZSh0YWIubmFtZSl9X2AsXG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YVt0YWIubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke3RhYi5uYW1lfV9gLFxuICAgICAgICAgICAgICAgIGZpZWxkczogdGFiLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHt0YWIubmFtZX0uYCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgICAgc2VsZWN0cyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICBibG9ja3MsXG4gICAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgc2VsZWN0cyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAncm93JyB8fCBmaWVsZC50eXBlID09PSAnY29sbGFwc2libGUnKSB7XG4gICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGFycmF5cyxcbiAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgYmxvY2tzLFxuICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBsb2NhbGVzLFxuICAgICAgICBudW1iZXJzLFxuICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgcm93LFxuICAgICAgICBzZWxlY3RzLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgfHwgZmllbGQudHlwZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcFBhdGggPSBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX1gXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxvY2FsZURhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLnB1c2goe1xuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIHBhdGg6IHJlbGF0aW9uc2hpcFBhdGgsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cmFuc2Zvcm1SZWxhdGlvbnNoaXAoe1xuICAgICAgICAgICAgICBiYXNlUm93OiB7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgcGF0aDogcmVsYXRpb25zaGlwUGF0aCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChmaWVsZERhdGEgPT09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkoZmllbGREYXRhKSAmJiBmaWVsZERhdGEubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZS5wdXNoKHsgcGF0aDogcmVsYXRpb25zaGlwUGF0aCB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdHJhbnNmb3JtUmVsYXRpb25zaGlwKHtcbiAgICAgICAgICBiYXNlUm93OiB7XG4gICAgICAgICAgICBwYXRoOiByZWxhdGlvbnNoaXBQYXRoLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YTogZmllbGREYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiBmaWVsZC5oYXNNYW55KSB7XG4gICAgICBjb25zdCBudW1iZXJQYXRoID0gYCR7cGF0aCB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGREYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkRGF0YSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybU51bWJlcnMoe1xuICAgICAgICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgICAgcGF0aDogbnVtYmVyUGF0aCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGREYXRhKSkge1xuICAgICAgICB0cmFuc2Zvcm1OdW1iZXJzKHtcbiAgICAgICAgICBiYXNlUm93OiB7XG4gICAgICAgICAgICBwYXRoOiBudW1iZXJQYXRoLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YTogZmllbGREYXRhLFxuICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnc2VsZWN0JyAmJiBmaWVsZC5oYXNNYW55KSB7XG4gICAgICBjb25zdCBzZWxlY3RUYWJsZU5hbWUgPSBgJHtwYXJlbnRUYWJsZU5hbWV9XyR7Y29sdW1uTmFtZX1gXG4gICAgICBpZiAoIXNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXSkgc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW2ZpZWxkLm5hbWVdKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybVNlbGVjdHMoe1xuICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdID0gc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdLmNvbmNhdChuZXdSb3dzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgICBjb25zdCBuZXdSb3dzID0gdHJhbnNmb3JtU2VsZWN0cyh7XG4gICAgICAgICAgZGF0YTogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgY29uc3QgdmFsdWVzVG9UcmFuc2Zvcm06IHsgbG9jYWxlS2V5Pzogc3RyaW5nOyByZWY6IHVua25vd247IHZhbHVlOiB1bmtub3duIH1bXSA9IFtdXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnICYmIGZpZWxkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkRGF0YSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmICghbG9jYWxlc1tsb2NhbGVLZXldKSBsb2NhbGVzW2xvY2FsZUtleV0gPSB7fVxuXG4gICAgICAgICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5wdXNoKHtcbiAgICAgICAgICAgICAgbG9jYWxlS2V5LFxuICAgICAgICAgICAgICByZWY6IGxvY2FsZXMsXG4gICAgICAgICAgICAgIHZhbHVlOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVmID0gcm93XG5cbiAgICAgICAgaWYgKGZvcmNlZExvY2FsZSkge1xuICAgICAgICAgIGlmICghbG9jYWxlc1tmb3JjZWRMb2NhbGVdKSBsb2NhbGVzW2ZvcmNlZExvY2FsZV0gPSB7fVxuICAgICAgICAgIHJlZiA9IGxvY2FsZXNbZm9yY2VkTG9jYWxlXVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWVzVG9UcmFuc2Zvcm0ucHVzaCh7IHJlZiwgdmFsdWU6IGZpZWxkRGF0YSB9KVxuICAgICAgfVxuXG4gICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5mb3JFYWNoKCh7IGxvY2FsZUtleSwgcmVmLCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gdmFsdWVcblxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgZmllbGQubmFtZSA9PT0gJ3VwZGF0ZWRBdCcpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGxvY2FsZUtleSkge1xuICAgICAgICAgICAgcmVmW2xvY2FsZUtleV1bZmllbGROYW1lXSA9IGZvcm1hdHRlZFZhbHVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZltmaWVsZE5hbWVdID0gZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiYWRhcHRlciIsImFycmF5cyIsImJhc2VUYWJsZU5hbWUiLCJibG9ja3MiLCJjb2x1bW5QcmVmaXgiLCJkYXRhIiwiZXhpc3RpbmdMb2NhbGVzIiwiZmllbGRQcmVmaXgiLCJmaWVsZHMiLCJmb3JjZWRMb2NhbGUiLCJsb2NhbGVzIiwibnVtYmVycyIsInBhcmVudFRhYmxlTmFtZSIsInBhdGgiLCJyZWxhdGlvbnNoaXBzIiwicmVsYXRpb25zaGlwc1RvRGVsZXRlIiwicm93Iiwic2VsZWN0cyIsImZvckVhY2giLCJmaWVsZCIsImNvbHVtbk5hbWUiLCJmaWVsZE5hbWUiLCJmaWVsZERhdGEiLCJmaWVsZEFmZmVjdHNEYXRhIiwidG9TbmFrZUNhc2UiLCJuYW1lIiwidHlwZSIsImFycmF5VGFibGVOYW1lIiwibG9jYWxpemVkIiwiT2JqZWN0IiwiZW50cmllcyIsImxvY2FsZUtleSIsImxvY2FsZURhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdSb3dzIiwidHJhbnNmb3JtQXJyYXkiLCJsb2NhbGUiLCJjb25jYXQiLCJ0cmFuc2Zvcm1CbG9ja3MiLCJpc0FycmF5T2ZSb3dzIiwidGFicyIsInRhYiIsInJlbGF0aW9uc2hpcFBhdGgiLCJwdXNoIiwidHJhbnNmb3JtUmVsYXRpb25zaGlwIiwiYmFzZVJvdyIsImxlbmd0aCIsImhhc01hbnkiLCJudW1iZXJQYXRoIiwidHJhbnNmb3JtTnVtYmVycyIsInNlbGVjdFRhYmxlTmFtZSIsInRyYW5zZm9ybVNlbGVjdHMiLCJ2YWx1ZXNUb1RyYW5zZm9ybSIsInJlZiIsInZhbHVlIiwiZm9ybWF0dGVkVmFsdWUiLCJEYXRlIiwidG9JU09TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEyRHZCQTs7O2VBQUFBOzs7dUJBeERvQjtvRUFDVDsrQkFLTTt1QkFDQzt3QkFDQzt5QkFDQzsrQkFDSzt5QkFDTDs7Ozs7O0FBNkMxQixNQUFNQSxpQkFBaUIsQ0FBQyxFQUM3QkMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLGFBQWEsRUFDYkMsTUFBTSxFQUNOQyxZQUFZ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
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0b1NuYWtlQ2FzZSBmcm9tICd0by1zbmFrZS1jYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcnJheVJvd1RvSW5zZXJ0LCBCbG9ja1Jvd1RvSW5zZXJ0LCBSZWxhdGlvbnNoaXBUb0RlbGV0ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzQXJyYXlPZlJvd3MgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaXNBcnJheU9mUm93cydcbmltcG9ydCB7IHRyYW5zZm9ybUFycmF5IH0gZnJvbSAnLi9hcnJheSdcbmltcG9ydCB7IHRyYW5zZm9ybUJsb2NrcyB9IGZyb20gJy4vYmxvY2tzJ1xuaW1wb3J0IHsgdHJhbnNmb3JtTnVtYmVycyB9IGZyb20gJy4vbnVtYmVycydcbmltcG9ydCB7IHRyYW5zZm9ybVJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwcydcbmltcG9ydCB7IHRyYW5zZm9ybVNlbGVjdHMgfSBmcm9tICcuL3NlbGVjdHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBiYXNlIHRhYmxlXG4gICAqL1xuICBiYXNlVGFibGVOYW1lOiBzdHJpbmdcbiAgYmxvY2tzOiB7XG4gICAgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdXG4gIH1cbiAgYmxvY2tzVG9EZWxldGU6IFNldDxzdHJpbmc+XG4gIC8qKlxuICAgKiBBIHNuYWtlLWNhc2UgZmllbGQgcHJlZml4LCByZXByZXNlbnRpbmcgcHJpb3IgZmllbGRzXG4gICAqIEV4OiBteV9ncm91cF9teV9uYW1lZF90YWJfXG4gICAqL1xuICBjb2x1bW5QcmVmaXg6IHN0cmluZ1xuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBleGlzdGluZ0xvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIC8qKlxuICAgKiBBIHByZWZpeCB0aGF0IHdpbGwgcmV0YWluIGNhbWVsLWNhc2UgZm9ybWF0dGluZywgcmVwcmVzZW50aW5nIHByaW9yIGZpZWxkc1xuICAgKiBFeDogbXlHcm91cF9teU5hbWVkVGFiX1xuICAgKi9cbiAgZmllbGRQcmVmaXg6IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VkTG9jYWxlPzogc3RyaW5nXG4gIGxvY2FsZXM6IHtcbiAgICBbbG9jYWxlOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9XG4gIG51bWJlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCB0YWJsZVxuICAgKi9cbiAgcGFyZW50VGFibGVOYW1lOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlOiBSZWxhdGlvbnNoaXBUb0RlbGV0ZVtdXG4gIHJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSAoe1xuICBhZGFwdGVyLFxuICBhcnJheXMsXG4gIGJhc2VUYWJsZU5hbWUsXG4gIGJsb2NrcyxcbiAgYmxvY2tzVG9EZWxldGUsXG4gIGNvbHVtblByZWZpeCxcbiAgZGF0YSxcbiAgZXhpc3RpbmdMb2NhbGVzLFxuICBmaWVsZFByZWZpeCxcbiAgZmllbGRzLFxuICBmb3JjZWRMb2NhbGUsXG4gIGxvY2FsZXMsXG4gIG51bWJlcnMsXG4gIHBhcmVudFRhYmxlTmFtZSxcbiAgcGF0aCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICByb3csXG4gIHNlbGVjdHMsXG59OiBBcmdzKSA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGxldCBjb2x1bW5OYW1lID0gJydcbiAgICBsZXQgZmllbGROYW1lID0gJydcbiAgICBsZXQgZmllbGREYXRhOiB1bmtub3duXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG4gICAgICBmaWVsZE5hbWUgPSBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuICAgICAgZmllbGREYXRhID0gZGF0YVtmaWVsZC5uYW1lXVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBjb25zdCBhcnJheVRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcblxuICAgICAgaWYgKCFhcnJheXNbYXJyYXlUYWJsZU5hbWVdKSBhcnJheXNbYXJyYXlUYWJsZU5hbWVdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW2ZpZWxkLm5hbWVdKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYmxvY2tzJykge1xuICAgICAgZmllbGQuYmxvY2tzLmZvckVhY2goKHsgc2x1ZyB9KSA9PiB7XG4gICAgICAgIGJsb2Nrc1RvRGVsZXRlLmFkZCh0b1NuYWtlQ2FzZShzbHVnKSlcbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJiBkYXRhW2ZpZWxkLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVtmaWVsZC5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheU9mUm93cyhmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZ3JvdXAnKSB7XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICBwYXRoOiBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICBibG9ja3MsXG4gICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgIGNvbHVtblByZWZpeDogYCR7Y29sdW1uTmFtZX1fYCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfV9gLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVt0YWIubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbdGFiLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGFiLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW3RhYi5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZSh0YWIubmFtZSl9X2AsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtblByZWZpeCB8fCAnJ30ke3RvU25ha2VDYXNlKHRhYi5uYW1lKX1fYCxcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhW3RhYi5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JvdycgfHwgZmllbGQudHlwZSA9PT0gJ2NvbGxhcHNpYmxlJykge1xuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXMsXG4gICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgIGJsb2NrcyxcbiAgICAgICAgYmxvY2tzVG9EZWxldGUsXG4gICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICByb3csXG4gICAgICAgIHNlbGVjdHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwUGF0aCA9IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkRGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZERhdGEpLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAobG9jYWxlRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzVG9EZWxldGUucHVzaCh7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgcGF0aDogcmVsYXRpb25zaGlwUGF0aCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybVJlbGF0aW9uc2hpcCh7XG4gICAgICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICBwYXRoOiByZWxhdGlvbnNoaXBQYXRoLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YSA9PT0gbnVsbCB8fCAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpICYmIGZpZWxkRGF0YS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLnB1c2goeyBwYXRoOiByZWxhdGlvbnNoaXBQYXRoIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm1SZWxhdGlvbnNoaXAoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IHJlbGF0aW9uc2hpcFBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IG51bWJlclBhdGggPSBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX1gXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtTnVtYmVycyh7XG4gICAgICAgICAgICAgICAgYmFzZVJvdzoge1xuICAgICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgICBwYXRoOiBudW1iZXJQYXRoLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybU51bWJlcnMoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IG51bWJlclBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdFRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcbiAgICAgIGlmICghc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBbXVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCcgJiYgZGF0YVtmaWVsZC5uYW1lXSAhPT0gbnVsbCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhbGVEYXRhKSkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdSb3dzID0gdHJhbnNmb3JtU2VsZWN0cyh7XG4gICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSB0cmFuc2Zvcm1TZWxlY3RzKHtcbiAgICAgICAgICBkYXRhOiBkYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXSA9IHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXS5jb25jYXQobmV3Um93cylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICBjb25zdCB2YWx1ZXNUb1RyYW5zZm9ybTogeyBsb2NhbGVLZXk/OiBzdHJpbmc7IHJlZjogdW5rbm93bjsgdmFsdWU6IHVua25vd24gfVtdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkRGF0YSA9PT0gJ29iamVjdCcgJiYgZmllbGREYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFsb2NhbGVzW2xvY2FsZUtleV0pIGxvY2FsZXNbbG9jYWxlS2V5XSA9IHt9XG5cbiAgICAgICAgICAgIHZhbHVlc1RvVHJhbnNmb3JtLnB1c2goe1xuICAgICAgICAgICAgICBsb2NhbGVLZXksXG4gICAgICAgICAgICAgIHJlZjogbG9jYWxlcyxcbiAgICAgICAgICAgICAgdmFsdWU6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCByZWYgPSByb3dcblxuICAgICAgICBpZiAoZm9yY2VkTG9jYWxlKSB7XG4gICAgICAgICAgaWYgKCFsb2NhbGVzW2ZvcmNlZExvY2FsZV0pIGxvY2FsZXNbZm9yY2VkTG9jYWxlXSA9IHt9XG4gICAgICAgICAgcmVmID0gbG9jYWxlc1tmb3JjZWRMb2NhbGVdXG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5wdXNoKHsgcmVmLCB2YWx1ZTogZmllbGREYXRhIH0pXG4gICAgICB9XG5cbiAgICAgIHZhbHVlc1RvVHJhbnNmb3JtLmZvckVhY2goKHsgbG9jYWxlS2V5LCByZWYsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdkYXRlJyAmJiBmaWVsZC5uYW1lID09PSAndXBkYXRlZEF0Jykge1xuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobG9jYWxlS2V5KSB7XG4gICAgICAgICAgICByZWZbbG9jYWxlS2V5XVtmaWVsZE5hbWVdID0gZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVmW2ZpZWxkTmFtZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhZGFwdGVyIiwiYXJyYXlzIiwiYmFzZVRhYmxlTmFtZSIsImJsb2NrcyIsImJsb2Nrc1RvRGVsZXRlIiwiY29sdW1uUHJlZml4IiwiZGF0YSIsImV4aXN0aW5nTG9jYWxlcyIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwiZm9yY2VkTG9jYWxlIiwibG9jYWxlcyIsIm51bWJlcnMiLCJwYXJlbnRUYWJsZU5hbWUiLCJwYXRoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsInJvdyIsInNlbGVjdHMiLCJmb3JFYWNoIiwiZmllbGQiLCJjb2x1bW5OYW1lIiwiZmllbGROYW1lIiwiZmllbGREYXRhIiwiZmllbGRBZmZlY3RzRGF0YSIsInRvU25ha2VDYXNlIiwibmFtZSIsInR5cGUiLCJhcnJheVRhYmxlTmFtZSIsImxvY2FsaXplZCIsIk9iamVjdCIsImVudHJpZXMiLCJsb2NhbGVLZXkiLCJsb2NhbGVEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3Um93cyIsInRyYW5zZm9ybUFycmF5IiwibG9jYWxlIiwiY29uY2F0Iiwic2x1ZyIsImFkZCIsInRyYW5zZm9ybUJsb2NrcyIsImlzQXJyYXlPZlJvd3MiLCJ0YWJzIiwidGFiIiwicmVsYXRpb25zaGlwUGF0aCIsInB1c2giLCJ0cmFuc2Zvcm1SZWxhdGlvbnNoaXAiLCJiYXNlUm93IiwibGVuZ3RoIiwiaGFzTWFueSIsIm51bWJlclBhdGgiLCJ0cmFuc2Zvcm1OdW1iZXJzIiwic2VsZWN0VGFibGVOYW1lIiwidHJhbnNmb3JtU2VsZWN0cyIsInZhbHVlc1RvVHJhbnNmb3JtIiwicmVmIiwidmFsdWUiLCJmb3JtYXR0ZWRWYWx1ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTREdkJBOzs7ZUFBQUE7Ozt1QkF6RG9CO29FQUNUOytCQUtNO3VCQUNDO3dCQUNDO3lCQUNDOytCQUNLO3lCQUNMOzs7Ozs7QUE4QzFCLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsWUFBWSxFQUNaQyxJQUFJLEVBQ0pDLGVBQWUsRUFDZkMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLFlBQVksRUFDWkMsT0FBTyxFQUNQQyxPQUFPLEVBQ1BDLGVBQWUsRUFDZkMsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLHFCQUFxQixFQUNyQkMsR0FBRyxFQUNIQyxPQUFPLEVBQ0Y7SUFDTFQsT0FBT1UsT0FBTyxDQUFDLENBQUNDO1FBQ2QsSUFBSUMsYUFBYTtRQUNqQixJQUFJQyxZQUFZO1FBQ2hCLElBQUlDO1FBRUosSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNKLFFBQVE7WUFDM0JDLGFBQWEsQ0FBQyxFQUFFaEIsZ0JBQWdCLEdBQUcsRUFBRW9CLElBQUFBLG9CQUFXLEVBQUNMLE1BQU1NLElBQUksRUFBRSxDQUFDO1lBQzlESixZQUFZLENBQUMsRUFBRWQsZUFBZSxHQUFHLEVBQUVZLE1BQU1NLElBQUksQ0FBQyxDQUFDO1lB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
@@ -27,6 +27,7 @@ export type RowToInsert = {
27
27
  blocks: {
28
28
  [blockType: string]: BlockRowToInsert[];
29
29
  };
30
+ blocksToDelete: Set<string>;
30
31
  locales: {
31
32
  [locale: string]: Record<string, unknown>;
32
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transform/write/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transform/write/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAWnC,eAAO,MAAM,SAAS,mHAYnB,IAAI,eAmSN,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAO/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AASnC,eAAO,MAAM,SAAS,mHAYnB,IAAI,eAgSN,CAAA"}
@@ -9,14 +9,14 @@ Object.defineProperty(exports, "upsertRow", {
9
9
  }
10
10
  });
11
11
  const _drizzleorm = require("drizzle-orm");
12
+ const _errors = require("payload/errors");
13
+ const _utilities = require("payload/utilities");
12
14
  const _buildFindManyArgs = require("../find/buildFindManyArgs");
13
15
  const _read = require("../transform/read");
14
16
  const _write = require("../transform/write");
15
17
  const _deleteExistingArrayRows = require("./deleteExistingArrayRows");
16
18
  const _deleteExistingRowsByPath = require("./deleteExistingRowsByPath");
17
19
  const _insertArrays = require("./insertArrays");
18
- const _errors = require("payload/errors");
19
- const _utilities = require("payload/utilities");
20
20
  const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '', req, tableName, upsertTarget, where })=>{
21
21
  // Split out the incoming data into the corresponding:
22
22
  // base row, locales, relationships, blocks, and arrays
@@ -153,17 +153,14 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
153
153
  // INSERT BLOCKS
154
154
  // //////////////////////////////////
155
155
  const insertedBlockRows = {};
156
- for (const [blockName, blockRows] of Object.entries(blocksToInsert)){
157
- if (operation === 'update') {
158
- await (0, _deleteExistingRowsByPath.deleteExistingRowsByPath)({
159
- adapter,
160
- db,
161
- parentID: insertedRow.id,
162
- pathColumnName: '_path',
163
- rows: blockRows.map(({ row })=>row),
164
- tableName: `${tableName}_blocks_${blockName}`
165
- });
156
+ if (operation === 'update') {
157
+ for (const blockName of rowToInsert.blocksToDelete){
158
+ const blockTableName = `${tableName}_blocks_${blockName}`;
159
+ const blockTable = adapter.tables[blockTableName];
160
+ await db.delete(blockTable).where((0, _drizzleorm.eq)(blockTable._parentID, insertedRow.id));
166
161
  }
162
+ }
163
+ for (const [blockName, blockRows] of Object.entries(blocksToInsert)){
167
164
  insertedBlockRows[blockName] = await db.insert(adapter.tables[`${tableName}_blocks_${blockName}`]).values(blockRows.map(({ row })=>row)).returning();
168
165
  insertedBlockRows[blockName].forEach((row, i)=>{
169
166
  blockRows[i].row = row;
@@ -258,4 +255,4 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
258
255
  return result;
259
256
  };
260
257
 
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5pbXBvcnQgeyBpMThuSW5pdCB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgcmVxLFxuICB0YWJsZU5hbWUsXG4gIHVwc2VydFRhcmdldCxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nOlxuICAvLyBiYXNlIHJvdywgbG9jYWxlcywgcmVsYXRpb25zaGlwcywgYmxvY2tzLCBhbmQgYXJyYXlzXG4gIGNvbnN0IHJvd1RvSW5zZXJ0ID0gdHJhbnNmb3JtRm9yV3JpdGUoe1xuICAgIGFkYXB0ZXIsXG4gICAgZGF0YSxcbiAgICBmaWVsZHMsXG4gICAgcGF0aCxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgLy8gRmlyc3QsIHdlIGluc2VydCB0aGUgbWFpbiByb3dcbiAgbGV0IGluc2VydGVkUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIHRyeSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHVwc2VydFRhcmdldCB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkXG5cbiAgICAgIGlmIChpZCkge1xuICAgICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0IH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0LCB3aGVyZSB9KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSlcbiAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZXNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpb25zVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgYmxvY2tzVG9JbnNlcnQ6IHsgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdIH0gPSB7fVxuICAgIGNvbnN0IHNlbGVjdHNUb0luc2VydDogeyBbc2VsZWN0VGFibGVOYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIH0gPSB7fVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmZvckVhY2goKFtsb2NhbGUsIGxvY2FsZVJvd10pID0+IHtcbiAgICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGxvY2FsZVJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICAgIGxvY2FsZXNUb0luc2VydC5wdXNoKGxvY2FsZVJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlbGF0aW9uc2hpcHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgcmVsYXRpb24ucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5udW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0Lm51bWJlcnMuZm9yRWFjaCgobnVtYmVyUm93KSA9PiB7XG4gICAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBudW1iZXJzVG9JbnNlcnQucHVzaChudW1iZXJSb3cpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBzZWxlY3RzLCBhZGQgcGFyZW50IHRvIGVhY2gsIGFuZCB0aGVuXG4gICAgLy8gc3RvcmUgYnkgdGFibGUgbmFtZSBhbmQgcm93c1xuICAgIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhyb3dUb0luc2VydC5zZWxlY3RzKS5mb3JFYWNoKChbc2VsZWN0VGFibGVOYW1lLCBzZWxlY3RSb3dzXSkgPT4ge1xuICAgICAgICBzZWxlY3RSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICAgIGlmICghc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0pIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdID0gW11cbiAgICAgICAgICBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXS5wdXNoKHJvdylcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAgIC8vIHN0b3JlIGJ5IHRhYmxlIG5hbWUgYW5kIHJvd3NcbiAgICBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5ibG9ja3MpLmZvckVhY2goKGJsb2NrTmFtZSkgPT4ge1xuICAgICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgICAgYmxvY2tSb3cucm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGlmICghYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSkgYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSA9IFtdXG4gICAgICAgIGlmIChibG9ja1Jvdy5yb3cudXVpZCkge1xuICAgICAgICAgIGRlbGV0ZSBibG9ja1Jvdy5yb3cudXVpZFxuICAgICAgICB9XG4gICAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgTE9DQUxFU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYWxlVGFibGUgPSBhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXVxuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBkYi5pbnNlcnQobG9jYWxlVGFibGUpLnZhbHVlcyhsb2NhbGVzVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBSRUxBVElPTlNISVBTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fcmVsc2BcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBkYixcbiAgICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICAgIHBhcmVudENvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICAgIHJvd3M6IFsuLi5yZWxhdGlvbnNUb0luc2VydCwgLi4ucm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlXSxcbiAgICAgICAgdGFibGVOYW1lOiByZWxhdGlvbnNoaXBzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVsYXRpb25zVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBudW1iZXJzVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9udW1iZXJzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogbnVtYmVyc1RvSW5zZXJ0LFxuICAgICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW251bWJlcnNUYWJsZU5hbWVdKS52YWx1ZXMobnVtYmVyc1RvSW5zZXJ0KS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQkxPQ0tTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICAgIGZvciAoY29uc3QgW2Jsb2NrTmFtZSwgYmxvY2tSb3dzXSBvZiBPYmplY3QuZW50cmllcyhibG9ja3NUb0luc2VydCkpIHtcbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBkYixcbiAgICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdfcGF0aCcsXG4gICAgICAgICAgcm93czogYmxvY2tSb3dzLm1hcCgoeyByb3cgfSkgPT4gcm93KSxcbiAgICAgICAgICB0YWJsZU5hbWU6IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWAsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWBdKVxuICAgICAgICAudmFsdWVzKGJsb2NrUm93cy5tYXAoKHsgcm93IH0pID0+IHJvdykpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuXG4gICAgICBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICBibG9ja1Jvd3NbaV0ucm93ID0gcm93XG4gICAgICB9KVxuXG4gICAgICBjb25zdCBibG9ja0xvY2FsZUluZGV4TWFwOiBudW1iZXJbXSA9IFtdXG5cbiAgICAgIGNvbnN0IGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0ID0gYmxvY2tSb3dzLnJlZHVjZSgoYWNjLCBibG9ja1JvdywgaSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LmVudHJpZXMoYmxvY2tSb3cubG9jYWxlcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGJsb2NrUm93LmxvY2FsZXMpLmZvckVhY2goKFtibG9ja0xvY2FsZSwgYmxvY2tMb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGJsb2NrTG9jYWxlRGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX3BhcmVudElEID0gYmxvY2tSb3cucm93LmlkXG4gICAgICAgICAgICAgIGJsb2NrTG9jYWxlRGF0YS5fbG9jYWxlID0gYmxvY2tMb2NhbGVcbiAgICAgICAgICAgICAgYWNjLnB1c2goYmxvY2tMb2NhbGVEYXRhKVxuICAgICAgICAgICAgICBibG9ja0xvY2FsZUluZGV4TWFwLnB1c2goaSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pXG5cbiAgICAgIGlmIChibG9ja0xvY2FsZVJvd3NUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1fbG9jYWxlc2BdKVxuICAgICAgICAgIC52YWx1ZXMoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQpXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGFycmF5czogYmxvY2tSb3dzLm1hcCgoeyBhcnJheXMgfSkgPT4gYXJyYXlzKSxcbiAgICAgICAgZGIsXG4gICAgICAgIHBhcmVudFJvd3M6IGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0sXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQVJSQVlTIFJFQ1VSU0lWRUxZXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGZvciAoY29uc3QgYXJyYXlUYWJsZU5hbWUgb2YgT2JqZWN0LmtleXMocm93VG9JbnNlcnQuYXJyYXlzKSkge1xuICAgICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ0FycmF5Um93cyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBkYixcbiAgICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgICAgdGFibGVOYW1lOiBhcnJheVRhYmxlTmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhd2FpdCBpbnNlcnRBcnJheXMoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGFycmF5czogW3Jvd1RvSW5zZXJ0LmFycmF5c10sXG4gICAgICBkYixcbiAgICAgIHBhcmVudFJvd3M6IFtpbnNlcnRlZFJvd10sXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgaGFzTWFueSBTRUxFQ1RTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZm9yIChjb25zdCBbc2VsZWN0VGFibGVOYW1lLCB0YWJsZVJvd3NdIG9mIE9iamVjdC5lbnRyaWVzKHNlbGVjdHNUb0luc2VydCkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdFRhYmxlID0gYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXVxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgYXdhaXQgZGIuZGVsZXRlKHNlbGVjdFRhYmxlKS53aGVyZShlcShzZWxlY3RUYWJsZS5wYXJlbnQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cbiAgICAgIGF3YWl0IGRiLmluc2VydChzZWxlY3RUYWJsZSkudmFsdWVzKHRhYmxlUm93cykucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJzIzNTA1J1xuICAgICAgPyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6IGFkYXB0ZXIuZmllbGRDb25zdHJhaW50c1t0YWJsZU5hbWVdW2Vycm9yLmNvbnN0cmFpbnRdLFxuICAgICAgICAgICAgICBtZXNzYWdlOiByZXEudCgnZXJyb3I6dmFsdWVNdXN0QmVVbmlxdWUnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXE/LnQgPz8gaTE4bkluaXQocmVxLnBheWxvYWQuY29uZmlnLmkxOG4pLnQsXG4gICAgICAgIClcbiAgICAgIDogZXJyb3JcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gUkVUUklFVkUgTkVXTFkgVVBEQVRFRCBST1dcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IGZpbmRNYW55QXJncyA9IGJ1aWxkRmluZE1hbnlBcmdzKHtcbiAgICBhZGFwdGVyLFxuICAgIGRlcHRoOiAwLFxuICAgIGZpZWxkcyxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgZmluZE1hbnlBcmdzLndoZXJlID0gZXEoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZCwgaW5zZXJ0ZWRSb3cuaWQpXG5cbiAgY29uc3QgZG9jID0gYXdhaXQgZGIucXVlcnlbdGFibGVOYW1lXS5maW5kRmlyc3QoZmluZE1hbnlBcmdzKVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gVFJBTlNGT1JNIERBVEFcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IHJlc3VsdCA9IHRyYW5zZm9ybTxUPih7XG4gICAgY29uZmlnOiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLFxuICAgIGRhdGE6IGRvYyxcbiAgICBmaWVsZHMsXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbInVwc2VydFJvdyIsImlkIiwiYWRhcHRlciIsImRhdGEiLCJkYiIsImZpZWxkcyIsIm9wZXJhdGlvbiIsInBhdGgiLCJyZXEiLCJ0YWJsZU5hbWUiLCJ1cHNlcnRUYXJnZXQiLCJ3aGVyZSIsInJvd1RvSW5zZXJ0IiwidHJhbnNmb3JtRm9yV3JpdGUiLCJpbnNlcnRlZFJvdyIsInRhcmdldCIsInRhYmxlcyIsInJvdyIsImluc2VydCIsInZhbHVlcyIsIm9uQ29uZmxpY3REb1VwZGF0ZSIsInNldCIsInJldHVybmluZyIsImxvY2FsZXNUb0luc2VydCIsInJlbGF0aW9uc1RvSW5zZXJ0IiwibnVtYmVyc1RvSW5zZXJ0IiwiYmxvY2tzVG9JbnNlcnQiLCJzZWxlY3RzVG9JbnNlcnQiLCJPYmplY3QiLCJrZXlzIiwibG9jYWxlcyIsImxlbmd0aCIsImVudHJpZXMiLCJmb3JFYWNoIiwibG9jYWxlIiwibG9jYWxlUm93IiwiX3BhcmVudElEIiwiX2xvY2FsZSIsInB1c2giLCJyZWxhdGlvbnNoaXBzIiwicmVsYXRpb24iLCJwYXJlbnQiLCJudW1iZXJzIiwibnVtYmVyUm93Iiwic2VsZWN0cyIsInNlbGVjdFRhYmxlTmFtZSIsInNlbGVjdFJvd3MiLCJibG9ja3MiLCJibG9ja05hbWUiLCJibG9ja1JvdyIsInV1aWQiLCJsb2NhbGVUYWJsZSIsImRlbGV0ZSIsImVxIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsImRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCIsImxvY2FsZUNvbHVtbk5hbWUiLCJwYXJlbnRDb2x1bW5OYW1lIiwicGFyZW50SUQiLCJwYXRoQ29sdW1uTmFtZSIsInJvd3MiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJudW1iZXJzVGFibGVOYW1lIiwiaW5zZXJ0ZWRCbG9ja1Jvd3MiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZXJyb3IiLCJjb2RlIiwiVmFsaWRhdGlvbkVycm9yIiwiZmllbGQiLCJmaWVsZENvbnN0cmFpbnRzIiwiY29uc3RyYWludCIsIm1lc3NhZ2UiLCJ0IiwiaTE4bkluaXQiLCJwYXlsb2FkIiwiY29uZmlnIiwiaTE4biIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJkb2MiLCJxdWVyeSIsImZpbmRGaXJzdCIsInJlc3VsdCIsInRyYW5zZm9ybSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWlCdkJBOzs7ZUFBQUE7Ozs0QkFkTTttQ0FLZTtzQkFDUjt1QkFDUTt5Q0FDTTswQ0FDQzs4QkFDWjt3QkFDRzsyQkFDUDtBQUVsQixNQUFNQSxZQUFZLE9BQTZCLEVBQ3BEQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQUUsRUFDVEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNEO0lBQ3RELHVEQUF1RDtJQUN2RCxNQUFNQyxjQUFjQyxJQUFBQSx3QkFBaUIsRUFBQztRQUNwQ1g7UUFDQUM7UUFDQUU7UUFDQUU7UUFDQUU7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxJQUFJSztJQUVKLElBQUk7UUFDRixJQUFJUixjQUFjLFVBQVU7WUFDMUIsTUFBTVMsU0FBU0wsZ0JBQWdCUixRQUFRYyxNQUFNLENBQUNQLFVBQVUsQ0FBQ1IsRUFBRTtZQUUzRCxJQUFJQSxJQUFJO2dCQUNOVyxZQUFZSyxHQUFHLENBQUNoQixFQUFFLEdBQUdBO2dCQUNwQixDQUFDYSxZQUFZLEdBQUcsTUFBTVYsR0FDcEJjLE1BQU0sQ0FBQ2hCLFFBQVFjLE1BQU0sQ0FBQ1AsVUFBVSxFQUNoQ1UsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQ3RCRyxrQkFBa0IsQ0FBQztvQkFBRUMsS0FBS1QsWUFBWUssR0FBRztvQkFBRUY7Z0JBQU8sR0FDbERPLFNBQVM7WUFDZCxPQUFPO2dCQUNKLENBQUNSLFlBQVksR0FBRyxNQUFNVixHQUNwQmMsTUFBTSxDQUFDaEIsUUFBUWMsTUFBTSxDQUFDUCxVQUFVLEVBQ2hDVSxNQUFNLENBQUNQLFlBQVlLLEdBQUcsRUFDdEJHLGtCQUFrQixDQUFDO29CQUFFQyxLQUFLVCxZQUFZSyxHQUFHO29CQUFFRjtvQkFBUUo7Z0JBQU0sR0FDekRXLFNBQVM7WUFDZDtRQUNGLE9BQU87WUFDSixDQUFDUixZQUFZLEdBQUcsTUFBTVYsR0FDcEJjLE1BQU0sQ0FBQ2hCLFFBQVFjLE1BQU0sQ0FBQ1AsVUFBVSxFQUNoQ1UsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQ3RCSyxTQUFTO1FBQ2Q7UUFFQSxNQUFNQyxrQkFBNkMsRUFBRTtRQUNyRCxNQUFNQyxvQkFBK0MsRUFBRTtRQUN2RCxNQUFNQyxrQkFBNkMsRUFBRTtRQUNyRCxNQUFNQyxpQkFBOEQsQ0FBQztRQUNyRSxNQUFNQyxrQkFBNEUsQ0FBQztRQUVuRix3RUFBd0U7UUFDeEUsSUFBSUMsT0FBT0MsSUFBSSxDQUFDakIsWUFBWWtCLE9BQU8sRUFBRUMsTUFBTSxHQUFHLEdBQUc7WUFDL0NILE9BQU9JLE9BQU8sQ0FBQ3BCLFlBQVlrQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFFBQVFDLFVBQVU7Z0JBQzlEQSxVQUFVQyxTQUFTLEdBQUd0QixZQUFZYixFQUFFO2dCQUNwQ2tDLFVBQVVFLE9BQU8sR0FBR0g7Z0JBQ3BCWCxnQkFBZ0JlLElBQUksQ0FBQ0g7WUFDdkI7UUFDRjtRQUVBLGlEQUFpRDtRQUNqRCxJQUFJdkIsWUFBWTJCLGFBQWEsQ0FBQ1IsTUFBTSxHQUFHLEdBQUc7WUFDeENuQixZQUFZMkIsYUFBYSxDQUFDTixPQUFPLENBQUMsQ0FBQ087Z0JBQ2pDQSxTQUFTQyxNQUFNLEdBQUczQixZQUFZYixFQUFFO2dCQUNoQ3VCLGtCQUFrQmMsSUFBSSxDQUFDRTtZQUN6QjtRQUNGO1FBRUEsMkNBQTJDO1FBQzNDLElBQUk1QixZQUFZOEIsT0FBTyxDQUFDWCxNQUFNLEdBQUcsR0FBRztZQUNsQ25CLFlBQVk4QixPQUFPLENBQUNULE9BQU8sQ0FBQyxDQUFDVTtnQkFDM0JBLFVBQVVGLE1BQU0sR0FBRzNCLFlBQVliLEVBQUU7Z0JBQ2pDd0IsZ0JBQWdCYSxJQUFJLENBQUNLO1lBQ3ZCO1FBQ0Y7UUFFQSxxREFBcUQ7UUFDckQsK0JBQStCO1FBQy9CLElBQUlmLE9BQU9DLElBQUksQ0FBQ2pCLFlBQVlnQyxPQUFPLEVBQUViLE1BQU0sR0FBRyxHQUFHO1lBQy9DSCxPQUFPSSxPQUFPLENBQUNwQixZQUFZZ0MsT0FBTyxFQUFFWCxPQUFPLENBQUMsQ0FBQyxDQUFDWSxpQkFBaUJDLFdBQVc7Z0JBQ3hFQSxXQUFXYixPQUFPLENBQUMsQ0FBQ2hCO29CQUNsQkEsSUFBSXdCLE1BQU0sR0FBRzNCLFlBQVliLEVBQUU7b0JBQzNCLElBQUksQ0FBQzBCLGVBQWUsQ0FBQ2tCLGdCQUFnQixFQUFFbEIsZUFBZSxDQUFDa0IsZ0JBQWdCLEdBQUcsRUFBRTtvQkFDNUVsQixlQUFlLENBQUNrQixnQkFBZ0IsQ0FBQ1AsSUFBSSxDQUFDckI7Z0JBQ3hDO1lBQ0Y7UUFDRjtRQUVBLG9EQUFvRDtRQUNwRCwrQkFBK0I7UUFDL0JXLE9BQU9DLElBQUksQ0FBQ2pCLFlBQVltQyxNQUFNLEVBQUVkLE9BQU8sQ0FBQyxDQUFDZTtZQUN2Q3BDLFlBQVltQyxNQUFNLENBQUNDLFVBQVUsQ0FBQ2YsT0FBTyxDQUFDLENBQUNnQjtnQkFDckNBLFNBQVNoQyxHQUFHLENBQUNtQixTQUFTLEdBQUd0QixZQUFZYixFQUFFO2dCQUN2QyxJQUFJLENBQUN5QixjQUFjLENBQUNzQixVQUFVLEVBQUV0QixjQUFjLENBQUNzQixVQUFVLEdBQUcsRUFBRTtnQkFDOUQsSUFBSUMsU0FBU2hDLEdBQUcsQ0FBQ2lDLElBQUksRUFBRTtvQkFDckIsT0FBT0QsU0FBU2hDLEdBQUcsQ0FBQ2lDLElBQUk7Z0JBQzFCO2dCQUNBeEIsY0FBYyxDQUFDc0IsVUFBVSxDQUFDVixJQUFJLENBQUNXO1lBQ2pDO1FBQ0Y7UUFFQSxxQ0FBcUM7UUFDckMsaUJBQWlCO1FBQ2pCLHFDQUFxQztRQUVyQyxJQUFJMUIsZ0JBQWdCUSxNQUFNLEdBQUcsR0FBRztZQUM5QixNQUFNb0IsY0FBY2pELFFBQVFjLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLFVBQVUsUUFBUSxDQUFDLENBQUM7WUFFMUQsSUFBSUgsY0FBYyxVQUFVO2dCQUMxQixNQUFNRixHQUFHZ0QsTUFBTSxDQUFDRCxhQUFheEMsS0FBSyxDQUFDMEMsSUFBQUEsY0FBRSxFQUFDRixZQUFZZixTQUFTLEVBQUV0QixZQUFZYixFQUFFO1lBQzdFO1lBRUEsTUFBTUcsR0FBR2MsTUFBTSxDQUFDaUMsYUFBYWhDLE1BQU0sQ0FBQ0k7UUFDdEM7UUFFQSxxQ0FBcUM7UUFDckMsdUJBQXVCO1FBQ3ZCLHFDQUFxQztRQUVyQyxNQUFNK0IseUJBQXlCLENBQUMsRUFBRTdDLFVBQVUsS0FBSyxDQUFDO1FBRWxELElBQUlILGNBQWMsVUFBVTtZQUMxQixNQUFNaUQsSUFBQUEsa0RBQXdCLEVBQUM7Z0JBQzdCckQ7Z0JBQ0FFO2dCQUNBb0Qsa0JBQWtCO2dCQUNsQkMsa0JBQWtCO2dCQUNsQkMsVUFBVTVDLFlBQVliLEVBQUU7Z0JBQ3hCMEQsZ0JBQWdCO2dCQUNoQkMsTUFBTTt1QkFBSXBDO3VCQUFzQlosWUFBWWlELHFCQUFxQjtpQkFBQztnQkFDbEVwRCxXQUFXNkM7WUFDYjtRQUNGO1FBRUEsSUFBSTlCLGtCQUFrQk8sTUFBTSxHQUFHLEdBQUc7WUFDaEMsTUFBTTNCLEdBQUdjLE1BQU0sQ0FBQ2hCLFFBQVFjLE1BQU0sQ0FBQ3NDLHVCQUF1QixFQUFFbkMsTUFBTSxDQUFDSztRQUNqRTtRQUVBLHFDQUFxQztRQUNyQyx5QkFBeUI7UUFDekIscUNBQXFDO1FBRXJDLE1BQU1zQyxtQkFBbUIsQ0FBQyxFQUFFckQsVUFBVSxRQUFRLENBQUM7UUFFL0MsSUFBSUgsY0FBYyxVQUFVO1lBQzFCLE1BQU1pRCxJQUFBQSxrREFBd0IsRUFBQztnQkFDN0JyRDtnQkFDQUU7Z0JBQ0FvRCxrQkFBa0I7Z0JBQ2xCQyxrQkFBa0I7Z0JBQ2xCQyxVQUFVNUMsWUFBWWIsRUFBRTtnQkFDeEIwRCxnQkFBZ0I7Z0JBQ2hCQyxNQUFNbkM7Z0JBQ05oQixXQUFXcUQ7WUFDYjtRQUNGO1FBRUEsSUFBSXJDLGdCQUFnQk0sTUFBTSxHQUFHLEdBQUc7WUFDOUIsTUFBTTNCLEdBQUdjLE1BQU0sQ0FBQ2hCLFFBQVFjLE1BQU0sQ0FBQzhDLGlCQUFpQixFQUFFM0MsTUFBTSxDQUFDTSxpQkFBaUJILFNBQVM7UUFDckY7UUFFQSxxQ0FBcUM7UUFDckMsZ0JBQWdCO1FBQ2hCLHFDQUFxQztRQUVyQyxNQUFNeUMsb0JBQStELENBQUM7UUFFdEUsS0FBSyxNQUFNLENBQUNmLFdBQVdnQixVQUFVLElBQUlwQyxPQUFPSSxPQUFPLENBQUNOLGdCQUFpQjtZQUNuRSxJQUFJcEIsY0FBYyxVQUFVO2dCQUMxQixNQUFNaUQsSUFBQUEsa0RBQXdCLEVBQUM7b0JBQzdCckQ7b0JBQ0FFO29CQUNBc0QsVUFBVTVDLFlBQVliLEVBQUU7b0JBQ3hCMEQsZ0JBQWdCO29CQUNoQkMsTUFBTUksVUFBVUMsR0FBRyxDQUFDLENBQUMsRUFBRWhELEdBQUcsRUFBRSxHQUFLQTtvQkFDakNSLFdBQVcsQ0FBQyxFQUFFQSxVQUFVLFFBQVEsRUFBRXVDLFVBQVUsQ0FBQztnQkFDL0M7WUFDRjtZQUVBZSxpQkFBaUIsQ0FBQ2YsVUFBVSxHQUFHLE1BQU01QyxHQUNsQ2MsTUFBTSxDQUFDaEIsUUFBUWMsTUFBTSxDQUFDLENBQUMsRUFBRVAsVUFBVSxRQUFRLEVBQUV1QyxVQUFVLENBQUMsQ0FBQyxFQUN6RDdCLE1BQU0sQ0FBQzZDLFVBQVVDLEdBQUcsQ0FBQyxDQUFDLEVBQUVoRCxHQUFHLEVBQUUsR0FBS0EsTUFDbENLLFNBQVM7WUFFWnlDLGlCQUFpQixDQUFDZixVQUFVLENBQUNmLE9BQU8sQ0FBQyxDQUFDaEIsS0FBS2lEO2dCQUN6Q0YsU0FBUyxDQUFDRSxFQUFFLENBQUNqRCxHQUFHLEdBQUdBO1lBQ3JCO1lBRUEsTUFBTWtELHNCQUFnQyxFQUFFO1lBRXhDLE1BQU1DLDBCQUEwQkosVUFBVUssTUFBTSxDQUFDLENBQUNDLEtBQUtyQixVQUFVaUI7Z0JBQy9ELElBQUl0QyxPQUFPSSxPQUFPLENBQUNpQixTQUFTbkIsT0FBTyxFQUFFQyxNQUFNLEdBQUcsR0FBRztvQkFDL0NILE9BQU9JLE9BQU8sQ0FBQ2lCLFNBQVNuQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNzQyxhQUFhQyxnQkFBZ0I7d0JBQ3RFLElBQUk1QyxPQUFPQyxJQUFJLENBQUMyQyxpQkFBaUJ6QyxNQUFNLEdBQUcsR0FBRzs0QkFDM0N5QyxnQkFBZ0JwQyxTQUFTLEdBQUdhLFNBQVNoQyxHQUFHLENBQUNoQixFQUFFOzRCQUMzQ3VFLGdCQUFnQm5DLE9BQU8sR0FBR2tDOzRCQUMxQkQsSUFBSWhDLElBQUksQ0FBQ2tDOzRCQUNUTCxvQkFBb0I3QixJQUFJLENBQUM0Qjt3QkFDM0I7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsT0FBT0k7WUFDVCxHQUFHLEVBQUU7WUFFTCxJQUFJRix3QkFBd0JyQyxNQUFNLEdBQUcsR0FBRztnQkFDdEMsTUFBTTNCLEdBQ0hjLE1BQU0sQ0FBQ2hCLFFBQVFjLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLFVBQVUsUUFBUSxFQUFFdUMsVUFBVSxRQUFRLENBQUMsQ0FBQyxFQUNqRTdCLE1BQU0sQ0FBQ2lELHlCQUNQOUMsU0FBUztZQUNkO1lBRUEsTUFBTW1ELElBQUFBLDBCQUFZLEVBQUM7Z0JBQ2pCdkU7Z0JBQ0F3RSxRQUFRVixVQUFVQyxHQUFHLENBQUMsQ0FBQyxFQUFFUyxNQUFNLEVBQUUsR0FBS0E7Z0JBQ3RDdEU7Z0JBQ0F1RSxZQUFZWixpQkFBaUIsQ0FBQ2YsVUFBVTtZQUMxQztRQUNGO1FBRUEscUNBQXFDO1FBQ3JDLDRCQUE0QjtRQUM1QixxQ0FBcUM7UUFFckMsSUFBSTFDLGNBQWMsVUFBVTtZQUMxQixLQUFLLE1BQU1zRSxrQkFBa0JoRCxPQUFPQyxJQUFJLENBQUNqQixZQUFZOEQsTUFBTSxFQUFHO2dCQUM1RCxNQUFNRyxJQUFBQSxnREFBdUIsRUFBQztvQkFDNUIzRTtvQkFDQUU7b0JBQ0FzRCxVQUFVNUMsWUFBWWIsRUFBRTtvQkFDeEJRLFdBQVdtRTtnQkFDYjtZQUNGO1FBQ0Y7UUFFQSxNQUFNSCxJQUFBQSwwQkFBWSxFQUFDO1lBQ2pCdkU7WUFDQXdFLFFBQVE7Z0JBQUM5RCxZQUFZOEQsTUFBTTthQUFDO1lBQzVCdEU7WUFDQXVFLFlBQVk7Z0JBQUM3RDthQUFZO1FBQzNCO1FBRUEscUNBQXFDO1FBQ3JDLHlCQUF5QjtRQUN6QixxQ0FBcUM7UUFFckMsS0FBSyxNQUFNLENBQUMrQixpQkFBaUJpQyxVQUFVLElBQUlsRCxPQUFPSSxPQUFPLENBQUNMLGlCQUFrQjtZQUMxRSxNQUFNb0QsY0FBYzdFLFFBQVFjLE1BQU0sQ0FBQzZCLGdCQUFnQjtZQUNuRCxJQUFJdkMsY0FBYyxVQUFVO2dCQUMxQixNQUFNRixHQUFHZ0QsTUFBTSxDQUFDMkIsYUFBYXBFLEtBQUssQ0FBQzBDLElBQUFBLGNBQUUsRUFBQzBCLFlBQVl0QyxNQUFNLEVBQUUzQixZQUFZYixFQUFFO1lBQzFFO1lBQ0EsTUFBTUcsR0FBR2MsTUFBTSxDQUFDNkQsYUFBYTVELE1BQU0sQ0FBQzJELFdBQVd4RCxTQUFTO1FBQzFEO0lBRUEscUNBQXFDO0lBQ3JDLGlCQUFpQjtJQUNqQixxQ0FBcUM7SUFDdkMsRUFBRSxPQUFPMEQsT0FBTztRQUNkLE1BQU1BLE1BQU1DLElBQUksS0FBSyxVQUNqQixJQUFJQyx1QkFBZSxDQUNqQjtZQUNFO2dCQUNFQyxPQUFPakYsUUFBUWtGLGdCQUFnQixDQUFDM0UsVUFBVSxDQUFDdUUsTUFBTUssVUFBVSxDQUFDO2dCQUM1REMsU0FBUzlFLElBQUkrRSxDQUFDLENBQUM7WUFDakI7U0FDRCxFQUNEL0UsS0FBSytFLEtBQUtDLElBQUFBLG1CQUFRLEVBQUNoRixJQUFJaUYsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUksRUFBRUosQ0FBQyxJQUUvQ1A7SUFDTjtJQUVBLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IscUNBQXFDO0lBRXJDLE1BQU1ZLGVBQWVDLElBQUFBLG9DQUFpQixFQUFDO1FBQ3JDM0Y7UUFDQTRGLE9BQU87UUFDUHpGO1FBQ0FJO0lBQ0Y7SUFFQW1GLGFBQWFqRixLQUFLLEdBQUcwQyxJQUFBQSxjQUFFLEVBQUNuRCxRQUFRYyxNQUFNLENBQUNQLFVBQVUsQ0FBQ1IsRUFBRSxFQUFFYSxZQUFZYixFQUFFO0lBRXBFLE1BQU04RixNQUFNLE1BQU0zRixHQUFHNEYsS0FBSyxDQUFDdkYsVUFBVSxDQUFDd0YsU0FBUyxDQUFDTDtJQUVoRCxxQ0FBcUM7SUFDckMsaUJBQWlCO0lBQ2pCLHFDQUFxQztJQUVyQyxNQUFNTSxTQUFTQyxJQUFBQSxlQUFTLEVBQUk7UUFDMUJULFFBQVF4RixRQUFRdUYsT0FBTyxDQUFDQyxNQUFNO1FBQzlCdkYsTUFBTTRGO1FBQ04xRjtJQUNGO0lBRUEsT0FBTzZGO0FBQ1QifQ==
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IGkxOG5Jbml0IH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgcmVxLFxuICB0YWJsZU5hbWUsXG4gIHVwc2VydFRhcmdldCxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nOlxuICAvLyBiYXNlIHJvdywgbG9jYWxlcywgcmVsYXRpb25zaGlwcywgYmxvY2tzLCBhbmQgYXJyYXlzXG4gIGNvbnN0IHJvd1RvSW5zZXJ0ID0gdHJhbnNmb3JtRm9yV3JpdGUoe1xuICAgIGFkYXB0ZXIsXG4gICAgZGF0YSxcbiAgICBmaWVsZHMsXG4gICAgcGF0aCxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgLy8gRmlyc3QsIHdlIGluc2VydCB0aGUgbWFpbiByb3dcbiAgbGV0IGluc2VydGVkUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIHRyeSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHVwc2VydFRhcmdldCB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkXG5cbiAgICAgIGlmIChpZCkge1xuICAgICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0IH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0LCB3aGVyZSB9KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSlcbiAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZXNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpb25zVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgYmxvY2tzVG9JbnNlcnQ6IHsgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdIH0gPSB7fVxuICAgIGNvbnN0IHNlbGVjdHNUb0luc2VydDogeyBbc2VsZWN0VGFibGVOYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIH0gPSB7fVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmZvckVhY2goKFtsb2NhbGUsIGxvY2FsZVJvd10pID0+IHtcbiAgICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGxvY2FsZVJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICAgIGxvY2FsZXNUb0luc2VydC5wdXNoKGxvY2FsZVJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlbGF0aW9uc2hpcHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgcmVsYXRpb24ucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5udW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0Lm51bWJlcnMuZm9yRWFjaCgobnVtYmVyUm93KSA9PiB7XG4gICAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBudW1iZXJzVG9JbnNlcnQucHVzaChudW1iZXJSb3cpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBzZWxlY3RzLCBhZGQgcGFyZW50IHRvIGVhY2gsIGFuZCB0aGVuXG4gICAgLy8gc3RvcmUgYnkgdGFibGUgbmFtZSBhbmQgcm93c1xuICAgIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhyb3dUb0luc2VydC5zZWxlY3RzKS5mb3JFYWNoKChbc2VsZWN0VGFibGVOYW1lLCBzZWxlY3RSb3dzXSkgPT4ge1xuICAgICAgICBzZWxlY3RSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICAgIGlmICghc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0pIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdID0gW11cbiAgICAgICAgICBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXS5wdXNoKHJvdylcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAgIC8vIHN0b3JlIGJ5IHRhYmxlIG5hbWUgYW5kIHJvd3NcbiAgICBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5ibG9ja3MpLmZvckVhY2goKGJsb2NrTmFtZSkgPT4ge1xuICAgICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgICAgYmxvY2tSb3cucm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGlmICghYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSkgYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSA9IFtdXG4gICAgICAgIGlmIChibG9ja1Jvdy5yb3cudXVpZCkge1xuICAgICAgICAgIGRlbGV0ZSBibG9ja1Jvdy5yb3cudXVpZFxuICAgICAgICB9XG4gICAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgTE9DQUxFU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYWxlVGFibGUgPSBhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXVxuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBkYi5pbnNlcnQobG9jYWxlVGFibGUpLnZhbHVlcyhsb2NhbGVzVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBSRUxBVElPTlNISVBTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fcmVsc2BcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBkYixcbiAgICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICAgIHBhcmVudENvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICAgIHJvd3M6IFsuLi5yZWxhdGlvbnNUb0luc2VydCwgLi4ucm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlXSxcbiAgICAgICAgdGFibGVOYW1lOiByZWxhdGlvbnNoaXBzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVsYXRpb25zVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBudW1iZXJzVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9udW1iZXJzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogbnVtYmVyc1RvSW5zZXJ0LFxuICAgICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW251bWJlcnNUYWJsZU5hbWVdKS52YWx1ZXMobnVtYmVyc1RvSW5zZXJ0KS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQkxPQ0tTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGJsb2NrTmFtZSBvZiByb3dUb0luc2VydC5ibG9ja3NUb0RlbGV0ZSkge1xuICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWBcbiAgICAgICAgY29uc3QgYmxvY2tUYWJsZSA9IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXVxuICAgICAgICBhd2FpdCBkYi5kZWxldGUoYmxvY2tUYWJsZSkud2hlcmUoZXEoYmxvY2tUYWJsZS5fcGFyZW50SUQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtibG9ja05hbWUsIGJsb2NrUm93c10gb2YgT2JqZWN0LmVudHJpZXMoYmxvY2tzVG9JbnNlcnQpKSB7XG4gICAgICBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdID0gYXdhaXQgZGJcbiAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXSlcbiAgICAgICAgLnZhbHVlcyhibG9ja1Jvd3MubWFwKCh7IHJvdyB9KSA9PiByb3cpKVxuICAgICAgICAucmV0dXJuaW5nKClcblxuICAgICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXS5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgYmxvY2tSb3dzW2ldLnJvdyA9IHJvd1xuICAgICAgfSlcblxuICAgICAgY29uc3QgYmxvY2tMb2NhbGVJbmRleE1hcDogbnVtYmVyW10gPSBbXVxuXG4gICAgICBjb25zdCBibG9ja0xvY2FsZVJvd3NUb0luc2VydCA9IGJsb2NrUm93cy5yZWR1Y2UoKGFjYywgYmxvY2tSb3csIGkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5lbnRyaWVzKGJsb2NrUm93LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5mb3JFYWNoKChbYmxvY2tMb2NhbGUsIGJsb2NrTG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhibG9ja0xvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVEYXRhLl9wYXJlbnRJRCA9IGJsb2NrUm93LnJvdy5pZFxuICAgICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX2xvY2FsZSA9IGJsb2NrTG9jYWxlXG4gICAgICAgICAgICAgIGFjYy5wdXNoKGJsb2NrTG9jYWxlRGF0YSlcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVJbmRleE1hcC5wdXNoKGkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIFtdKVxuXG4gICAgICBpZiAoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCBkYlxuICAgICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja05hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICAudmFsdWVzKGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBpbnNlcnRBcnJheXMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXM6IGJsb2NrUm93cy5tYXAoKHsgYXJyYXlzIH0pID0+IGFycmF5cyksXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRSb3dzOiBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIEFSUkFZUyBSRUNVUlNJVkVMWVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGFycmF5VGFibGVOYW1lIG9mIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmFycmF5cykpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdBcnJheVJvd3Moe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgZGIsXG4gICAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgaW5zZXJ0QXJyYXlzKHtcbiAgICAgIGFkYXB0ZXIsXG4gICAgICBhcnJheXM6IFtyb3dUb0luc2VydC5hcnJheXNdLFxuICAgICAgZGIsXG4gICAgICBwYXJlbnRSb3dzOiBbaW5zZXJ0ZWRSb3ddLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIGhhc01hbnkgU0VMRUNUU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGZvciAoY29uc3QgW3NlbGVjdFRhYmxlTmFtZSwgdGFibGVSb3dzXSBvZiBPYmplY3QuZW50cmllcyhzZWxlY3RzVG9JbnNlcnQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RUYWJsZSA9IGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV1cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IGRiLmRlbGV0ZShzZWxlY3RUYWJsZSkud2hlcmUoZXEoc2VsZWN0VGFibGUucGFyZW50LCBpbnNlcnRlZFJvdy5pZCkpXG4gICAgICB9XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoc2VsZWN0VGFibGUpLnZhbHVlcyh0YWJsZVJvd3MpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yLmNvZGUgPT09ICcyMzUwNSdcbiAgICAgID8gbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiBhZGFwdGVyLmZpZWxkQ29uc3RyYWludHNbdGFibGVOYW1lXVtlcnJvci5jb25zdHJhaW50XSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogcmVxLnQoJ2Vycm9yOnZhbHVlTXVzdEJlVW5pcXVlJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVxPy50ID8/IGkxOG5Jbml0KHJlcS5wYXlsb2FkLmNvbmZpZy5pMThuKS50LFxuICAgICAgICApXG4gICAgICA6IGVycm9yXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFJFVFJJRVZFIE5FV0xZIFVQREFURUQgUk9XXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCBmaW5kTWFueUFyZ3MgPSBidWlsZEZpbmRNYW55QXJncyh7XG4gICAgYWRhcHRlcixcbiAgICBkZXB0aDogMCxcbiAgICBmaWVsZHMsXG4gICAgdGFibGVOYW1lLFxuICB9KVxuXG4gIGZpbmRNYW55QXJncy53aGVyZSA9IGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGluc2VydGVkUm93LmlkKVxuXG4gIGNvbnN0IGRvYyA9IGF3YWl0IGRiLnF1ZXJ5W3RhYmxlTmFtZV0uZmluZEZpcnN0KGZpbmRNYW55QXJncylcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRSQU5TRk9STSBEQVRBXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm08VD4oe1xuICAgIGNvbmZpZzogYWRhcHRlci5wYXlsb2FkLmNvbmZpZyxcbiAgICBkYXRhOiBkb2MsXG4gICAgZmllbGRzLFxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ1cHNlcnRSb3ciLCJpZCIsImFkYXB0ZXIiLCJkYXRhIiwiZGIiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwidGFibGVOYW1lIiwidXBzZXJ0VGFyZ2V0Iiwid2hlcmUiLCJyb3dUb0luc2VydCIsInRyYW5zZm9ybUZvcldyaXRlIiwiaW5zZXJ0ZWRSb3ciLCJ0YXJnZXQiLCJ0YWJsZXMiLCJyb3ciLCJpbnNlcnQiLCJ2YWx1ZXMiLCJvbkNvbmZsaWN0RG9VcGRhdGUiLCJzZXQiLCJyZXR1cm5pbmciLCJsb2NhbGVzVG9JbnNlcnQiLCJyZWxhdGlvbnNUb0luc2VydCIsIm51bWJlcnNUb0luc2VydCIsImJsb2Nrc1RvSW5zZXJ0Iiwic2VsZWN0c1RvSW5zZXJ0IiwiT2JqZWN0Iiwia2V5cyIsImxvY2FsZXMiLCJsZW5ndGgiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImxvY2FsZSIsImxvY2FsZVJvdyIsIl9wYXJlbnRJRCIsIl9sb2NhbGUiLCJwdXNoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uIiwicGFyZW50IiwibnVtYmVycyIsIm51bWJlclJvdyIsInNlbGVjdHMiLCJzZWxlY3RUYWJsZU5hbWUiLCJzZWxlY3RSb3dzIiwiYmxvY2tzIiwiYmxvY2tOYW1lIiwiYmxvY2tSb3ciLCJ1dWlkIiwibG9jYWxlVGFibGUiLCJkZWxldGUiLCJlcSIsInJlbGF0aW9uc2hpcHNUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgiLCJsb2NhbGVDb2x1bW5OYW1lIiwicGFyZW50Q29sdW1uTmFtZSIsInBhcmVudElEIiwicGF0aENvbHVtbk5hbWUiLCJyb3dzIiwicmVsYXRpb25zaGlwc1RvRGVsZXRlIiwibnVtYmVyc1RhYmxlTmFtZSIsImluc2VydGVkQmxvY2tSb3dzIiwiYmxvY2tzVG9EZWxldGUiLCJibG9ja1RhYmxlTmFtZSIsImJsb2NrVGFibGUiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZXJyb3IiLCJjb2RlIiwiVmFsaWRhdGlvbkVycm9yIiwiZmllbGQiLCJmaWVsZENvbnN0cmFpbnRzIiwiY29uc3RyYWludCIsIm1lc3NhZ2UiLCJ0IiwiaTE4bkluaXQiLCJwYXlsb2FkIiwiY29uZmlnIiwiaTE4biIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJkb2MiLCJxdWVyeSIsImZpbmRGaXJzdCIsInJlc3VsdCIsInRyYW5zZm9ybSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWlCdkJBOzs7ZUFBQUE7Ozs0QkFkTTt3QkFDYTsyQkFDUDttQ0FLUztzQkFDUjt1QkFDUTt5Q0FDTTswQ0FDQzs4QkFDWjtBQUV0QixNQUFNQSxZQUFZLE9BQTZCLEVBQ3BEQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQUUsRUFDVEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNEO0lBQ3RELHVEQUF1RDtJQUN2RCxNQUFNQyxjQUFjQyxJQUFBQSx3QkFBaUIsRUFBQztRQUNwQ1g7UUFDQUM7UUFDQUU7UUFDQUU7UUFDQUU7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxJQUFJSztJQUVKLElBQUk7UUFDRixJQUFJUixjQUFjLFVBQVU7WUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-postgres",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "The officially supported Postgres database adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "@types/pg": "8.10.2",
26
26
  "@types/to-snake-case": "1.0.0",
27
27
  "@payloadcms/eslint-config": "1.0.0",
28
- "payload": "2.0.14"
28
+ "payload": "2.0.15"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "payload": "^2.0.0"