payload 2.19.1 → 2.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/admin/components/elements/ColumnSelector/index.d.ts.map +1 -1
  2. package/dist/admin/components/elements/ColumnSelector/index.js +9 -3
  3. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +3 -8
  5. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  6. package/dist/admin/components/elements/EditUpload/index.js +6 -10
  7. package/dist/admin/components/elements/Table/types.d.ts +1 -0
  8. package/dist/admin/components/elements/Table/types.d.ts.map +1 -1
  9. package/dist/admin/components/elements/TableColumns/buildColumns.d.ts.map +1 -1
  10. package/dist/admin/components/elements/TableColumns/buildColumns.js +6 -1
  11. package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
  12. package/dist/admin/components/utilities/DocumentInfo/index.js +29 -4
  13. package/dist/admin/components/utilities/DocumentInfo/types.d.ts +1 -0
  14. package/dist/admin/components/utilities/DocumentInfo/types.d.ts.map +1 -1
  15. package/dist/admin/components/utilities/UploadEdits/index.d.ts +11 -0
  16. package/dist/admin/components/utilities/UploadEdits/index.d.ts.map +1 -0
  17. package/dist/admin/components/utilities/UploadEdits/index.js +46 -0
  18. package/dist/admin/components/views/Global/index.d.ts.map +1 -1
  19. package/dist/admin/components/views/Global/index.js +6 -6
  20. package/dist/admin/components/views/collections/Edit/Default.d.ts.map +1 -1
  21. package/dist/admin/components/views/collections/Edit/Default.js +1 -1
  22. package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
  23. package/dist/admin/components/views/collections/Edit/index.js +10 -37
  24. package/dist/globals/graphql/resolvers/findOne.d.ts.map +1 -1
  25. package/dist/globals/graphql/resolvers/findOne.js +14 -6
  26. package/dist/globals/graphql/resolvers/findVersionByID.d.ts.map +1 -1
  27. package/dist/globals/graphql/resolvers/findVersionByID.js +10 -5
  28. package/dist/globals/graphql/resolvers/update.d.ts.map +1 -1
  29. package/dist/globals/graphql/resolvers/update.js +14 -6
  30. package/dist/uploads/cropImage.d.ts.map +1 -1
  31. package/dist/uploads/cropImage.js +9 -2
  32. package/dist/uploads/generateFileData.d.ts.map +1 -1
  33. package/dist/uploads/generateFileData.js +9 -4
  34. package/dist/uploads/imageResizer.d.ts +1 -1
  35. package/dist/uploads/imageResizer.d.ts.map +1 -1
  36. package/dist/uploads/imageResizer.js +15 -6
  37. package/dist/utilities/isolateObjectProperty.d.ts +1 -1
  38. package/dist/utilities/isolateObjectProperty.d.ts.map +1 -1
  39. package/dist/utilities/isolateObjectProperty.js +1 -1
  40. package/package.json +1 -1
  41. package/dist/admin/components/utilities/FormQueryParams/index.d.ts +0 -17
  42. package/dist/admin/components/utilities/FormQueryParams/index.d.ts.map +0 -1
  43. package/dist/admin/components/utilities/FormQueryParams/index.js +0 -23
@@ -17,19 +17,27 @@ function _interop_require_default(obj) {
17
17
  }
18
18
  function findOneResolver(globalConfig) {
19
19
  return async function resolver(_, args, context) {
20
- if (args.locale) context.req.locale = args.locale;
21
- if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale;
22
- const { slug } = globalConfig;
20
+ let { req } = context;
21
+ const locale = req.locale;
22
+ const fallbackLocale = req.fallbackLocale;
23
+ req = (0, _isolateObjectProperty.default)(req, 'locale');
24
+ req = (0, _isolateObjectProperty.default)(req, 'fallbackLocale');
25
+ req.locale = args.locale || locale;
26
+ req.fallbackLocale = args.fallbackLocale || fallbackLocale;
27
+ if (!req.query) req.query = {};
28
+ const draft = args.draft ?? req.query?.draft === 'false' ? false : req.query?.draft === 'true' ? true : undefined;
29
+ if (typeof draft === 'boolean') req.query.draft = String(draft);
30
+ context.req = req;
23
31
  const options = {
32
+ slug: globalConfig.slug,
24
33
  depth: 0,
25
34
  draft: args.draft,
26
35
  globalConfig,
27
- req: (0, _isolateObjectProperty.default)(context.req, 'transactionID'),
28
- slug
36
+ req: (0, _isolateObjectProperty.default)(req, 'transactionID')
29
37
  };
30
38
  const result = await (0, _findOne.default)(options);
31
39
  return result;
32
40
  };
33
41
  }
