payload 2.17.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,6 +109,8 @@ async function updateByID(incomingArgs) {
109
109
  collection,
110
110
  config,
111
111
  data,
112
+ operation: 'update',
113
+ originalDoc,
112
114
  overwriteExistingFiles,
113
115
  req,
114
116
  throwOnMissingFile: false
@@ -313,4 +315,4 @@ async function updateByID(incomingArgs) {
313
315
  }
314
316
  const _default = updateByID;
315
317
 
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZUJ5SUQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi9pbmRleCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIH0gZnJvbSAnLi4vLi4vYXV0aC9zdHJhdGVnaWVzL2xvY2FsL2dlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCdcbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vLi4vYXV0aC90eXBlcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyBBUElFcnJvciwgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGJlZm9yZUNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVDaGFuZ2UnXG5pbXBvcnQgeyBiZWZvcmVWYWxpZGF0ZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVWYWxpZGF0ZSdcbmltcG9ydCB7IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZGVsZXRlQXNzb2NpYXRlZEZpbGVzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVGaWxlRGF0YSB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZ2VuZXJhdGVGaWxlRGF0YSdcbmltcG9ydCB7IHVubGlua1RlbXBGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvdW5saW5rVGVtcEZpbGVzJ1xuaW1wb3J0IHsgdXBsb2FkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VwbG9hZEZpbGVzJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCB7IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24nXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGRhdGE6IERlZXBQYXJ0aWFsPFQ+XG4gIGRlcHRoPzogbnVtYmVyXG4gIGRpc2FibGVWZXJpZmljYXRpb25FbWFpbD86IGJvb2xlYW5cbiAgZHJhZnQ/OiBib29sZWFuXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQnlJRDxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPiB7XG4gIGxldCBhcmdzID0gaW5jb21pbmdBcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24oYXJncy5yZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGFyZ3MuY29sbGVjdGlvbi5jb25maWcuaG9va3MuYmVmb3JlT3BlcmF0aW9uLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgYXJncyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGFyZ3MuY29sbGVjdGlvbi5jb25maWcsXG4gICAgICAgICAgY29udGV4dDogYXJncy5yZXEuY29udGV4dCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcTogYXJncy5yZXEsXG4gICAgICAgIH0pKSB8fCBhcmdzXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGF1dG9zYXZlID0gZmFsc2UsXG4gICAgICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGRlcHRoLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnID0gZmFsc2UsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSBmYWxzZSxcbiAgICAgIHJlcToge1xuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYXlsb2FkOiB7IGNvbmZpZyB9LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0LFxuICAgICAgfSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSA9IGFyZ3NcblxuICAgIGlmICghaWQpIHtcbiAgICAgIHRocm93IG5ldyBBUElFcnJvcignTWlzc2luZyBJRCBvZiBkb2N1bWVudCB0byB1cGRhdGUuJywgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBsZXQgeyBkYXRhIH0gPSBhcmdzXG4gICAgY29uc3QgeyBwYXNzd29yZCB9ID0gZGF0YVxuICAgIGNvbnN0IHNob3VsZFNhdmVEcmFmdCA9IEJvb2xlYW4oZHJhZnRBcmcgJiYgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMpXG4gICAgY29uc3Qgc2hvdWxkU2F2ZVBhc3N3b3JkID0gQm9vbGVhbihwYXNzd29yZCAmJiBjb2xsZWN0aW9uQ29uZmlnLmF1dGggJiYgIXNob3VsZFNhdmVEcmFmdClcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyBpZCwgZGF0YSwgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICAgIDogdHJ1ZVxuICAgIGNvbnN0IGhhc1doZXJlUG9saWN5ID0gaGFzV2hlcmVBY2Nlc3NSZXN1bHQoYWNjZXNzUmVzdWx0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGZpbmRPbmVBcmdzOiBGaW5kT25lQXJncyA9IHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHJlcSxcbiAgICAgIHdoZXJlOiBjb21iaW5lUXVlcmllcyh7IGlkOiB7IGVxdWFsczogaWQgfSB9LCBhY2Nlc3NSZXN1bHRzKSxcbiAgICB9XG5cbiAgICBjb25zdCBkb2NXaXRoTG9jYWxlcyA9IGF3YWl0IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uKHtcbiAgICAgIGlkLFxuICAgICAgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHF1ZXJ5OiBmaW5kT25lQXJncyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgaWYgKCFkb2NXaXRoTG9jYWxlcyAmJiAhaGFzV2hlcmVQb2xpY3kpIHRocm93IG5ldyBOb3RGb3VuZCh0KVxuICAgIGlmICghZG9jV2l0aExvY2FsZXMgJiYgaGFzV2hlcmVQb2xpY3kpIHRocm93IG5ldyBGb3JiaWRkZW4odClcblxuICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZG9jOiBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlOiBudWxsLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgbG9jYWxlLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzOiB0cnVlLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gR2VuZXJhdGUgZGF0YSBmb3IgYWxsIGZpbGVzIGFuZCBzaXplc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHsgZGF0YTogbmV3RmlsZURhdGEsIGZpbGVzOiBmaWxlc1RvVXBsb2FkIH0gPSBhd2FpdCBnZW5lcmF0ZUZpbGVEYXRhKHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBjb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgICAgIHJlcSxcbiAgICAgIHRocm93T25NaXNzaW5nRmlsZTogZmFsc2UsXG4gICAgfSlcblxuICAgIGRhdGEgPSBuZXdGaWxlRGF0YVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIERlbGV0ZSBhbnkgYXNzb2NpYXRlZCBmaWxlc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyh7XG4gICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29uZmlnLFxuICAgICAgZG9jOiBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGZpbGVzOiBmaWxlc1RvVXBsb2FkLFxuICAgICAgb3ZlcnJpZGVEZWxldGU6IGZhbHNlLFxuICAgICAgdCxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZGF0YSA9IGF3YWl0IGJlZm9yZVZhbGlkYXRlPERlZXBQYXJ0aWFsPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4+KHtcbiAgICAgIGlkLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBnbG9iYWw6IG51bGwsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVWYWxpZGF0ZSAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCBkYXRhXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gV3JpdGUgZmlsZXMgdG8gbG9jYWwgc3RvcmFnZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQuZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgICAgYXdhaXQgdXBsb2FkRmlsZXMocGF5bG9hZCwgZmlsZXNUb1VwbG9hZCwgdClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlQ2hhbmdlIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCBkYXRhXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlQ2hhbmdlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZUNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGlkLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICByZXEsXG4gICAgICBza2lwVmFsaWRhdGlvbjogQm9vbGVhbihjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMpICYmIGRhdGEuX3N0YXR1cyAhPT0gJ3B1Ymxpc2hlZCcsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBIYW5kbGUgcG90ZW50aWFsIHBhc3N3b3JkIHVwZGF0ZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGRhdGFUb1VwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlc3VsdCB9XG5cbiAgICBpZiAoc2hvdWxkU2F2ZVBhc3N3b3JkICYmIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHsgaGFzaCwgc2FsdCB9ID0gYXdhaXQgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoKHsgcGFzc3dvcmQgfSlcbiAgICAgIGRhdGFUb1VwZGF0ZS5zYWx0ID0gc2FsdFxuICAgICAgZGF0YVRvVXBkYXRlLmhhc2ggPSBoYXNoXG4gICAgICBkZWxldGUgZGF0YVRvVXBkYXRlLnBhc3N3b3JkXG4gICAgICBkZWxldGUgZGF0YS5wYXNzd29yZFxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBVcGRhdGVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIXNob3VsZFNhdmVEcmFmdCB8fCBkYXRhLl9zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCByZXEucGF5bG9hZC5kYi51cGRhdGVPbmUoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkYXRhOiBkYXRhVG9VcGRhdGUsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucykge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgc2F2ZVZlcnNpb24oe1xuICAgICAgICBpZCxcbiAgICAgICAgYXV0b3NhdmUsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzOiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIGNyZWF0ZWRBdDogZG9jV2l0aExvY2FsZXMuY3JlYXRlZEF0LFxuICAgICAgICB9LFxuICAgICAgICBkcmFmdDogc2hvdWxkU2F2ZURyYWZ0LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICByZXEsXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGgsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgbG9jYWxlLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlckNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRhdGEsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYnVpbGRBZnRlck9wZXJhdGlvbjxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGFyZ3MsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlQnlJRCcsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIGF3YWl0IHVubGlua1RlbXBGaWxlcyh7XG4gICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29uZmlnLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKGFyZ3MucmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlQnlJRFxuIl0sIm5hbWVzIjpbInVwZGF0ZUJ5SUQiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwicmVxIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImhvb2tzIiwiYmVmb3JlT3BlcmF0aW9uIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImNvbnRleHQiLCJvcGVyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImlkIiwiYXV0b3NhdmUiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwib3ZlcnJpZGVBY2Nlc3MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwiZmFsbGJhY2tMb2NhbGUiLCJsb2NhbGUiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJBUElFcnJvciIsImh0dHBTdGF0dXMiLCJCQURfUkVRVUVTVCIsImRhdGEiLCJwYXNzd29yZCIsInNob3VsZFNhdmVEcmFmdCIsIkJvb2xlYW4iLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsInNob3VsZFNhdmVQYXNzd29yZCIsImF1dGgiLCJhY2Nlc3NSZXN1bHRzIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInVwZGF0ZSIsImhhc1doZXJlUG9saWN5IiwiaGFzV2hlcmVBY2Nlc3NSZXN1bHQiLCJmaW5kT25lQXJncyIsInNsdWciLCJ3aGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZXF1YWxzIiwiZG9jV2l0aExvY2FsZXMiLCJnZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbiIsInF1ZXJ5IiwiTm90Rm91bmQiLCJGb3JiaWRkZW4iLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImRvYyIsImdsb2JhbCIsIm5ld0ZpbGVEYXRhIiwiZmlsZXMiLCJmaWxlc1RvVXBsb2FkIiwiZ2VuZXJhdGVGaWxlRGF0YSIsInRocm93T25NaXNzaW5nRmlsZSIsImRlbGV0ZUFzc29jaWF0ZWRGaWxlcyIsIm92ZXJyaWRlRGVsZXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJ1cGxvYWQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwidXBsb2FkRmlsZXMiLCJiZWZvcmVDaGFuZ2UiLCJyZXN1bHQiLCJza2lwVmFsaWRhdGlvbiIsIl9zdGF0dXMiLCJkYXRhVG9VcGRhdGUiLCJoYXNoIiwic2FsdCIsImdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCIsImRiIiwidXBkYXRlT25lIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwiYnVpbGRBZnRlck9wZXJhdGlvbiIsInVubGlua1RlbXBGaWxlcyIsImNvbW1p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
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZUJ5SUQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEZpbmRPbmVBcmdzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi9pbmRleCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoIH0gZnJvbSAnLi4vLi4vYXV0aC9zdHJhdGVnaWVzL2xvY2FsL2dlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCdcbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vLi4vYXV0aC90eXBlcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyBBUElFcnJvciwgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyQ2hhbmdlJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGJlZm9yZUNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVDaGFuZ2UnXG5pbXBvcnQgeyBiZWZvcmVWYWxpZGF0ZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9iZWZvcmVWYWxpZGF0ZSdcbmltcG9ydCB7IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZGVsZXRlQXNzb2NpYXRlZEZpbGVzJ1xuaW1wb3J0IHsgZ2VuZXJhdGVGaWxlRGF0YSB9IGZyb20gJy4uLy4uL3VwbG9hZHMvZ2VuZXJhdGVGaWxlRGF0YSdcbmltcG9ydCB7IHVubGlua1RlbXBGaWxlcyB9IGZyb20gJy4uLy4uL3VwbG9hZHMvdW5saW5rVGVtcEZpbGVzJ1xuaW1wb3J0IHsgdXBsb2FkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VwbG9hZEZpbGVzJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCB7IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24nXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGRhdGE6IERlZXBQYXJ0aWFsPFQ+XG4gIGRlcHRoPzogbnVtYmVyXG4gIGRpc2FibGVWZXJpZmljYXRpb25FbWFpbD86IGJvb2xlYW5cbiAgZHJhZnQ/OiBib29sZWFuXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQnlJRDxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPiB7XG4gIGxldCBhcmdzID0gaW5jb21pbmdBcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24oYXJncy5yZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGFyZ3MuY29sbGVjdGlvbi5jb25maWcuaG9va3MuYmVmb3JlT3BlcmF0aW9uLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgYXJncyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGFyZ3MuY29sbGVjdGlvbi5jb25maWcsXG4gICAgICAgICAgY29udGV4dDogYXJncy5yZXEuY29udGV4dCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcTogYXJncy5yZXEsXG4gICAgICAgIH0pKSB8fCBhcmdzXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGF1dG9zYXZlID0gZmFsc2UsXG4gICAgICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGRlcHRoLFxuICAgICAgZHJhZnQ6IGRyYWZ0QXJnID0gZmFsc2UsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSBmYWxzZSxcbiAgICAgIHJlcToge1xuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYXlsb2FkOiB7IGNvbmZpZyB9LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0LFxuICAgICAgfSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSA9IGFyZ3NcblxuICAgIGlmICghaWQpIHtcbiAgICAgIHRocm93IG5ldyBBUElFcnJvcignTWlzc2luZyBJRCBvZiBkb2N1bWVudCB0byB1cGRhdGUuJywgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBsZXQgeyBkYXRhIH0gPSBhcmdzXG4gICAgY29uc3QgeyBwYXNzd29yZCB9ID0gZGF0YVxuICAgIGNvbnN0IHNob3VsZFNhdmVEcmFmdCA9IEJvb2xlYW4oZHJhZnRBcmcgJiYgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMpXG4gICAgY29uc3Qgc2hvdWxkU2F2ZVBhc3N3b3JkID0gQm9vbGVhbihwYXNzd29yZCAmJiBjb2xsZWN0aW9uQ29uZmlnLmF1dGggJiYgIXNob3VsZFNhdmVEcmFmdClcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyBpZCwgZGF0YSwgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICAgIDogdHJ1ZVxuICAgIGNvbnN0IGhhc1doZXJlUG9saWN5ID0gaGFzV2hlcmVBY2Nlc3NSZXN1bHQoYWNjZXNzUmVzdWx0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGZpbmRPbmVBcmdzOiBGaW5kT25lQXJncyA9IHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHJlcSxcbiAgICAgIHdoZXJlOiBjb21iaW5lUXVlcmllcyh7IGlkOiB7IGVxdWFsczogaWQgfSB9LCBhY2Nlc3NSZXN1bHRzKSxcbiAgICB9XG5cbiAgICBjb25zdCBkb2NXaXRoTG9jYWxlcyA9IGF3YWl0IGdldExhdGVzdENvbGxlY3Rpb25WZXJzaW9uKHtcbiAgICAgIGlkLFxuICAgICAgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHF1ZXJ5OiBmaW5kT25lQXJncyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgaWYgKCFkb2NXaXRoTG9jYWxlcyAmJiAhaGFzV2hlcmVQb2xpY3kpIHRocm93IG5ldyBOb3RGb3VuZCh0KVxuICAgIGlmICghZG9jV2l0aExvY2FsZXMgJiYgaGFzV2hlcmVQb2xpY3kpIHRocm93IG5ldyBGb3JiaWRkZW4odClcblxuICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZG9jOiBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlOiBudWxsLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgbG9jYWxlLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzOiB0cnVlLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gR2VuZXJhdGUgZGF0YSBmb3IgYWxsIGZpbGVzIGFuZCBzaXplc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHsgZGF0YTogbmV3RmlsZURhdGEsIGZpbGVzOiBmaWxlc1RvVXBsb2FkIH0gPSBhd2FpdCBnZW5lcmF0ZUZpbGVEYXRhKHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBjb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgICAgIHJlcSxcbiAgICAgIHRocm93T25NaXNzaW5nRmlsZTogZmFsc2UsXG4gICAgfSlcblxuICAgIGRhdGEgPSBuZXdGaWxlRGF0YVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIERlbGV0ZSBhbnkgYXNzb2NpYXRlZCBmaWxlc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyh7XG4gICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29uZmlnLFxuICAgICAgZG9jOiBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGZpbGVzOiBmaWxlc1RvVXBsb2FkLFxuICAgICAgb3ZlcnJpZGVEZWxldGU6IGZhbHNlLFxuICAgICAgdCxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZGF0YSA9IGF3YWl0IGJlZm9yZVZhbGlkYXRlPERlZXBQYXJ0aWFsPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4+KHtcbiAgICAgIGlkLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBnbG9iYWw6IG51bGwsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVWYWxpZGF0ZSAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCBkYXRhXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gV3JpdGUgZmlsZXMgdG8gbG9jYWwgc3RvcmFnZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQuZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgICAgYXdhaXQgdXBsb2FkRmlsZXMocGF5bG9hZCwgZmlsZXNUb1VwbG9hZCwgdClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlQ2hhbmdlIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCBkYXRhXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlQ2hhbmdlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZUNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGlkLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICByZXEsXG4gICAgICBza2lwVmFsaWRhdGlvbjogQm9vbGVhbihjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMpICYmIGRhdGEuX3N0YXR1cyAhPT0gJ3B1Ymxpc2hlZCcsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBIYW5kbGUgcG90ZW50aWFsIHBhc3N3b3JkIHVwZGF0ZVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGRhdGFUb1VwZGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlc3VsdCB9XG5cbiAgICBpZiAoc2hvdWxkU2F2ZVBhc3N3b3JkICYmIHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHsgaGFzaCwgc2FsdCB9ID0gYXdhaXQgZ2VuZXJhdGVQYXNzd29yZFNhbHRIYXNoKHsgcGFzc3dvcmQgfSlcbiAgICAgIGRhdGFUb1VwZGF0ZS5zYWx0ID0gc2FsdFxuICAgICAgZGF0YVRvVXBkYXRlLmhhc2ggPSBoYXNoXG4gICAgICBkZWxldGUgZGF0YVRvVXBkYXRlLnBhc3N3b3JkXG4gICAgICBkZWxldGUgZGF0YS5wYXNzd29yZFxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBVcGRhdGVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIXNob3VsZFNhdmVEcmFmdCB8fCBkYXRhLl9zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCByZXEucGF5bG9hZC5kYi51cGRhdGVPbmUoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkYXRhOiBkYXRhVG9VcGRhdGUsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucykge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgc2F2ZVZlcnNpb24oe1xuICAgICAgICBpZCxcbiAgICAgICAgYXV0b3NhdmUsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzOiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIGNyZWF0ZWRBdDogZG9jV2l0aExvY2FsZXMuY3JlYXRlZEF0LFxuICAgICAgICB9LFxuICAgICAgICBkcmFmdDogc2hvdWxkU2F2ZURyYWZ0LFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICByZXEsXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGgsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgbG9jYWxlLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlckNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRhdGEsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYnVpbGRBZnRlck9wZXJhdGlvbjxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgIGFyZ3MsXG4gICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlQnlJRCcsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIGF3YWl0IHVubGlua1RlbXBGaWxlcyh7XG4gICAgICBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgY29uZmlnLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKGFyZ3MucmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlQnlJRFxuIl0sIm5hbWVzIjpbInVwZGF0ZUJ5SUQiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwicmVxIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImhvb2tzIiwiYmVmb3JlT3BlcmF0aW9uIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImNvbnRleHQiLCJvcGVyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImlkIiwiYXV0b3NhdmUiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwib3ZlcnJpZGVBY2Nlc3MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwiZmFsbGJhY2tMb2NhbGUiLCJsb2NhbGUiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJBUElFcnJvciIsImh0dHBTdGF0dXMiLCJCQURfUkVRVUVTVCIsImRhdGEiLCJwYXNzd29yZCIsInNob3VsZFNhdmVEcmFmdCIsIkJvb2xlYW4iLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsInNob3VsZFNhdmVQYXNzd29yZCIsImF1dGgiLCJhY2Nlc3NSZXN1bHRzIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInVwZGF0ZSIsImhhc1doZXJlUG9saWN5IiwiaGFzV2hlcmVBY2Nlc3NSZXN1bHQiLCJmaW5kT25lQXJncyIsInNsdWciLCJ3aGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZXF1YWxzIiwiZG9jV2l0aExvY2FsZXMiLCJnZXRMYXRlc3RDb2xsZWN0aW9uVmVyc2lvbiIsInF1ZXJ5IiwiTm90Rm91bmQiLCJGb3JiaWRkZW4iLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImRvYyIsImdsb2JhbCIsIm5ld0ZpbGVEYXRhIiwiZmlsZXMiLCJmaWxlc1RvVXBsb2FkIiwiZ2VuZXJhdGVGaWxlRGF0YSIsInRocm93T25NaXNzaW5nRmlsZSIsImRlbGV0ZUFzc29jaWF0ZWRGaWxlcyIsIm92ZXJyaWRlRGVsZXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJ1cGxvYWQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwidXBsb2FkRmlsZXMiLCJiZWZvcmVDaGFuZ2UiLCJyZXN1bHQiLCJza2lwVmFsaWRhdGlvbiIsIl9zdGF0dXMiLCJkYXRhVG9VcGRhdGUiLCJoYXNoIiwic2FsdCIsImdlbmVyYXRlUGFzc3dvcmRTYWx0SGFzaCIsImRiIiwidXBkYXRlT25lIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwiYnVpbGRBZnRlck9wZXJhdGlvbiIsInVubGlua1RlbXBGaWxlcyIsImNvbW1pdFRyYW5zYWN0aW9uIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBeVlBOzs7ZUFBQTs7O21FQXZZdUI7c0VBT0c7MENBQ2U7dUJBQ0o7Z0NBQ047d0JBQ2U7NkJBQ2xCOzJCQUNGOzhCQUNHO2dDQUNFO3VDQUNPO2tDQUNMO2lDQUNEOzZCQUNKO21DQUNNO2lDQUNGO2lDQUNBOzRDQUNXOzZCQUNmO3VCQUNROzs7Ozs7QUFnQnBDLGVBQWVBLFdBQ2JDLFlBQTZEO0lBRTdELElBQUlDLE9BQU9EO0lBRVgsSUFBSTtRQUNGLE1BQU1FLGVBQWUsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ0YsS0FBS0csR0FBRztRQUVuRCx3Q0FBd0M7UUFDeEMsK0JBQStCO1FBQy9CLHdDQUF3QztRQUV4QyxNQUFNSCxLQUFLSSxVQUFVLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDQyxlQUFlLENBQUNDLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztZQUMxRSxNQUFNRDtZQUVOVCxPQUNFLEFBQUMsTUFBTVUsS0FBSztnQkFDVlY7Z0JBQ0FJLFlBQVlKLEtBQUtJLFVBQVUsQ0FBQ0MsTUFBTTtnQkFDbENNLFNBQVNYLEtBQUtHLEdBQUcsQ0FBQ1EsT0FBTztnQkFDekJDLFdBQVc7Z0JBQ1hULEtBQUtILEtBQUtHLEdBQUc7WUFDZixNQUFPSDtRQUNYLEdBQUdhLFFBQVFDLE9BQU87UUFFbEIsTUFBTSxFQUNKQyxFQUFFLEVBQ0ZDLFdBQVcsS0FBSyxFQUNoQlosWUFBWSxFQUFFQyxRQUFRWSxnQkFBZ0IsRUFBRSxFQUN4Q2IsVUFBVSxFQUNWYyxLQUFLLEVBQ0xDLE9BQU9DLFdBQVcsS0FBSyxFQUN2QkMsY0FBYyxFQUNkQyx5QkFBeUIsS0FBSyxFQUM5Qm5CLEtBQUssRUFDSG9CLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxTQUFTLEVBQUVwQixNQUFNLEVBQUUsRUFDbkJvQixPQUFPLEVBQ1BDLENBQUMs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
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import sharp from 'sharp';
3
- export declare const percentToPixel: (value: any, dimension: any) => number;
3
+ export declare const percentToPixel: (value: string, dimension: number) => number;
4
4
  export default function cropImage({ cropData, dimensions, file }: {
5
5
  cropData: any;
6
6
  dimensions: any;
@@ -1 +1 @@
1
- {"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,cAAc,wCAE1B,CAAA;AAED,wBAA8B,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;;;;CAAA;;;GAoBrE"}
1
+ {"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,cAAc,UAAW,MAAM,aAAa,MAAM,KAAG,MAGjE,CAAA;AAED,wBAA8B,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;;;;CAAA;;;GAoBrE"}
@@ -23,6 +23,7 @@ function _interop_require_default(obj) {
23
23
  };
24
24
  }
25
25
  const percentToPixel = (value, dimension)=>{
26
+ if (!value) return 0;
26
27
  return Math.floor(parseFloat(value) / 100 * dimension);
27
28
  };
28
29
  async function cropImage({ cropData, dimensions, file }) {
@@ -44,4 +45,4 @@ async function cropImage({ cropData, dimensions, file }) {
44
45
  }
45
46
  }
46
47
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZSwgZGltZW5zaW9uKSA9PiB7XG4gIHJldHVybiBNYXRoLmZsb29yKChwYXJzZUZsb2F0KHZhbHVlKSAvIDEwMCkgKiBkaW1lbnNpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGhlaWdodCwgd2lkdGgsIHgsIHkgfSA9IGNyb3BEYXRhXG5cbiAgICBjb25zdCBmb3JtYXR0ZWRDcm9wRGF0YSA9IHtcbiAgICAgIGhlaWdodDogcGVyY2VudFRvUGl4ZWwoaGVpZ2h0LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICBsZWZ0OiBwZXJjZW50VG9QaXhlbCh4LCBkaW1lbnNpb25zLndpZHRoKSxcbiAgICAgIHRvcDogcGVyY2VudFRvUGl4ZWwoeSwgZGltZW5zaW9ucy5oZWlnaHQpLFxuICAgICAgd2lkdGg6IHBlcmNlbnRUb1BpeGVsKHdpZHRoLCBkaW1lbnNpb25zLndpZHRoKSxcbiAgICB9XG5cbiAgICBjb25zdCBjcm9wcGVkID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGggfHwgZmlsZS5kYXRhKS5leHRyYWN0KGZvcm1hdHRlZENyb3BEYXRhKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyb3BwZWQudG9CdWZmZXIoe1xuICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBFcnJvciBjcm9wcGluZyBpbWFnZTpgLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiY3JvcEltYWdlIiwicGVyY2VudFRvUGl4ZWwiLCJ2YWx1ZSIsImRpbWVuc2lvbiIsIk1hdGgiLCJmbG9vciIsInBhcnNlRmxvYXQiLCJjcm9wRGF0YSIsImRpbWVuc2lvbnMiLCJmaWxlIiwiaGVpZ2h0Iiwid2lkdGgiLCJ4IiwieSIsImZvcm1hdHRlZENyb3BEYXRhIiwibGVmdCIsInRvcCIsImNyb3BwZWQiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJleHRyYWN0IiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImVycm9yIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFNQSxPQW9CQztlQXBCNkJBOztJQUpqQkMsY0FBYztlQUFkQTs7OzhEQUZLOzs7Ozs7QUFFWCxNQUFNQSxpQkFBaUIsQ0FBQ0MsT0FBT0M7SUFDcEMsT0FBT0MsS0FBS0MsS0FBSyxDQUFDLEFBQUNDLFdBQVdKLFNBQVMsTUFBT0M7QUFDaEQ7QUFFZSxlQUFlSCxVQUFVLEVBQUVPLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUU7SUFDcEUsSUFBSTtRQUNGLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUdOO1FBRWhDLE1BQU1PLG9CQUFvQjtZQUN4QkosUUFBUVQsZUFBZVMsUUFBUUYsV0FBV0UsTUFBTTtZQUNoREssTUFBTWQsZUFBZVcsR0FBR0osV0FBV0csS0FBSztZQUN4Q0ssS0FBS2YsZUFBZVksR0FBR0wsV0FBV0UsTUFBTTtZQUN4Q0MsT0FBT1YsZUFBZVUsT0FBT0gsV0FBV0csS0FBSztRQUMvQztRQUVBLE1BQU1NLFVBQVVDLElBQUFBLGNBQUssRUFBQ1QsS0FBS1UsWUFBWSxJQUFJVixLQUFLVyxJQUFJLEVBQUVDLE9BQU8sQ0FBQ1A7UUFFOUQsT0FBTyxNQUFNRyxRQUFRSyxRQUFRLENBQUM7WUFDNUJDLG1CQUFtQjtRQUNyQjtJQUNGLEVBQUUsT0FBT0MsT0FBTztRQUNkQyxRQUFRRCxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFQTtRQUN2QyxNQUFNQTtJQUNSO0FBQ0YifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZTogc3RyaW5nLCBkaW1lbnNpb246IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGlmICghdmFsdWUpIHJldHVybiAwXG4gIHJldHVybiBNYXRoLmZsb29yKChwYXJzZUZsb2F0KHZhbHVlKSAvIDEwMCkgKiBkaW1lbnNpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGhlaWdodCwgd2lkdGgsIHgsIHkgfSA9IGNyb3BEYXRhXG5cbiAgICBjb25zdCBmb3JtYXR0ZWRDcm9wRGF0YTogc2hhcnAuUmVnaW9uID0ge1xuICAgICAgaGVpZ2h0OiBwZXJjZW50VG9QaXhlbChoZWlnaHQsIGRpbWVuc2lvbnMuaGVpZ2h0KSxcbiAgICAgIGxlZnQ6IHBlcmNlbnRUb1BpeGVsKHgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgICAgdG9wOiBwZXJjZW50VG9QaXhlbCh5LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICB3aWR0aDogcGVyY2VudFRvUGl4ZWwod2lkdGgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgIH1cblxuICAgIGNvbnN0IGNyb3BwZWQgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLmV4dHJhY3QoZm9ybWF0dGVkQ3JvcERhdGEpXG5cbiAgICByZXR1cm4gYXdhaXQgY3JvcHBlZC50b0J1ZmZlcih7XG4gICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNyb3BwaW5nIGltYWdlOmAsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcm9wSW1hZ2UiLCJwZXJjZW50VG9QaXhlbCIsInZhbHVlIiwiZGltZW5zaW9uIiwiTWF0aCIsImZsb29yIiwicGFyc2VGbG9hdCIsImNyb3BEYXRhIiwiZGltZW5zaW9ucyIsImZpbGUiLCJoZWlnaHQiLCJ3aWR0aCIsIngiLCJ5IiwiZm9ybWF0dGVkQ3JvcERhdGEiLCJsZWZ0IiwidG9wIiwiY3JvcHBlZCIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsImV4dHJhY3QiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQU9BLE9Bb0JDO2VBcEI2QkE7O0lBTGpCQyxjQUFjO2VBQWRBOzs7OERBRks7Ozs7OztBQUVYLE1BQU1BLGlCQUFpQixDQUFDQyxPQUFlQztJQUM1QyxJQUFJLENBQUNELE9BQU8sT0FBTztJQUNuQixPQUFPRSxLQUFLQyxLQUFLLENBQUMsQUFBQ0MsV0FBV0osU0FBUyxNQUFPQztBQUNoRDtBQUVlLGVBQWVILFVBQVUsRUFBRU8sUUFBUSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRTtJQUNwRSxJQUFJO1FBQ0YsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR047UUFFaEMsTUFBTU8sb0JBQWtDO1lBQ3RDSixRQUFRVCxlQUFlUyxRQUFRRixXQUFXRSxNQUFNO1lBQ2hESyxNQUFNZCxlQUFlVyxHQUFHSixXQUFXRyxLQUFLO1lBQ3hDSyxLQUFLZixlQUFlWSxHQUFHTCxXQUFXRSxNQUFNO1lBQ3hDQyxPQUFPVixlQUFlVSxPQUFPSCxXQUFXRyxLQUFLO1FBQy9DO1FBRUEsTUFBTU0sVUFBVUMsSUFBQUEsY0FBSyxFQUFDVCxLQUFLVSxZQUFZLElBQUlWLEtBQUtXLElBQUksRUFBRUMsT0FBTyxDQUFDUDtRQUU5RCxPQUFPLE1BQU1HLFFBQVFLLFFBQVEsQ0FBQztZQUM1QkMsbUJBQW1CO1FBQ3JCO0lBQ0YsRUFBRSxPQUFPQyxPQUFPO1FBQ2RDLFFBQVFELEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQUVBO1FBQ3ZDLE1BQU1BO0lBQ1I7QUFDRiJ9
@@ -6,6 +6,8 @@ type Args<T> = {
6
6
  collection: Collection;
7
7
  config: SanitizedConfig;
8
8
  data: T;
9
+ operation: 'create' | 'update';
10
+ originalDoc?: T;
9
11
  overwriteExistingFiles?: boolean;
10
12
  req: PayloadRequest;
11
13
  throwOnMissingFile?: boolean;
@@ -14,6 +16,6 @@ type Result<T> = Promise<{
14
16
  data: T;
15
17
  files: FileToSave[];
16
18
  }>;
17
- export declare const generateFileData: <T>({ collection: { config: collectionConfig }, config, data, overwriteExistingFiles, req, throwOnMissingFile, }: Args<T>) => Result<T>;
19
+ export declare const generateFileData: <T>({ collection: { config: collectionConfig }, config, data, operation, originalDoc, overwriteExistingFiles, req, throwOnMissingFile, }: Args<T>) => Result<T>;
18
20
  export {};
19
21
  //# sourceMappingURL=generateFileData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,SAAS,CAAA;AAapE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,yIAuO5B,CAAA"}
1
+ {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAajF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iKAkP5B,CAAA"}
@@ -29,7 +29,7 @@ function _interop_require_default(obj) {
29
29
  default: obj
30
30
  };
31
31
  }
32
- const generateFileData = async ({ collection: { config: collectionConfig }, config, data, overwriteExistingFiles, req, throwOnMissingFile })=>{
32
+ const generateFileData = async ({ collection: { config: collectionConfig }, config, data, operation, originalDoc, overwriteExistingFiles, req, throwOnMissingFile })=>{
33
33
  if (!collectionConfig.upload) {
34
34
  return {
35
35
  data,
@@ -37,7 +37,12 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
37
37
  };
38
38
  }
39
39
  let file = req.files?.file || undefined;
40
- const { uploadEdits } = req.query || {};
40
+ const uploadEdits = parseUploadEditsFromReqOrIncomingData({
41
+ data,
42
+ operation,
43
+ originalDoc,
44
+ req
45
+ });
41
46
  const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } = collectionConfig.upload;
42
47
  let staticPath = staticDir;
43
48
  if (staticDir.indexOf('/') !== 0) {
@@ -199,7 +204,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
199
204
  }
200
205
  if (Array.isArray(imageSizes) && fileSupportsResize) {
201
206
  req.payloadUploadSizes = {};
202
- const { sizeData, sizesToSave } = await (0, _imageResizer.default)({
207
+ const { focalPoint, sizeData, sizesToSave } = await (0, _imageResizer.default)({
203
208
  config: collectionConfig,
204
209
  dimensions: !cropData ? dimensions : {
205
210
  ...dimensions,
@@ -210,13 +215,19 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
210
215
  mimeType: fileData.mimeType,
211
216
  req,
212
217
  savedFilename: fsSafeName || file.name,
213
- staticPath
218
+ staticPath,
219
+ uploadEdits
214
220
  });
215
221
  fileData.sizes = sizeData;
222
+ fileData.focalX = focalPoint?.x;
223
+ fileData.focalY = focalPoint?.y;
216
224
  filesToSave.push(...sizesToSave);
217
225
  }
218
226
  } catch (err) {
219
- console.error(err);
227
+ req.payload.logger.error({
228
+ err,
229
+ msg: 'Error uploading file'
230
+ });
220
231
  throw new _errors.FileUploadError(req.t);
221
232
  }
222
233
  newData = {
@@ -228,5 +239,35 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
228
239
  files: filesToSave
229
240
  };
230
241
  };
242
+ /**
243
+ * Parse upload edits from req or incoming data
244
+ */ function parseUploadEditsFromReqOrIncomingData(args) {
245
+ const { data, operation, originalDoc, req } = args;
246
+ // Get intended focal point change from query string or incoming data
247
+ const { uploadEdits = {} } = req.query || {};
248
+ if (uploadEdits.focalPoint) return uploadEdits;
249
+ const incomingData = data;
250
+ const origDoc = originalDoc;
251
+ // If no change in focal point, return undefined.
252
+ // This prevents a refocal operation triggered from admin, because it always sends the focal point.
253
+ if (origDoc && incomingData.focalX === origDoc.focalX && incomingData.focalY === origDoc.focalY) {
254
+ return undefined;
255
+ }
256
+ if (incomingData.focalX && incomingData.focalY) {
257
+ uploadEdits.focalPoint = {
258
+ x: incomingData.focalX,
259
+ y: incomingData.focalY
260
+ };
261
+ return uploadEdits;
262
+ }
263
+ // If no focal point is set, default to center
264
+ if (operation === 'create') {
265
+ uploadEdits.focalPoint = {
266
+ x: 50,
267
+ y: 50
268
+ };
269
+ }
270
+ return uploadEdits;
271
+ }
231
272
 
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvciwgTWlzc2luZ0ZpbGUgfSBmcm9tICcuLi9lcnJvcnMnXG5pbXBvcnQgRmlsZVJldHJpZXZhbEVycm9yIGZyb20gJy4uL2Vycm9ycy9GaWxlUmV0cmlldmFsRXJyb3InXG5pbXBvcnQgY2FuUmVzaXplSW1hZ2UgZnJvbSAnLi9jYW5SZXNpemVJbWFnZSdcbmltcG9ydCBjcm9wSW1hZ2UgZnJvbSAnLi9jcm9wSW1hZ2UnXG5pbXBvcnQgeyBnZXRFeHRlcm5hbEZpbGUgfSBmcm9tICcuL2dldEV4dGVybmFsRmlsZSdcbmltcG9ydCBnZXRGaWxlQnlQYXRoIGZyb20gJy4vZ2V0RmlsZUJ5UGF0aCdcbmltcG9ydCBnZXRJbWFnZVNpemUgZnJvbSAnLi9nZXRJbWFnZVNpemUnXG5pbXBvcnQgZ2V0U2FmZUZpbGVOYW1lIGZyb20gJy4vZ2V0U2FmZUZpbGVuYW1lJ1xuaW1wb3J0IHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMgZnJvbSAnLi9pbWFnZVJlc2l6ZXInXG5pbXBvcnQgaXNJbWFnZSBmcm9tICcuL2lzSW1hZ2UnXG5cbnR5cGUgQXJnczxUPiA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvblxuICBjb25maWc6IFNhbml0aXplZENvbmZpZ1xuICBkYXRhOiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG4gIGNvbnN0IHsgdXBsb2FkRWRpdHMgfSA9IHJlcS5xdWVyeSB8fCB7fVxuXG4gIGNvbnN0IHsgZGlzYWJsZUxvY2FsU3RvcmFnZSwgZm9ybWF0T3B0aW9ucywgaW1hZ2VTaXplcywgcmVzaXplT3B0aW9ucywgc3RhdGljRGlyLCB0cmltT3B0aW9ucyB9ID1cbiAgICBjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZFxuXG4gIGxldCBzdGF0aWNQYXRoID0gc3RhdGljRGlyXG4gIGlmIChzdGF0aWNEaXIuaW5kZXhPZignLycpICE9PSAwKSB7XG4gICAgc3RhdGljUGF0aCA9IHBhdGgucmVzb2x2ZShjb25maWcucGF0aHMuY29uZmlnRGlyLCBzdGF0aWNEaXIpXG4gIH1cblxuICBpZiAoIWZpbGUgJiYgdXBsb2FkRWRpdHMgJiYgZGF0YSkge1xuICAgIGNvbnN0IHsgZmlsZW5hbWUsIHVybCB9ID0gZGF0YSBhcyBGaWxlRGF0YVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh1cmwgJiYgdXJsLnN0YXJ0c1dpdGgoJy8nKSAmJiAhZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7ZmlsZW5hbWV9YFxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEZpbGVCeVBhdGgoZmlsZVBhdGgpXG4gICAgICAgIGZpbGUgPSByZXNwb25zZSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH0gZWxzZSBpZiAoZmlsZW5hbWUgJiYgdXJsKSB7XG4gICAgICAgIGZpbGUgPSAoYXdhaXQgZ2V0RXh0ZXJuYWxGaWxlKHtcbiAgICAgICAgICBkYXRhOiBkYXRhIGFzIEZpbGVEYXRhLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICB1cGxvYWRDb25maWc6IGNvbGxlY3Rpb25Db25maWcudXBsb2FkLFxuICAgICAgICB9KSkgYXMgVXBsb2FkZWRGaWxlXG4gICAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSB0cnVlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEZpbGVSZXRyaWV2YWxFcnJvcihyZXEudCwgZXJyLm1lc3NhZ2UpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCFmaWxlKSB7XG4gICAgaWYgKHRocm93T25NaXNzaW5nRmlsZSkgdGhyb3cgbmV3IE1pc3NpbmdGaWxlKHJlcS50KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgaWYgKCFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgbWtkaXJwLnN5bmMoc3RhdGljUGF0aClcbiAgfVxuXG4gIGxldCBuZXdEYXRhID0gZGF0YVxuICBjb25zdCBmaWxlc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW11cbiAgY29uc3QgZmlsZURhdGE6IFBhcnRpYWw8RmlsZURhdGE+ID0ge31cbiAgY29uc3QgZmlsZUlzQW5pbWF0ZWQgPSBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2UvZ2lmJyB8fCBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2Uvd2VicCdcbiAgY29uc3QgY3JvcERhdGEgPVxuICAgIHR5cGVvZiB1cGxvYWRFZGl0cyA9PT0gJ29iamVjdCcgJiYgJ2Nyb3AnIGluIHVwbG9hZEVkaXRzID8gdXBsb2FkRWRpdHMuY3JvcCA6IHVuZGVmaW5lZFxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZVN1cHBvcnRzUmVzaXplID0gY2FuUmVzaXplSW1hZ2UoZmlsZS5taW1ldHlwZSlcbiAgICBsZXQgZnNTYWZlTmFtZTogc3RyaW5nXG4gICAgbGV0IHNoYXJwRmlsZTogU2hhcnAgfCB1bmRlZmluZWRcbiAgICBsZXQgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplIHwgdW5kZWZpbmVkXG4gICAgbGV0IGZpbGVCdWZmZXI6IHsgZGF0YTogQnVmZmVyOyBpbmZvOiBPdXRwdXRJbmZvIH1cbiAgICBsZXQgZXh0XG4gICAgbGV0IG1pbWU6IHN0cmluZ1xuICAgIGNvbnN0IGZpbGVIYXNBZGp1c3RtZW50cyA9XG4gICAgICBmaWxlU3VwcG9ydHNSZXNpemUgJiZcbiAgICAgIEJvb2xlYW4ocmVzaXplT3B0aW9ucyB8fCBmb3JtYXRPcHRpb25zIHx8IHRyaW1PcHRpb25zIHx8IGZpbGUudGVtcEZpbGVQYXRoKVxuXG4gICAgY29uc3Qgc2hhcnBPcHRpb25zOiBTaGFycE9wdGlvbnMgPSB7fVxuXG4gICAgaWYgKGZpbGVJc0FuaW1hdGVkKSBzaGFycE9wdGlvbnMuYW5pbWF0ZWQgPSB0cnVlXG5cbiAgICBpZiAoZmlsZUhhc0FkanVzdG1lbnRzKSB7XG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGgsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLmRhdGEsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNpemVPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmIChmb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKHRyaW1PcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgfHwgaXNJbWFnZShmaWxlLm1pbWV0eXBlKSkge1xuICAgICAgZGltZW5zaW9ucyA9IGF3YWl0IGdldEltYWdlU2l6ZShmaWxlKVxuICAgICAgZmlsZURhdGEud2lkdGggPSBkaW1lbnNpb25zLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBkaW1lbnNpb25zLmhlaWdodFxuICAgIH1cblxuICAgIGlmIChzaGFycEZpbGUpIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgIGZpbGVCdWZmZXIgPSBhd2FpdCBzaGFycEZpbGUudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuICAgICAgOyh7IGV4dCwgbWltZSB9ID0gYXdhaXQgZnJvbUJ1ZmZlcihmaWxlQnVmZmVyLmRhdGEpKSAvLyBUaGlzIGlzIGdldHRpbmcgYW4gaW5jb3JyZWN0IGdpZiBoZWlnaHQgYmFjay5cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZmlsZUJ1ZmZlci5pbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuaW5mby5zaXplXG5cbiAgICAgIC8vIEFuaW1hdGVkIEdJRnMgKyBXZWJQIGFnZ3JlZ2F0ZSB0aGUgaGVpZ2h0IGZyb20gZXZlcnkgZnJhbWUsIHNvIHdlIG5lZWQgdG8gdXNlIGRpdmlkZSBieSBudW1iZXIgb2YgcGFnZXNcbiAgICAgIGlmIChtZXRhZGF0YS5wYWdlcykge1xuICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0IC8gbWV0YWRhdGEucGFnZXNcbiAgICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmRhdGEubGVuZ3RoXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1pbWUgPSBmaWxlLm1pbWV0eXBlXG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGUuc2l6ZVxuXG4gICAgICBpZiAoZmlsZS5uYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgZXh0ID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWR1c3QgU1ZHIG1pbWUgdHlwZS4gZnJvbUJ1ZmZlciBtb2RpZmllcyBpdC5cbiAgICBpZiAobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXh0ID09PSAnc3ZnJykgbWltZSA9ICdpbWFnZS9zdmcreG1sJ1xuICAgIGZpbGVEYXRhLm1pbWVUeXBlID0gbWltZVxuXG4gICAgY29uc3QgYmFzZUZpbGVuYW1lID0gc2FuaXRpemUoZmlsZS5uYW1lLnN1YnN0cmluZygwLCBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKSkgfHwgZmlsZS5uYW1lKVxuICAgIGZzU2FmZU5hbWUgPSBgJHtiYXNlRmlsZW5hbWV9JHtleHQgPyBgLiR7ZXh0fWAgOiAnJ31gXG5cbiAgICBpZiAoIW92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMpIHtcbiAgICAgIGZzU2FmZU5hbWUgPSBhd2FpdCBnZXRTYWZlRmlsZU5hbWUoe1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZzogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkZXNpcmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZmlsZURhdGEuZmlsZW5hbWUgPSBmc1NhZmVOYW1lXG4gICAgbGV0IGZpbGVGb3JSZXNpemUgPSBmaWxlXG5cbiAgICBpZiAoY3JvcERhdGEpIHtcbiAgICAgIGNvbnN0IHsgZGF0YTogY3JvcHBlZEltYWdlLCBpbmZvIH0gPSBhd2FpdCBjcm9wSW1hZ2UoeyBjcm9wRGF0YSwgZGltZW5zaW9ucywgZmlsZSB9KVxuXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgZmlsZUZvclJlc2l6ZSA9IHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgZGF0YTogY3JvcHBlZEltYWdlLFxuICAgICAgICBzaXplOiBpbmZvLnNpemUsXG4gICAgICB9XG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGluZm8uc2l6ZVxuXG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBjcm9wcGVkSW1hZ2UpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVxLmZpbGVzLmZpbGUgPSBmaWxlRm9yUmVzaXplXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIC8vIElmIHVzaW5nIHRlbXAgZmlsZXMgYW5kIHRoZSBpbWFnZSBpcyBiZWluZyByZXNpemVkLCB3cml0ZSB0aGUgZmlsZSB0byB0aGUgdGVtcCBwYXRoXG4gICAgICBpZiAoZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBc3NpZ24gdGhlIF9wb3NzaWJseSBtb2RpZmllZF8gZmlsZSB0byB0aGUgcmVxdWVzdCBvYmplY3RcbiAgICAgICAgICByZXEuZmlsZXMuZmlsZSA9IHtcbiAgICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgICBkYXRhOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgICAgIHNpemU6IGZpbGVCdWZmZXI/LmluZm8uc2l6ZSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZVNpemVzKSAmJiBmaWxlU3VwcG9ydHNSZXNpemUpIHtcbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXMgPSB7fVxuICAgICAgY29uc3QgeyBzaXplRGF0YSwgc2l6ZXNUb1NhdmUgfSA9IGF3YWl0IHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICAgICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRpbWVuc2lvbnM6ICFjcm9wRGF0YVxuICAgICAgICAgID8gZGltZW5zaW9uc1xuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5kaW1lbnNpb25zLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGZpbGVEYXRhLmhlaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGZpbGVEYXRhLndpZHRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgZmlsZTogZmlsZUZvclJlc2l6ZSxcbiAgICAgICAgbWltZVR5cGU6IGZpbGVEYXRhLm1pbWVUeXBlLFxuICAgICAgICByZXEsXG4gICAgICAgIHNhdmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUgfHwgZmlsZS5uYW1lLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgIHRocm93IG5ldyBGaWxlVXBsb2FkRXJyb3IocmVxLnQpXG4gIH1cblxuICBuZXdEYXRhID0ge1xuICAgIC4uLm5ld0RhdGEsXG4gICAgLi4uZmlsZURhdGEsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRhdGE6IG5ld0RhdGEsXG4gICAgZmlsZXM6IGZpbGVzVG9TYXZlLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVGaWxlRGF0YSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGF0YSIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInF1ZXJ5IiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJ1cGxvYWRDb25maWciLCJlcnIiLCJFcnJvciIsIkZpbGVSZXRyaWV2YWxFcnJvciIsInQiLCJtZXNzYWdlIiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZCIsIm1pbWV0eXBlIiwiY3JvcERhdGEiLCJjcm9wIiwiZmlsZVN1cHBvcnRzUmVzaXplIiwiY2FuUmVzaXplSW1hZ2UiLCJmc1NhZmVOYW1lIiwic2hhcnBGaWxlIiwiZGltZW5zaW9ucyIsImZpbGVCdWZmZXIiLCJleHQiLCJtaW1lIiwiZmlsZUhhc0FkanVzdG1lbnRzIiwiQm9vbGVhbiIsInRlbXBGaWxlUGF0aCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJpbmNsdWRlcyIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJjb25zb2xlIiwiZXJyb3IiLCJGaWxlVXBsb2FkRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBd0NhQTs7O2VBQUFBOzs7MEJBckNjOzJEQUNaOytEQUNJ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
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3QgeyBkaXNhYmxlTG9jYWxTdG9yYWdlLCBmb3JtYXRPcHRpb25zLCBpbWFnZVNpemVzLCByZXNpemVPcHRpb25zLCBzdGF0aWNEaXIsIHRyaW1PcHRpb25zIH0gPVxuICAgIGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHVybCAmJiB1cmwuc3RhcnRzV2l0aCgnLycpICYmICFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUJ5UGF0aChmaWxlUGF0aClcbiAgICAgICAgZmlsZSA9IHJlc3BvbnNlIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChmaWxlbmFtZSAmJiB1cmwpIHtcbiAgICAgICAgZmlsZSA9IChhd2FpdCBnZXRFeHRlcm5hbEZpbGUoe1xuICAgICAgICAgIGRhdGE6IGRhdGEgYXMgRmlsZURhdGEsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHVwbG9hZENvbmZpZzogY29sbGVjdGlvbkNvbmZpZy51cGxvYWQsXG4gICAgICAgIH0pKSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRmlsZVJldHJpZXZhbEVycm9yKHJlcS50LCBlcnIubWVzc2FnZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZCA9IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS9naWYnIHx8IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS93ZWJwJ1xuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlcjogeyBkYXRhOiBCdWZmZXI7IGluZm86IE91dHB1dEluZm8gfVxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG4gICAgY29uc3QgZmlsZUhhc0FkanVzdG1lbnRzID1cbiAgICAgIGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJlxuICAgICAgQm9vbGVhbihyZXNpemVPcHRpb25zIHx8IGZvcm1hdE9wdGlvbnMgfHwgdHJpbU9wdGlvbnMgfHwgZmlsZS50ZW1wRmlsZVBhdGgpXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWQpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChmaWxlSGFzQWRqdXN0bWVudHMpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc2l6ZU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnJlc2l6ZShyZXNpemVPcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKGZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRvRm9ybWF0KGZvcm1hdE9wdGlvbnMuZm9ybWF0LCBmb3JtYXRPcHRpb25zLm9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAodHJpbU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRyaW0odHJpbU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ID0gJydcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZHVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pXG5cbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRm9yUmVzaXplID0ge1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBkYXRhOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHNpemU6IGluZm8uc2l6ZSxcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZURhdGEuZm9jYWxYID0gZm9jYWxQb2ludD8ueFxuICAgICAgZmlsZURhdGEuZm9jYWxZID0gZm9jYWxQb2ludD8ueVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVyciwgbXNnOiAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnIH0pXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSB1cGxvYWQgZWRpdHMgZnJvbSByZXEgb3IgaW5jb21pbmcgZGF0YVxuICovXG5mdW5jdGlvbiBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKGFyZ3M6IHtcbiAgZGF0YTogdW5rbm93blxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M6IHVua25vd25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufSk6IFVwbG9hZEVkaXRzIHtcbiAgY29uc3QgeyBkYXRhLCBvcGVyYXRpb24sIG9yaWdpbmFsRG9jLCByZXEgfSA9IGFyZ3NcblxuICAvLyBHZXQgaW50ZW5kZWQgZm9jYWwgcG9pbnQgY2hhbmdlIGZyb20gcXVlcnkgc3RyaW5nIG9yIGluY29taW5nIGRhdGFcbiAgY29uc3Qge1xuICAgIHVwbG9hZEVkaXRzID0ge30sXG4gIH06IHtcbiAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gIH0gPSByZXEucXVlcnkgfHwge31cblxuICBpZiAodXBsb2FkRWRpdHMuZm9jYWxQb2ludCkgcmV0dXJuIHVwbG9hZEVkaXRzXG5cbiAgY29uc3QgaW5jb21pbmdEYXRhID0gZGF0YSBhcyBGaWxlRGF0YVxuICBjb25zdCBvcmlnRG9jID0gb3JpZ2luYWxEb2MgYXMgRmlsZURhdGFcblxuICAvLyBJZiBubyBjaGFuZ2UgaW4gZm9jYWwgcG9pbnQsIHJldHVybiB1bmRlZmluZWQuXG4gIC8vIFRoaXMgcHJldmVudHMgYSByZWZvY2FsIG9wZXJhdGlvbiB0cmlnZ2VyZWQgZnJvbSBhZG1pbiwgYmVjYXVzZSBpdCBhbHdheXMgc2VuZHMgdGhlIGZvY2FsIHBvaW50LlxuICBpZiAob3JpZ0RvYyAmJiBpbmNvbWluZ0RhdGEuZm9jYWxYID09PSBvcmlnRG9jLmZvY2FsWCAmJiBpbmNvbWluZ0RhdGEuZm9jYWxZID09PSBvcmlnRG9jLmZvY2FsWSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGlmIChpbmNvbWluZ0RhdGEuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkpIHtcbiAgICB1cGxvYWRFZGl0cy5mb2NhbFBvaW50ID0ge1xuICAgICAgeDogaW5jb21pbmdEYXRhLmZvY2FsWCxcbiAgICAgIHk6IGluY29taW5nRGF0YS5mb2NhbFksXG4gICAgfVxuICAgIHJldHVybiB1cGxvYWRFZGl0c1xuICB9XG5cbiAgLy8gSWYgbm8gZm9jYWwgcG9pbnQgaXMgc2V0LCBkZWZhdWx0IHRvIGNlbnRlclxuICBpZiAob3BlcmF0aW9uID09PSAnY3JlYXRlJykge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiA1MCxcbiAgICAgIHk6IDUwLFxuICAgIH1cbiAgfVxuICByZXR1cm4gdXBsb2FkRWRpdHNcbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3BlcmF0aW9uIiwib3JpZ2luYWxEb2MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwicmVxIiwidGhyb3dPbk1pc3NpbmdGaWxlIiwidXBsb2FkIiwiZmlsZXMiLCJmaWxlIiwidW5kZWZpbmVkIiwidXBsb2FkRWRpdHMiLCJwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJ1cGxvYWRDb25maWciLCJlcnIiLCJFcnJvciIsIkZpbGVSZXRyaWV2YWxFcnJvciIsInQiLCJtZXNzYWdlIiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZCIsIm1pbWV0eXBlIiwiY3JvcERhdGEiLCJjcm9wIiwiZmlsZVN1cHBvcnRzUmVzaXplIiwiY2FuUmVzaXplSW1hZ2UiLCJmc1NhZmVOYW1lIiwic2hhcnBGaWxlIiwiZGltZW5zaW9ucyIsImZpbGVCdWZmZXIiLCJleHQiLCJtaW1lIiwiZmlsZUhhc0FkanVzdG1lbnRzIiwiQm9vbGVhbiIsInRlbXBGaWxlUGF0aCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJpbmNsdWRlcyIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwiZm9jYWxQb2ludCIsInNpemVEYXRhIiwic2l6ZXNUb1NhdmUiLCJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwic2F2ZWRGaWxlbmFtZSIsInNpemVzIiwiZm9jYWxYIiwieCIsImZvY2FsWSIsInkiLCJwYXlsb2FkIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJGaWxlVXBsb2FkRXJyb3IiLCJhcmdzIiwicXVlcnkiLCJpbmNvbWluZ0RhdGEiLCJvcmlnRG9jIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBDYUE7OztlQUFBQTs7OzBCQXZDYzsyREFDWjsrREFDSTs2REFDRjt5RUFDSTs4REFDSDt3QkFPMkI7MkVBQ2Q7dUVBQ0o7a0VBQ0w7aUNBQ1U7c0VBQ047cUVBQ0Q7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
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAcnD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,EAkJnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAcnD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,EAqKnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -21,51 +21,52 @@ const getBaseUploadFields = ({ collection, config })=>{
21
21
  const uploadOptions = typeof collection.upload === 'object' ? collection.upload : {};
22
22
  const mimeType = {
23
23
  name: 'mimeType',
24
+ type: 'text',
24
25
  admin: {
25
26
  hidden: true,
26
27
  readOnly: true
27
28
  },
28
- label: 'MIME Type',
29
- type: 'text'
29
+ label: 'MIME Type'
30
30
  };
31
31
  const url = {
32
32
  name: 'url',
33
+ type: 'text',
33
34
  admin: {
34
35
  hidden: true,
35
36
  readOnly: true
36
37
  },
37
- label: 'URL',
38
- type: 'text'
38
+ label: 'URL'
39
39
  };
40
40
  const width = {
41
41
  name: 'width',
42
+ type: 'number',
42
43
  admin: {
43
44
  hidden: true,
44
45
  readOnly: true
45
46
  },
46
- label: labels['upload:width'],
47
- type: 'number'
47
+ label: labels['upload:width']
48
48
  };
49
49
  const height = {
50
50
  name: 'height',
51
+ type: 'number',
51
52
  admin: {
52
53
  hidden: true,
53
54
  readOnly: true
54
55
  },
55
- label: labels['upload:height'],
56
- type: 'number'
56
+ label: labels['upload:height']
57
57
  };
58
58
  const filesize = {
59
59
  name: 'filesize',
60
+ type: 'number',
60
61
  admin: {
61
62
  hidden: true,
62
63
  readOnly: true
63
64
  },
64
- label: labels['upload:fileSize'],
65
- type: 'number'
65
+ label: labels['upload:fileSize']
66
66
  };
67
67
  const filename = {
68
68
  name: 'filename',
69
+ type: 'text',
69
70
  admin: {
70
71
  disableBulkEdit: true,
71
72
  hidden: true,
@@ -73,7 +74,6 @@ const getBaseUploadFields = ({ collection, config })=>{
73
74
  },
74
75
  index: true,
75
76
  label: labels['upload:fileName'],
76
- type: 'text',
77
77
  unique: true
78
78
  };
79
79
  let uploadFields = [
@@ -102,15 +102,32 @@ const getBaseUploadFields = ({ collection, config })=>{
102
102
  if (uploadOptions.mimeTypes) {
103
103
  mimeType.validate = (0, _mimeTypeValidator.mimeTypeValidator)(uploadOptions.mimeTypes);
104
104
  }
105
+ // Add focal point fields if not disabled
106
+ if (uploadOptions.focalPoint !== false && (uploadOptions.imageSizes || uploadOptions.resizeOptions)) {
107
+ uploadFields = uploadFields.concat([
108
+ 'focalX',
109
+ 'focalY'
110
+ ].map((name)=>{
111
+ return {
112
+ name,
113
+ type: 'number',
114
+ admin: {
115
+ hidden: true
116
+ }
117
+ };
118
+ }));
119
+ }
105
120
  if (uploadOptions.imageSizes) {
106
121
  uploadFields = uploadFields.concat([
107
122
  {
108
123
  name: 'sizes',
124
+ type: 'group',
109
125
  admin: {
110
126
  hidden: true
111
127
  },
112
128
  fields: uploadOptions.imageSizes.map((size)=>({
113
129
  name: size.name,
130
+ type: 'group',
114
131
  admin: {
115
132
  hidden: true
116
133
  },
@@ -141,11 +158,9 @@ const getBaseUploadFields = ({ collection, config })=>{
141
158
  unique: false
142
159
  }
143
160
  ],
144
- label: size.name,
145
- type: 'group'
161
+ label: size.name
146
162
  })),
147
- label: labels['upload:Sizes'],
148
- type: 'group'
163
+ label: labels['upload:sizes']
149
164
  }
150
165
  ]);
151
166
  }
@@ -153,4 +168,4 @@ const getBaseUploadFields = ({ collection, config })=>{
153
168
  };
154
169
  const _default = getBaseUploadFields;
155
170
 
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdVcGxvYWRUeXBlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogSW5jb21pbmdVcGxvYWRUeXBlID1cbiAgICB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiAnTUlNRSBUeXBlJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiAnVVJMJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICAgIHR5cGU6ICdudW1iZXInLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gICAgdHlwZTogJ251bWJlcicsXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICBhZG1pbjoge1xuICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBpbmRleDogdHJ1ZSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6ZmlsZU5hbWUnXSxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5maWxlbmFtZSkge1xuICAgICAgICAgICAgICBpZiAodXBsb2FkT3B0aW9ucy5zdGF0aWNVUkwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtkYXRhLmZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7ZGF0YS5maWxlbmFtZX1gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpbGVuYW1lLFxuICAgIG1pbWVUeXBlLFxuICAgIGZpbGVzaXplLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgXVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLm1pbWVUeXBlcykge1xuICAgIG1pbWVUeXBlLnZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IodXBsb2FkT3B0aW9ucy5taW1lVHlwZXMpXG4gIH1cblxuICBpZiAodXBsb2FkT3B0aW9ucy5pbWFnZVNpemVzKSB7XG4gICAgdXBsb2FkRmllbGRzID0gdXBsb2FkRmllbGRzLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaXplcycsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBmaWVsZHM6IHVwbG9hZE9wdGlvbnMuaW1hZ2VTaXplcy5tYXAoKHNpemUpID0+ICh7XG4gICAgICAgICAgbmFtZTogc2l6ZS5uYW1lLFxuICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4udXJsLFxuICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgIGFmdGVyUmVhZDogW1xuICAgICAgICAgICAgICAgICAgKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVGaWxlbmFtZSA9IGRhdGE/LnNpemVzPy5bc2l6ZS5uYW1lXT8uZmlsZW5hbWVcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZUZpbGVuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHVwbG9hZE9wdGlvbnMuc3RhdGljVVJMLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtzaXplRmlsZW5hbWV9YFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7c2l6ZUZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBtaW1lVHlwZSxcbiAgICAgICAgICAgIGZpbGVzaXplLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5maWxlbmFtZSxcbiAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYWJlbDogc2l6ZS5uYW1lLFxuICAgICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOlNpemVzJ10sXG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICB9LFxuICAgIF0pXG4gIH1cbiAgcmV0dXJuIHVwbG9hZEZpZWxkc1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCYXNlVXBsb2FkRmllbGRzXG4iXSwibmFtZXMiOlsibGFiZWxzIiwiZXh0cmFjdFRyYW5zbGF0aW9ucyIsImdldEJhc2VVcGxvYWRGaWVsZHMiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwidXBsb2FkT3B0aW9ucyIsInVwbG9hZCIsIm1pbWVUeXBlIiwibmFtZSIsImFkbWluIiwiaGlkZGVuIiwicmVhZE9ubHkiLCJsYWJlbCIsInR5cGUiLCJ1cmwiLCJ3aWR0aCIsImhlaWdodCIsImZpbGVzaXplIiwiZmlsZW5hbWUiLCJkaXNhYmxlQnVsa0VkaXQiLCJpbmRleCIsInVuaXF1ZSIsInVwbG9hZEZpZWxkcyIsImhvb2tzIiwiYWZ0ZXJSZWFkIiwiZGF0YSIsInN0YXRpY1VSTCIsInN0YXJ0c1dpdGgiLCJzZXJ2ZXJVUkwiLCJ1bmRlZmluZWQiLCJtaW1lVHlwZXMiLCJ2YWxpZGF0ZSIsIm1pbWVUeXBlVmFsaWRhdG9yIiwiaW1hZ2VTaXplcyIsImNvbmNhdCIsImZpZWxkcyIsIm1hcCIsInNpemUiLCJzaXplRmlsZW5hbWUiLCJzaXplcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF5S0E7Oztl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
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdVcGxvYWRUeXBlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogSW5jb21pbmdVcGxvYWRUeXBlID1cbiAgICB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ01JTUUgVHlwZScsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ1VSTCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGRpc2FibGVCdWxrRWRpdDogdHJ1ZSxcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgaW5kZXg6IHRydWUsXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVOYW1lJ10sXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5maWxlbmFtZSkge1xuICAgICAgICAgICAgICBpZiAodXBsb2FkT3B0aW9ucy5zdGF0aWNVUkwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtkYXRhLmZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7ZGF0YS5maWxlbmFtZX1gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpbGVuYW1lLFxuICAgIG1pbWVUeXBlLFxuICAgIGZpbGVzaXplLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgXVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLm1pbWVUeXBlcykge1xuICAgIG1pbWVUeXBlLnZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IodXBsb2FkT3B0aW9ucy5taW1lVHlwZXMpXG4gIH1cblxuICAvLyBBZGQgZm9jYWwgcG9pbnQgZmllbGRzIGlmIG5vdCBkaXNhYmxlZFxuICBpZiAoXG4gICAgdXBsb2FkT3B0aW9ucy5mb2NhbFBvaW50ICE9PSBmYWxzZSAmJlxuICAgICh1cGxvYWRPcHRpb25zLmltYWdlU2l6ZXMgfHwgdXBsb2FkT3B0aW9ucy5yZXNpemVPcHRpb25zKVxuICApIHtcbiAgICB1cGxvYWRGaWVsZHMgPSB1cGxvYWRGaWVsZHMuY29uY2F0KFxuICAgICAgWydmb2NhbFgnLCAnZm9jYWxZJ10ubWFwKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLmltYWdlU2l6ZXMpIHtcbiAgICB1cGxvYWRGaWVsZHMgPSB1cGxvYWRGaWVsZHMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NpemVzJyxcbiAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogdXBsb2FkT3B0aW9ucy5pbWFnZVNpemVzLm1hcCgoc2l6ZSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBzaXplLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnVybCxcbiAgICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAgICAgICAgICh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRmlsZW5hbWUgPSBkYXRhPy5zaXplcz8uW3NpemUubmFtZV0/LmZpbGVuYW1lXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVGaWxlbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICh1cGxvYWRPcHRpb25zLnN0YXRpY1VSTC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb25maWcuc2VydmVyVVJMfSR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7c2l6ZUZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3VwbG9hZE9wdGlvbnMuc3RhdGljVVJMfS8ke3NpemVGaWxlbmFtZX1gXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgbWltZVR5cGUsXG4gICAgICAgICAgICBmaWxlc2l6ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uZmlsZW5hbWUsXG4gICAgICAgICAgICAgIHVuaXF1ZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbGFiZWw6IHNpemUubmFtZSxcbiAgICAgICAgfSkpLFxuICAgICAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6c2l6ZXMnXSxcbiAgICAgIH0sXG4gICAgXSlcbiAgfVxuXG4gIHJldHVybiB1cGxvYWRGaWVsZHNcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QmFzZVVwbG9hZEZpZWxkc1xuIl0sIm5hbWVzIjpbImxhYmVscyIsImV4dHJhY3RUcmFuc2xhdGlvbnMiLCJnZXRCYXNlVXBsb2FkRmllbGRzIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsInVwbG9hZE9wdGlvbnMiLCJ1cGxvYWQiLCJtaW1lVHlwZSIsIm5hbWUiLCJ0eXBlIiwiYWRtaW4iLCJoaWRkZW4iLCJyZWFkT25seSIsImxhYmVsIiwidXJsIiwid2lkdGgiLCJoZWlnaHQiLCJmaWxlc2l6ZSIsImZpbGVuYW1lIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaW5kZXgiLCJ1bmlxdWUiLCJ1cGxvYWRGaWVsZHMiLCJob29rcyIsImFmdGVyUmVhZCIsImRhdGEiLCJzdGF0aWNVUkwiLCJzdGFydHNXaXRoIiwic2VydmVyVVJMIiwidW5kZWZpbmVkIiwibWltZVR5cGVzIiwidmFsaWRhdGUiLCJtaW1lVHlwZVZhbGlkYXRvciIsImZvY2FsUG9pbnQiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsImNvbmNhdCIsIm1hcCIsImZpZWxkcyIsInNpemUiLCJzaXplRmlsZW5hbWUiLCJzaXplcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE0TEE7OztlQUFBOzs7cUNBdkxvQzttQ0FDRjtBQUVsQyxNQUFNQSxTQUFTQyxJQUFBQSx3Q0FBbUIsRUFBQztJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFPRCxNQUFNQyxzQkFBc0IsQ0FBQyxFQUFFQyxVQUFVLEVBQUVDLE1BQU0sRUFBVztJQUMxRCxNQUFNQyxnQkFDSixPQUFPRixXQUFXRyxNQUFNLEtBQUssV0FBV0gsV0FBV0csTUFBTSxHQUFHLENBQUM7SUFFL0QsTUFBTUMsV0FBa0I7UUFDdEJDLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsVUFBVTtRQUNaO1FBQ0FDLE9BQU87SUFDVDtJQUVBLE1BQU1DLE1BQWE7UUFDakJOLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsVUFBVTtRQUNaO1FBQ0FDLE9BQU87SUFDVDtJQUVBLE1BQU1FLFFBQWU7UUFDbkJQLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMs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
@@ -1,23 +1,20 @@
1
1
  import type { UploadedFile } from 'express-fileupload';
2
- import type { UploadEdits } from '../admin/components/views/collections/Edit/types';
3
2
  import type { SanitizedCollectionConfig } from '../collections/config/types';
4
3
  import type { PayloadRequest } from '../express/types';
5
- import type { FileSizes, FileToSave, ProbedImageSize } from './types';
4
+ import type { FileSizes, FileToSave, ProbedImageSize, UploadEdits } from './types';
6
5
  type ResizeArgs = {
7
6
  config: SanitizedCollectionConfig;
8
7
  dimensions: ProbedImageSize;
9
8
  file: UploadedFile;
10
9
  mimeType: string;
11
- req: PayloadRequest & {
12
- query?: {
13
- uploadEdits?: UploadEdits;
14
- };
15
- };
10
+ req: PayloadRequest;
16
11
  savedFilename: string;
17
12
  staticPath: string;
13
+ uploadEdits?: UploadEdits;
18
14
  };
19
15
  /** Result from resizing and transforming the requested image sizes */
20
16
  type ImageSizesResult = {
17
+ focalPoint?: UploadEdits['focalPoint'];
21
18
  sizeData: FileSizes;
22
19
  sizesToSave: FileToSave[];
23
20
  };
@@ -35,6 +32,6 @@ type ImageSizesResult = {
35
32
  * @param resizeConfig - the resize config
36
33
  * @returns the result of the resize operation(s)
37
34
  */
38
- export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath, }: ResizeArgs): Promise<ImageSizesResult>;
35
+ export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath, uploadEdits, }: ResizeArgs): Promise<ImageSizesResult>;
39
36
  export {};
40
37
  //# sourceMappingURL=imageResizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiKD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoIxC"}
1
+ {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AA6KD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,GACZ,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoIxC"}