34
42
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRPbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kT25lIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZmluZE9uZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZE9uZVJlc29sdmVyKGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnKTogRG9jdW1lbnQge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZXIoXywgYXJncywgY29udGV4dCkge1xuICAgIGlmIChhcmdzLmxvY2FsZSkgY29udGV4dC5yZXEubG9jYWxlID0gYXJncy5sb2NhbGVcbiAgICBpZiAoYXJncy5mYWxsYmFja0xvY2FsZSkgY29udGV4dC5yZXEuZmFsbGJhY2tMb2NhbGUgPSBhcmdzLmZhbGxiYWNrTG9jYWxlXG5cbiAgICBjb25zdCB7IHNsdWcgfSA9IGdsb2JhbENvbmZpZ1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZHJhZnQ6IGFyZ3MuZHJhZnQsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVPYmplY3RQcm9wZXJ0eShjb250ZXh0LnJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICAgIHNsdWcsXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmluZE9uZShvcHRpb25zKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZpbmRPbmVSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwibG9jYWxlIiwicmVxIiwiZmFsbGJhY2tMb2NhbGUiLCJzbHVnIiwib3B0aW9ucyIsImRlcHRoIiwiZHJhZnQiLCJpc29sYXRlT2JqZWN0UHJvcGVydHkiLCJyZXN1bHQiLCJmaW5kT25lIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBUXBDOzs7ZUFBd0JBOzs7OEVBSFU7Z0VBQ2Q7Ozs7OztBQUVMLFNBQVNBLGdCQUFnQkMsWUFBbUM7SUFDekUsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR1I7UUFFakIsTUFBTVMsVUFBVTtZQUNkQyxPQUFPO1lBQ1BDLE9BQU9SLEtBQUtRLEtBQUs7WUFDakJYO1lBQ0FNLEtBQUtNLElBQUFBLDhCQUFxQixFQUFDUixRQUFRRSxHQUFHLEVBQUU7WUFDeENFO1FBQ0Y7UUFFQSxNQUFNSyxTQUFTLE1BQU1DLElBQUFBLGdCQUFPLEVBQUNMO1FBQzdCLE9BQU9JO0lBQ1Q7QUFDRiJ9
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRPbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kT25lIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZmluZE9uZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZE9uZVJlc29sdmVyKGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnKTogRG9jdW1lbnQge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZXIoXywgYXJncywgY29udGV4dCkge1xuICAgIGxldCB7IHJlcSB9ID0gY29udGV4dFxuICAgIGNvbnN0IGxvY2FsZSA9IHJlcS5sb2NhbGVcbiAgICBjb25zdCBmYWxsYmFja0xvY2FsZSA9IHJlcS5mYWxsYmFja0xvY2FsZVxuICAgIHJlcSA9IGlzb2xhdGVPYmplY3RQcm9wZXJ0eShyZXEsICdsb2NhbGUnKVxuICAgIHJlcSA9IGlzb2xhdGVPYmplY3RQcm9wZXJ0eShyZXEsICdmYWxsYmFja0xvY2FsZScpXG4gICAgcmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGxvY2FsZVxuICAgIHJlcS5mYWxsYmFja0xvY2FsZSA9IGFyZ3MuZmFsbGJhY2tMb2NhbGUgfHwgZmFsbGJhY2tMb2NhbGVcblxuICAgIGlmICghcmVxLnF1ZXJ5KSByZXEucXVlcnkgPSB7fVxuXG4gICAgY29uc3QgZHJhZnQ6IGJvb2xlYW4gPVxuICAgICAgYXJncy5kcmFmdCA/PyByZXEucXVlcnk/LmRyYWZ0ID09PSAnZmFsc2UnXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiByZXEucXVlcnk/LmRyYWZ0ID09PSAndHJ1ZSdcbiAgICAgICAgICA/IHRydWVcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgIGlmICh0eXBlb2YgZHJhZnQgPT09ICdib29sZWFuJykgcmVxLnF1ZXJ5LmRyYWZ0ID0gU3RyaW5nKGRyYWZ0KVxuXG4gICAgY29udGV4dC5yZXEgPSByZXFcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzbHVnOiBnbG9iYWxDb25maWcuc2x1ZyxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZHJhZnQ6IGFyZ3MuZHJhZnQsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVPYmplY3RQcm9wZXJ0eShyZXEsICd0cmFuc2FjdGlvbklEJyksXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmluZE9uZShvcHRpb25zKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZpbmRPbmVSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwicmVxIiwibG9jYWxlIiwiZmFsbGJhY2tMb2NhbGUiLCJpc29sYXRlT2JqZWN0UHJvcGVydHkiLCJxdWVyeSIsImRyYWZ0IiwidW5kZWZpbmVkIiwiU3RyaW5nIiwib3B0aW9ucyIsInNsdWciLCJkZXB0aCIsInJlc3VsdCIsImZpbmRPbmUiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFRcEM7OztlQUF3QkE7Ozs4RUFIVTtnRUFDZDs7Ozs7O0FBRUwsU0FBU0EsZ0JBQWdCQyxZQUFtQztJQUN6RSxPQUFPLGVBQWVDLFNBQVNDLENBQUMsRUFBRUMsSUFBSSxFQUFFQyxPQUFPO1FBQzdDLElBQUksRUFBRUMsR0FBRyxFQUFFLEdBQUdEO1FBQ2QsTUFBTUUsU0FBU0QsSUFBSUMsTUFBTTtRQUN6QixNQUFNQyxpQkFBaUJGLElBQUlFLGNBQWM7UUFDekNGLE1BQU1HLElBQUFBLDhCQUFxQixFQUFDSCxLQUFLO1FBQ2pDQSxNQUFNRyxJQUFBQSw4QkFBcUIsRUFBQ0gsS0FBSztRQUNqQ0EsSUFBSUMsTUFBTSxHQUFHSCxLQUFLRyxNQUFNLElBQUlBO1FBQzVCRCxJQUFJRSxjQUFjLEdBQUdKLEtBQUtJLGNBQWMsSUFBSUE7UUFFNUMsSUFBSSxDQUFDRixJQUFJSSxLQUFLLEVBQUVKLElBQUlJLEtBQUssR0FBRyxDQUFDO1FBRTdCLE1BQU1DLFFBQ0pQLEtBQUtPLEtBQUssSUFBSUwsSUFBSUksS0FBSyxFQUFFQyxVQUFVLFVBQy9CLFFBQ0FMLElBQUlJLEtBQUssRUFBRUMsVUFBVSxTQUNuQixPQUNBQztRQUNSLElBQUksT0FBT0QsVUFBVSxXQUFXTCxJQUFJSSxLQUFLLENBQUNDLEtBQUssR0FBR0UsT0FBT0Y7UUFFekROLFFBQVFDLEdBQUcsR0FBR0E7UUFFZCxNQUFNUSxVQUFVO1lBQ2RDLE1BQU1kLGFBQWFjLElBQUk7WUFDdkJDLE9BQU87WUFDUEwsT0FBT1AsS0FBS08sS0FBSztZQUNqQlY7WUFDQUssS0FBS0csSUFBQUEsOEJBQXFCLEVBQUNILEtBQUs7UUFDbEM7UUFFQSxNQUFNVyxTQUFTLE1BQU1DLElBQUFBLGdCQUFPLEVBQUNKO1FBQzdCLE9BQU9HO0lBQ1Q7QUFDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../../src/globals/graphql/resolvers/findVersionByID.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;CACd,KACE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,GAAG,QAAQ,CAgB7F"}
1
+ {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../../src/globals/graphql/resolvers/findVersionByID.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;CACd,KACE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,GAAG,QAAQ,CAsB7F"}
@@ -17,18 +17,23 @@ function _interop_require_default(obj) {
17
17
  }
18
18
  function findVersionByIDResolver(globalConfig) {
19
19
  return async function resolver(_, args, context) {
20
- if (args.locale) context.req.locale = args.locale;
21
- if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale;
20
+ let { req } = context;
21
+ const locale = req.locale;
22
+ const fallbackLocale = req.fallbackLocale;
23
+ req = (0, _isolateObjectProperty.default)(req, 'locale');
24
+ req = (0, _isolateObjectProperty.default)(req, 'fallbackLocale');
25
+ req.locale = args.locale || locale;
26
+ req.fallbackLocale = args.fallbackLocale || fallbackLocale;
27
+ context.req = req;
22
28
  const options = {
23
29
  id: args.id,
24
30
  depth: 0,
25
- draft: args.draft,
26
31
  globalConfig,
27
- req: (0, _isolateObjectProperty.default)(context.req, 'transactionID')
32
+ req: (0, _isolateObjectProperty.default)(req, 'transactionID')
28
33
  };
29
34
  const result = await (0, _findVersionByID.default)(options);
30
35
  return result;
31
36
  };
32
37
  }
33
38
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kVmVyc2lvbkJ5SUQgZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9maW5kVmVyc2lvbkJ5SUQnXG5cbmV4cG9ydCB0eXBlIFJlc29sdmVyID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gIH0sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPERvY3VtZW50PlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kVmVyc2lvbkJ5SURSZXNvbHZlcihnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyk6IFJlc29sdmVyIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBpZiAoYXJncy5sb2NhbGUpIGNvbnRleHQucmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlXG4gICAgaWYgKGFyZ3MuZmFsbGJhY2tMb2NhbGUpIGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGlkOiBhcmdzLmlkLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkcmFmdDogYXJncy5kcmFmdCxcbiAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgIHJlcTogaXNvbGF0ZU9iamVjdFByb3BlcnR5PFBheWxvYWRSZXF1ZXN0Pihjb250ZXh0LnJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kVmVyc2lvbkJ5SUQob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwibG9jYWxlIiwicmVxIiwiZmFsbGJhY2tMb2NhbGUiLCJvcHRpb25zIiwiaWQiLCJkZXB0aCIsImRyYWZ0IiwiaXNvbGF0ZU9iamVjdFByb3BlcnR5IiwicmVzdWx0IiwiZmluZFZlcnNpb25CeUlEIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0JwQzs7O2VBQXdCQTs7OzhFQWpCVTt3RUFDTjs7Ozs7O0FBZ0JiLFNBQVNBLHdCQUF3QkMsWUFBbUM7SUFDakYsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTUMsVUFBVTtZQUNkQyxJQUFJTixLQUFLTSxFQUFFO1lBQ1hDLE9BQU87WUFDUEMsT0FBT1IsS0FBS1EsS0FBSztZQUNqQlg7WUFDQU0sS0FBS00sSUFBQUEsOEJBQXFCLEVBQWlCUixRQUFRRSxHQUFHLEVBQUU7UUFDMUQ7UUFFQSxNQUFNTyxTQUFTLE1BQU1DLElBQUFBLHdCQUFlLEVBQUNOO1FBQ3JDLE9BQU9LO0lBQ1Q7QUFDRiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kVmVyc2lvbkJ5SUQgZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9maW5kVmVyc2lvbkJ5SUQnXG5cbmV4cG9ydCB0eXBlIFJlc29sdmVyID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gIH0sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPERvY3VtZW50PlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kVmVyc2lvbkJ5SURSZXNvbHZlcihnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyk6IFJlc29sdmVyIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBsZXQgeyByZXEgfSA9IGNvbnRleHRcbiAgICBjb25zdCBsb2NhbGUgPSByZXEubG9jYWxlXG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGUgPSByZXEuZmFsbGJhY2tMb2NhbGVcbiAgICByZXEgPSBpc29sYXRlT2JqZWN0UHJvcGVydHkocmVxLCAnbG9jYWxlJylcbiAgICByZXEgPSBpc29sYXRlT2JqZWN0UHJvcGVydHkocmVxLCAnZmFsbGJhY2tMb2NhbGUnKVxuICAgIHJlcS5sb2NhbGUgPSBhcmdzLmxvY2FsZSB8fCBsb2NhbGVcbiAgICByZXEuZmFsbGJhY2tMb2NhbGUgPSBhcmdzLmZhbGxiYWNrTG9jYWxlIHx8IGZhbGxiYWNrTG9jYWxlXG5cbiAgICBjb250ZXh0LnJlcSA9IHJlcVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGlkOiBhcmdzLmlkLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVPYmplY3RQcm9wZXJ0eTxQYXlsb2FkUmVxdWVzdD4ocmVxLCAndHJhbnNhY3Rpb25JRCcpLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpbmRWZXJzaW9uQnlJRChvcHRpb25zKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZpbmRWZXJzaW9uQnlJRFJlc29sdmVyIiwiZ2xvYmFsQ29uZmlnIiwicmVzb2x2ZXIiLCJfIiwiYXJncyIsImNvbnRleHQiLCJyZXEiLCJsb2NhbGUiLCJmYWxsYmFja0xvY2FsZSIsImlzb2xhdGVPYmplY3RQcm9wZXJ0eSIsIm9wdGlvbnMiLCJpZCIsImRlcHRoIiwicmVzdWx0IiwiZmluZFZlcnNpb25CeUlEIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0JwQzs7O2VBQXdCQTs7OzhFQWpCVTt3RUFDTjs7Ozs7O0FBZ0JiLFNBQVNBLHdCQUF3QkMsWUFBbUM7SUFDakYsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJLEVBQUVDLEdBQUcsRUFBRSxHQUFHRDtRQUNkLE1BQU1FLFNBQVNELElBQUlDLE1BQU07UUFDekIsTUFBTUMsaUJBQWlCRixJQUFJRSxjQUFjO1FBQ3pDRixNQUFNRyxJQUFBQSw4QkFBcUIsRUFBQ0gsS0FBSztRQUNqQ0EsTUFBTUcsSUFBQUEsOEJBQXFCLEVBQUNILEtBQUs7UUFDakNBLElBQUlDLE1BQU0sR0FBR0gsS0FBS0csTUFBTSxJQUFJQTtRQUM1QkQsSUFBSUUsY0FBYyxHQUFHSixLQUFLSSxjQUFjLElBQUlBO1FBRTVDSCxRQUFRQyxHQUFHLEdBQUdBO1FBRWQsTUFBTUksVUFBVTtZQUNkQyxJQUFJUCxLQUFLTyxFQUFFO1lBQ1hDLE9BQU87WUFDUFg7WUFDQUssS0FBS0csSUFBQUEsOEJBQXFCLEVBQWlCSCxLQUFLO1FBQ2xEO1FBRUEsTUFBTU8sU0FBUyxNQUFNQyxJQUFBQSx3QkFBZSxFQUFDSjtRQUNyQyxPQUFPRztJQUNUO0FBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/globals/graphql/resolvers/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D,KAAK,QAAQ,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAC7D,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;CACd,KACE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAE9C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EAClF,YAAY,EAAE,qBAAqB,GAClC,QAAQ,CAAC,KAAK,CAAC,CAmBjB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/globals/graphql/resolvers/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D,KAAK,QAAQ,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAC7D,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAChE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;CACd,KACE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAE9C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EAClF,YAAY,EAAE,qBAAqB,GAClC,QAAQ,CAAC,KAAK,CAAC,CAiCjB"}
@@ -17,20 +17,28 @@ function _interop_require_default(obj) {
17
17
  }
18
18
  function updateResolver(globalConfig) {
19
19
  return async function resolver(_, args, context) {
20
- if (args.locale) context.req.locale = args.locale;
21
- if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale;
22
- const { slug } = globalConfig;
20
+ let { req } = context;
21
+ const locale = req.locale;
22
+ const fallbackLocale = req.fallbackLocale;
23
+ req = (0, _isolateObjectProperty.default)(req, 'locale');
24
+ req = (0, _isolateObjectProperty.default)(req, 'fallbackLocale');
25
+ req.locale = args.locale || locale;
26
+ req.fallbackLocale = args.fallbackLocale || fallbackLocale;
27
+ if (!req.query) req.query = {};
28
+ const draft = args.draft ?? req.query?.draft === 'false' ? false : req.query?.draft === 'true' ? true : undefined;
29
+ if (typeof draft === 'boolean') req.query.draft = String(draft);
30
+ context.req = req;
23
31
  const options = {
32
+ slug: globalConfig.slug,
24
33
  data: args.data,
25
34
  depth: 0,
26
35
  draft: args.draft,
27
36
  globalConfig,
28
- req: (0, _isolateObjectProperty.default)(context.req, 'transactionID'),
29
- slug
37
+ req: (0, _isolateObjectProperty.default)(req, 'transactionID')
30
38
  };
31
39
  const result = await (0, _update.default)(options);
32
40
  return result;
33
41
  };
34
42
  }
35
43
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8nXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgaXNvbGF0ZU9iamVjdFByb3BlcnR5IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9pc29sYXRlT2JqZWN0UHJvcGVydHknXG5pbXBvcnQgdXBkYXRlIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvdXBkYXRlJ1xuXG50eXBlIFJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4gPSAoXG4gIF86IHVua25vd24sXG4gIGFyZ3M6IHtcbiAgICBkYXRhPzogRGVlcFBhcnRpYWw8T21pdDxHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RTbHVnXSwgJ2lkJz4+XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgfSxcbiAgY29udGV4dDoge1xuICAgIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgICByZXM6IFJlc3BvbnNlXG4gIH0sXG4pID0+IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10+XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gIGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnLFxuKTogUmVzb2x2ZXI8VFNsdWc+IHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBpZiAoYXJncy5sb2NhbGUpIGNvbnRleHQucmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlXG4gICAgaWYgKGFyZ3MuZmFsbGJhY2tMb2NhbGUpIGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZVxuXG4gICAgY29uc3QgeyBzbHVnIH0gPSBnbG9iYWxDb25maWdcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBkYXRhOiBhcmdzLmRhdGEsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIGRyYWZ0OiBhcmdzLmRyYWZ0LFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgcmVxOiBpc29sYXRlT2JqZWN0UHJvcGVydHk8UGF5bG9hZFJlcXVlc3Q+KGNvbnRleHQucmVxLCAndHJhbnNhY3Rpb25JRCcpLFxuICAgICAgc2x1ZyxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1cGRhdGU8VFNsdWc+KG9wdGlvbnMpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsidXBkYXRlUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsImxvY2FsZSIsInJlcSIsImZhbGxiYWNrTG9jYWxlIiwic2x1ZyIsIm9wdGlvbnMiLCJkYXRhIiwiZGVwdGgiLCJkcmFmdCIsImlzb2xhdGVPYmplY3RQcm9wZXJ0eSIsInJlc3VsdCIsInVwZGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQXdCcEM7OztlQUF3QkE7Ozs4RUFqQlU7K0RBQ2Y7Ozs7OztBQWdCSixTQUFTQSxlQUN0QkMsWUFBbUM7SUFFbkMsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR1I7UUFFakIsTUFBTVMsVUFBVTtZQUNkQyxNQUFNUCxLQUFLTyxJQUFJO1lBQ2ZDLE9BQU87WUFDUEMsT0FBT1QsS0FBS1MsS0FBSztZQUNqQlo7WUFDQU0sS0FBS08sSUFBQUEsOEJBQXFCLEVBQWlCVCxRQUFRRSxHQUFHLEVBQUU7WUFDeERFO1FBQ0Y7UUFFQSxNQUFNTSxTQUFTLE1BQU1DLElBQUFBLGVBQU0sRUFBUU47UUFDbkMsT0FBT0s7SUFDVDtBQUNGIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8nXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgaXNvbGF0ZU9iamVjdFByb3BlcnR5IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9pc29sYXRlT2JqZWN0UHJvcGVydHknXG5pbXBvcnQgdXBkYXRlIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvdXBkYXRlJ1xuXG50eXBlIFJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4gPSAoXG4gIF86IHVua25vd24sXG4gIGFyZ3M6IHtcbiAgICBkYXRhPzogRGVlcFBhcnRpYWw8T21pdDxHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RTbHVnXSwgJ2lkJz4+XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgfSxcbiAgY29udGV4dDoge1xuICAgIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgICByZXM6IFJlc3BvbnNlXG4gIH0sXG4pID0+IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10+XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gIGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnLFxuKTogUmVzb2x2ZXI8VFNsdWc+IHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBsZXQgeyByZXEgfSA9IGNvbnRleHRcbiAgICBjb25zdCBsb2NhbGUgPSByZXEubG9jYWxlXG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGUgPSByZXEuZmFsbGJhY2tMb2NhbGVcbiAgICByZXEgPSBpc29sYXRlT2JqZWN0UHJvcGVydHk8UGF5bG9hZFJlcXVlc3Q+KHJlcSwgJ2xvY2FsZScpXG4gICAgcmVxID0gaXNvbGF0ZU9iamVjdFByb3BlcnR5PFBheWxvYWRSZXF1ZXN0PihyZXEsICdmYWxsYmFja0xvY2FsZScpXG4gICAgcmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGxvY2FsZVxuICAgIHJlcS5mYWxsYmFja0xvY2FsZSA9IGFyZ3MuZmFsbGJhY2tMb2NhbGUgfHwgZmFsbGJhY2tMb2NhbGVcbiAgICBpZiAoIXJlcS5xdWVyeSkgcmVxLnF1ZXJ5ID0ge31cblxuICAgIGNvbnN0IGRyYWZ0OiBib29sZWFuID1cbiAgICAgIGFyZ3MuZHJhZnQgPz8gcmVxLnF1ZXJ5Py5kcmFmdCA9PT0gJ2ZhbHNlJ1xuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogcmVxLnF1ZXJ5Py5kcmFmdCA9PT0gJ3RydWUnXG4gICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICBpZiAodHlwZW9mIGRyYWZ0ID09PSAnYm9vbGVhbicpIHJlcS5xdWVyeS5kcmFmdCA9IFN0cmluZyhkcmFmdClcblxuICAgIGNvbnRleHQucmVxID0gcmVxXG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2x1ZzogZ2xvYmFsQ29uZmlnLnNsdWcsXG4gICAgICBkYXRhOiBhcmdzLmRhdGEsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIGRyYWZ0OiBhcmdzLmRyYWZ0LFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgcmVxOiBpc29sYXRlT2JqZWN0UHJvcGVydHk8UGF5bG9hZFJlcXVlc3Q+KHJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1cGRhdGU8VFNsdWc+KG9wdGlvbnMpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsidXBkYXRlUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsInJlcSIsImxvY2FsZSIsImZhbGxiYWNrTG9jYWxlIiwiaXNvbGF0ZU9iamVjdFByb3BlcnR5IiwicXVlcnkiLCJkcmFmdCIsInVuZGVmaW5lZCIsIlN0cmluZyIsIm9wdGlvbnMiLCJzbHVnIiwiZGF0YSIsImRlcHRoIiwicmVzdWx0IiwidXBkYXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0JwQzs7O2VBQXdCQTs7OzhFQWpCVTsrREFDZjs7Ozs7O0FBZ0JKLFNBQVNBLGVBQ3RCQyxZQUFtQztJQUVuQyxPQUFPLGVBQWVDLFNBQVNDLENBQUMsRUFBRUMsSUFBSSxFQUFFQyxPQUFPO1FBQzdDLElBQUksRUFBRUMsR0FBRyxFQUFFLEdBQUdEO1FBQ2QsTUFBTUUsU0FBU0QsSUFBSUMsTUFBTTtRQUN6QixNQUFNQyxpQkFBaUJGLElBQUlFLGNBQWM7UUFDekNGLE1BQU1HLElBQUFBLDhCQUFxQixFQUFpQkgsS0FBSztRQUNqREEsTUFBTUcsSUFBQUEsOEJBQXFCLEVBQWlCSCxLQUFLO1FBQ2pEQSxJQUFJQyxNQUFNLEdBQUdILEtBQUtHLE1BQU0sSUFBSUE7UUFDNUJELElBQUlFLGNBQWMsR0FBR0osS0FBS0ksY0FBYyxJQUFJQTtRQUM1QyxJQUFJLENBQUNGLElBQUlJLEtBQUssRUFBRUosSUFBSUksS0FBSyxHQUFHLENBQUM7UUFFN0IsTUFBTUMsUUFDSlAsS0FBS08sS0FBSyxJQUFJTCxJQUFJSSxLQUFLLEVBQUVDLFVBQVUsVUFDL0IsUUFDQUwsSUFBSUksS0FBSyxFQUFFQyxVQUFVLFNBQ25CLE9BQ0FDO1FBQ1IsSUFBSSxPQUFPRCxVQUFVLFdBQVdMLElBQUlJLEtBQUssQ0FBQ0MsS0FBSyxHQUFHRSxPQUFPRjtRQUV6RE4sUUFBUUMsR0FBRyxHQUFHQTtRQUVkLE1BQU1RLFVBQVU7WUFDZEMsTUFBTWQsYUFBYWMsSUFBSTtZQUN2QkMsTUFBTVosS0FBS1ksSUFBSTtZQUNmQyxPQUFPO1lBQ1BOLE9BQU9QLEtBQUtPLEtBQUs7WUFDakJWO1lBQ0FLLEtBQUtHLElBQUFBLDhCQUFxQixFQUFpQkgsS0FBSztRQUNsRDtRQUVBLE1BQU1ZLFNBQVMsTUFBTUMsSUFBQUEsZUFBTSxFQUFRTDtRQUNuQyxPQUFPSTtJQUNUO0FBQ0YifQ==
@@ -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,UAAW,MAAM,aAAa,MAAM,KAAG,MAGjE,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":";AAEA,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;;;GA0BrE"}
@@ -28,14 +28,21 @@ const percentToPixel = (value, dimension)=>{
28
28
  };
29
29
  async function cropImage({ cropData, dimensions, file }) {
30
30
  try {
31
+ const fileIsAnimated = [
32
+ 'image/avif',
33
+ 'image/gif',
34
+ 'image/webp'
35
+ ].includes(file.mimetype);
31
36
  const { height, width, x, y } = cropData;
37
+ const sharpOptions = {};
38
+ if (fileIsAnimated) sharpOptions.animated = true;
32
39
  const formattedCropData = {
33
40
  height: percentToPixel(height, dimensions.height),
34
41
  left: percentToPixel(x, dimensions.width),
35
42
  top: percentToPixel(y, dimensions.height),
36
43
  width: percentToPixel(width, dimensions.width)
37
44
  };
38
- const cropped = (0, _sharp.default)(file.tempFilePath || file.data).extract(formattedCropData);
45
+ const cropped = (0, _sharp.default)(file.tempFilePath || file.data, sharpOptions).extract(formattedCropData);
39
46
  return await cropped.toBuffer({
40
47
  resolveWithObject: true
41
48
  });
@@ -45,4 +52,4 @@ async function cropImage({ cropData, dimensions, file }) {
45
52
  }
46
53
  }
47
54
 
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZTogc3RyaW5nLCBkaW1lbnNpb246IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGlmICghdmFsdWUpIHJldHVybiAwXG4gIHJldHVybiBNYXRoLmZsb29yKChwYXJzZUZsb2F0KHZhbHVlKSAvIDEwMCkgKiBkaW1lbnNpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGhlaWdodCwgd2lkdGgsIHgsIHkgfSA9IGNyb3BEYXRhXG5cbiAgICBjb25zdCBmb3JtYXR0ZWRDcm9wRGF0YTogc2hhcnAuUmVnaW9uID0ge1xuICAgICAgaGVpZ2h0OiBwZXJjZW50VG9QaXhlbChoZWlnaHQsIGRpbWVuc2lvbnMuaGVpZ2h0KSxcbiAgICAgIGxlZnQ6IHBlcmNlbnRUb1BpeGVsKHgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgICAgdG9wOiBwZXJjZW50VG9QaXhlbCh5LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICB3aWR0aDogcGVyY2VudFRvUGl4ZWwod2lkdGgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgIH1cblxuICAgIGNvbnN0IGNyb3BwZWQgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLmV4dHJhY3QoZm9ybWF0dGVkQ3JvcERhdGEpXG5cbiAgICByZXR1cm4gYXdhaXQgY3JvcHBlZC50b0J1ZmZlcih7XG4gICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNyb3BwaW5nIGltYWdlOmAsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcm9wSW1hZ2UiLCJwZXJjZW50VG9QaXhlbCIsInZhbHVlIiwiZGltZW5zaW9uIiwiTWF0aCIsImZsb29yIiwicGFyc2VGbG9hdCIsImNyb3BEYXRhIiwiZGltZW5zaW9ucyIsImZpbGUiLCJoZWlnaHQiLCJ3aWR0aCIsIngiLCJ5IiwiZm9ybWF0dGVkQ3JvcERhdGEiLCJsZWZ0IiwidG9wIiwiY3JvcHBlZCIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsImV4dHJhY3QiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQU9BLE9Bb0JDO2VBcEI2QkE7O0lBTGpCQyxjQUFjO2VBQWRBOzs7OERBRks7Ozs7OztBQUVYLE1BQU1BLGlCQUFpQixDQUFDQyxPQUFlQztJQUM1QyxJQUFJLENBQUNELE9BQU8sT0FBTztJQUNuQixPQUFPRSxLQUFLQyxLQUFLLENBQUMsQUFBQ0MsV0FBV0osU0FBUyxNQUFPQztBQUNoRDtBQUVlLGVBQWVILFVBQVUsRUFBRU8sUUFBUSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRTtJQUNwRSxJQUFJO1FBQ0YsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR047UUFFaEMsTUFBTU8sb0JBQWtDO1lBQ3RDSixRQUFRVCxlQUFlUyxRQUFRRixXQUFXRSxNQUFNO1lBQ2hESyxNQUFNZCxlQUFlVyxHQUFHSixXQUFXRyxLQUFLO1lBQ3hDSyxLQUFLZixlQUFlWSxHQUFHTCxXQUFXRSxNQUFNO1lBQ3hDQyxPQUFPVixlQUFlVSxPQUFPSCxXQUFXRyxLQUFLO1FBQy9DO1FBRUEsTUFBTU0sVUFBVUMsSUFBQUEsY0FBSyxFQUFDVCxLQUFLVSxZQUFZLElBQUlWLEtBQUtXLElBQUksRUFBRUMsT0FBTyxDQUFDUDtRQUU5RCxPQUFPLE1BQU1HLFFBQVFLLFFBQVEsQ0FBQztZQUM1QkMsbUJBQW1CO1FBQ3JCO0lBQ0YsRUFBRSxPQUFPQyxPQUFPO1FBQ2RDLFFBQVFELEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQUVBO1FBQ3ZDLE1BQU1BO0lBQ1I7QUFDRiJ9
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNoYXJwT3B0aW9ucyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZTogc3RyaW5nLCBkaW1lbnNpb246IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGlmICghdmFsdWUpIHJldHVybiAwXG4gIHJldHVybiBNYXRoLmZsb29yKChwYXJzZUZsb2F0KHZhbHVlKSAvIDEwMCkgKiBkaW1lbnNpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlSXNBbmltYXRlZCA9IFsnaW1hZ2UvYXZpZicsICdpbWFnZS9naWYnLCAnaW1hZ2Uvd2VicCddLmluY2x1ZGVzKGZpbGUubWltZXR5cGUpXG5cbiAgICBjb25zdCB7IGhlaWdodCwgd2lkdGgsIHgsIHkgfSA9IGNyb3BEYXRhXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWQpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGNvbnN0IGZvcm1hdHRlZENyb3BEYXRhOiBzaGFycC5SZWdpb24gPSB7XG4gICAgICBoZWlnaHQ6IHBlcmNlbnRUb1BpeGVsKGhlaWdodCwgZGltZW5zaW9ucy5oZWlnaHQpLFxuICAgICAgbGVmdDogcGVyY2VudFRvUGl4ZWwoeCwgZGltZW5zaW9ucy53aWR0aCksXG4gICAgICB0b3A6IHBlcmNlbnRUb1BpeGVsKHksIGRpbWVuc2lvbnMuaGVpZ2h0KSxcbiAgICAgIHdpZHRoOiBwZXJjZW50VG9QaXhlbCh3aWR0aCwgZGltZW5zaW9ucy53aWR0aCksXG4gICAgfVxuXG4gICAgY29uc3QgY3JvcHBlZCA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5leHRyYWN0KGZvcm1hdHRlZENyb3BEYXRhKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyb3BwZWQudG9CdWZmZXIoe1xuICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBFcnJvciBjcm9wcGluZyBpbWFnZTpgLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiY3JvcEltYWdlIiwicGVyY2VudFRvUGl4ZWwiLCJ2YWx1ZSIsImRpbWVuc2lvbiIsIk1hdGgiLCJmbG9vciIsInBhcnNlRmxvYXQiLCJjcm9wRGF0YSIsImRpbWVuc2lvbnMiLCJmaWxlIiwiZmlsZUlzQW5pbWF0ZWQiLCJpbmNsdWRlcyIsIm1pbWV0eXBlIiwiaGVpZ2h0Iiwid2lkdGgiLCJ4IiwieSIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwiZm9ybWF0dGVkQ3JvcERhdGEiLCJsZWZ0IiwidG9wIiwiY3JvcHBlZCIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsImV4dHJhY3QiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVNBLE9BMEJDO2VBMUI2QkE7O0lBTGpCQyxjQUFjO2VBQWRBOzs7OERBRks7Ozs7OztBQUVYLE1BQU1BLGlCQUFpQixDQUFDQyxPQUFlQztJQUM1QyxJQUFJLENBQUNELE9BQU8sT0FBTztJQUNuQixPQUFPRSxLQUFLQyxLQUFLLENBQUMsQUFBQ0MsV0FBV0osU0FBUyxNQUFPQztBQUNoRDtBQUVlLGVBQWVILFVBQVUsRUFBRU8sUUFBUSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRTtJQUNwRSxJQUFJO1FBQ0YsTUFBTUMsaUJBQWlCO1lBQUM7WUFBYztZQUFhO1NBQWEsQ0FBQ0MsUUFBUSxDQUFDRixLQUFLRyxRQUFRO1FBRXZGLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUdUO1FBRWhDLE1BQU1VLGVBQTZCLENBQUM7UUFFcEMsSUFBSVAsZ0JBQWdCTyxhQUFhQyxRQUFRLEdBQUc7UUFFNUMsTUFBTUMsb0JBQWtDO1lBQ3RDTixRQUFRWixlQUFlWSxRQUFRTCxXQUFXSyxNQUFNO1lBQ2hETyxNQUFNbkIsZUFBZWMsR0FBR1AsV0FBV00sS0FBSztZQUN4Q08sS0FBS3BCLGVBQWVlLEdBQUdSLFdBQVdLLE1BQU07WUFDeENDLE9BQU9iLGVBQWVhLE9BQU9OLFdBQVdNLEtBQUs7UUFDL0M7UUFFQSxNQUFNUSxVQUFVQyxJQUFBQSxjQUFLLEVBQUNkLEtBQUtlLFlBQVksSUFBSWYsS0FBS2dCLElBQUksRUFBRVIsY0FBY1MsT0FBTyxDQUFDUDtRQUU1RSxPQUFPLE1BQU1HLFFBQVFLLFFBQVEsQ0FBQztZQUM1QkMsbUJBQW1CO1FBQ3JCO0lBQ0YsRUFBRSxPQUFPQyxPQUFPO1FBQ2RDLFFBQVFELEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQUVBO1FBQ3ZDLE1BQU1BO0lBQ1I7QUFDRiJ9
@@ -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,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,iKAyP5B,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,iKA0P5B,CAAA"}
@@ -83,7 +83,11 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
83
83
  let newData = data;
84
84
  const filesToSave = [];
85
85
  const fileData = {};
86
- const fileIsAnimated = file.mimetype === 'image/gif' || file.mimetype === 'image/webp';
86
+ const fileIsAnimated = [
87
+ 'image/avif',
88
+ 'image/gif',
89
+ 'image/webp'
90
+ ].includes(file.mimetype);
87
91
  const cropData = typeof uploadEdits === 'object' && 'crop' in uploadEdits ? uploadEdits.crop : undefined;
88
92
  try {
89
93
  const fileSupportsResize = (0, _canResizeImage.default)(file.mimetype);
@@ -93,7 +97,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
93
97
  let fileBuffer;
94
98
  let ext;
95
99
  let mime;
96
- const fileHasAdjustments = fileSupportsResize && Boolean(resizeOptions || formatOptions || trimOptions || file.tempFilePath);
100
+ const fileHasAdjustments = fileSupportsResize && Boolean(resizeOptions || formatOptions || imageSizes || trimOptions || file.tempFilePath);
97
101
  const sharpOptions = {};
98
102
  if (fileIsAnimated) sharpOptions.animated = true;
99
103
  if (fileHasAdjustments) {
@@ -159,6 +163,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
159
163
  fileData.filename = fsSafeName;
160
164
  let fileForResize = file;
161
165
  if (cropData) {
166
+ const metadata = await sharpFile.metadata();
162
167
  const { data: croppedImage, info } = await (0, _cropImage.default)({
163
168
  cropData,
164
169
  dimensions,
@@ -174,7 +179,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
174
179
  size: info.size
175
180
  };
176
181
  fileData.width = info.width;
177
- fileData.height = info.height;
182
+ fileData.height = fileIsAnimated ? info.height / metadata.pages : info.height;
178
183
  fileData.filesize = info.size;
179
184
  if (file.tempFilePath) {
180
185
  await _fs.default.promises.writeFile(file.tempFilePath, croppedImage) // write fileBuffer to the temp path
@@ -270,4 +275,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
270
275
  return uploadEdits;
271
276
  }
272
277
 
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICB9ID0gY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2UgYXMgVXBsb2FkZWRGaWxlXG4gICAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGZpbGVuYW1lICYmIHVybCkge1xuICAgICAgICBmaWxlID0gKGF3YWl0IGdldEV4dGVybmFsRmlsZSh7XG4gICAgICAgICAgZGF0YTogZGF0YSBhcyBGaWxlRGF0YSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgdXBsb2FkQ29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCxcbiAgICAgICAgfSkpIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBGaWxlUmV0cmlldmFsRXJyb3IocmVxLnQsIGVyci5tZXNzYWdlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkID0gZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL2dpZicgfHwgZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnXG4gIGNvbnN0IGNyb3BEYXRhID1cbiAgICB0eXBlb2YgdXBsb2FkRWRpdHMgPT09ICdvYmplY3QnICYmICdjcm9wJyBpbiB1cGxvYWRFZGl0cyA/IHVwbG9hZEVkaXRzLmNyb3AgOiB1bmRlZmluZWRcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyOiB7IGRhdGE6IEJ1ZmZlcjsgaW5mbzogT3V0cHV0SW5mbyB9XG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcbiAgICBjb25zdCBmaWxlSGFzQWRqdXN0bWVudHMgPVxuICAgICAgZmlsZVN1cHBvcnRzUmVzaXplICYmXG4gICAgICBCb29sZWFuKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCB0cmltT3B0aW9ucyB8fCBmaWxlLnRlbXBGaWxlUGF0aClcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZCkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGZpbGVIYXNBZGp1c3RtZW50cykge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUucmVzaXplKHJlc2l6ZU9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudG9Gb3JtYXQoZm9ybWF0T3B0aW9ucy5mb3JtYXQsIGZvcm1hdE9wdGlvbnMub3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudHJpbSh0cmltT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZVN1cHBvcnRzUmVzaXplIHx8IGlzSW1hZ2UoZmlsZS5taW1ldHlwZSkpIHtcbiAgICAgIGRpbWVuc2lvbnMgPSBhd2FpdCBnZXRJbWFnZVNpemUoZmlsZSlcbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZGltZW5zaW9ucy53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG5cbiAgICBpZiAoc2hhcnBGaWxlKSB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHQgPSAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBpbmZvLnNpemVcblxuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgY3JvcHBlZEltYWdlKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5maWxlcy5maWxlID0gZmlsZUZvclJlc2l6ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICAvLyBJZiB1c2luZyB0ZW1wIGZpbGVzIGFuZCB0aGUgaW1hZ2UgaXMgYmVpbmcgcmVzaXplZCwgd3JpdGUgdGhlIGZpbGUgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgaWYgKGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXNzaWduIHRoZSBfcG9zc2libHkgbW9kaWZpZWRfIGZpbGUgdG8gdGhlIHJlcXVlc3Qgb2JqZWN0XG4gICAgICAgICAgcmVxLmZpbGVzLmZpbGUgPSB7XG4gICAgICAgICAgICAuLi5maWxlLFxuICAgICAgICAgICAgZGF0YTogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgICAgICBzaXplOiBmaWxlQnVmZmVyPy5pbmZvLnNpemUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJiAoQXJyYXkuaXNBcnJheShpbWFnZVNpemVzKSB8fCBmb2NhbFBvaW50RW5hYmxlZCAhPT0gZmFsc2UpKSB7XG4gICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzID0ge31cbiAgICAgIGNvbnN0IHsgZm9jYWxQb2ludCwgc2l6ZURhdGEsIHNpemVzVG9TYXZlIH0gPSBhd2FpdCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgICAgICAgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICBkaW1lbnNpb25zOiAhY3JvcERhdGFcbiAgICAgICAgICA/IGRpbWVuc2lvbnNcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgLi4uZGltZW5zaW9ucyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBmaWxlRGF0YS5oZWlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoOiBmaWxlRGF0YS53aWR0aCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIGZpbGU6IGZpbGVGb3JSZXNpemUsXG4gICAgICAgIG1pbWVUeXBlOiBmaWxlRGF0YS5taW1lVHlwZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzYXZlZEZpbGVuYW1lOiBmc1NhZmVOYW1lIHx8IGZpbGUubmFtZSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgICAgdXBsb2FkRWRpdHMsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlRGF0YS5mb2NhbFggPSBmb2NhbFBvaW50Py54XG4gICAgICBmaWxlRGF0YS5mb2NhbFkgPSBmb2NhbFBvaW50Py55XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmVxLnBheWxvYWQubG9nZ2VyLmVycm9yKHsgZXJyLCBtc2c6ICdFcnJvciB1cGxvYWRpbmcgZmlsZScgfSlcbiAgICB0aHJvdyBuZXcgRmlsZVVwbG9hZEVycm9yKHJlcS50KVxuICB9XG5cbiAgbmV3RGF0YSA9IHtcbiAgICAuLi5uZXdEYXRhLFxuICAgIC4uLmZpbGVEYXRhLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBuZXdEYXRhLFxuICAgIGZpbGVzOiBmaWxlc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIHVwbG9hZCBlZGl0cyBmcm9tIHJlcSBvciBpbmNvbWluZyBkYXRhXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEoYXJnczoge1xuICBkYXRhOiB1bmtub3duXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBvcmlnaW5hbERvYzogdW5rbm93blxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59KTogVXBsb2FkRWRpdHMge1xuICBjb25zdCB7IGRhdGEsIG9wZXJhdGlvbiwgb3JpZ2luYWxEb2MsIHJlcSB9ID0gYXJnc1xuXG4gIC8vIEdldCBpbnRlbmRlZCBmb2NhbCBwb2ludCBjaGFuZ2UgZnJvbSBxdWVyeSBzdHJpbmcgb3IgaW5jb21pbmcgZGF0YVxuICBjb25zdCB7XG4gICAgdXBsb2FkRWRpdHMgPSB7fSxcbiAgfToge1xuICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgfSA9IHJlcS5xdWVyeSB8fCB7fVxuXG4gIGlmICh1cGxvYWRFZGl0cy5mb2NhbFBvaW50KSByZXR1cm4gdXBsb2FkRWRpdHNcblxuICBjb25zdCBpbmNvbWluZ0RhdGEgPSBkYXRhIGFzIEZpbGVEYXRhXG4gIGNvbnN0IG9yaWdEb2MgPSBvcmlnaW5hbERvYyBhcyBGaWxlRGF0YVxuXG4gIC8vIElmIG5vIGNoYW5nZSBpbiBmb2NhbCBwb2ludCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgLy8gVGhpcyBwcmV2ZW50cyBhIHJlZm9jYWwgb3BlcmF0aW9uIHRyaWdnZXJlZCBmcm9tIGFkbWluLCBiZWNhdXNlIGl0IGFsd2F5cyBzZW5kcyB0aGUgZm9jYWwgcG9pbnQuXG4gIGlmIChvcmlnRG9jICYmIGluY29taW5nRGF0YS5mb2NhbFggPT09IG9yaWdEb2MuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkgPT09IG9yaWdEb2MuZm9jYWxZKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgaWYgKGluY29taW5nRGF0YS5mb2NhbFggJiYgaW5jb21pbmdEYXRhLmZvY2FsWSkge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiBpbmNvbWluZ0RhdGEuZm9jYWxYLFxuICAgICAgeTogaW5jb21pbmdEYXRhLmZvY2FsWSxcbiAgICB9XG4gICAgcmV0dXJuIHVwbG9hZEVkaXRzXG4gIH1cblxuICAvLyBJZiBubyBmb2NhbCBwb2ludCBpcyBzZXQsIGRlZmF1bHQgdG8gY2VudGVyXG4gIGlmIChvcGVyYXRpb24gPT09ICdjcmVhdGUnKSB7XG4gICAgdXBsb2FkRWRpdHMuZm9jYWxQb2ludCA9IHtcbiAgICAgIHg6IDUwLFxuICAgICAgeTogNTAsXG4gICAgfVxuICB9XG4gIHJldHVybiB1cGxvYWRFZGl0c1xufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlRmlsZURhdGEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbkNvbmZpZyIsImRhdGEiLCJvcGVyYXRpb24iLCJvcmlnaW5hbERvYyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9jYWxQb2ludCIsImZvY2FsUG9pbnRFbmFibGVkIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsInVybCIsInN0YXJ0c1dpdGgiLCJmaWxlUGF0aCIsInJlc3BvbnNlIiwiZ2V0RmlsZUJ5UGF0aCIsImdldEV4dGVybmFsRmlsZSIsInVwbG9hZENvbmZpZyIsImVyciIsIkVycm9yIiwiRmlsZVJldHJpZXZhbEVycm9yIiwidCIsIm1lc3NhZ2UiLCJNaXNzaW5nRmlsZSIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJmaWxlSGFzQWRqdXN0bWVudHMiLCJCb29sZWFuIiwidGVtcEZpbGVQYXRoIiwic2hhcnBPcHRpb25zIiwiYW5pbWF0ZWQiLCJzaGFycCIsInJvdGF0ZSIsInJlc2l6ZSIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW0iLCJpc0ltYWdlIiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJtZXRhZGF0YSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJmcm9tQnVmZmVyIiwiaW5mbyIsImZpbGVzaXplIiwic2l6ZSIsInBhZ2VzIiwibGVuZ3RoIiwibmFtZSIsImluY2x1ZGVzIiwic3BsaXQiLCJwb3AiLCJtaW1lVHlwZSIsImJhc2VGaWxlbmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRTYWZlRmlsZU5hbWUiLCJjb2xsZWN0aW9uU2x1ZyIsInNsdWciLCJkZXNpcmVkRmlsZW5hbWUiLCJmaWxlRm9yUmVzaXplIiwiY3JvcHBlZEltYWdlIiwiY3JvcEltYWdlIiwicHVzaCIsImJ1ZmZlciIsImZzIiwicHJvbWlzZXMiLCJ3cml0ZUZpbGUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImZvY2FsWCIsIngiLCJmb2NhbFkiLCJ5IiwicGF5bG9hZCIsImxvZ2dlciIsImVycm9yIiwibXNnIiwiRmlsZVVwbG9hZEVycm9yIiwiYXJncyIsInF1ZXJ5IiwiaW5jb21pbmdEYXRhIiwib3JpZ0Rv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
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICB9ID0gY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2UgYXMgVXBsb2FkZWRGaWxlXG4gICAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGZpbGVuYW1lICYmIHVybCkge1xuICAgICAgICBmaWxlID0gKGF3YWl0IGdldEV4dGVybmFsRmlsZSh7XG4gICAgICAgICAgZGF0YTogZGF0YSBhcyBGaWxlRGF0YSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgdXBsb2FkQ29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCxcbiAgICAgICAgfSkpIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBGaWxlUmV0cmlldmFsRXJyb3IocmVxLnQsIGVyci5tZXNzYWdlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkID0gWydpbWFnZS9hdmlmJywgJ2ltYWdlL2dpZicsICdpbWFnZS93ZWJwJ10uaW5jbHVkZXMoZmlsZS5taW1ldHlwZSlcbiAgY29uc3QgY3JvcERhdGEgPVxuICAgIHR5cGVvZiB1cGxvYWRFZGl0cyA9PT0gJ29iamVjdCcgJiYgJ2Nyb3AnIGluIHVwbG9hZEVkaXRzID8gdXBsb2FkRWRpdHMuY3JvcCA6IHVuZGVmaW5lZFxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZVN1cHBvcnRzUmVzaXplID0gY2FuUmVzaXplSW1hZ2UoZmlsZS5taW1ldHlwZSlcbiAgICBsZXQgZnNTYWZlTmFtZTogc3RyaW5nXG4gICAgbGV0IHNoYXJwRmlsZTogU2hhcnAgfCB1bmRlZmluZWRcbiAgICBsZXQgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplIHwgdW5kZWZpbmVkXG4gICAgbGV0IGZpbGVCdWZmZXI6IHsgZGF0YTogQnVmZmVyOyBpbmZvOiBPdXRwdXRJbmZvIH1cbiAgICBsZXQgZXh0XG4gICAgbGV0IG1pbWU6IHN0cmluZ1xuICAgIGNvbnN0IGZpbGVIYXNBZGp1c3RtZW50cyA9XG4gICAgICBmaWxlU3VwcG9ydHNSZXNpemUgJiZcbiAgICAgIEJvb2xlYW4ocmVzaXplT3B0aW9ucyB8fCBmb3JtYXRPcHRpb25zIHx8IGltYWdlU2l6ZXMgfHwgdHJpbU9wdGlvbnMgfHwgZmlsZS50ZW1wRmlsZVBhdGgpXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWQpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChmaWxlSGFzQWRqdXN0bWVudHMpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc2l6ZU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnJlc2l6ZShyZXNpemVPcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKGZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRvRm9ybWF0KGZvcm1hdE9wdGlvbnMuZm9ybWF0LCBmb3JtYXRPcHRpb25zLm9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAodHJpbU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRyaW0odHJpbU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ID0gJydcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZHVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pXG5cbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRm9yUmVzaXplID0ge1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBkYXRhOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHNpemU6IGluZm8uc2l6ZSxcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUlzQW5pbWF0ZWQgPyBpbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzIDogaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgJiYgKEFycmF5LmlzQXJyYXkoaW1hZ2VTaXplcykgfHwgZm9jYWxQb2ludEVuYWJsZWQgIT09IGZhbHNlKSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZURhdGEuZm9jYWxYID0gZm9jYWxQb2ludD8ueFxuICAgICAgZmlsZURhdGEuZm9jYWxZID0gZm9jYWxQb2ludD8ueVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVyciwgbXNnOiAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnIH0pXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSB1cGxvYWQgZWRpdHMgZnJvbSByZXEgb3IgaW5jb21pbmcgZGF0YVxuICovXG5mdW5jdGlvbiBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKGFyZ3M6IHtcbiAgZGF0YTogdW5rbm93blxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M6IHVua25vd25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufSk6IFVwbG9hZEVkaXRzIHtcbiAgY29uc3QgeyBkYXRhLCBvcGVyYXRpb24sIG9yaWdpbmFsRG9jLCByZXEgfSA9IGFyZ3NcblxuICAvLyBHZXQgaW50ZW5kZWQgZm9jYWwgcG9pbnQgY2hhbmdlIGZyb20gcXVlcnkgc3RyaW5nIG9yIGluY29taW5nIGRhdGFcbiAgY29uc3Qge1xuICAgIHVwbG9hZEVkaXRzID0ge30sXG4gIH06IHtcbiAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gIH0gPSByZXEucXVlcnkgfHwge31cblxuICBpZiAodXBsb2FkRWRpdHMuZm9jYWxQb2ludCkgcmV0dXJuIHVwbG9hZEVkaXRzXG5cbiAgY29uc3QgaW5jb21pbmdEYXRhID0gZGF0YSBhcyBGaWxlRGF0YVxuICBjb25zdCBvcmlnRG9jID0gb3JpZ2luYWxEb2MgYXMgRmlsZURhdGFcblxuICAvLyBJZiBubyBjaGFuZ2UgaW4gZm9jYWwgcG9pbnQsIHJldHVybiB1bmRlZmluZWQuXG4gIC8vIFRoaXMgcHJldmVudHMgYSByZWZvY2FsIG9wZXJhdGlvbiB0cmlnZ2VyZWQgZnJvbSBhZG1pbiwgYmVjYXVzZSBpdCBhbHdheXMgc2VuZHMgdGhlIGZvY2FsIHBvaW50LlxuICBpZiAob3JpZ0RvYyAmJiBpbmNvbWluZ0RhdGEuZm9jYWxYID09PSBvcmlnRG9jLmZvY2FsWCAmJiBpbmNvbWluZ0RhdGEuZm9jYWxZID09PSBvcmlnRG9jLmZvY2FsWSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGlmIChpbmNvbWluZ0RhdGEuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkpIHtcbiAgICB1cGxvYWRFZGl0cy5mb2NhbFBvaW50ID0ge1xuICAgICAgeDogaW5jb21pbmdEYXRhLmZvY2FsWCxcbiAgICAgIHk6IGluY29taW5nRGF0YS5mb2NhbFksXG4gICAgfVxuICAgIHJldHVybiB1cGxvYWRFZGl0c1xuICB9XG5cbiAgLy8gSWYgbm8gZm9jYWwgcG9pbnQgaXMgc2V0LCBkZWZhdWx0IHRvIGNlbnRlclxuICBpZiAob3BlcmF0aW9uID09PSAnY3JlYXRlJykge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiA1MCxcbiAgICAgIHk6IDUwLFxuICAgIH1cbiAgfVxuICByZXR1cm4gdXBsb2FkRWRpdHNcbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3BlcmF0aW9uIiwib3JpZ2luYWxEb2MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwicmVxIiwidGhyb3dPbk1pc3NpbmdGaWxlIiwidXBsb2FkIiwiZmlsZXMiLCJmaWxlIiwidW5kZWZpbmVkIiwidXBsb2FkRWRpdHMiLCJwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvY2FsUG9pbnQiLCJmb2NhbFBvaW50RW5hYmxlZCIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJ1cGxvYWRDb25maWciLCJlcnIiLCJFcnJvciIsIkZpbGVSZXRyaWV2YWxFcnJvciIsInQiLCJtZXNzYWdlIiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZCIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJmaWxlSGFzQWRqdXN0bWVudHMiLCJCb29sZWFuIiwidGVtcEZpbGVQYXRoIiwic2hhcnBPcHRpb25zIiwiYW5pbWF0ZWQiLCJzaGFycCIsInJvdGF0ZSIsInJlc2l6ZSIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW0iLCJpc0ltYWdlIiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJtZXRhZGF0YSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJmcm9tQnVmZmVyIiwiaW5mbyIsImZpbGVzaXplIiwic2l6ZSIsInBhZ2VzIiwibGVuZ3RoIiwibmFtZSIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJmb2NhbFgiLCJ4IiwiZm9jYWxZIiwieSIsInBheWxvYWQiLCJsb2dnZXIiLCJlcnJvciIsIm1zZyIsIkZpbGVVcGxvYWRFcnJvciIsImFyZ3MiLCJxdWVyeSIsImluY29taW5nRGF0YSIsIm9yaWdEb2MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMENhQTs7O2VBQUFBOzs7MEJBdkNjOzJEQUNaOytEQUNJOzZEQUNGO3lFQUNJOzhEQUNIO3dCQU8yQjsyRUFDZDt1RUFDSjtrRUFDTDtpQ0FDVTtzRUFDTjtxRUFDRDt3RUFDRztxRUFDYTtnRUFDckI7Ozs7OztBQWtCYixNQUFNQSxtQkFBbUIsT0FBVSxFQUN4Q0MsWUFBWSxFQUFFQyxRQUFRQyxnQkFBZ0IsRUFBRSxFQUN4Q0QsTUFBTSxFQUNORSxJQUFJLEVBQ0pDLFNBQVMsRUFDVEMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdEJDLEdBQUcsRUFDSEMsa0JBQWtCLEVBQ1Y7SUFDUixJQUFJLENBQUNOLGlCQUFpQk8sTUFBTSxFQUFFO1FBQzVCLE9BQU87WUFDTE47WUFDQU8sT0FBTyxFQUFFO1FBQ1g7SUFDRjtJQUVBLElBQUlDLE9BQU9KLElBQUlHLEtBQUssRUFBRUMsUUFBUUM7SUFFOUIsTUFBTUMsY0FBY0Msc0NBQXNDO1FBQ3hEWDtRQUNBQztRQUNBQztRQUNBRTtJQUNGO0lBRUEsTUFBTSxFQUNKUSxtQkFBbUIsRUFDbkJDLFlBQVlDLGlCQUFpQixFQUM3QkMsYUFBYSxFQUNiQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsU0FBUyxFQUNUQyxXQUFXLEVBQ1osR0FBR3BCLGlCQUFpQk8sTUFBTTtJQUUzQixJQUFJYyxhQUFhRjtJQUNqQixJQUFJQSxVQUFVRyxPQUFPLENBQUMsU0FBUyxHQUFHO1FBQ2hDRCxhQUFhRSxhQUFJLENBQUNDLE9BQU8sQ0FBQ3pCLE9BQU8wQixLQUFLLENBQUNDLFNBQVMsRUFBRVA7SUFDcEQ7SUFFQSxJQUFJLENBQUNWLFFBQVFFLGVBQWVWLE1BQU07UUFDaEMsTUFBTSxFQUFFMEIsUUFBUSxFQUFFQyxHQUFHLEVBQUUs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
@@ -26,7 +26,7 @@ type ImageSizesResult = {
26
26
  *
27
27
  * The image will be resized according to the provided
28
28
  * resize config. If no image sizes are requested, the resolved data will be empty.
29
- * For every image that dos not need to be resized, an result object with `null`
29
+ * For every image that does not need to be resized, a result object with `null`
30
30
  * parameters will be returned.
31
31
  *
32
32
  * @param resizeConfig - the resize config
@@ -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,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,CAmIxC"}
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,CA+IxC"}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, /**
10
10
  *
11
11
  * The image will be resized according to the provided
12
12
  * resize config. If no image sizes are requested, the resolved data will be empty.
13
- * For every image that dos not need to be resized, an result object with `null`
13
+ * For every image that does not need to be resized, a result object with `null`
14
14
  * parameters will be returned.
15
15
  *
16
16
  * @param resizeConfig - the resize config
@@ -175,7 +175,15 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
175
175
  };
176
176
  // Nothing to resize here so return as early as possible
177
177
  if (!imageSizes) return defaultResult;
178
- const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
178
+ // Determine if the file is animated
179
+ const fileIsAnimated = [
180
+ 'image/avif',
181
+ 'image/gif',
182
+ 'image/webp'
183
+ ].includes(file.mimetype);
184
+ const sharpOptions = {};
185
+ if (fileIsAnimated) sharpOptions.animated = true;
186
+ const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
179
187
  ;
180
188
  const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
181
189
  imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
@@ -189,6 +197,7 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
189
197
  }
190
198
  const imageToResize = sharpBase.clone();
191
199
  let resized = imageToResize;
200
+ const metadata = await sharpBase.metadata();
192
201
  if (incomingFocalPoint && applyPayloadAdjustments(imageResizeConfig, dimensions)) {
193
202
  const { height: resizeHeight, width: resizeWidth } = imageResizeConfig;
194
203
  const resizeAspectRatio = resizeWidth / resizeHeight;
@@ -207,11 +216,11 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
207
216
  const leftFocalEdge = Math.round(scaledImageInfo.width * (incomingFocalPoint.x / 100) - safeResizeWidth / 2);
208
217
  const safeOffsetX = Math.min(Math.max(0, leftFocalEdge), maxOffsetX);
209
218
  const safeResizeHeight = resizeHeight ?? scaledImageInfo.height;
210
- const maxOffsetY = scaledImageInfo.height - safeResizeHeight;
219
+ const maxOffsetY = fileIsAnimated ? resizeHeight - safeResizeHeight : scaledImageInfo.height - safeResizeHeight;
211
220
  const topFocalEdge = Math.round(scaledImageInfo.height * (incomingFocalPoint.y / 100) - safeResizeHeight / 2);
212
221
  const safeOffsetY = Math.min(Math.max(0, topFocalEdge), maxOffsetY);
213
222
  // extract the focal area from the scaled image
214
- resized = scaledImage.extract({
223
+ resized = (fileIsAnimated ? imageToResize : scaledImage).extract({
215
224
  height: safeResizeHeight,
216
225
  left: safeOffsetX,
217
226
  top: safeOffsetY,
@@ -248,7 +257,7 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
248
257
  name: imageResizeConfig.name,
249
258
  filename: imageNameWithDimensions,
250
259
  filesize: size,
251
- height,
260
+ height: fileIsAnimated ? height / metadata.pages : height,
252
261
  mimeType: mimeInfo?.mime || mimeType,
253
262
  sizesToSave: [
254
263
  {
@@ -266,4 +275,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
266
275
  }, defaultResult);
267
276
  }
268
277
 
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgRmlsZVNpemUsXG4gIEZpbGVTaXplcyxcbiAgRmlsZVRvU2F2ZSxcbiAgSW1hZ2VTaXplLFxuICBQcm9iZWRJbWFnZVNpemUsXG4gIFVwbG9hZEVkaXRzLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gJy4vZmlsZUV4aXN0cydcblxudHlwZSBSZXNpemVBcmdzID0ge1xuICBjb25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplXG4gIGZpbGU6IFVwbG9hZGVkRmlsZVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xuICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgZm9jYWxQb2ludD86IFVwbG9hZEVkaXRzWydmb2NhbFBvaW50J11cbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG50eXBlIENyZWF0ZVJlc3VsdEFyZ3MgPSB7XG4gIGZpbGVuYW1lPzogRmlsZVNpemVbJ2ZpbGVuYW1lJ11cbiAgZmlsZXNpemU/OiBGaWxlU2l6ZVsnZmlsZXNpemUnXVxuICBoZWlnaHQ/OiBGaWxlU2l6ZVsnaGVpZ2h0J11cbiAgbWltZVR5cGU/OiBGaWxlU2l6ZVsnbWltZVR5cGUnXVxuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZXNUb1NhdmU/OiBGaWxlVG9TYXZlW11cbiAgd2lkdGg/OiBGaWxlU2l6ZVsnd2lkdGgnXVxufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKHtcbiAgbmFtZSxcbiAgZmlsZW5hbWUgPSBudWxsLFxuICBmaWxlc2l6ZSA9IG51bGwsXG4gIGhlaWdodCA9IG51bGwsXG4gIG1pbWVUeXBlID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmUgPSBbXSxcbiAgd2lkdGggPSBudWxsLFxufTogQ3JlYXRlUmVzdWx0QXJncyk6IEltYWdlU2l6ZXNSZXN1bHQgPT4ge1xuICByZXR1cm4ge1xuICAgIHNpemVEYXRhOiB7XG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGVzaXplLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzaXplc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZCwgaXQgbWVhbnMgdGhlcmUgaXMgYSBmb3JtYXQgY29udmVyc2lvblxuICAgIC8vIGFuZCB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgXCJyZXNpemVkXCIgKHRyYW5zZm9ybWVkKS5cbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IGRlc2lyZWRXaWR0aCA+IG9yaWdpbmFsLndpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IGRlc2lyZWRIZWlnaHQgPiBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIHRydWUgLy8gZG8gbm90IGNyZWF0ZSBhIG5ldyBzaXplXG4gIH1cblxuICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIHNob3VsZCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnAgd2l0aG91dCBwYXlsb2FkIGFkanVzdGluZyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaW1hZ2Ugc2hvdWxkIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycFxuICovXG5jb25zdCBhcHBseVBheWxvYWRBZGp1c3RtZW50cyA9IChcbiAgeyBmaXQsIGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nIHx8IGZpdCA9PT0gJ2luc2lkZScpIHJldHVybiBmYWxzZVxuICBpZiAoIWlzTnVtYmVyKGhlaWdodCkgJiYgIWlzTnVtYmVyKHdpZHRoKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdGFyZ2V0QXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gb3JpZ2luYWwud2lkdGggLyBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gPT09IHRhcmdldEFzcGVjdFJhdGlvKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBza2lwRW5sYXJnZW1lbnQgPSB3aXRob3V0RW5sYXJnZW1lbnQgJiYgKG9yaWdpbmFsLmhlaWdodCA8IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA8IHdpZHRoKVxuICBjb25zdCBza2lwUmVkdWN0aW9uID0gd2l0aG91dFJlZHVjdGlvbiAmJiAob3JpZ2luYWwuaGVpZ2h0ID4gaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoID4gd2lkdGgpXG4gIGlmIChza2lwRW5sYXJnZW1lbnQgfHwgc2tpcFJlZHVjdGlvbikgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgcmVzaXplIGNvbmZpZy4gSWYgdGhlIHJlc2l6ZSBjb25maWcgaGFzIHRoZSBgd2l0aG91dFJlZHVjdGlvbmBcbiAqIHByb3BlcnR5IHNldCB0byB0cnVlLCB0aGUgYGZpdGAgYW5kIGBwb3NpdGlvbmAgcHJvcGVydGllcyB3aWxsIGJlIHNldCB0byBgY29udGFpbmBcbiAqIGFuZCBgdG9wIGxlZnRgIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIGEgc2FuaXRpemVkIHJlc2l6ZSBjb25maWdcbiAqL1xuY29uc3Qgc2FuaXRpemVSZXNpemVDb25maWcgPSAocmVzaXplQ29uZmlnOiBJbWFnZVNpemUpOiBJbWFnZVNpemUgPT4ge1xuICBpZiAocmVzaXplQ29uZmlnLndpdGhvdXRSZWR1Y3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzaXplQ29uZmlnLFxuICAgICAgLy8gV2h5IGZpdCBgY29udGFpbmAgc2hvdWxkIGFsc28gYmUgc2V0IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sb3ZlbGwvc2hhcnAvaXNzdWVzLzM1OTVcbiAgICAgIGZpdDogcmVzaXplQ29uZmlnPy5maXQgfHwgJ2NvbnRhaW4nLFxuICAgICAgcG9zaXRpb246IHJlc2l6ZUNvbmZpZz8ucG9zaXRpb24gfHwgJ2xlZnQgdG9wJyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc2l6ZUNvbmZpZ1xufVxuXG4vKipcbiAqIEZvciB0aGUgcHJvdmlkZWQgaW1hZ2Ugc2l6ZXMsIGhhbmRsZSB0aGUgcmVzaXppbmcgYW5kIHRoZSB0cmFuc2Zvcm1zXG4gKiAoZm9ybWF0LCB0cmltLCBldGMuKSBvZiBlYWNoIHJlcXVlc3RlZCBpbWFnZSBzaXplIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvYmplY3QuXG4gKiBUaGlzIG9ubHkgaGFuZGxlcyB0aGUgaW1hZ2Ugc2l6ZXMuIFRoZSB0cmFuc2Zvcm1zIG9mIHRoZSBvcmlnaW5hbCBpbWFnZVxuICogYXJlIGhhbmRsZWQgaW4ge0BsaW5rIC4vZ2VuZXJhdGVGaWxlRGF0YS50c30uXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkXG4gKiByZXNpemUgY29uZmlnLiBJZiBubyBpbWFnZSBzaXplcyBhcmUgcmVxdWVzdGVkLCB0aGUgcmVzb2x2ZWQgZGF0YSB3aWxsIGJlIGVtcHR5LlxuICogRm9yIGV2ZXJ5IGltYWdlIHRoYXQgZG9zIG5vdCBuZWVkIHRvIGJlIHJlc2l6ZWQsIGFuIHJlc3VsdCBvYmplY3Qgd2l0aCBgbnVsbGBcbiAqIHBhcmFtZXRlcnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHJlc2l6ZSBvcGVyYXRpb24ocylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gIGNvbmZpZyxcbiAgZGltZW5zaW9ucyxcbiAgZmlsZSxcbiAgbWltZVR5cGUsXG4gIHJlcSxcbiAgc2F2ZWRGaWxlbmFtZSxcbiAgc3RhdGljUGF0aCxcbiAgdXBsb2FkRWRpdHMsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQgPSB0cnVlLCBpbWFnZVNpemVzIH0gPSBjb25maWcudXBsb2FkXG5cbiAgLy8gRm9jYWwgcG9pbnQgYWRqdXN0bWVudHNcbiAgY29uc3QgaW5jb21pbmdGb2NhbFBvaW50ID0gdXBsb2FkRWRpdHM/LmZvY2FsUG9pbnRcbiAgICA/IHtcbiAgICAgICAgeDogaXNOdW1iZXIodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA/IE1hdGgucm91bmQodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA6IDUwLFxuICAgICAgICB5OiBpc051bWJlcih1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpID8gTWF0aC5yb3VuZCh1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpIDogNTAsXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBJbWFnZVNpemVzUmVzdWx0ID0ge1xuICAgIC4uLihmb2NhbFBvaW50RW5hYmxlZCAmJiBpbmNvbWluZ0ZvY2FsUG9pbnQgJiYgeyBmb2NhbFBvaW50OiBpbmNvbWluZ0ZvY2FsUG9pbnQgfSksXG4gICAgc2l6ZURhdGE6IHt9LFxuICAgIHNpemVzVG9TYXZlOiBbXSxcbiAgfVxuXG4gIC8vIE5vdGhpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIGRlZmF1bHRSZXN1bHRcblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdCh7IG5hbWU6IGltYWdlUmVzaXplQ29uZmlnLm5hbWUgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1hZ2VUb1Jlc2l6ZSA9IHNoYXJwQmFzZS5jbG9uZSgpXG4gICAgICBsZXQgcmVzaXplZCA9IGltYWdlVG9SZXNpemVcblxuICAgICAgaWYgKGluY29taW5nRm9jYWxQb2ludCAmJiBhcHBseVBheWxvYWRBZGp1c3RtZW50cyhpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICBjb25zdCBzYWZlUmVzaXplV2lkdGggPSByZXNpemVXaWR0aCA/PyBzY2FsZWRJbWFnZUluZm8ud2lkdGhcbiAgICAgICAgY29uc3QgbWF4T2Zmc2V0WCA9IHNjYWxlZEltYWdlSW5mby53aWR0aCAtIHNhZmVSZXNpemVXaWR0aFxuICAgICAgICBjb25zdCBsZWZ0Rm9jYWxFZGdlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICBzY2FsZWRJbWFnZUluZm8ud2lkdGggKiAoaW5jb21pbmdGb2NhbFBvaW50LnggLyAxMDApIC0gc2FmZVJlc2l6ZVdpZHRoIC8gMixcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBzYWZlT2Zmc2V0WCA9IE1hdGgubWluKE1hdGgubWF4KDAsIGxlZnRGb2NhbEVkZ2UpLCBtYXhPZmZzZXRYKVxuXG4gICAgICAgIGNvbnN0IHNhZmVSZXNpemVIZWlnaHQgPSByZXNpemVIZWlnaHQgPz8gc2NhbGVkSW1hZ2VJbmZvLmhlaWdodFxuICAgICAgICBjb25zdCBtYXhPZmZzZXRZID0gc2NhbGVkSW1hZ2VJbmZvLmhlaWdodCAtIHNhZmVSZXNpemVIZWlnaHRcbiAgICAgICAgY29uc3QgdG9wRm9jYWxFZGdlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0ICogKGluY29taW5nRm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIGlmIChyZXEucGF5bG9hZFVwbG9hZFNpemVzKSB7XG4gICAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KHtcbiAgICAgICAgbmFtZTogaW1hZ2VSZXNpemVDb25maWcubmFtZSxcbiAgICAgICAgZmlsZW5hbWU6IGltYWdlTmFtZVdpdGhEaW1lbnNpb25zLFxuICAgICAgICBmaWxlc2l6ZTogc2l6ZSxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBtaW1lVHlwZTogbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIHNpemVzVG9TYXZlOiBbeyBidWZmZXI6IGJ1ZmZlckRhdGEsIHBhdGg6IGltYWdlUGF0aCB9XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKChhY2MsIHJlc3VsdCkgPT4ge1xuICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgYWNjLnNpemVzVG9TYXZlLnB1c2goLi4ucmVzdWx0LnNpemVzVG9TYXZlKVxuICAgIHJldHVybiBhY2NcbiAgfSwgZGVmYXVsdFJlc3VsdClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwicHJldmVudFJlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJhcHBseVBheWxvYWRBZGp1c3RtZW50cyIsImZpdCIsImlzTnVtYmVyIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwic2tpcEVubGFyZ2VtZW50Iiwic2tpcFJlZHVjdGlvbiIsInNhbml0aXplUmVzaXplQ29uZmlnIiwicmVzaXplQ29uZmlnIiwicG9zaXRpb24iLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwidXBsb2FkRWRpdHMiLCJmb2NhbFBvaW50IiwiZm9jYWxQb2ludEVuYWJsZWQiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwiaW5jb21pbmdGb2NhbFBvaW50IiwieCIsIk1hdGgiLCJyb3VuZCIsInkiLCJkZWZhdWx0UmVzdWx0Iiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJyZXNpemVIZWlnaHQiLCJyZXNpemVXaWR0aCIsInJlc2l6ZUFzcGVjdFJhdGlvIiwicHJpb3JpdGl6ZUhlaWdodCIsInNjYWxlZEltYWdlIiwicmVzaXplIiwiaW5mbyIsInNjYWxlZEltYWdlSW5mbyIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJzYWZlUmVzaXplV2lkdGgiLCJtYXhPZmZzZXRYIiwibGVmdEZvY2FsRWRnZSIsInNhZmVPZmZzZXRYIiwibWluIiwibWF4Iiwic2FmZVJlc2l6ZUhlaWdodCIsIm1heE9mZnNldFkiLCJ0b3BGb2NhbEVkZ2UiLCJzYWZlT2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1OQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Tkg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBYU87bUVBQ0Y7Ozs7OztB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
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbywgU2hhcnAsIFNoYXJwT3B0aW9ucyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgRmlsZVNpemUsXG4gIEZpbGVTaXplcyxcbiAgRmlsZVRvU2F2ZSxcbiAgSW1hZ2VTaXplLFxuICBQcm9iZWRJbWFnZVNpemUsXG4gIFVwbG9hZEVkaXRzLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gJy4vZmlsZUV4aXN0cydcblxudHlwZSBSZXNpemVBcmdzID0ge1xuICBjb25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplXG4gIGZpbGU6IFVwbG9hZGVkRmlsZVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xuICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgZm9jYWxQb2ludD86IFVwbG9hZEVkaXRzWydmb2NhbFBvaW50J11cbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG50eXBlIENyZWF0ZVJlc3VsdEFyZ3MgPSB7XG4gIGZpbGVuYW1lPzogRmlsZVNpemVbJ2ZpbGVuYW1lJ11cbiAgZmlsZXNpemU/OiBGaWxlU2l6ZVsnZmlsZXNpemUnXVxuICBoZWlnaHQ/OiBGaWxlU2l6ZVsnaGVpZ2h0J11cbiAgbWltZVR5cGU/OiBGaWxlU2l6ZVsnbWltZVR5cGUnXVxuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZXNUb1NhdmU/OiBGaWxlVG9TYXZlW11cbiAgd2lkdGg/OiBGaWxlU2l6ZVsnd2lkdGgnXVxufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKHtcbiAgbmFtZSxcbiAgZmlsZW5hbWUgPSBudWxsLFxuICBmaWxlc2l6ZSA9IG51bGwsXG4gIGhlaWdodCA9IG51bGwsXG4gIG1pbWVUeXBlID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmUgPSBbXSxcbiAgd2lkdGggPSBudWxsLFxufTogQ3JlYXRlUmVzdWx0QXJncyk6IEltYWdlU2l6ZXNSZXN1bHQgPT4ge1xuICByZXR1cm4ge1xuICAgIHNpemVEYXRhOiB7XG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGVzaXplLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzaXplc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZCwgaXQgbWVhbnMgdGhlcmUgaXMgYSBmb3JtYXQgY29udmVyc2lvblxuICAgIC8vIGFuZCB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgXCJyZXNpemVkXCIgKHRyYW5zZm9ybWVkKS5cbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IGRlc2lyZWRXaWR0aCA+IG9yaWdpbmFsLndpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IGRlc2lyZWRIZWlnaHQgPiBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIHRydWUgLy8gZG8gbm90IGNyZWF0ZSBhIG5ldyBzaXplXG4gIH1cblxuICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIHNob3VsZCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnAgd2l0aG91dCBwYXlsb2FkIGFkanVzdGluZyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaW1hZ2Ugc2hvdWxkIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycFxuICovXG5jb25zdCBhcHBseVBheWxvYWRBZGp1c3RtZW50cyA9IChcbiAgeyBmaXQsIGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nIHx8IGZpdCA9PT0gJ2luc2lkZScpIHJldHVybiBmYWxzZVxuICBpZiAoIWlzTnVtYmVyKGhlaWdodCkgJiYgIWlzTnVtYmVyKHdpZHRoKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdGFyZ2V0QXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gb3JpZ2luYWwud2lkdGggLyBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gPT09IHRhcmdldEFzcGVjdFJhdGlvKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBza2lwRW5sYXJnZW1lbnQgPSB3aXRob3V0RW5sYXJnZW1lbnQgJiYgKG9yaWdpbmFsLmhlaWdodCA8IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA8IHdpZHRoKVxuICBjb25zdCBza2lwUmVkdWN0aW9uID0gd2l0aG91dFJlZHVjdGlvbiAmJiAob3JpZ2luYWwuaGVpZ2h0ID4gaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoID4gd2lkdGgpXG4gIGlmIChza2lwRW5sYXJnZW1lbnQgfHwgc2tpcFJlZHVjdGlvbikgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgcmVzaXplIGNvbmZpZy4gSWYgdGhlIHJlc2l6ZSBjb25maWcgaGFzIHRoZSBgd2l0aG91dFJlZHVjdGlvbmBcbiAqIHByb3BlcnR5IHNldCB0byB0cnVlLCB0aGUgYGZpdGAgYW5kIGBwb3NpdGlvbmAgcHJvcGVydGllcyB3aWxsIGJlIHNldCB0byBgY29udGFpbmBcbiAqIGFuZCBgdG9wIGxlZnRgIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIGEgc2FuaXRpemVkIHJlc2l6ZSBjb25maWdcbiAqL1xuY29uc3Qgc2FuaXRpemVSZXNpemVDb25maWcgPSAocmVzaXplQ29uZmlnOiBJbWFnZVNpemUpOiBJbWFnZVNpemUgPT4ge1xuICBpZiAocmVzaXplQ29uZmlnLndpdGhvdXRSZWR1Y3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzaXplQ29uZmlnLFxuICAgICAgLy8gV2h5IGZpdCBgY29udGFpbmAgc2hvdWxkIGFsc28gYmUgc2V0IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sb3ZlbGwvc2hhcnAvaXNzdWVzLzM1OTVcbiAgICAgIGZpdDogcmVzaXplQ29uZmlnPy5maXQgfHwgJ2NvbnRhaW4nLFxuICAgICAgcG9zaXRpb246IHJlc2l6ZUNvbmZpZz8ucG9zaXRpb24gfHwgJ2xlZnQgdG9wJyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc2l6ZUNvbmZpZ1xufVxuXG4vKipcbiAqIEZvciB0aGUgcHJvdmlkZWQgaW1hZ2Ugc2l6ZXMsIGhhbmRsZSB0aGUgcmVzaXppbmcgYW5kIHRoZSB0cmFuc2Zvcm1zXG4gKiAoZm9ybWF0LCB0cmltLCBldGMuKSBvZiBlYWNoIHJlcXVlc3RlZCBpbWFnZSBzaXplIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvYmplY3QuXG4gKiBUaGlzIG9ubHkgaGFuZGxlcyB0aGUgaW1hZ2Ugc2l6ZXMuIFRoZSB0cmFuc2Zvcm1zIG9mIHRoZSBvcmlnaW5hbCBpbWFnZVxuICogYXJlIGhhbmRsZWQgaW4ge0BsaW5rIC4vZ2VuZXJhdGVGaWxlRGF0YS50c30uXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkXG4gKiByZXNpemUgY29uZmlnLiBJZiBubyBpbWFnZSBzaXplcyBhcmUgcmVxdWVzdGVkLCB0aGUgcmVzb2x2ZWQgZGF0YSB3aWxsIGJlIGVtcHR5LlxuICogRm9yIGV2ZXJ5IGltYWdlIHRoYXQgZG9lcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhIHJlc3VsdCBvYmplY3Qgd2l0aCBgbnVsbGBcbiAqIHBhcmFtZXRlcnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHJlc2l6ZSBvcGVyYXRpb24ocylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gIGNvbmZpZyxcbiAgZGltZW5zaW9ucyxcbiAgZmlsZSxcbiAgbWltZVR5cGUsXG4gIHJlcSxcbiAgc2F2ZWRGaWxlbmFtZSxcbiAgc3RhdGljUGF0aCxcbiAgdXBsb2FkRWRpdHMsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQgPSB0cnVlLCBpbWFnZVNpemVzIH0gPSBjb25maWcudXBsb2FkXG5cbiAgLy8gRm9jYWwgcG9pbnQgYWRqdXN0bWVudHNcbiAgY29uc3QgaW5jb21pbmdGb2NhbFBvaW50ID0gdXBsb2FkRWRpdHM/LmZvY2FsUG9pbnRcbiAgICA/IHtcbiAgICAgICAgeDogaXNOdW1iZXIodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA/IE1hdGgucm91bmQodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA6IDUwLFxuICAgICAgICB5OiBpc051bWJlcih1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpID8gTWF0aC5yb3VuZCh1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpIDogNTAsXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdCBkZWZhdWx0UmVzdWx0OiBJbWFnZVNpemVzUmVzdWx0ID0ge1xuICAgIC4uLihmb2NhbFBvaW50RW5hYmxlZCAmJiBpbmNvbWluZ0ZvY2FsUG9pbnQgJiYgeyBmb2NhbFBvaW50OiBpbmNvbWluZ0ZvY2FsUG9pbnQgfSksXG4gICAgc2l6ZURhdGE6IHt9LFxuICAgIHNpemVzVG9TYXZlOiBbXSxcbiAgfVxuXG4gIC8vIE5vdGhpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIGRlZmF1bHRSZXN1bHRcblxuICAvLyBEZXRlcm1pbmUgaWYgdGhlIGZpbGUgaXMgYW5pbWF0ZWRcbiAgY29uc3QgZmlsZUlzQW5pbWF0ZWQgPSBbJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnXS5pbmNsdWRlcyhmaWxlLm1pbWV0eXBlKVxuICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgaWYgKGZpbGVJc0FuaW1hdGVkKSBzaGFycE9wdGlvbnMuYW5pbWF0ZWQgPSB0cnVlXG5cbiAgY29uc3Qgc2hhcnBCYXNlOiBTaGFycCB8IHVuZGVmaW5lZCA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcblxuICBjb25zdCByZXN1bHRzOiBJbWFnZVNpemVzUmVzdWx0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBpbWFnZVNpemVzLm1hcChhc3luYyAoaW1hZ2VSZXNpemVDb25maWcpOiBQcm9taXNlPEltYWdlU2l6ZXNSZXN1bHQ+ID0+IHtcbiAgICAgIGltYWdlUmVzaXplQ29uZmlnID0gc2FuaXRpemVSZXNpemVDb25maWcoaW1hZ2VSZXNpemVDb25maWcpXG5cbiAgICAgIC8vIFRoaXMgY2hlY2tzIGlmIGEgcmVzaXplIHNob3VsZCBoYXBwZW4uIElmIG5vdCwgdGhlIHJlc2l6ZWQgaW1hZ2Ugd2lsbCBiZVxuICAgICAgLy8gc2tpcHBlZCBDT01QTEVURUxZIGFuZCB0aHVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgaW1hZ2VzLlxuICAgICAgLy8gQWxsIGZ1cnRoZXIgZm9ybWF0L3RyaW0gb3B0aW9ucyB3aWxsIHRodXMgYmUgc2tpcHBlZCBhcyB3ZWxsLlxuICAgICAgaWYgKHByZXZlbnRSZXNpemUoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoeyBuYW1lOiBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVG9SZXNpemUgPSBzaGFycEJhc2UuY2xvbmUoKVxuICAgICAgbGV0IHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplXG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBCYXNlLm1ldGFkYXRhKClcblxuICAgICAgaWYgKGluY29taW5nRm9jYWxQb2ludCAmJiBhcHBseVBheWxvYWRBZGp1c3RtZW50cyhpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICBjb25zdCBzYWZlUmVzaXplV2lkdGggPSByZXNpemVXaWR0aCA/PyBzY2FsZWRJbWFnZUluZm8ud2lkdGhcbiAgICAgICAgY29uc3QgbWF4T2Zmc2V0WCA9IHNjYWxlZEltYWdlSW5mby53aWR0aCAtIHNhZmVSZXNpemVXaWR0aFxuICAgICAgICBjb25zdCBsZWZ0Rm9jYWxFZGdlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICBzY2FsZWRJbWFnZUluZm8ud2lkdGggKiAoaW5jb21pbmdGb2NhbFBvaW50LnggLyAxMDApIC0gc2FmZVJlc2l6ZVdpZHRoIC8gMixcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBzYWZlT2Zmc2V0WCA9IE1hdGgubWluKE1hdGgubWF4KDAsIGxlZnRGb2NhbEVkZ2UpLCBtYXhPZmZzZXRYKVxuXG4gICAgICAgIGNvbnN0IHNhZmVSZXNpemVIZWlnaHQgPSByZXNpemVIZWlnaHQgPz8gc2NhbGVkSW1hZ2VJbmZvLmhlaWdodFxuXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBmaWxlSXNBbmltYXRlZFxuICAgICAgICAgID8gcmVzaXplSGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICAgIDogc2NhbGVkSW1hZ2VJbmZvLmhlaWdodCAtIHNhZmVSZXNpemVIZWlnaHRcblxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoaW5jb21pbmdGb2NhbFBvaW50LnkgLyAxMDApIC0gc2FmZVJlc2l6ZUhlaWdodCAvIDIsXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgc2FmZU9mZnNldFkgPSBNYXRoLm1pbihNYXRoLm1heCgwLCB0b3BGb2NhbEVkZ2UpLCBtYXhPZmZzZXRZKVxuXG4gICAgICAgIC8vIGV4dHJhY3QgdGhlIGZvY2FsIGFyZWEgZnJvbSB0aGUgc2NhbGVkIGltYWdlXG4gICAgICAgIHJlc2l6ZWQgPSAoZmlsZUlzQW5pbWF0ZWQgPyBpbWFnZVRvUmVzaXplIDogc2NhbGVkSW1hZ2UpLmV4dHJhY3Qoe1xuICAgICAgICAgIGhlaWdodDogc2FmZVJlc2l6ZUhlaWdodCxcbiAgICAgICAgICBsZWZ0OiBzYWZlT2Zmc2V0WCxcbiAgICAgICAgICB0b3A6IHNhZmVPZmZzZXRZLFxuICAgICAgICAgIHdpZHRoOiBzYWZlUmVzaXplV2lkdGgsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZS5yZXNpemUoaW1hZ2VSZXNpemVDb25maWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdCh7XG4gICAgICAgIG5hbWU6IGltYWdlUmVzaXplQ29uZmlnLm5hbWUsXG4gICAgICAgIGZpbGVuYW1lOiBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgZmlsZXNpemU6IHNpemUsXG4gICAgICAgIGhlaWdodDogZmlsZUlzQW5pbWF0ZWQgPyBoZWlnaHQgLyBtZXRhZGF0YS5wYWdlcyA6IGhlaWdodCxcbiAgICAgICAgbWltZVR5cGU6IG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBzaXplc1RvU2F2ZTogW3sgYnVmZmVyOiBidWZmZXJEYXRhLCBwYXRoOiBpbWFnZVBhdGggfV0sXG4gICAgICAgIHdpZHRoLFxuICAgICAgfSlcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZSgoYWNjLCByZXN1bHQpID0+IHtcbiAgICBPYmplY3QuYXNzaWduKGFjYy5zaXplRGF0YSwgcmVzdWx0LnNpemVEYXRhKVxuICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICByZXR1cm4gYWNjXG4gIH0sIGRlZmF1bHRSZXN1bHQpXG59XG4iXSwibmFtZXMiOlsicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsImdldFNhbml0aXplZEltYWdlRGF0YSIsInNvdXJjZUltYWdlIiwiZXh0ZW5zaW9uIiwic3BsaXQiLCJwb3AiLCJuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImV4dCIsImNyZWF0ZUltYWdlTmFtZSIsIm91dHB1dEltYWdlTmFtZSIsImhlaWdodCIsIndpZHRoIiwiY3JlYXRlUmVzdWx0IiwiZmlsZW5hbWUiLCJmaWxlc2l6ZSIsIm1pbWVUeXBlIiwic2l6ZXNUb1NhdmUiLCJzaXplRGF0YSIsInByZXZlbnRSZXNpemUiLCJkZXNpcmVkSGVpZ2h0IiwiZGVzaXJlZFdpZHRoIiwid2l0aG91dEVubGFyZ2VtZW50Iiwid2l0aG91dFJlZHVjdGlvbiIsIm9yaWdpbmFsIiwidW5kZWZpbmVkIiwiaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCIsImhhc0luc3VmZmljaWVudFdpZHRoIiwiaGFzSW5zdWZmaWNpZW50SGVpZ2h0IiwiYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMiLCJmaXQiLCJpc051bWJlciIsInRhcmdldEFzcGVjdFJhdGlvIiwib3JpZ2luYWxBc3BlY3RSYXRpbyIsInNraXBFbmxhcmdlbWVudCIsInNraXBSZWR1Y3Rpb24iLCJzYW5pdGl6ZVJlc2l6ZUNvbmZpZyIsInJlc2l6ZUNvbmZpZyIsInBvc2l0aW9uIiwiY29uZmlnIiwiZGltZW5zaW9ucyIsImZpbGUiLCJyZXEiLCJzYXZlZEZpbGVuYW1lIiwic3RhdGljUGF0aCIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsImZvY2FsUG9pbnRFbmFibGVkIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsImluY29taW5nRm9jYWxQb2ludCIsIngiLCJNYXRoIiwicm91bmQiLCJ5IiwiZGVmYXVsdFJlc3VsdCIsImZpbGVJc0FuaW1hdGVkIiwiaW5jbHVkZXMiLCJtaW1ldHlwZSIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJtZXRhZGF0YSIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsInNhZmVSZXNpemVXaWR0aCIsIm1heE9mZnNldFgiLCJsZWZ0Rm9jYWxFZGdlIiwic2FmZU9mZnNldFgiLCJtaW4iLCJtYXgiLCJzYWZlUmVzaXplSGVpZ2h0IiwibWF4T2Zmc2V0WSIsInRvcEZvY2FsRWRnZSIsInNhZmVPZmZzZXRZIiwiZXh0cmFjdCIsImxlZnQiLCJ0b3AiLCJmb3JtYXRPcHRpb25zIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbU9wdGlvbnMiLCJ0cmltIiwiYnVmZmVyRGF0YSIsImJ1ZmZlckluZm8iLCJzYW5pdGl6ZWRJbWFnZSIsInBheWxvYWRVcGxvYWRTaXplcyIsIm1pbWVJbmZvIiwiZnJvbUJ1ZmZlciIsImltYWdlTmFtZVdpdGhEaW1lbnNpb25zIiwiaW1hZ2VQYXRoIiwiZmlsZUV4aXN0cyIsImZzIiwidW5saW5rU3luYyIsInNpemUiLCJwYWdlcyIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFtTkE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBOU5IOzJEQUNaO3lFQUNNOzhEQUNIOzBCQWFPO21FQUNGOzs7Ozs7QUF5QnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZTyxXQUFXLENBQUMsU0FBU1A7SUFDaEYsT0FBTztRQUFFSTtRQUFNSSxLQUFLUDtJQUFVO0FBQ2hDO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsTUFBTVEsa0JBQWtCLENBQ3RCQyxpQkFDQSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBYyxFQUM3QlgsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFD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
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Creates a proxy for the given object that has its own property
3
3
  */
4
- export default function isolateObjectProperty<T>(object: T, key: any): T;
4
+ export default function isolateObjectProperty<T>(object: T, key: keyof T): T;
5
5
  //# sourceMappingURL=isolateObjectProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isolateObjectProperty.d.ts","sourceRoot":"","sources":["../../src/utilities/isolateObjectProperty.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,KAAA,GAAG,CAAC,CAuBlE"}
1
+ {"version":3,"file":"isolateObjectProperty.d.ts","sourceRoot":"","sources":["../../src/utilities/isolateObjectProperty.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAuB3E"}
@@ -35,4 +35,4 @@ function isolateObjectProperty(object, key) {
35
35
  return new Proxy(object, handler);
36
36
  }
37
37
 
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNvbGF0ZU9iamVjdFByb3BlcnR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIHByb3h5IGZvciB0aGUgZ2l2ZW4gb2JqZWN0IHRoYXQgaGFzIGl0cyBvd24gcHJvcGVydHlcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNvbGF0ZU9iamVjdFByb3BlcnR5PFQ+KG9iamVjdDogVCwga2V5KTogVCB7XG4gIGNvbnN0IGRlbGVnYXRlID0ge31cbiAgY29uc3QgaGFuZGxlciA9IHtcbiAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHAgPT09IGtleSA/IGRlbGVnYXRlIDogdGFyZ2V0LCBwKVxuICAgIH0sXG4gICAgZ2V0KHRhcmdldCwgcCwgcmVjZWl2ZXIpIHtcbiAgICAgIHJldHVybiBSZWZsZWN0LmdldChwID09PSBrZXkgPyBkZWxlZ2F0ZSA6IHRhcmdldCwgcCwgcmVjZWl2ZXIpXG4gICAgfSxcbiAgICBoYXModGFyZ2V0LCBwKSB7XG4gICAgICByZXR1cm4gUmVmbGVjdC5oYXMocCA9PT0ga2V5ID8gZGVsZWdhdGUgOiB0YXJnZXQsIHApXG4gICAgfSxcbiAgICBzZXQodGFyZ2V0LCBwLCBuZXdWYWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgIGlmIChwID09PSBrZXkpIHtcbiAgICAgICAgLy8gaW4gY2FzZSBvZiB0cmFuc2FjdGlvbklEIHdlIG11c3QgaWdub3JlIGFueSByZWNlaXZlciwgYmVjYXVzZVxuICAgICAgICAvLyBcIklmIHByb3ZpZGVkIGFuZCB0YXJnZXQgZG9lcyBub3QgaGF2ZSBhIHNldHRlciBmb3IgcHJvcGVydHlLZXksIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHNldCBvbiByZWNlaXZlciBpbnN0ZWFkLlwiXG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldChkZWxlZ2F0ZSwgcCwgbmV3VmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCBuZXdWYWx1ZSwgcmVjZWl2ZXIpXG4gICAgICB9XG4gICAgfSxcbiAgfVxuICByZXR1cm4gbmV3IFByb3h5KG9iamVjdCwgaGFuZGxlcilcbn1cbiJdLCJuYW1lcyI6WyJpc29sYXRlT2JqZWN0UHJvcGVydHkiLCJvYmplY3QiLCJrZXkiLCJkZWxlZ2F0ZSIsImhhbmRsZXIiLCJkZWxldGVQcm9wZXJ0eSIsInRhcmdldCIsInAiLCJSZWZsZWN0IiwiZ2V0IiwicmVjZWl2ZXIiLCJoYXMiLCJzZXQiLCJuZXdWYWx1ZSIsIlByb3h5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQzs7OzsrQkFDRDs7O2VBQXdCQTs7O0FBQVQsU0FBU0Esc0JBQXlCQyxNQUFTLEVBQUVDLEdBQUc7SUFDN0QsTUFBTUMsV0FBVyxDQUFDO0lBQ2xCLE1BQU1DLFVBQVU7UUFDZEMsZ0JBQWVDLE1BQU0sRUFBRUMsQ0FBQztZQUN0QixPQUFPQyxRQUFRSCxjQUFjLENBQUNFLE1BQU1MLE1BQU1DLFdBQVdHLFFBQVFDO1FBQy9EO1FBQ0FFLEtBQUlILE1BQU0sRUFBRUMsQ0FBQyxFQUFFRyxRQUFRO1lBQ3JCLE9BQU9GLFFBQVFDLEdBQUcsQ0FBQ0YsTUFBTUwsTUFBTUMsV0FBV0csUUFBUUMsR0FBR0c7UUFDdkQ7UUFDQUMsS0FBSUwsTUFBTSxFQUFFQyxDQUFDO1lBQ1gsT0FBT0MsUUFBUUcsR0FBRyxDQUFDSixNQUFNTCxNQUFNQyxXQUFXRyxRQUFRQztRQUNwRDtRQUNBSyxLQUFJTixNQUFNLEVBQUVDLENBQUMsRUFBRU0sUUFBUSxFQUFFSCxRQUFRO1lBQy9CLElBQUlILE1BQU1MLEtBQUs7Z0JBQ2IsZ0VBQWdFO2dCQUNoRSxpSEFBaUg7Z0JBQ2pILE9BQU9NLFFBQVFJLEdBQUcsQ0FBQ1QsVUFBVUksR0FBR007WUFDbEMsT0FBTztnQkFDTCxPQUFPTCxRQUFRSSxHQUFHLENBQUNOLFFBQVFDLEdBQUdNLFVBQVVIO1lBQzFDO1FBQ0Y7SUFDRjtJQUNBLE9BQU8sSUFBSUksTUFBTWIsUUFBUUc7QUFDM0IifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNvbGF0ZU9iamVjdFByb3BlcnR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIHByb3h5IGZvciB0aGUgZ2l2ZW4gb2JqZWN0IHRoYXQgaGFzIGl0cyBvd24gcHJvcGVydHlcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNvbGF0ZU9iamVjdFByb3BlcnR5PFQ+KG9iamVjdDogVCwga2V5OiBrZXlvZiBUKTogVCB7XG4gIGNvbnN0IGRlbGVnYXRlID0ge31cbiAgY29uc3QgaGFuZGxlciA9IHtcbiAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHAgPT09IGtleSA/IGRlbGVnYXRlIDogdGFyZ2V0LCBwKVxuICAgIH0sXG4gICAgZ2V0KHRhcmdldCwgcCwgcmVjZWl2ZXIpIHtcbiAgICAgIHJldHVybiBSZWZsZWN0LmdldChwID09PSBrZXkgPyBkZWxlZ2F0ZSA6IHRhcmdldCwgcCwgcmVjZWl2ZXIpXG4gICAgfSxcbiAgICBoYXModGFyZ2V0LCBwKSB7XG4gICAgICByZXR1cm4gUmVmbGVjdC5oYXMocCA9PT0ga2V5ID8gZGVsZWdhdGUgOiB0YXJnZXQsIHApXG4gICAgfSxcbiAgICBzZXQodGFyZ2V0LCBwLCBuZXdWYWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgIGlmIChwID09PSBrZXkpIHtcbiAgICAgICAgLy8gaW4gY2FzZSBvZiB0cmFuc2FjdGlvbklEIHdlIG11c3QgaWdub3JlIGFueSByZWNlaXZlciwgYmVjYXVzZVxuICAgICAgICAvLyBcIklmIHByb3ZpZGVkIGFuZCB0YXJnZXQgZG9lcyBub3QgaGF2ZSBhIHNldHRlciBmb3IgcHJvcGVydHlLZXksIHRoZSBwcm9wZXJ0eSB3aWxsIGJlIHNldCBvbiByZWNlaXZlciBpbnN0ZWFkLlwiXG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldChkZWxlZ2F0ZSwgcCwgbmV3VmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCBuZXdWYWx1ZSwgcmVjZWl2ZXIpXG4gICAgICB9XG4gICAgfSxcbiAgfVxuICByZXR1cm4gbmV3IFByb3h5KG9iamVjdCwgaGFuZGxlcilcbn1cbiJdLCJuYW1lcyI6WyJpc29sYXRlT2JqZWN0UHJvcGVydHkiLCJvYmplY3QiLCJrZXkiLCJkZWxlZ2F0ZSIsImhhbmRsZXIiLCJkZWxldGVQcm9wZXJ0eSIsInRhcmdldCIsInAiLCJSZWZsZWN0IiwiZ2V0IiwicmVjZWl2ZXIiLCJoYXMiLCJzZXQiLCJuZXdWYWx1ZSIsIlByb3h5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQzs7OzsrQkFDRDs7O2VBQXdCQTs7O0FBQVQsU0FBU0Esc0JBQXlCQyxNQUFTLEVBQUVDLEdBQVk7SUFDdEUsTUFBTUMsV0FBVyxDQUFDO0lBQ2xCLE1BQU1DLFVBQVU7UUFDZEMsZ0JBQWVDLE1BQU0sRUFBRUMsQ0FBQztZQUN0QixPQUFPQyxRQUFRSCxjQUFjLENBQUNFLE1BQU1MLE1BQU1DLFdBQVdHLFFBQVFDO1FBQy9EO1FBQ0FFLEtBQUlILE1BQU0sRUFBRUMsQ0FBQyxFQUFFRyxRQUFRO1lBQ3JCLE9BQU9GLFFBQVFDLEdBQUcsQ0FBQ0YsTUFBTUwsTUFBTUMsV0FBV0csUUFBUUMsR0FBR0c7UUFDdkQ7UUFDQUMsS0FBSUwsTUFBTSxFQUFFQyxDQUFDO1lBQ1gsT0FBT0MsUUFBUUcsR0FBRyxDQUFDSixNQUFNTCxNQUFNQyxXQUFXRyxRQUFRQztRQUNwRDtRQUNBSyxLQUFJTixNQUFNLEVBQUVDLENBQUMsRUFBRU0sUUFBUSxFQUFFSCxRQUFRO1lBQy9CLElBQUlILE1BQU1MLEtBQUs7Z0JBQ2IsZ0VBQWdFO2dCQUNoRSxpSEFBaUg7Z0JBQ2pILE9BQU9NLFFBQVFJLEdBQUcsQ0FBQ1QsVUFBVUksR0FBR007WUFDbEMsT0FBTztnQkFDTCxPQUFPTCxRQUFRSSxHQUFHLENBQUNOLFFBQVFDLEdBQUdNLFVBQVVIO1lBQzFDO1FBQ0Y7SUFDRjtJQUNBLE9BQU8sSUFBSUksTUFBTWIsUUFBUUc7QUFDM0IifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.19.1",
3
+ "version": "2.19.3",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",