payload 2.0.15 → 2.1.1

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 (167) hide show
  1. package/README.md +3 -4
  2. package/components/hooks.d.ts +1 -0
  3. package/components/hooks.js +5 -1
  4. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  5. package/dist/admin/components/elements/DocumentControls/index.js +6 -4
  6. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/EditUpload/index.js +15 -7
  8. package/dist/admin/components/elements/EditUpload/index.scss +5 -0
  9. package/dist/admin/components/elements/FileDetails/index.js +2 -2
  10. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.d.ts +1 -1
  11. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.js +8 -6
  13. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  14. package/dist/admin/components/elements/Localizer/index.js +8 -3
  15. package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
  16. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
  17. package/dist/admin/components/elements/PreviewSizes/index.js +58 -32
  18. package/dist/admin/components/elements/PreviewSizes/index.scss +0 -1
  19. package/dist/admin/components/elements/WhereBuilder/Condition/Date/index.js +3 -2
  20. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts +1 -0
  21. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts.map +1 -1
  22. package/dist/admin/components/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
  23. package/dist/admin/components/elements/WhereBuilder/Condition/Number/index.js +3 -2
  24. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts +1 -0
  25. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts.map +1 -1
  26. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  27. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.js +3 -2
  28. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts +1 -0
  29. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
  30. package/dist/admin/components/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  31. package/dist/admin/components/elements/WhereBuilder/Condition/Select/index.js +3 -2
  32. package/dist/admin/components/elements/WhereBuilder/Condition/Select/types.d.ts +1 -0
  33. package/dist/admin/components/elements/WhereBuilder/Condition/Select/types.d.ts.map +1 -1
  34. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.d.ts.map +1 -1
  35. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +3 -2
  36. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts +1 -0
  37. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts.map +1 -1
  38. package/dist/admin/components/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  39. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +27 -17
  40. package/dist/admin/components/elements/WhereBuilder/reducer.js +6 -6
  41. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +2 -2
  42. package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts +4 -0
  43. package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts.map +1 -1
  44. package/dist/admin/components/forms/field-types/Checkbox/Input.js +6 -5
  45. package/dist/admin/components/forms/field-types/Checkbox/index.d.ts.map +1 -1
  46. package/dist/admin/components/forms/field-types/Checkbox/index.js +7 -3
  47. package/dist/admin/components/forms/field-types/Code/index.d.ts.map +1 -1
  48. package/dist/admin/components/forms/field-types/Code/index.js +6 -4
  49. package/dist/admin/components/forms/field-types/DateTime/Input.d.ts +6 -0
  50. package/dist/admin/components/forms/field-types/DateTime/Input.d.ts.map +1 -1
  51. package/dist/admin/components/forms/field-types/DateTime/Input.js +8 -6
  52. package/dist/admin/components/forms/field-types/DateTime/index.d.ts.map +1 -1
  53. package/dist/admin/components/forms/field-types/DateTime/index.js +3 -2
  54. package/dist/admin/components/forms/field-types/Email/index.d.ts.map +1 -1
  55. package/dist/admin/components/forms/field-types/Email/index.js +10 -6
  56. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  57. package/dist/admin/components/forms/field-types/JSON/index.js +6 -4
  58. package/dist/admin/components/forms/field-types/Number/index.d.ts.map +1 -1
  59. package/dist/admin/components/forms/field-types/Number/index.js +10 -6
  60. package/dist/admin/components/forms/field-types/Point/index.d.ts.map +1 -1
  61. package/dist/admin/components/forms/field-types/Point/index.js +14 -8
  62. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +2 -0
  63. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts.map +1 -1
  64. package/dist/admin/components/forms/field-types/RadioGroup/Input.js +6 -4
  65. package/dist/admin/components/forms/field-types/RadioGroup/index.d.ts.map +1 -1
  66. package/dist/admin/components/forms/field-types/RadioGroup/index.js +5 -3
  67. package/dist/admin/components/forms/field-types/Relationship/index.d.ts.map +1 -1
  68. package/dist/admin/components/forms/field-types/Relationship/index.js +7 -5
  69. package/dist/admin/components/forms/field-types/Select/Input.d.ts +2 -0
  70. package/dist/admin/components/forms/field-types/Select/Input.d.ts.map +1 -1
  71. package/dist/admin/components/forms/field-types/Select/Input.js +6 -4
  72. package/dist/admin/components/forms/field-types/Select/index.d.ts.map +1 -1
  73. package/dist/admin/components/forms/field-types/Select/index.js +5 -3
  74. package/dist/admin/components/forms/field-types/Text/Input.d.ts +4 -0
  75. package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
  76. package/dist/admin/components/forms/field-types/Text/Input.js +10 -6
  77. package/dist/admin/components/forms/field-types/Text/index.d.ts.map +1 -1
  78. package/dist/admin/components/forms/field-types/Text/index.js +7 -3
  79. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +4 -0
  80. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts.map +1 -1
  81. package/dist/admin/components/forms/field-types/Textarea/Input.js +8 -6
  82. package/dist/admin/components/forms/field-types/Textarea/index.d.ts.map +1 -1
  83. package/dist/admin/components/forms/field-types/Textarea/index.js +7 -3
  84. package/dist/admin/components/forms/field-types/Upload/Input.d.ts +2 -0
  85. package/dist/admin/components/forms/field-types/Upload/Input.d.ts.map +1 -1
  86. package/dist/admin/components/forms/field-types/Upload/Input.js +6 -4
  87. package/dist/admin/components/forms/field-types/Upload/index.d.ts.map +1 -1
  88. package/dist/admin/components/forms/field-types/Upload/index.js +5 -3
  89. package/dist/admin/components/forms/useField/index.d.ts.map +1 -1
  90. package/dist/admin/components/forms/useField/index.js +31 -25
  91. package/dist/admin/components/utilities/Auth/index.d.ts +1 -3
  92. package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
  93. package/dist/admin/components/utilities/Auth/index.js +1 -1
  94. package/dist/admin/components/views/API/index.d.ts.map +1 -1
  95. package/dist/admin/components/views/API/index.js +6 -6
  96. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  97. package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
  98. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  99. package/dist/admin/components/views/LivePreview/index.js +1 -1
  100. package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -2
  101. package/dist/auth/graphql/resolvers/access.d.ts.map +1 -1
  102. package/dist/auth/graphql/resolvers/access.js +4 -2
  103. package/dist/auth/graphql/resolvers/forgotPassword.d.ts.map +1 -1
  104. package/dist/auth/graphql/resolvers/forgotPassword.js +4 -2
  105. package/dist/auth/graphql/resolvers/init.d.ts.map +1 -1
  106. package/dist/auth/graphql/resolvers/init.js +4 -2
  107. package/dist/auth/graphql/resolvers/login.d.ts.map +1 -1
  108. package/dist/auth/graphql/resolvers/login.js +4 -2
  109. package/dist/auth/graphql/resolvers/logout.d.ts.map +1 -1
  110. package/dist/auth/graphql/resolvers/logout.js +4 -2
  111. package/dist/auth/graphql/resolvers/me.d.ts.map +1 -1
  112. package/dist/auth/graphql/resolvers/me.js +4 -2
  113. package/dist/auth/graphql/resolvers/refresh.d.ts.map +1 -1
  114. package/dist/auth/graphql/resolvers/refresh.js +4 -2
  115. package/dist/auth/graphql/resolvers/resetPassword.d.ts.map +1 -1
  116. package/dist/auth/graphql/resolvers/resetPassword.js +4 -2
  117. package/dist/auth/graphql/resolvers/unlock.d.ts.map +1 -1
  118. package/dist/auth/graphql/resolvers/unlock.js +4 -2
  119. package/dist/auth/graphql/resolvers/verifyEmail.d.ts.map +1 -1
  120. package/dist/auth/graphql/resolvers/verifyEmail.js +4 -2
  121. package/dist/auth/operations/refresh.js +2 -2
  122. package/dist/collections/graphql/resolvers/create.js +4 -2
  123. package/dist/collections/graphql/resolvers/delete.js +4 -2
  124. package/dist/collections/graphql/resolvers/docAccess.js +4 -2
  125. package/dist/collections/graphql/resolvers/find.js +4 -2
  126. package/dist/collections/graphql/resolvers/findVersionByID.js +4 -2
  127. package/dist/collections/graphql/resolvers/findVersions.js +4 -2
  128. package/dist/collections/graphql/resolvers/restoreVersion.js +4 -2
  129. package/dist/collections/graphql/resolvers/update.js +4 -2
  130. package/dist/config/schema.d.ts.map +1 -1
  131. package/dist/config/schema.js +4 -2
  132. package/dist/config/types.d.ts +2 -2
  133. package/dist/config/types.d.ts.map +1 -1
  134. package/dist/config/types.js +1 -1
  135. package/dist/exports/components/hooks.d.ts +1 -0
  136. package/dist/exports/components/hooks.d.ts.map +1 -1
  137. package/dist/exports/components/hooks.js +5 -1
  138. package/dist/fields/config/schema.d.ts.map +1 -1
  139. package/dist/fields/config/schema.js +90 -10
  140. package/dist/fields/config/types.d.ts +67 -0
  141. package/dist/fields/config/types.d.ts.map +1 -1
  142. package/dist/fields/config/types.js +1 -1
  143. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  144. package/dist/fields/hooks/beforeChange/promise.js +2 -1
  145. package/dist/fields/validations.d.ts +4 -0
  146. package/dist/fields/validations.d.ts.map +1 -1
  147. package/dist/fields/validations.js +3 -2
  148. package/dist/globals/graphql/resolvers/docAccess.js +4 -2
  149. package/dist/globals/graphql/resolvers/findOne.d.ts.map +1 -1
  150. package/dist/globals/graphql/resolvers/findOne.js +4 -2
  151. package/dist/globals/graphql/resolvers/findVersionByID.js +4 -2
  152. package/dist/globals/graphql/resolvers/findVersions.js +4 -2
  153. package/dist/globals/graphql/resolvers/restoreVersion.js +4 -2
  154. package/dist/globals/graphql/resolvers/update.js +4 -2
  155. package/dist/uploads/generateFileData.js +4 -4
  156. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  157. package/dist/uploads/getFileByPath.js +7 -2
  158. package/dist/uploads/imageResizer.d.ts.map +1 -1
  159. package/dist/uploads/imageResizer.js +87 -55
  160. package/dist/uploads/types.d.ts +11 -1
  161. package/dist/uploads/types.d.ts.map +1 -1
  162. package/dist/uploads/types.js +1 -1
  163. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  164. package/dist/utilities/fieldSchemaToJSON.js +21 -3
  165. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  166. package/dist/utilities/getEntityPolicies.js +4 -2
  167. package/package.json +2 -2
@@ -91,32 +91,71 @@ function _interop_require_default(obj) {
91
91
  *
92
92
  * @param resizeConfig - object containing the requested dimensions and resize options
93
93
  * @param original - the original image size
94
- * @returns true if the image needs to be resized, false otherwise
95
- */ const needsResize = ({ height: desiredHeight, width: desiredWidth, withoutEnlargement, withoutReduction }, original)=>{
96
- // allow enlargement or prevent reduction (our default is to prevent
97
- // enlargement and allow reduction)
98
- if (withoutEnlargement !== undefined || withoutReduction !== undefined) {
99
- return true // needs resize
94
+ * @returns true if resizing is not needed, false otherwise
95
+ */ const preventResize = ({ height: desiredHeight, width: desiredWidth, withoutEnlargement, withoutReduction }, original)=>{
96
+ // default is to allow reduction
97
+ if (withoutReduction !== undefined) {
98
+ return false // needs resize
99
+ ;
100
+ }
101
+ // default is to prevent enlargement
102
+ if (withoutEnlargement !== undefined) {
103
+ return false // needs resize
100
104
  ;
101
105
  }
102
106
  const isWidthOrHeightNotDefined = !desiredHeight || !desiredWidth;
103
107
  if (isWidthOrHeightNotDefined) {
104
108
  // If with and height are not defined, it means there is a format conversion
105
109
  // and the image needs to be "resized" (transformed).
106
- return true // needs resize
110
+ return false // needs resize
107
111
  ;
108
112
  }
109
- const hasInsufficientWidth = original.width < desiredWidth;
110
- const hasInsufficientHeight = original.height < desiredHeight;
113
+ const hasInsufficientWidth = desiredWidth > original.width;
114
+ const hasInsufficientHeight = desiredHeight > original.height;
111
115
  if (hasInsufficientWidth && hasInsufficientHeight) {
112
116
  // doesn't need resize - prevent enlargement. This should only happen if both width and height are insufficient.
113
117
  // if only one dimension is insufficient and the other is sufficient, resizing needs to happen, as the image
114
118
  // should be resized to the sufficient dimension.
115
- return false;
119
+ return true // do not create a new size
120
+ ;
116
121
  }
117
- return true // needs resize
122
+ return false // needs resize
118
123
  ;
119
124
  };
125
+ /**
126
+ * Check if the image should be passed directly to sharp without payload adjusting properties.
127
+ *
128
+ * @param resizeConfig - object containing the requested dimensions and resize options
129
+ * @param original - the original image size
130
+ * @returns true if the image should passed directly to sharp
131
+ */ const applyPayloadAdjustments = ({ height, width, withoutEnlargement, withoutReduction }, original)=>{
132
+ if (!(0, _isNumber.isNumber)(height) && !(0, _isNumber.isNumber)(width)) return false;
133
+ const targetAspectRatio = width / height;
134
+ const originalAspectRatio = original.width / original.height;
135
+ if (originalAspectRatio === targetAspectRatio) return false;
136
+ const skipEnlargement = withoutEnlargement && (original.height < height || original.width < width);
137
+ const skipReduction = withoutReduction && (original.height > height || original.width > width);
138
+ if (skipEnlargement || skipReduction) return false;
139
+ return true;
140
+ };
141
+ /**
142
+ * Sanitize the resize config. If the resize config has the `withoutReduction`
143
+ * property set to true, the `fit` and `position` properties will be set to `contain`
144
+ * and `top left` respectively.
145
+ *
146
+ * @param resizeConfig - the resize config
147
+ * @returns a sanitized resize config
148
+ */ const sanitizeResizeConfig = (resizeConfig)=>{
149
+ if (resizeConfig.withoutReduction) {
150
+ return {
151
+ ...resizeConfig,
152
+ // Why fit `contain` should also be set to https://github.com/lovell/sharp/issues/3595
153
+ fit: resizeConfig?.fit || 'contain',
154
+ position: resizeConfig?.position || 'left top'
155
+ };
156
+ }
157
+ return resizeConfig;
158
+ };
120
159
  async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath }) {
121
160
  const { imageSizes } = config.upload;
122
161
  // Noting to resize here so return as early as possible
@@ -127,55 +166,48 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
127
166
  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
128
167
  ;
129
168
  const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
169
+ imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
130
170
  // This checks if a resize should happen. If not, the resized image will be
131
171
  // skipped COMPLETELY and thus will not be included in the resulting images.
132
172
  // All further format/trim options will thus be skipped as well.
133
- if (!needsResize(imageResizeConfig, dimensions)) {
173
+ if (preventResize(imageResizeConfig, dimensions)) {
134
174
  return createResult(imageResizeConfig.name);
135
175
  }
136
- let resized = sharpBase.clone();
137
- const hasEdits = req.query?.uploadEdits;
138
- if (hasEdits && imageResizeConfig.width && imageResizeConfig.height) {
139
- const { height, width } = imageResizeConfig;
140
- const targetAspectRatio = width / height;
176
+ const imageToResize = sharpBase.clone();
177
+ let resized = imageToResize.resize(imageResizeConfig);
178
+ if (req.query?.uploadEdits?.focalPoint && applyPayloadAdjustments(imageResizeConfig, dimensions)) {
179
+ const { height: resizeHeight, width: resizeWidth } = imageResizeConfig;
180
+ const resizeAspectRatio = resizeWidth / resizeHeight;
141
181
  const originalAspectRatio = dimensions.width / dimensions.height;
142
- if (originalAspectRatio === targetAspectRatio) {
143
- resized = resized.resize(imageResizeConfig);
144
- } else {
145
- const focalPoint = {
146
- x: 0.5,
147
- y: 0.5
148
- };
149
- if (req.query.uploadEdits?.focalPoint) {
150
- if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x)) {
151
- focalPoint.x = req.query.uploadEdits.focalPoint.x;
152
- }
153
- if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y)) {
154
- focalPoint.y = req.query.uploadEdits.focalPoint.y;
155
- }
156
- }
157
- const prioritizeHeight = originalAspectRatio > targetAspectRatio;
158
- const { info } = await resized.resize({
159
- height: prioritizeHeight ? height : null,
160
- width: prioritizeHeight ? null : width
161
- }).toBuffer({
162
- resolveWithObject: true
163
- });
164
- const maxOffsetX = Math.max(info.width - width, 0);
165
- const maxOffsetY = Math.max(info.height - height, 0);
166
- const focalPointX = Math.floor(info.width / 100 * focalPoint.x);
167
- const focalPointY = Math.floor(info.height / 100 * focalPoint.y);
168
- const offsetX = Math.min(Math.max(focalPointX - width / 2, 0), maxOffsetX);
169
- const offsetY = Math.min(Math.max(focalPointY - height / 2, 0), maxOffsetY);
170
- resized = resized.extract({
171
- height,
172
- left: offsetX,
173
- top: offsetY,
174
- width
175
- });
176
- }
177
- } else {
178
- resized = resized.resize(imageResizeConfig);
182
+ const prioritizeHeight = resizeAspectRatio < originalAspectRatio;
183
+ // Scale the image up or down to fit the resize dimensions
184
+ const scaledImage = imageToResize.resize({
185
+ height: prioritizeHeight ? resizeHeight : null,
186
+ width: prioritizeHeight ? null : resizeWidth
187
+ });
188
+ const { info: scaledImageInfo } = await scaledImage.toBuffer({
189
+ resolveWithObject: true
190
+ });
191
+ // Focal point adjustments
192
+ const focalPoint = {
193
+ x: (0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x) ? req.query.uploadEdits.focalPoint.x : 50,
194
+ y: (0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y) ? req.query.uploadEdits.focalPoint.y : 50
195
+ };
196
+ const safeResizeWidth = resizeWidth ?? scaledImageInfo.width;
197
+ const maxOffsetX = scaledImageInfo.width - safeResizeWidth;
198
+ const leftFocalEdge = Math.round(scaledImageInfo.width * (focalPoint.x / 100) - safeResizeWidth / 2);
199
+ const safeOffsetX = Math.min(Math.max(0, leftFocalEdge), maxOffsetX);
200
+ const safeResizeHeight = resizeHeight ?? scaledImageInfo.height;
201
+ const maxOffsetY = scaledImageInfo.height - safeResizeHeight;
202
+ const topFocalEdge = Math.round(scaledImageInfo.height * (focalPoint.y / 100) - safeResizeHeight / 2);
203
+ const safeOffsetY = Math.min(Math.max(0, topFocalEdge), maxOffsetY);
204
+ // extract the focal area from the scaled image
205
+ resized = scaledImage.extract({
206
+ height: safeResizeHeight,
207
+ left: safeOffsetX,
208
+ top: safeOffsetY,
209
+ width: safeResizeWidth
210
+ });
179
211
  }
180
212
  if (imageResizeConfig.formatOptions) {
181
213
  resized = resized.toFormat(imageResizeConfig.formatOptions.format, imageResizeConfig.formatOptions.options);
@@ -218,4 +250,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
218
250
  });
219
251
  }
220
252
 
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFVwbG9hZEVkaXRzIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVTaXplLCBGaWxlU2l6ZXMsIEZpbGVUb1NhdmUsIEltYWdlU2l6ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tICcuL2ZpbGVFeGlzdHMnXG5cbnR5cGUgUmVzaXplQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZVxuICBmaWxlOiBVcGxvYWRlZEZpbGVcbiAgbWltZVR5cGU6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0ICYge1xuICAgIHF1ZXJ5Pzoge1xuICAgICAgdXBsb2FkRWRpdHM/OiBVcGxvYWRFZGl0c1xuICAgIH1cbiAgfVxuICBzYXZlZEZpbGVuYW1lOiBzdHJpbmdcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBuZWVkc1Jlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gYWxsb3cgZW5sYXJnZW1lbnQgb3IgcHJldmVudCByZWR1Y3Rpb24gKG91ciBkZWZhdWx0IGlzIHRvIHByZXZlbnRcbiAgLy8gZW5sYXJnZW1lbnQgYW5kIGFsbG93IHJlZHVjdGlvbilcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkIHx8IHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcblxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IG9yaWdpbmFsLndpZHRoIDwgZGVzaXJlZFdpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IG9yaWdpbmFsLmhlaWdodCA8IGRlc2lyZWRIZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuICAvLyBOb3RpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfVxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmICghbmVlZHNSZXNpemUoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoaW1hZ2VSZXNpemVDb25maWcubmFtZSlcbiAgICAgIH1cbiAgICAgIGxldCByZXNpemVkID0gc2hhcnBCYXNlLmNsb25lKClcblxuICAgICAgY29uc3QgaGFzRWRpdHMgPSByZXEucXVlcnk/LnVwbG9hZEVkaXRzXG5cbiAgICAgIGlmIChoYXNFZGl0cyAmJiBpbWFnZVJlc2l6ZUNvbmZpZy53aWR0aCAmJiBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gd2lkdGggLyBoZWlnaHRcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuXG4gICAgICAgIGlmIChvcmlnaW5hbEFzcGVjdFJhdGlvID09PSB0YXJnZXRBc3BlY3RSYXRpbykge1xuICAgICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgICAgeDogMC41LFxuICAgICAgICAgICAgeTogMC41LFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZXEucXVlcnkudXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQpIHtcbiAgICAgICAgICAgIGlmIChpc051bWJlcihyZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludD8ueCkpIHtcbiAgICAgICAgICAgICAgZm9jYWxQb2ludC54ID0gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KSkge1xuICAgICAgICAgICAgICBmb2NhbFBvaW50LnkgPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IG9yaWdpbmFsQXNwZWN0UmF0aW8gPiB0YXJnZXRBc3BlY3RSYXRpb1xuXG4gICAgICAgICAgY29uc3QgeyBpbmZvIH0gPSBhd2FpdCByZXNpemVkXG4gICAgICAgICAgICAucmVzaXplKHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogd2lkdGgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBNYXRoLm1heChpbmZvLndpZHRoIC0gd2lkdGgsIDApXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IE1hdGgubWF4KGluZm8uaGVpZ2h0IC0gaGVpZ2h0LCAwKVxuXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFggPSBNYXRoLmZsb29yKChpbmZvLndpZHRoIC8gMTAwKSAqIGZvY2FsUG9pbnQueClcbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50WSA9IE1hdGguZmxvb3IoKGluZm8uaGVpZ2h0IC8gMTAwKSAqIGZvY2FsUG9pbnQueSlcblxuICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heChmb2NhbFBvaW50WCAtIHdpZHRoIC8gMiwgMCksIG1heE9mZnNldFgpXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRZIC0gaGVpZ2h0IC8gMiwgMCksIG1heE9mZnNldFkpXG5cbiAgICAgICAgICByZXNpemVkID0gcmVzaXplZC5leHRyYWN0KHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIGxlZnQ6IG9mZnNldFgsXG4gICAgICAgICAgICB0b3A6IG9mZnNldFksXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC5yZXNpemUoaW1hZ2VSZXNpemVDb25maWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChcbiAgICAgICAgaW1hZ2VSZXNpemVDb25maWcubmFtZSxcbiAgICAgICAgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBbeyBidWZmZXI6IGJ1ZmZlckRhdGEsIHBhdGg6IGltYWdlUGF0aCB9XSxcbiAgICAgIClcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZShcbiAgICAoYWNjLCByZXN1bHQpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH0sXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwibmVlZHNSZXNpemUiLCJkZXNpcmVkSGVpZ2h0IiwiZGVzaXJlZFdpZHRoIiwid2l0aG91dEVubGFyZ2VtZW50Iiwid2l0aG91dFJlZHVjdGlvbiIsIm9yaWdpbmFsIiwidW5kZWZpbmVkIiwiaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCIsImhhc0luc3VmZmljaWVudFdpZHRoIiwiaGFzSW5zdWZmaWNpZW50SGVpZ2h0IiwiY29uZmlnIiwiZGltZW5zaW9ucyIsImZpbGUiLCJyZXEiLCJzYXZlZEZpbGVuYW1lIiwic3RhdGljUGF0aCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJzaGFycEJhc2UiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJyb3RhdGUiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwicmVzaXplZCIsImNsb25lIiwiaGFzRWRpdHMiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwicmVzaXplIiwiZm9jYWxQb2ludCIsIngiLCJ5IiwiaXNOdW1iZXIiLCJwcmlvcml0aXplSGVpZ2h0IiwiaW5mbyIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJtYXhPZmZzZXRYIiwiTWF0aCIsIm1heCIsIm1heE9mZnNldFkiLCJmb2NhbFBvaW50WCIsImZsb29yIiwiZm9jYWxQb2ludFkiLCJvZmZzZXRYIiwibWluIiwib2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1KQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Skg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBT087bUVBQ0Y7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
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFVwbG9hZEVkaXRzIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVTaXplLCBGaWxlU2l6ZXMsIEZpbGVUb1NhdmUsIEltYWdlU2l6ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tICcuL2ZpbGVFeGlzdHMnXG5cbnR5cGUgUmVzaXplQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZVxuICBmaWxlOiBVcGxvYWRlZEZpbGVcbiAgbWltZVR5cGU6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0ICYge1xuICAgIHF1ZXJ5Pzoge1xuICAgICAgdXBsb2FkRWRpdHM/OiBVcGxvYWRFZGl0c1xuICAgIH1cbiAgfVxuICBzYXZlZEZpbGVuYW1lOiBzdHJpbmdcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aXRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudFdpZHRoID0gZGVzaXJlZFdpZHRoID4gb3JpZ2luYWwud2lkdGhcbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50SGVpZ2h0ID0gZGVzaXJlZEhlaWdodCA+IG9yaWdpbmFsLmhlaWdodFxuICBpZiAoaGFzSW5zdWZmaWNpZW50V2lkdGggJiYgaGFzSW5zdWZmaWNpZW50SGVpZ2h0KSB7XG4gICAgLy8gZG9lc24ndCBuZWVkIHJlc2l6ZSAtIHByZXZlbnQgZW5sYXJnZW1lbnQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgaW5zdWZmaWNpZW50LlxuICAgIC8vIGlmIG9ubHkgb25lIGRpbWVuc2lvbiBpcyBpbnN1ZmZpY2llbnQgYW5kIHRoZSBvdGhlciBpcyBzdWZmaWNpZW50LCByZXNpemluZyBuZWVkcyB0byBoYXBwZW4sIGFzIHRoZSBpbWFnZVxuICAgIC8vIHNob3VsZCBiZSByZXNpemVkIHRvIHRoZSBzdWZmaWNpZW50IGRpbWVuc2lvbi5cbiAgICByZXR1cm4gdHJ1ZSAvLyBkbyBub3QgY3JlYXRlIGEgbmV3IHNpemVcbiAgfVxuXG4gIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycCB3aXRob3V0IHBheWxvYWQgYWRqdXN0aW5nIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBzaG91bGQgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwXG4gKi9cbmNvbnN0IGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzID0gKFxuICB7IGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKCFpc051bWJlcihoZWlnaHQpICYmICFpc051bWJlcih3aWR0aCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gd2lkdGggLyBoZWlnaHRcbiAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IG9yaWdpbmFsLndpZHRoIC8gb3JpZ2luYWwuaGVpZ2h0XG4gIGlmIChvcmlnaW5hbEFzcGVjdFJhdGlvID09PSB0YXJnZXRBc3BlY3RSYXRpbykgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3Qgc2tpcEVubGFyZ2VtZW50ID0gd2l0aG91dEVubGFyZ2VtZW50ICYmIChvcmlnaW5hbC5oZWlnaHQgPCBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPCB3aWR0aClcbiAgY29uc3Qgc2tpcFJlZHVjdGlvbiA9IHdpdGhvdXRSZWR1Y3Rpb24gJiYgKG9yaWdpbmFsLmhlaWdodCA+IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA+IHdpZHRoKVxuICBpZiAoc2tpcEVubGFyZ2VtZW50IHx8IHNraXBSZWR1Y3Rpb24pIHJldHVybiBmYWxzZVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIHJlc2l6ZSBjb25maWcuIElmIHRoZSByZXNpemUgY29uZmlnIGhhcyB0aGUgYHdpdGhvdXRSZWR1Y3Rpb25gXG4gKiBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZSwgdGhlIGBmaXRgIGFuZCBgcG9zaXRpb25gIHByb3BlcnRpZXMgd2lsbCBiZSBzZXQgdG8gYGNvbnRhaW5gXG4gKiBhbmQgYHRvcCBsZWZ0YCByZXNwZWN0aXZlbHkuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyBhIHNhbml0aXplZCByZXNpemUgY29uZmlnXG4gKi9cbmNvbnN0IHNhbml0aXplUmVzaXplQ29uZmlnID0gKHJlc2l6ZUNvbmZpZzogSW1hZ2VTaXplKTogSW1hZ2VTaXplID0+IHtcbiAgaWYgKHJlc2l6ZUNvbmZpZy53aXRob3V0UmVkdWN0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc2l6ZUNvbmZpZyxcbiAgICAgIC8vIFdoeSBmaXQgYGNvbnRhaW5gIHNob3VsZCBhbHNvIGJlIHNldCB0byBodHRwczovL2dpdGh1Yi5jb20vbG92ZWxsL3NoYXJwL2lzc3Vlcy8zNTk1XG4gICAgICBmaXQ6IHJlc2l6ZUNvbmZpZz8uZml0IHx8ICdjb250YWluJyxcbiAgICAgIHBvc2l0aW9uOiByZXNpemVDb25maWc/LnBvc2l0aW9uIHx8ICdsZWZ0IHRvcCcsXG4gICAgfVxuICB9XG4gIHJldHVybiByZXNpemVDb25maWdcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuICAvLyBOb3RpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfVxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICBpbWFnZVJlc2l6ZUNvbmZpZyA9IHNhbml0aXplUmVzaXplQ29uZmlnKGltYWdlUmVzaXplQ29uZmlnKVxuXG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmIChwcmV2ZW50UmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KGltYWdlUmVzaXplQ29uZmlnLm5hbWUpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVG9SZXNpemUgPSBzaGFycEJhc2UuY2xvbmUoKVxuICAgICAgbGV0IHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgaWYgKFxuICAgICAgICByZXEucXVlcnk/LnVwbG9hZEVkaXRzPy5mb2NhbFBvaW50ICYmXG4gICAgICAgIGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgaGVpZ2h0OiByZXNpemVIZWlnaHQsIHdpZHRoOiByZXNpemVXaWR0aCB9ID0gaW1hZ2VSZXNpemVDb25maWdcbiAgICAgICAgY29uc3QgcmVzaXplQXNwZWN0UmF0aW8gPSByZXNpemVXaWR0aCAvIHJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gZGltZW5zaW9ucy53aWR0aCAvIGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgICAgIGNvbnN0IHByaW9yaXRpemVIZWlnaHQgPSByZXNpemVBc3BlY3RSYXRpbyA8IG9yaWdpbmFsQXNwZWN0UmF0aW9cblxuICAgICAgICAvLyBTY2FsZSB0aGUgaW1hZ2UgdXAgb3IgZG93biB0byBmaXQgdGhlIHJlc2l6ZSBkaW1lbnNpb25zXG4gICAgICAgIGNvbnN0IHNjYWxlZEltYWdlID0gaW1hZ2VUb1Jlc2l6ZS5yZXNpemUoe1xuICAgICAgICAgIGhlaWdodDogcHJpb3JpdGl6ZUhlaWdodCA/IHJlc2l6ZUhlaWdodCA6IG51bGwsXG4gICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogcmVzaXplV2lkdGgsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHsgaW5mbzogc2NhbGVkSW1hZ2VJbmZvIH0gPSBhd2FpdCBzY2FsZWRJbWFnZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG5cbiAgICAgICAgLy8gRm9jYWwgcG9pbnQgYWRqdXN0bWVudHNcbiAgICAgICAgY29uc3QgZm9jYWxQb2ludCA9IHtcbiAgICAgICAgICB4OiBpc051bWJlcihyZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludD8ueClcbiAgICAgICAgICAgID8gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgICAgOiA1MCxcbiAgICAgICAgICB5OiBpc051bWJlcihyZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludD8ueSlcbiAgICAgICAgICAgID8gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueVxuICAgICAgICAgICAgOiA1MCxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNhZmVSZXNpemVXaWR0aCA9IHJlc2l6ZVdpZHRoID8/IHNjYWxlZEltYWdlSW5mby53aWR0aFxuICAgICAgICBjb25zdCBtYXhPZmZzZXRYID0gc2NhbGVkSW1hZ2VJbmZvLndpZHRoIC0gc2FmZVJlc2l6ZVdpZHRoXG4gICAgICAgIGNvbnN0IGxlZnRGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby53aWR0aCAqIChmb2NhbFBvaW50LnggLyAxMDApIC0gc2FmZVJlc2l6ZVdpZHRoIC8gMixcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBzYWZlT2Zmc2V0WCA9IE1hdGgubWluKE1hdGgubWF4KDAsIGxlZnRGb2NhbEVkZ2UpLCBtYXhPZmZzZXRYKVxuXG4gICAgICAgIGNvbnN0IHNhZmVSZXNpemVIZWlnaHQgPSByZXNpemVIZWlnaHQgPz8gc2NhbGVkSW1hZ2VJbmZvLmhlaWdodFxuICAgICAgICBjb25zdCBtYXhPZmZzZXRZID0gc2NhbGVkSW1hZ2VJbmZvLmhlaWdodCAtIHNhZmVSZXNpemVIZWlnaHRcbiAgICAgICAgY29uc3QgdG9wRm9jYWxFZGdlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0ICogKGZvY2FsUG9pbnQueSAvIDEwMCkgLSBzYWZlUmVzaXplSGVpZ2h0IC8gMixcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBzYWZlT2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KDAsIHRvcEZvY2FsRWRnZSksIG1heE9mZnNldFkpXG5cbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgZm9jYWwgYXJlYSBmcm9tIHRoZSBzY2FsZWQgaW1hZ2VcbiAgICAgICAgcmVzaXplZCA9IHNjYWxlZEltYWdlLmV4dHJhY3Qoe1xuICAgICAgICAgIGhlaWdodDogc2FmZVJlc2l6ZUhlaWdodCxcbiAgICAgICAgICBsZWZ0OiBzYWZlT2Zmc2V0WCxcbiAgICAgICAgICB0b3A6IHNhZmVPZmZzZXRZLFxuICAgICAgICAgIHdpZHRoOiBzYWZlUmVzaXplV2lkdGgsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChcbiAgICAgICAgaW1hZ2VSZXNpemVDb25maWcubmFtZSxcbiAgICAgICAgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBbeyBidWZmZXI6IGJ1ZmZlckRhdGEsIHBhdGg6IGltYWdlUGF0aCB9XSxcbiAgICAgIClcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZShcbiAgICAoYWNjLCByZXN1bHQpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH0sXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwicHJldmVudFJlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJhcHBseVBheWxvYWRBZGp1c3RtZW50cyIsImlzTnVtYmVyIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwic2tpcEVubGFyZ2VtZW50Iiwic2tpcFJlZHVjdGlvbiIsInNhbml0aXplUmVzaXplQ29uZmlnIiwicmVzaXplQ29uZmlnIiwiZml0IiwicG9zaXRpb24iLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsInNoYXJwQmFzZSIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsInJvdGF0ZSIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1hZ2VSZXNpemVDb25maWciLCJpbWFnZVRvUmVzaXplIiwiY2xvbmUiLCJyZXNpemVkIiwicmVzaXplIiwicXVlcnkiLCJ1cGxvYWRFZGl0cyIsImZvY2FsUG9pbnQiLCJyZXNpemVIZWlnaHQiLCJyZXNpemVXaWR0aCIsInJlc2l6ZUFzcGVjdFJhdGlvIiwicHJpb3JpdGl6ZUhlaWdodCIsInNjYWxlZEltYWdlIiwiaW5mbyIsInNjYWxlZEltYWdlSW5mbyIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJ4IiwieSIsInNhZmVSZXNpemVXaWR0aCIsIm1heE9mZnNldFgiLCJsZWZ0Rm9jYWxFZGdlIiwiTWF0aCIsInJvdW5kIiwic2FmZU9mZnNldFgiLCJtaW4iLCJtYXgiLCJzYWZlUmVzaXplSGVpZ2h0IiwibWF4T2Zmc2V0WSIsInRvcEZvY2FsRWRnZSIsInNhZmVPZmZzZXRZIiwiZXh0cmFjdCIsImxlZnQiLCJ0b3AiLCJmb3JtYXRPcHRpb25zIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbU9wdGlvbnMiLCJ0cmltIiwiYnVmZmVyRGF0YSIsImJ1ZmZlckluZm8iLCJzYW5pdGl6ZWRJbWFnZSIsInBheWxvYWRVcGxvYWRTaXplcyIsIm1pbWVJbmZvIiwiZnJvbUJ1ZmZlciIsImltYWdlTmFtZVdpdGhEaW1lbnNpb25zIiwiaW1hZ2VQYXRoIiwiZmlsZUV4aXN0cyIsImZzIiwidW5saW5rU3luYyIsInNpemUiLCJtaW1lIiwiYnVmZmVyIiwicGF0aCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsIk9iamVjdCIsImFzc2lnbiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBa01BOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRDs7O2VBQThCQTs7OzBCQTdNSDsyREFDWjt5RUFDTTs4REFDSDswQkFPTzttRUFDRjs7Ozs7O0FBMkJ2Qjs7Ozs7Q0FLQyxHQUNELE1BQU1DLHdCQUF3QixDQUFDQztJQUM3QixNQUFNQyxZQUFZRCxZQUFZRSxLQUFLLENBQUMsS0FBS0MsR0FBRztJQUM1QyxNQUFNQyxPQUFPQyxJQUFBQSx5QkFBUSxFQUFDTCxZQUFZTSxTQUFTLENBQUMsR0FBR04sWUFBWU8sV0FBVyxDQUFDLFNBQVNQO0lBQ2hGLE9BQU87UUFBRUk7UUFBTUksS0FBS1A7SUFBVTtBQUNoQztBQUVBOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE1BQU1RLGtCQUFrQixDQUN0QkMsaUJBQ0EsRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQWMsRUFDN0JYLFlBQ0csQ0FBQyxFQUFFUyxnQkFBZ0IsQ0FBQyxFQUFFRSxNQUFNLENBQUMsRUFBRUQsT0FBTyxDQUFDLEVBQUVWLFVBQVUsQ0FBQztBQUV6RDs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0QsTUFBTVksZUFBZSxDQUNuQlQsTUFDQVUsV0FBaUMsSUFBSSxFQUNyQ0YsUUFBMkIsSUFBSSxFQUMvQkQsU0FBNkIsSUFBSSxF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
@@ -40,7 +40,7 @@ export type ImageUploadFormatOptions = {
40
40
  * @link https://sharp.pixelplumbing.com/api-resize#trim
41
41
  */
42
42
  export type ImageUploadTrimOptions = Parameters<Sharp['trim']>[0];
43
- export type ImageSize = ResizeOptions & {
43
+ export type ImageSize = Omit<ResizeOptions, 'withoutEnlargement'> & {
44
44
  /**
45
45
  * @deprecated prefer position
46
46
  */
@@ -48,6 +48,16 @@ export type ImageSize = ResizeOptions & {
48
48
  formatOptions?: ImageUploadFormatOptions;
49
49
  name: string;
50
50
  trimOptions?: ImageUploadTrimOptions;
51
+ /**
52
+ * When an uploaded image is smaller than the defined image size, we have 3 options:
53
+ *
54
+ * `undefined | false | true`
55
+ *
56
+ * 1. `undefined` [default]: uploading images with smaller width AND height than the image size will return null
57
+ * 2. `false`: always enlarge images to the image size
58
+ * 3. `true`: if the image is smaller than the image size, return the original image
59
+ */
60
+ withoutEnlargement?: ResizeOptions['withoutEnlargement'];
51
61
  };
52
62
  export type GetAdminThumbnail = (args: {
53
63
  doc: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAEjD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3C,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjE,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,oBAAoB,CAAC,GAAG;IAClE;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAA;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,sBAAsB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,cAAc,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAA;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC1F,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHR5cGUgZXhwcmVzcyBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHR5cGUgc2VydmVTdGF0aWMgZnJvbSAnc2VydmUtc3RhdGljJ1xuaW1wb3J0IHR5cGUgeyBSZXNpemVPcHRpb25zLCBTaGFycCB9IGZyb20gJ3NoYXJwJ1xuXG5leHBvcnQgdHlwZSBGaWxlU2l6ZSA9IHtcbiAgZmlsZW5hbWU6IG51bGwgfCBzdHJpbmdcbiAgZmlsZXNpemU6IG51bGwgfCBudW1iZXJcbiAgaGVpZ2h0OiBudWxsIHwgbnVtYmVyXG4gIG1pbWVUeXBlOiBudWxsIHwgc3RyaW5nXG4gIHdpZHRoOiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVTaXplcyA9IHtcbiAgW3NpemU6IHN0cmluZ106IEZpbGVTaXplXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEYXRhID0ge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGZpbGVzaXplOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZVR5cGU6IHN0cmluZ1xuICBzaXplczogRmlsZVNpemVzXG4gIHRlbXBGaWxlUGF0aD86IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFByb2JlZEltYWdlU2l6ZSA9IHtcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRvRm9ybWF0KCkgZnVuY3Rpb25cbiAqIEBsaW5rIGh0dHBzOi8vc2hhcnAucGl4ZWxwbHVtYmluZy5jb20vYXBpLW91dHB1dCN0b2Zvcm1hdFxuICovXG5leHBvcnQgdHlwZSBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnMgPSB7XG4gIGZvcm1hdDogUGFyYW1ldGVyczxTaGFycFsndG9Gb3JtYXQnXT5bMF1cbiAgb3B0aW9ucz86IFBhcmFtZXRlcnM8U2hhcnBbJ3RvRm9ybWF0J10+WzFdXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRyaW0oKSBmdW5jdGlvblxuICogQGxpbmsgaHR0cHM6Ly9zaGFycC5waXhlbHBsdW1iaW5nLmNvbS9hcGktcmVzaXplI3RyaW1cbiAqL1xuZXhwb3J0IHR5cGUgSW1hZ2VVcGxvYWRUcmltT3B0aW9ucyA9IFBhcmFtZXRlcnM8U2hhcnBbJ3RyaW0nXT5bMF1cblxuZXhwb3J0IHR5cGUgSW1hZ2VTaXplID0gUmVzaXplT3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHByZWZlciBwb3NpdGlvblxuICAgKi9cbiAgY3JvcD86IHN0cmluZyAvLyBjb21lcyBmcm9tIHNoYXJwIHBhY2thZ2VcbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBuYW1lOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEdldEFkbWluVGh1bWJuYWlsID0gKGFyZ3M6IHsgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9KSA9PiBmYWxzZSB8IG51bGwgfCBzdHJpbmdcblxuZXhwb3J0IHR5cGUgSW5jb21pbmdVcGxvYWRUeXBlID0ge1xuICBhZG1pblRodW1ibmFpbD86IEdldEFkbWluVGh1bWJuYWlsIHwgc3RyaW5nXG4gIGNyb3A/OiBib29sZWFuXG4gIGRpc2FibGVMb2NhbFN0b3JhZ2U/OiBib29sZWFuXG4gIGZpbGVzUmVxdWlyZWRPbkNyZWF0ZT86IGJvb2xlYW5cbiAgZm9jYWxQb2ludD86IGJvb2xlYW5cbiAgLyoqIE9wdGlvbnMgZm9yIG9yaWdpbmFsIHVwbG9hZCBmaWxlIG9ubHkuIEZvciBzaXplcywgc2V0IGVhY2ggZm9ybWF0T3B0aW9ucyBpbmRpdmlkdWFsbHkuICovXG4gIGZvcm1hdE9wdGlvbnM/OiBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnNcbiAgaGFuZGxlcnM/OiBhbnlbXVxuICBpbWFnZVNpemVzPzogSW1hZ2VTaXplW11cbiAgbWltZVR5cGVzPzogc3RyaW5nW11cbiAgcmVzaXplT3B0aW9ucz86IFJlc2l6ZU9wdGlvbnNcbiAgc3RhdGljRGlyPzogc3RyaW5nXG4gIHN0YXRpY09wdGlvbnM/OiBzZXJ2ZVN0YXRpYy5TZXJ2ZVN0YXRpY09wdGlvbnM8ZXhwcmVzcy5SZXNwb25zZTxhbnksIFJlY29yZDxzdHJpbmcsIGFueT4+PlxuICBzdGF0aWNVUkw/OiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFVwbG9hZCA9IHtcbiAgYWRtaW5UaHVtYm5haWw/OiBHZXRBZG1pblRodW1ibmFpbCB8IHN0cmluZ1xuICBjcm9wPzogYm9vbGVhblxuICBkaXNhYmxlTG9jYWxTdG9yYWdlPzogYm9vbGVhblxuICBmaWxlc1JlcXVpcmVkT25DcmVhdGU/OiBib29sZWFuXG4gIGZvY2FsUG9pbnQ/OiBib29sZWFuXG4gIGZvcm1hdE9wdGlvbnM/OiBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnNcbiAgaGFuZGxlcnM/OiBhbnlbXVxuICBpbWFnZVNpemVzPzogSW1hZ2VTaXplW11cbiAgbWltZVR5cGVzPzogc3RyaW5nW11cbiAgcmVzaXplT3B0aW9ucz86IFJlc2l6ZU9wdGlvbnNcbiAgc3RhdGljRGlyOiBzdHJpbmdcbiAgc3RhdGljT3B0aW9ucz86IHNlcnZlU3RhdGljLlNlcnZlU3RhdGljT3B0aW9uczxleHByZXNzLlJlc3BvbnNlPGFueSwgUmVjb3JkPHN0cmluZywgYW55Pj4+XG4gIHN0YXRpY1VSTDogc3RyaW5nXG4gIHRyaW1PcHRpb25zPzogSW1hZ2VVcGxvYWRUcmltT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBGaWxlID0ge1xuICBkYXRhOiBCdWZmZXJcbiAgbWltZXR5cGU6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVUb1NhdmUgPSB7XG4gIGJ1ZmZlcjogQnVmZmVyXG4gIHBhdGg6IHN0cmluZ1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHR5cGUgZXhwcmVzcyBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHR5cGUgc2VydmVTdGF0aWMgZnJvbSAnc2VydmUtc3RhdGljJ1xuaW1wb3J0IHR5cGUgeyBSZXNpemVPcHRpb25zLCBTaGFycCB9IGZyb20gJ3NoYXJwJ1xuXG5leHBvcnQgdHlwZSBGaWxlU2l6ZSA9IHtcbiAgZmlsZW5hbWU6IG51bGwgfCBzdHJpbmdcbiAgZmlsZXNpemU6IG51bGwgfCBudW1iZXJcbiAgaGVpZ2h0OiBudWxsIHwgbnVtYmVyXG4gIG1pbWVUeXBlOiBudWxsIHwgc3RyaW5nXG4gIHdpZHRoOiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVTaXplcyA9IHtcbiAgW3NpemU6IHN0cmluZ106IEZpbGVTaXplXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEYXRhID0ge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGZpbGVzaXplOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZVR5cGU6IHN0cmluZ1xuICBzaXplczogRmlsZVNpemVzXG4gIHRlbXBGaWxlUGF0aD86IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFByb2JlZEltYWdlU2l6ZSA9IHtcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRvRm9ybWF0KCkgZnVuY3Rpb25cbiAqIEBsaW5rIGh0dHBzOi8vc2hhcnAucGl4ZWxwbHVtYmluZy5jb20vYXBpLW91dHB1dCN0b2Zvcm1hdFxuICovXG5leHBvcnQgdHlwZSBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnMgPSB7XG4gIGZvcm1hdDogUGFyYW1ldGVyczxTaGFycFsndG9Gb3JtYXQnXT5bMF1cbiAgb3B0aW9ucz86IFBhcmFtZXRlcnM8U2hhcnBbJ3RvRm9ybWF0J10+WzFdXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRyaW0oKSBmdW5jdGlvblxuICogQGxpbmsgaHR0cHM6Ly9zaGFycC5waXhlbHBsdW1iaW5nLmNvbS9hcGktcmVzaXplI3RyaW1cbiAqL1xuZXhwb3J0IHR5cGUgSW1hZ2VVcGxvYWRUcmltT3B0aW9ucyA9IFBhcmFtZXRlcnM8U2hhcnBbJ3RyaW0nXT5bMF1cblxuZXhwb3J0IHR5cGUgSW1hZ2VTaXplID0gT21pdDxSZXNpemVPcHRpb25zLCAnd2l0aG91dEVubGFyZ2VtZW50Jz4gJiB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBwcmVmZXIgcG9zaXRpb25cbiAgICovXG4gIGNyb3A/OiBzdHJpbmcgLy8gY29tZXMgZnJvbSBzaGFycCBwYWNrYWdlXG4gIGZvcm1hdE9wdGlvbnM/OiBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnNcbiAgbmFtZTogc3RyaW5nXG4gIHRyaW1PcHRpb25zPzogSW1hZ2VVcGxvYWRUcmltT3B0aW9uc1xuICAvKipcbiAgICogV2hlbiBhbiB1cGxvYWRlZCBpbWFnZSBpcyBzbWFsbGVyIHRoYW4gdGhlIGRlZmluZWQgaW1hZ2Ugc2l6ZSwgd2UgaGF2ZSAzIG9wdGlvbnM6XG4gICAqXG4gICAqIGB1bmRlZmluZWQgfCBmYWxzZSB8IHRydWVgXG4gICAqXG4gICAqIDEuIGB1bmRlZmluZWRgIFtkZWZhdWx0XTogdXBsb2FkaW5nIGltYWdlcyB3aXRoIHNtYWxsZXIgd2lkdGggQU5EIGhlaWdodCB0aGFuIHRoZSBpbWFnZSBzaXplIHdpbGwgcmV0dXJuIG51bGxcbiAgICogMi4gYGZhbHNlYDogYWx3YXlzIGVubGFyZ2UgaW1hZ2VzIHRvIHRoZSBpbWFnZSBzaXplXG4gICAqIDMuIGB0cnVlYDogaWYgdGhlIGltYWdlIGlzIHNtYWxsZXIgdGhhbiB0aGUgaW1hZ2Ugc2l6ZSwgcmV0dXJuIHRoZSBvcmlnaW5hbCBpbWFnZVxuICAgKi9cbiAgd2l0aG91dEVubGFyZ2VtZW50PzogUmVzaXplT3B0aW9uc1snd2l0aG91dEVubGFyZ2VtZW50J11cbn1cblxuZXhwb3J0IHR5cGUgR2V0QWRtaW5UaHVtYm5haWwgPSAoYXJnczogeyBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0pID0+IGZhbHNlIHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBJbmNvbWluZ1VwbG9hZFR5cGUgPSB7XG4gIGFkbWluVGh1bWJuYWlsPzogR2V0QWRtaW5UaHVtYm5haWwgfCBzdHJpbmdcbiAgY3JvcD86IGJvb2xlYW5cbiAgZGlzYWJsZUxvY2FsU3RvcmFnZT86IGJvb2xlYW5cbiAgZmlsZXNSZXF1aXJlZE9uQ3JlYXRlPzogYm9vbGVhblxuICBmb2NhbFBvaW50PzogYm9vbGVhblxuICAvKiogT3B0aW9ucyBmb3Igb3JpZ2luYWwgdXBsb2FkIGZpbGUgb25seS4gRm9yIHNpemVzLCBzZXQgZWFjaCBmb3JtYXRPcHRpb25zIGluZGl2aWR1YWxseS4gKi9cbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBoYW5kbGVycz86IGFueVtdXG4gIGltYWdlU2l6ZXM/OiBJbWFnZVNpemVbXVxuICBtaW1lVHlwZXM/OiBzdHJpbmdbXVxuICByZXNpemVPcHRpb25zPzogUmVzaXplT3B0aW9uc1xuICBzdGF0aWNEaXI/OiBzdHJpbmdcbiAgc3RhdGljT3B0aW9ucz86IHNlcnZlU3RhdGljLlNlcnZlU3RhdGljT3B0aW9uczxleHByZXNzLlJlc3BvbnNlPGFueSwgUmVjb3JkPHN0cmluZywgYW55Pj4+XG4gIHN0YXRpY1VSTD86IHN0cmluZ1xuICB0cmltT3B0aW9ucz86IEltYWdlVXBsb2FkVHJpbU9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgVXBsb2FkID0ge1xuICBhZG1pblRodW1ibmFpbD86IEdldEFkbWluVGh1bWJuYWlsIHwgc3RyaW5nXG4gIGNyb3A/OiBib29sZWFuXG4gIGRpc2FibGVMb2NhbFN0b3JhZ2U/OiBib29sZWFuXG4gIGZpbGVzUmVxdWlyZWRPbkNyZWF0ZT86IGJvb2xlYW5cbiAgZm9jYWxQb2ludD86IGJvb2xlYW5cbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBoYW5kbGVycz86IGFueVtdXG4gIGltYWdlU2l6ZXM/OiBJbWFnZVNpemVbXVxuICBtaW1lVHlwZXM/OiBzdHJpbmdbXVxuICByZXNpemVPcHRpb25zPzogUmVzaXplT3B0aW9uc1xuICBzdGF0aWNEaXI6IHN0cmluZ1xuICBzdGF0aWNPcHRpb25zPzogc2VydmVTdGF0aWMuU2VydmVTdGF0aWNPcHRpb25zPGV4cHJlc3MuUmVzcG9uc2U8YW55LCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pj5cbiAgc3RhdGljVVJMOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEZpbGUgPSB7XG4gIGRhdGE6IEJ1ZmZlclxuICBtaW1ldHlwZTogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzaXplOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgRmlsZVRvU2F2ZSA9IHtcbiAgYnVmZmVyOiBCdWZmZXJcbiAgcGF0aDogc3RyaW5nXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fieldSchemaToJSON.d.ts","sourceRoot":"","sources":["../../src/utilities/fieldSchemaToJSON.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,UAAU,CAAA;CACvB,EAAE,CAAA;AAEH,eAAO,MAAM,iBAAiB,WAAY,KAAK,EAAE,oBA6EhD,CAAA"}
1
+ {"version":3,"file":"fieldSchemaToJSON.d.ts","sourceRoot":"","sources":["../../src/utilities/fieldSchemaToJSON.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,UAAU,CAAA;CACvB,EAAE,CAAA;AAEH,eAAO,MAAM,iBAAiB,WAAY,KAAK,EAAE,oBAkGhD,CAAA"}
@@ -13,19 +13,37 @@ const fieldSchemaToJSON = (fields)=>{
13
13
  let result = acc;
14
14
  switch(field.type){
15
15
  case 'group':
16
- case 'array':
17
16
  acc.push({
18
17
  name: field.name,
19
18
  fields: fieldSchemaToJSON(field.fields),
20
19
  type: field.type
21
20
  });
22
21
  break;
22
+ case 'array':
23
+ acc.push({
24
+ name: field.name,
25
+ fields: fieldSchemaToJSON([
26
+ ...field.fields,
27
+ {
28
+ name: 'id',
29
+ type: 'text'
30
+ }
31
+ ]),
32
+ type: field.type
33
+ });
34
+ break;
23
35
  case 'blocks':
24
36
  acc.push({
25
37
  name: field.name,
26
38
  blocks: field.blocks.reduce((acc, block)=>{
27
39
  acc[block.slug] = {
28
- fields: fieldSchemaToJSON(block.fields)
40
+ fields: fieldSchemaToJSON([
41
+ ...block.fields,
42
+ {
43
+ name: 'id',
44
+ type: 'text'
45
+ }
46
+ ])
29
47
  };
30
48
  return acc;
31
49
  }, {}),
@@ -74,4 +92,4 @@ const fieldSchemaToJSON = (fields)=>{
74
92
  }, []);
75
93
  };
76
94
 
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmllbGRTY2hlbWFUb0pTT04udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZFR5cGVzIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHR5cGUgRmllbGRTY2hlbWFKU09OID0ge1xuICBibG9ja3M/OiBGaWVsZFNjaGVtYUpTT04gLy8gVE9ETzogY29uZGl0aW9uYWxseSBhZGQgYmFzZWQgb24gYHR5cGVgXG4gIGZpZWxkcz86IEZpZWxkU2NoZW1hSlNPTiAvLyBUT0RPOiBjb25kaXRpb25hbGx5IGFkZCBiYXNlZCBvbiBgdHlwZWBcbiAgaGFzTWFueT86IGJvb2xlYW4gLy8gVE9ETzogY29uZGl0aW9uYWxseSBhZGQgYmFzZWQgb24gYHR5cGVgXG4gIG5hbWU6IHN0cmluZ1xuICByZWxhdGlvblRvPzogc3RyaW5nIC8vIFRPRE86IGNvbmRpdGlvbmFsbHkgYWRkIGJhc2VkIG9uIGB0eXBlYFxuICBzbHVnPzogc3RyaW5nIC8vIFRPRE86IGNvbmRpdGlvbmFsbHkgYWRkIGJhc2VkIG9uIGB0eXBlYFxuICB0eXBlOiBrZXlvZiBGaWVsZFR5cGVzXG59W11cblxuZXhwb3J0IGNvbnN0IGZpZWxkU2NoZW1hVG9KU09OID0gKGZpZWxkczogRmllbGRbXSk6IEZpZWxkU2NoZW1hSlNPTiA9PiB7XG4gIHJldHVybiBmaWVsZHMucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IGFjY1xuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdncm91cCc6XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgIGZpZWxkczogZmllbGRTY2hlbWFUb0pTT04oZmllbGQuZmllbGRzKSxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgICBibG9ja3M6IGZpZWxkLmJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcbiAgICAgICAgICAgIGFjY1tibG9jay5zbHVnXSA9IHtcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZFNjaGVtYVRvSlNPTihibG9jay5maWVsZHMpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgICAgfSwge30pLFxuICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICBjYXNlICdjb2xsYXBzaWJsZSc6XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoZmllbGRTY2hlbWFUb0pTT04oZmllbGQuZmllbGRzKSlcblxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICBsZXQgdGFiRmllbGRzID0gW11cblxuICAgICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgIGlmICgnbmFtZScgaW4gdGFiKSB7XG4gICAgICAgICAgICB0YWJGaWVsZHMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHRhYi5uYW1lLFxuICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkU2NoZW1hVG9KU09OKHRhYi5maWVsZHMpLFxuICAgICAgICAgICAgICB0eXBlOiAndGFiJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWJGaWVsZHMgPSB0YWJGaWVsZHMuY29uY2F0KGZpZWxkU2NoZW1hVG9KU09OKHRhYi5maWVsZHMpKVxuICAgICAgICB9KVxuXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGFiRmllbGRzKVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOlxuICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgICBoYXNNYW55OiAnaGFzTWFueScgaW4gZmllbGQgPyBCb29sZWFuKGZpZWxkLmhhc01hbnkpIDogZmFsc2UsIC8vIFRPRE86IHR5cGUgdGhpc1xuICAgICAgICAgIHJlbGF0aW9uVG86IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoJ25hbWUnIGluIGZpZWxkKSB7XG4gICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG59XG4iXSwibmFtZXMiOlsiZmllbGRTY2hlbWFUb0pTT04iLCJmaWVsZHMiLCJyZWR1Y2UiLCJhY2MiLCJmaWVsZCIsInJlc3VsdCIsInR5cGUiLCJwdXNoIiwibmFtZSIsImJsb2NrcyIsImJsb2NrIiwic2x1ZyIsImNvbmNhdCIsInRhYkZpZWxkcyIsInRhYnMiLCJmb3JFYWNoIiwidGFiIiwiaGFzTWFueSIsIkJvb2xlYW4iLCJyZWxhdGlvblRvIl0sIm1hcHBpbmdzIjoiOzs7OytCQWFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxvQkFBb0IsQ0FBQ0M7SUFDaEMsT0FBT0EsT0FBT0MsTUFBTSxDQUFDLENBQUNDLEtBQUtDO1FBQ3pCLElBQUlDLFNBQVNGO1FBRWIsT0FBUUMsTUFBTUUsSUFBSTtZQUNoQixLQUFLO1lBQ0wsS0FBSztnQkFDSEgsSUFBSUksSUFBSSxDQUFDO29CQUNQQyxNQUFNSixNQUFNSSxJQUFJO29CQUNoQlAsUUFBUUQsa0JBQWtCSSxNQUFNSCxNQUFNO29CQUN0Q0ssTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBQ0E7WUFFRixLQUFLO2dCQUNISCxJQUFJSSxJQUFJLENBQUM7b0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7b0JBQ2hCQyxRQUFRTCxNQUFNSyxNQUFNLENBQUNQLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTzt3QkFDaENQLEdBQUcsQ0FBQ08sTUFBTUMsSUFBSSxDQUFDLEdBQUc7NEJBQ2hCVixRQUFRRCxrQkFBa0JVLE1BQU1ULE1BQU07d0JBQ3hDO3dCQUVBLE9BQU9FO29CQUNULEdBQUcsQ0FBQztvQkFDSkcsTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBQ0E7WUFFRixLQUFLO1lBQ0wsS0FBSztnQkFDSEQsU0FBU0EsT0FBT08sTUFBTSxDQUFDWixrQkFBa0JJLE1BQU1ILE1BQU07Z0JBRXJEO1lBRUYsS0FBSztnQkFBUTtvQkFDWCxJQUFJWSxZQUFZLEVBQUU7b0JBRWxCVCxNQUFNVSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDQzt3QkFDbEIsSUFBSSxVQUFVQSxLQUFLOzRCQUNqQkgsVUFBVU4sSUFBSSxDQUFDO2dDQUNiQyxNQUFNUSxJQUFJUixJQUFJO2dDQUNkUCxRQUFRRCxrQkFBa0JnQixJQUFJZixNQUFNO2dDQUNwQ0ssTUFBTTs0QkFDUjs0QkFDQTt3QkFDRjt3QkFFQU8sWUFBWUEsVUFBVUQsTUFBTSxDQUFDWixrQkFBa0JnQixJQUFJZixNQUFNO29CQUMzRDtvQkFFQUksU0FBU0EsT0FBT08sTUFBTSxDQUFDQztvQkFFdkI7Z0JBQ0Y7WUFFQSxLQUFLO1lBQ0wsS0FBSztnQkFDSFYsSUFBSUksSUFBSSxDQUFDO29CQUNQQyxNQUFNSixNQUFNSSxJQUFJO29CQUNoQlMsU0FBUyxhQUFhYixRQUFRYyxRQUFRZCxNQUFNYSxPQUFPLElBQUk7b0JBQ3ZERSxZQUFZZixNQUFNZSxVQUFVO29CQUM1QmIsTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBRUE7WUFFRjtnQkFDRSxJQUFJLFVBQVVGLE9BQU87b0JBQ25CRCxJQUFJSSxJQUFJLENBQUM7d0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7d0JBQ2hCRixNQUFNRixNQUFNRSxJQUFJO29CQUNsQjtnQkFDRjtRQUNKO1FBRUEsT0FBT0Q7SUFDVCxHQUFHLEVBQUU7QUFDUCJ9
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmllbGRTY2hlbWFUb0pTT04udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZFR5cGVzIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHR5cGUgRmllbGRTY2hlbWFKU09OID0ge1xuICBibG9ja3M/OiBGaWVsZFNjaGVtYUpTT04gLy8gVE9ETzogY29uZGl0aW9uYWxseSBhZGQgYmFzZWQgb24gYHR5cGVgXG4gIGZpZWxkcz86IEZpZWxkU2NoZW1hSlNPTiAvLyBUT0RPOiBjb25kaXRpb25hbGx5IGFkZCBiYXNlZCBvbiBgdHlwZWBcbiAgaGFzTWFueT86IGJvb2xlYW4gLy8gVE9ETzogY29uZGl0aW9uYWxseSBhZGQgYmFzZWQgb24gYHR5cGVgXG4gIG5hbWU6IHN0cmluZ1xuICByZWxhdGlvblRvPzogc3RyaW5nIC8vIFRPRE86IGNvbmRpdGlvbmFsbHkgYWRkIGJhc2VkIG9uIGB0eXBlYFxuICBzbHVnPzogc3RyaW5nIC8vIFRPRE86IGNvbmRpdGlvbmFsbHkgYWRkIGJhc2VkIG9uIGB0eXBlYFxuICB0eXBlOiBrZXlvZiBGaWVsZFR5cGVzXG59W11cblxuZXhwb3J0IGNvbnN0IGZpZWxkU2NoZW1hVG9KU09OID0gKGZpZWxkczogRmllbGRbXSk6IEZpZWxkU2NoZW1hSlNPTiA9PiB7XG4gIHJldHVybiBmaWVsZHMucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IGFjY1xuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdncm91cCc6XG4gICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgIGZpZWxkczogZmllbGRTY2hlbWFUb0pTT04oZmllbGQuZmllbGRzKSxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZFNjaGVtYVRvSlNPTihbXG4gICAgICAgICAgICAuLi5maWVsZC5maWVsZHMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSksXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgICBibG9ja3M6IGZpZWxkLmJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcbiAgICAgICAgICAgIGFjY1tibG9jay5zbHVnXSA9IHtcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZFNjaGVtYVRvSlNPTihbXG4gICAgICAgICAgICAgICAgLi4uYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdyb3cnOlxuICAgICAgY2FzZSAnY29sbGFwc2libGUnOlxuICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGZpZWxkU2NoZW1hVG9KU09OKGZpZWxkLmZpZWxkcykpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgIGxldCB0YWJGaWVsZHMgPSBbXVxuXG4gICAgICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgaWYgKCduYW1lJyBpbiB0YWIpIHtcbiAgICAgICAgICAgIHRhYkZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogdGFiLm5hbWUsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGRTY2hlbWFUb0pTT04odGFiLmZpZWxkcyksXG4gICAgICAgICAgICAgIHR5cGU6ICd0YWInLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhYkZpZWxkcyA9IHRhYkZpZWxkcy5jb25jYXQoZmllbGRTY2hlbWFUb0pTT04odGFiLmZpZWxkcykpXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0YWJGaWVsZHMpXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgIGhhc01hbnk6ICdoYXNNYW55JyBpbiBmaWVsZCA/IEJvb2xlYW4oZmllbGQuaGFzTWFueSkgOiBmYWxzZSwgLy8gVE9ETzogdHlwZSB0aGlzXG4gICAgICAgICAgcmVsYXRpb25UbzogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICgnbmFtZScgaW4gZmllbGQpIHtcbiAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LCBbXSlcbn1cbiJdLCJuYW1lcyI6WyJmaWVsZFNjaGVtYVRvSlNPTiIsImZpZWxkcyIsInJlZHVjZSIsImFjYyIsImZpZWxkIiwicmVzdWx0IiwidHlwZSIsInB1c2giLCJuYW1lIiwiYmxvY2tzIiwiYmxvY2siLCJzbHVnIiwiY29uY2F0IiwidGFiRmllbGRzIiwidGFicyIsImZvckVhY2giLCJ0YWIiLCJoYXNNYW55IiwiQm9vbGVhbiIsInJlbGF0aW9uVG8iXSwibWFwcGluZ3MiOiI7Ozs7K0JBYWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLG9CQUFvQixDQUFDQztJQUNoQyxPQUFPQSxPQUFPQyxNQUFNLENBQUMsQ0FBQ0MsS0FBS0M7UUFDekIsSUFBSUMsU0FBU0Y7UUFFYixPQUFRQyxNQUFNRSxJQUFJO1lBQ2hCLEtBQUs7Z0JBQ0hILElBQUlJLElBQUksQ0FBQztvQkFDUEMsTUFBTUosTUFBTUksSUFBSTtvQkFDaEJQLFFBQVFELGtCQUFrQkksTUFBTUgsTUFBTTtvQkFDdENLLE1BQU1GLE1BQU1FLElBQUk7Z0JBQ2xCO2dCQUVBO1lBRUYsS0FBSztnQkFDSEgsSUFBSUksSUFBSSxDQUFDO29CQUNQQyxNQUFNSixNQUFNSSxJQUFJO29CQUNoQlAsUUFBUUQsa0JBQWtCOzJCQUNyQkksTUFBTUgsTUFBTTt3QkFDZjs0QkFDRU8sTUFBTTs0QkFDTkYsTUFBTTt3QkFDUjtxQkFDRDtvQkFDREEsTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBRUE7WUFFRixLQUFLO2dCQUNISCxJQUFJSSxJQUFJLENBQUM7b0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7b0JBQ2hCQyxRQUFRTCxNQUFNSyxNQUFNLENBQUNQLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTzt3QkFDaENQLEdBQUcsQ0FBQ08sTUFBTUMsSUFBSSxDQUFDLEdBQUc7NEJBQ2hCVixRQUFRRCxrQkFBa0I7bUNBQ3JCVSxNQUFNVCxNQUFNO2dDQUNmO29DQUNFTyxNQUFNO29DQUNORixNQUFNO2dDQUNSOzZCQUNEO3dCQUNIO3dCQUVBLE9BQU9IO29CQUNULEdBQUcsQ0FBQztvQkFDSkcsTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBRUE7WUFFRixLQUFLO1lBQ0wsS0FBSztnQkFDSEQsU0FBU0EsT0FBT08sTUFBTSxDQUFDWixrQkFBa0JJLE1BQU1ILE1BQU07Z0JBQ3JEO1lBRUYsS0FBSztnQkFBUTtvQkFDWCxJQUFJWSxZQUFZLEVBQUU7b0JBRWxCVCxNQUFNVSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDQzt3QkFDbEIsSUFBSSxVQUFVQSxLQUFLOzRCQUNqQkgsVUFBVU4sSUFBSSxDQUFDO2dDQUNiQyxNQUFNUSxJQUFJUixJQUFJO2dDQUNkUCxRQUFRRCxrQkFBa0JnQixJQUFJZixNQUFNO2dDQUNwQ0ssTUFBTTs0QkFDUjs0QkFDQTt3QkFDRjt3QkFFQU8sWUFBWUEsVUFBVUQsTUFBTSxDQUFDWixrQkFBa0JnQixJQUFJZixNQUFNO29CQUMzRDtvQkFFQUksU0FBU0EsT0FBT08sTUFBTSxDQUFDQztvQkFFdkI7Z0JBQ0Y7WUFFQSxLQUFLO1lBQ0wsS0FBSztnQkFDSFYsSUFBSUksSUFBSSxDQUFDO29CQUNQQyxNQUFNSixNQUFNSSxJQUFJO29CQUNoQlMsU0FBUyxhQUFhYixRQUFRYyxRQUFRZCxNQUFNYSxPQUFPLElBQUk7b0JBQ3ZERSxZQUFZZixNQUFNZSxVQUFVO29CQUM1QmIsTUFBTUYsTUFBTUUsSUFBSTtnQkFDbEI7Z0JBRUE7WUFFRjtnQkFDRSxJQUFJLFVBQVVGLE9BQU87b0JBQ25CRCxJQUFJSSxJQUFJLENBQUM7d0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7d0JBQ2hCRixNQUFNRixNQUFNRSxJQUFJO29CQUNsQjtnQkFDRjtRQUNKO1FBRUEsT0FBT0Q7SUFDVCxHQUFHLEVBQUU7QUFDUCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"getEntityPolicies.d.ts","sourceRoot":"","sources":["../../src/utilities/getEntityPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAG5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IACzD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B,CAAA;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,QAAQ,GACxD,gBAAgB,GAChB,oBAAoB,CAAA;AAYxB,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAkNvF"}
1
+ {"version":3,"file":"getEntityPolicies.d.ts","sourceRoot":"","sources":["../../src/utilities/getEntityPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAc,MAAM,6BAA6B,CAAA;AAExF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IACzD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B,CAAA;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,QAAQ,GACxD,gBAAgB,GAChB,oBAAoB,CAAA;AAYxB,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAoNvF"}
@@ -35,6 +35,7 @@ async function getEntityPolicies(args) {
35
35
  collection: entity.slug,
36
36
  limit: 1,
37
37
  overrideAccess: true,
38
+ req,
38
39
  where: {
39
40
  ...where,
40
41
  and: [
@@ -52,7 +53,8 @@ async function getEntityPolicies(args) {
52
53
  return req.payload.findByID({
53
54
  id,
54
55
  collection: entity.slug,
55
- overrideAccess: true
56
+ overrideAccess: true,
57
+ req
56
58
  });
57
59
  }
58
60
  }
@@ -196,4 +198,4 @@ async function getEntityPolicies(args) {
196
198
  return policies;
197
199
  }
198
200
 
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ2V0RW50aXR5UG9saWNpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uUGVybWlzc2lvbiwgR2xvYmFsUGVybWlzc2lvbiB9IGZyb20gJy4uL2F1dGgvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoSUQgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFjY2VzcyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZEFjY2VzcyB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBbGxPcGVyYXRpb25zLCBEb2N1bWVudCwgV2hlcmUgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgdGFiSGFzTmFtZSB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgZW50aXR5OiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnXG4gIGlkPzogc3RyaW5nXG4gIG9wZXJhdGlvbnM6IEFsbE9wZXJhdGlvbnNbXVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHR5cGU6ICdjb2xsZWN0aW9uJyB8ICdnbG9iYWwnXG59XG5cbnR5cGUgUmV0dXJuVHlwZTxUIGV4dGVuZHMgQXJncz4gPSBUWyd0eXBlJ10gZXh0ZW5kcyAnZ2xvYmFsJ1xuICA/IEdsb2JhbFBlcm1pc3Npb25cbiAgOiBDb2xsZWN0aW9uUGVybWlzc2lvblxuXG50eXBlIENyZWF0ZUFjY2Vzc1Byb21pc2UgPSAoYXJnczoge1xuICBhY2Nlc3M6IEFjY2VzcyB8IEZpZWxkQWNjZXNzXG4gIGFjY2Vzc0xldmVsOiAnZW50aXR5JyB8ICdmaWVsZCdcbiAgZGlzYWJsZVdoZXJlPzogYm9vbGVhblxuICBvcGVyYXRpb246IEFsbE9wZXJhdGlvbnNcbiAgcG9saWNpZXNPYmo6IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxufSkgPT4gUHJvbWlzZTx2b2lkPlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW50aXR5UG9saWNpZXM8VCBleHRlbmRzIEFyZ3M+KGFyZ3M6IFQpOiBQcm9taXNlPFJldHVyblR5cGU8VD4+IHtcbiAgY29uc3QgeyBpZCwgZW50aXR5LCBvcGVyYXRpb25zLCByZXEsIHR5cGUgfSA9IGFyZ3NcbiAgY29uc3QgaXNMb2dnZWRJbiA9ICEhcmVxLnVzZXJcbiAgLy8gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS1cbiAgLy8gYHBvbGljaWVzYCBhbmQgYHByb21pc2VzYCBnZXQgbXV0YXRlZCBpblxuICAvLyB0aGUgZnVuY3Rpb25zIGJlbG93LCBhbmQgcmV0dXJuIGluIHRoZSBlbmRcbiAgLy8gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS1cbiAgY29uc3QgcG9saWNpZXMgPSB7XG4gICAgZmllbGRzOiB7fSxcbiAgfSBhcyBSZXR1cm5UeXBlPFQ+XG5cbiAgbGV0IGRvY0JlaW5nQWNjZXNzZWRcblxuICBhc3luYyBmdW5jdGlvbiBnZXRFbnRpdHlEb2MoeyB3aGVyZSB9OiB7IHdoZXJlPzogV2hlcmUgfSA9IHt9KTogUHJvbWlzZTxUeXBlV2l0aElEICYgRG9jdW1lbnQ+IHtcbiAgICBpZiAoZW50aXR5LnNsdWcpIHtcbiAgICAgIGlmICh0eXBlID09PSAnZ2xvYmFsJykge1xuICAgICAgICByZXR1cm4gcmVxLnBheWxvYWQuZmluZEdsb2JhbCh7XG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNsdWc6IGVudGl0eS5zbHVnLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZSA9PT0gJ2NvbGxlY3Rpb24nICYmIGlkKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2hlcmUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgcGFnaW5hdGVkUmVzID0gYXdhaXQgcmVxLnBheWxvYWQuZmluZCh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBlbnRpdHkuc2x1ZyxcbiAgICAgICAgICAgIGxpbWl0OiAxLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAuLi53aGVyZSxcbiAgICAgICAgICAgICAgYW5kOiBbXG4gICAgICAgICAgICAgICAgLi4uKHdoZXJlLmFuZCB8fCBbXSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiBpZCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiBwYWdpbmF0ZWRSZXM/LmRvY3M/LlswXSB8fCB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXEucGF5bG9hZC5maW5kQnlJRCh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29sbGVjdGlvbjogZW50aXR5LnNsdWcsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgY29uc3QgY3JlYXRlQWNjZXNzUHJvbWlzZTogQ3JlYXRlQWNjZXNzUHJvbWlzZSA9IGFzeW5jICh7XG4gICAgYWNjZXNzLFxuICAgIGFjY2Vzc0xldmVsLFxuICAgIGRpc2FibGVXaGVyZSA9IGZhbHNlLFxuICAgIG9wZXJhdGlvbixcbiAgICBwb2xpY2llc09iaixcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG11dGFibGVQb2xpY2llcyA9IHBvbGljaWVzT2JqXG5cbiAgICBpZiAoYWNjZXNzTGV2ZWwgPT09ICdmaWVsZCcgJiYgZG9jQmVpbmdBY2Nlc3NlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb2NCZWluZ0FjY2Vzc2VkID0gYXdhaXQgZ2V0RW50aXR5RG9jKClcbiAgICB9XG4gICAgY29uc3QgYWNjZXNzUmVzdWx0ID0gYXdhaXQgYWNjZXNzKHsgaWQsIGRvYzogZG9jQmVpbmdBY2Nlc3NlZCwgcmVxIH0pXG5cbiAgICBpZiAodHlwZW9mIGFjY2Vzc1Jlc3VsdCA9PT0gJ29iamVjdCcgJiYgIWRpc2FibGVXaGVyZSkge1xuICAgICAgbXV0YWJsZVBvbGljaWVzW29wZXJhdGlvbl0gPSB7XG4gICAgICAgIHBlcm1pc3Npb246XG4gICAgICAgICAgaWQgfHwgdHlwZSA9PT0gJ2dsb2JhbCcgPyAhIShhd2FpdCBnZXRFbnRpdHlEb2MoeyB3aGVyZTogYWNjZXNzUmVzdWx0IH0pKSA6IHRydWUsXG4gICAgICAgIHdoZXJlOiBhY2Nlc3NSZXN1bHQsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChtdXRhYmxlUG9saWNpZXNbb3BlcmF0aW9uXT8ucGVybWlzc2lvbiAhPT0gZmFsc2UpIHtcbiAgICAgIG11dGFibGVQb2xpY2llc1tvcGVyYXRpb25dID0ge1xuICAgICAgICBwZXJtaXNzaW9uOiAhIWFjY2Vzc1Jlc3VsdCxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBleGVjdXRlRmllbGRQb2xpY2llcyA9IGFzeW5jICh7IGVudGl0eVBlcm1pc3Npb24sIGZpZWxkcywgb3BlcmF0aW9uLCBwb2xpY2llc09iaiB9KSA9PiB7XG4gICAgY29uc3QgbXV0YWJsZVBvbGljaWVzID0gcG9saWNpZXNPYmouZmllbGRzXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGZpZWxkcy5tYXAoYXN5bmMgKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lKSB7XG4gICAgICAgICAgaWYgKCFtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0pIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgICAgICBpZiAoZmllbGQuYWNjZXNzICYmIHR5cGVvZiBmaWVsZC5hY2Nlc3Nbb3BlcmF0aW9uXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgYXdhaXQgY3JlYXRlQWNjZXNzUHJvbWlzZSh7XG4gICAgICAgICAgICAgIGFjY2VzczogZmllbGQuYWNjZXNzW29wZXJhdGlvbl0sXG4gICAgICAgICAgICAgIGFjY2Vzc0xldmVsOiAnZmllbGQnLFxuICAgICAgICAgICAgICBkaXNhYmxlV2hlcmU6IHRydWUsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgcG9saWNpZXNPYmo6IG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXVtvcGVyYXRpb25dID0ge1xuICAgICAgICAgICAgICBwZXJtaXNzaW9uOiBwb2xpY2llc09ialtvcGVyYXRpb25dPy5wZXJtaXNzaW9uLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5maWVsZHMpIHtcbiAgICAgICAgICAgIGlmICghbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmZpZWxkcykgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmZpZWxkcyA9IHt9XG5cbiAgICAgICAgICAgIGF3YWl0IGV4ZWN1dGVGaWVsZFBvbGljaWVzKHtcbiAgICAgICAgICAgICAgZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgcG9saWNpZXNPYmo6IG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkPy5ibG9ja3MpIHtcbiAgICAgICAgICAgIGlmICghbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdPy5ibG9ja3MpIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3MgPSB7fVxuXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgZmllbGQuYmxvY2tzLm1hcChhc3luYyAoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3M/LltibG9jay5zbHVnXSkge1xuICAgICAgICAgICAgICAgICAgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2Nrc1tibG9jay5zbHVnXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgW29wZXJhdGlvbl06IHsgcGVybWlzc2lvbjogZW50aXR5UGVybWlzc2lvbiB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3NbYmxvY2suc2x1Z11bb3BlcmF0aW9uXSkge1xuICAgICAgICAgICAgICAgICAgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2Nrc1tibG9jay5zbHVnXVtvcGVyYXRpb25dID0ge1xuICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uOiBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGF3YWl0IGV4ZWN1dGVGaWVsZFBvbGljaWVzKHtcbiAgICAgICAgICAgICAgICAgIGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIHBvbGljaWVzT2JqOiBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzW2Jsb2NrLnNsdWddLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5maWVsZHMpIHtcbiAgICAgICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgICAgICBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICBwb2xpY2llc09iaixcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09ICd0YWJzJykge1xuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgZmllbGQudGFicy5tYXAoYXN5bmMgKHRhYikgPT4ge1xuICAgICAgICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtdXRhYmxlUG9saWNpZXNbdGFiLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICBtdXRhYmxlUG9saWNpZXNbdGFiLm5hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHt9LFxuICAgICAgICAgICAgICAgICAgICBbb3BlcmF0aW9uXTogeyBwZXJtaXNzaW9uOiBlbnRpdHlQZXJtaXNzaW9uIH0sXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbXV0YWJsZVBvbGljaWVzW3RhYi5uYW1lXVtvcGVyYXRpb25dKSB7XG4gICAgICAgICAgICAgICAgICBtdXRhYmxlUG9saWNpZXNbdGFiLm5hbWVdW29wZXJhdGlvbl0gPSB7IHBlcm1pc3Npb246IGVudGl0eVBlcm1pc3Npb24gfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgICAgICAgICAgICBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgcG9saWNpZXNPYmo6IG11dGFibGVQb2xpY2llc1t0YWIubmFtZV0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgICAgICAgICAgICBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgcG9saWNpZXNPYmosXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBvcGVyYXRpb25zLm1hcChhc3luYyAob3BlcmF0aW9uKSA9PiB7XG4gICAgICBsZXQgZW50aXR5QWNjZXNzUHJvbWlzZTogUHJvbWlzZTx2b2lkPlxuXG4gICAgICBpZiAodHlwZW9mIGVudGl0eS5hY2Nlc3Nbb3BlcmF0aW9uXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbnRpdHlBY2Nlc3NQcm9taXNlID0gY3JlYXRlQWNjZXNzUHJvbWlzZSh7XG4gICAgICAgICAgYWNjZXNzOiBlbnRpdHkuYWNjZXNzW29wZXJhdGlvbl0sXG4gICAgICAgICAgYWNjZXNzTGV2ZWw6ICdlbnRpdHknLFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICBwb2xpY2llc09iajogcG9saWNpZXMsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb2xpY2llc1tvcGVyYXRpb25dID0ge1xuICAgICAgICAgIHBlcm1pc3Npb246IGlzTG9nZ2VkSW4sXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgZW50aXR5QWNjZXNzUHJvbWlzZVxuXG4gICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgIGVudGl0eVBlcm1pc3Npb246IHBvbGljaWVzW29wZXJhdGlvbl0ucGVybWlzc2lvbixcbiAgICAgICAgZmllbGRzOiBlbnRpdHkuZmllbGRzLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBvbGljaWVzT2JqOiBwb2xpY2llcyxcbiAgICAgIH0pXG4gICAgfSksXG4gIClcblxuICByZXR1cm4gcG9saWNpZXNcbn1cbiJdLCJuYW1lcyI6WyJnZXRFbnRpdHlQb2xpY2llcyIsImFyZ3MiLCJpZCIsImVudGl0eSIsIm9wZXJhdGlvbnMiLCJyZXEiLCJ0eXBlIiwiaXNMb2dnZWRJbiIsInVzZXIiLCJwb2xpY2llcyIsImZpZWxkcyIsImRvY0JlaW5nQWNjZXNzZWQiLCJnZXRFbnRpdHlEb2MiLCJ3aGVyZSIsInNsdWciLCJwYXlsb2FkIiwiZmluZEdsb2JhbCIsIm92ZXJyaWRlQWNjZXNzIiwicGFnaW5hdGVkUmVzIiwiZmluZCIsImNvbGxlY3Rpb24iLCJsaW1pdCIsImFuZCIsImVxdWFscyIsImRvY3MiLCJ1bmRlZmluZWQiLCJmaW5kQnlJRCIsImNyZWF0ZUFjY2Vzc1Byb21pc2UiLCJhY2Nlc3MiLCJhY2Nlc3NMZXZlbCIsImRpc2FibGVXaGVyZSIsIm9wZXJhdGlvbiIsInBvbGljaWVzT2JqIiwibXV0YWJsZVBvbGljaWVzIiwiYWNjZXNzUmVzdWx0IiwiZG9jIiwicGVybWlzc2lvbiIsImV4ZWN1dGVGaWVsZFBvbGljaWVzIiwiZW50aXR5UGVybWlzc2lvbiIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJmaWVsZCIsIm5hbWUiLCJibG9ja3MiLCJibG9jayIsInRhYnMiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwiZW50aXR5QWNjZXNzUHJvbWlzZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFpQ3NCQTs7O2VBQUFBOzs7dUJBeEJLO0FBd0JwQixlQUFlQSxrQkFBa0NDLElBQU87SUFDN0QsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRSxHQUFHTDtJQUM5QyxNQUFNTSxhQUFhLENBQUMsQ0FBQ0YsSUFBSUcsSUFBSTtJQUM3QiwrQ0FBK0M7SUFDL0MsMkNBQTJDO0lBQzNDLDZDQUE2QztJQUM3QywrQ0FBK0M7SUFDL0MsTUFBTUMsV0FBVztRQUNmQyxRQUFRLENBQUM7SUFDWDtJQUVBLElBQUlDO0lBRUosZUFBZUMsYUFBYSxFQUFFQyxLQUFLLEVBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUlWLE9BQU9XLElBQUksRUFBRTtZQUNmLElBQUlSLFNBQVMsVUFBVTtnQkFDckIsT0FBT0QsSUFBSVUsT0FBTyxDQUFDQyxVQUFVLENBQUM7b0JBQzVCQyxnQkFBZ0I7b0JBQ2hCWjtvQkFDQVMsTUFBTVgsT0FBT1csSUFBSTtnQkFDbkI7WUFDRjtZQUVBLElBQUlSLFNBQVMsZ0JBQWdCSixJQUFJO2dCQUMvQixJQUFJLE9BQU9XLFVBQVUsVUFBVTtvQkFDN0IsTUFBTUssZUFBZSxNQUFNYixJQUFJVSxPQUFPLENBQUNJLElBQUksQ0FBQzt3QkFDMUNDLFlBQVlqQixPQUFPVyxJQUFJ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
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ2V0RW50aXR5UG9saWNpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uUGVybWlzc2lvbiwgR2xvYmFsUGVybWlzc2lvbiB9IGZyb20gJy4uL2F1dGgvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsIFR5cGVXaXRoSUQgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFjY2VzcyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZEFjY2VzcyB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBbGxPcGVyYXRpb25zLCBEb2N1bWVudCwgV2hlcmUgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgdGFiSGFzTmFtZSB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgZW50aXR5OiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnXG4gIGlkPzogc3RyaW5nXG4gIG9wZXJhdGlvbnM6IEFsbE9wZXJhdGlvbnNbXVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHR5cGU6ICdjb2xsZWN0aW9uJyB8ICdnbG9iYWwnXG59XG5cbnR5cGUgUmV0dXJuVHlwZTxUIGV4dGVuZHMgQXJncz4gPSBUWyd0eXBlJ10gZXh0ZW5kcyAnZ2xvYmFsJ1xuICA/IEdsb2JhbFBlcm1pc3Npb25cbiAgOiBDb2xsZWN0aW9uUGVybWlzc2lvblxuXG50eXBlIENyZWF0ZUFjY2Vzc1Byb21pc2UgPSAoYXJnczoge1xuICBhY2Nlc3M6IEFjY2VzcyB8IEZpZWxkQWNjZXNzXG4gIGFjY2Vzc0xldmVsOiAnZW50aXR5JyB8ICdmaWVsZCdcbiAgZGlzYWJsZVdoZXJlPzogYm9vbGVhblxuICBvcGVyYXRpb246IEFsbE9wZXJhdGlvbnNcbiAgcG9saWNpZXNPYmo6IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxufSkgPT4gUHJvbWlzZTx2b2lkPlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW50aXR5UG9saWNpZXM8VCBleHRlbmRzIEFyZ3M+KGFyZ3M6IFQpOiBQcm9taXNlPFJldHVyblR5cGU8VD4+IHtcbiAgY29uc3QgeyBpZCwgZW50aXR5LCBvcGVyYXRpb25zLCByZXEsIHR5cGUgfSA9IGFyZ3NcbiAgY29uc3QgaXNMb2dnZWRJbiA9ICEhcmVxLnVzZXJcbiAgLy8gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS1cbiAgLy8gYHBvbGljaWVzYCBhbmQgYHByb21pc2VzYCBnZXQgbXV0YXRlZCBpblxuICAvLyB0aGUgZnVuY3Rpb25zIGJlbG93LCBhbmQgcmV0dXJuIGluIHRoZSBlbmRcbiAgLy8gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS1cbiAgY29uc3QgcG9saWNpZXMgPSB7XG4gICAgZmllbGRzOiB7fSxcbiAgfSBhcyBSZXR1cm5UeXBlPFQ+XG5cbiAgbGV0IGRvY0JlaW5nQWNjZXNzZWRcblxuICBhc3luYyBmdW5jdGlvbiBnZXRFbnRpdHlEb2MoeyB3aGVyZSB9OiB7IHdoZXJlPzogV2hlcmUgfSA9IHt9KTogUHJvbWlzZTxUeXBlV2l0aElEICYgRG9jdW1lbnQ+IHtcbiAgICBpZiAoZW50aXR5LnNsdWcpIHtcbiAgICAgIGlmICh0eXBlID09PSAnZ2xvYmFsJykge1xuICAgICAgICByZXR1cm4gcmVxLnBheWxvYWQuZmluZEdsb2JhbCh7XG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNsdWc6IGVudGl0eS5zbHVnLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZSA9PT0gJ2NvbGxlY3Rpb24nICYmIGlkKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2hlcmUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgcGFnaW5hdGVkUmVzID0gYXdhaXQgcmVxLnBheWxvYWQuZmluZCh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBlbnRpdHkuc2x1ZyxcbiAgICAgICAgICAgIGxpbWl0OiAxLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAuLi53aGVyZSxcbiAgICAgICAgICAgICAgYW5kOiBbXG4gICAgICAgICAgICAgICAgLi4uKHdoZXJlLmFuZCB8fCBbXSksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiBpZCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiBwYWdpbmF0ZWRSZXM/LmRvY3M/LlswXSB8fCB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXEucGF5bG9hZC5maW5kQnlJRCh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29sbGVjdGlvbjogZW50aXR5LnNsdWcsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZUFjY2Vzc1Byb21pc2U6IENyZWF0ZUFjY2Vzc1Byb21pc2UgPSBhc3luYyAoe1xuICAgIGFjY2VzcyxcbiAgICBhY2Nlc3NMZXZlbCxcbiAgICBkaXNhYmxlV2hlcmUgPSBmYWxzZSxcbiAgICBvcGVyYXRpb24sXG4gICAgcG9saWNpZXNPYmosXG4gIH0pID0+IHtcbiAgICBjb25zdCBtdXRhYmxlUG9saWNpZXMgPSBwb2xpY2llc09ialxuXG4gICAgaWYgKGFjY2Vzc0xldmVsID09PSAnZmllbGQnICYmIGRvY0JlaW5nQWNjZXNzZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZG9jQmVpbmdBY2Nlc3NlZCA9IGF3YWl0IGdldEVudGl0eURvYygpXG4gICAgfVxuICAgIGNvbnN0IGFjY2Vzc1Jlc3VsdCA9IGF3YWl0IGFjY2Vzcyh7IGlkLCBkb2M6IGRvY0JlaW5nQWNjZXNzZWQsIHJlcSB9KVxuXG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NSZXN1bHQgPT09ICdvYmplY3QnICYmICFkaXNhYmxlV2hlcmUpIHtcbiAgICAgIG11dGFibGVQb2xpY2llc1tvcGVyYXRpb25dID0ge1xuICAgICAgICBwZXJtaXNzaW9uOlxuICAgICAgICAgIGlkIHx8IHR5cGUgPT09ICdnbG9iYWwnID8gISEoYXdhaXQgZ2V0RW50aXR5RG9jKHsgd2hlcmU6IGFjY2Vzc1Jlc3VsdCB9KSkgOiB0cnVlLFxuICAgICAgICB3aGVyZTogYWNjZXNzUmVzdWx0LFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobXV0YWJsZVBvbGljaWVzW29wZXJhdGlvbl0/LnBlcm1pc3Npb24gIT09IGZhbHNlKSB7XG4gICAgICBtdXRhYmxlUG9saWNpZXNbb3BlcmF0aW9uXSA9IHtcbiAgICAgICAgcGVybWlzc2lvbjogISFhY2Nlc3NSZXN1bHQsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZXhlY3V0ZUZpZWxkUG9saWNpZXMgPSBhc3luYyAoeyBlbnRpdHlQZXJtaXNzaW9uLCBmaWVsZHMsIG9wZXJhdGlvbiwgcG9saWNpZXNPYmogfSkgPT4ge1xuICAgIGNvbnN0IG11dGFibGVQb2xpY2llcyA9IHBvbGljaWVzT2JqLmZpZWxkc1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBmaWVsZHMubWFwKGFzeW5jIChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoZmllbGQubmFtZSkge1xuICAgICAgICAgIGlmICghbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdKSBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0gPSB7fVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmFjY2VzcyAmJiB0eXBlb2YgZmllbGQuYWNjZXNzW29wZXJhdGlvbl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGF3YWl0IGNyZWF0ZUFjY2Vzc1Byb21pc2Uoe1xuICAgICAgICAgICAgICBhY2Nlc3M6IGZpZWxkLmFjY2Vzc1tvcGVyYXRpb25dLFxuICAgICAgICAgICAgICBhY2Nlc3NMZXZlbDogJ2ZpZWxkJyxcbiAgICAgICAgICAgICAgZGlzYWJsZVdoZXJlOiB0cnVlLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBvbGljaWVzT2JqOiBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV1bb3BlcmF0aW9uXSA9IHtcbiAgICAgICAgICAgICAgcGVybWlzc2lvbjogcG9saWNpZXNPYmpbb3BlcmF0aW9uXT8ucGVybWlzc2lvbixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuZmllbGRzKSB7XG4gICAgICAgICAgICBpZiAoIW11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5maWVsZHMpIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5maWVsZHMgPSB7fVxuXG4gICAgICAgICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgICAgICAgIGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBvbGljaWVzT2JqOiBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZD8uYmxvY2tzKSB7XG4gICAgICAgICAgICBpZiAoIW11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXT8uYmxvY2tzKSBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzID0ge31cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIGZpZWxkLmJsb2Nrcy5tYXAoYXN5bmMgKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzPy5bYmxvY2suc2x1Z10pIHtcbiAgICAgICAgICAgICAgICAgIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3NbYmxvY2suc2x1Z10gPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczoge30sXG4gICAgICAgICAgICAgICAgICAgIFtvcGVyYXRpb25dOiB7IHBlcm1pc3Npb246IGVudGl0eVBlcm1pc3Npb24gfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzW2Jsb2NrLnNsdWddW29wZXJhdGlvbl0pIHtcbiAgICAgICAgICAgICAgICAgIG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3NbYmxvY2suc2x1Z11bb3BlcmF0aW9uXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbjogZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhd2FpdCBleGVjdXRlRmllbGRQb2xpY2llcyh7XG4gICAgICAgICAgICAgICAgICBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgICBwb2xpY2llc09iajogbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2Nrc1tibG9jay5zbHVnXSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQuZmllbGRzKSB7XG4gICAgICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICAgICAgZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgcG9saWNpZXNPYmosXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSAndGFicycpIHtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGZpZWxkLnRhYnMubWFwKGFzeW5jICh0YWIpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICAgICAgICAgIGlmICghbXV0YWJsZVBvbGljaWVzW3RhYi5uYW1lXSkge1xuICAgICAgICAgICAgICAgICAgbXV0YWJsZVBvbGljaWVzW3RhYi5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgW29wZXJhdGlvbl06IHsgcGVybWlzc2lvbjogZW50aXR5UGVybWlzc2lvbiB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW11dGFibGVQb2xpY2llc1t0YWIubmFtZV1bb3BlcmF0aW9uXSkge1xuICAgICAgICAgICAgICAgICAgbXV0YWJsZVBvbGljaWVzW3RhYi5uYW1lXVtvcGVyYXRpb25dID0geyBwZXJtaXNzaW9uOiBlbnRpdHlQZXJtaXNzaW9uIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICAgICAgICAgICAgZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogdGFiLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIHBvbGljaWVzT2JqOiBtdXRhYmxlUG9saWNpZXNbdGFiLm5hbWVdLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICAgICAgICAgICAgZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogdGFiLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIHBvbGljaWVzT2JqLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgb3BlcmF0aW9ucy5tYXAoYXN5bmMgKG9wZXJhdGlvbikgPT4ge1xuICAgICAgbGV0IGVudGl0eUFjY2Vzc1Byb21pc2U6IFByb21pc2U8dm9pZD5cblxuICAgICAgaWYgKHR5cGVvZiBlbnRpdHkuYWNjZXNzW29wZXJhdGlvbl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW50aXR5QWNjZXNzUHJvbWlzZSA9IGNyZWF0ZUFjY2Vzc1Byb21pc2Uoe1xuICAgICAgICAgIGFjY2VzczogZW50aXR5LmFjY2Vzc1tvcGVyYXRpb25dLFxuICAgICAgICAgIGFjY2Vzc0xldmVsOiAnZW50aXR5JyxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcG9saWNpZXNPYmo6IHBvbGljaWVzLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9saWNpZXNbb3BlcmF0aW9uXSA9IHtcbiAgICAgICAgICBwZXJtaXNzaW9uOiBpc0xvZ2dlZEluLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGVudGl0eUFjY2Vzc1Byb21pc2VcblxuICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICBlbnRpdHlQZXJtaXNzaW9uOiBwb2xpY2llc1tvcGVyYXRpb25dLnBlcm1pc3Npb24sXG4gICAgICAgIGZpZWxkczogZW50aXR5LmZpZWxkcyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwb2xpY2llc09iajogcG9saWNpZXMsXG4gICAgICB9KVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHBvbGljaWVzXG59XG4iXSwibmFtZXMiOlsiZ2V0RW50aXR5UG9saWNpZXMiLCJhcmdzIiwiaWQiLCJlbnRpdHkiLCJvcGVyYXRpb25zIiwicmVxIiwidHlwZSIsImlzTG9nZ2VkSW4iLCJ1c2VyIiwicG9saWNpZXMiLCJmaWVsZHMiLCJkb2NCZWluZ0FjY2Vzc2VkIiwiZ2V0RW50aXR5RG9jIiwid2hlcmUiLCJzbHVnIiwicGF5bG9hZCIsImZpbmRHbG9iYWwiLCJvdmVycmlkZUFjY2VzcyIsInBhZ2luYXRlZFJlcyIsImZpbmQiLCJjb2xsZWN0aW9uIiwibGltaXQiLCJhbmQiLCJlcXVhbHMiLCJkb2NzIiwidW5kZWZpbmVkIiwiZmluZEJ5SUQiLCJjcmVhdGVBY2Nlc3NQcm9taXNlIiwiYWNjZXNzIiwiYWNjZXNzTGV2ZWwiLCJkaXNhYmxlV2hlcmUiLCJvcGVyYXRpb24iLCJwb2xpY2llc09iaiIsIm11dGFibGVQb2xpY2llcyIsImFjY2Vzc1Jlc3VsdCIsImRvYyIsInBlcm1pc3Npb24iLCJleGVjdXRlRmllbGRQb2xpY2llcyIsImVudGl0eVBlcm1pc3Npb24iLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZmllbGQiLCJuYW1lIiwiYmxvY2tzIiwiYmxvY2siLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsImVudGl0eUFjY2Vzc1Byb21pc2UiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0NzQkE7OztlQUFBQTs7O3VCQXhCSztBQXdCcEIsZUFBZUEsa0JBQWtDQyxJQUFPO0lBQzdELE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUUsR0FBR0w7SUFDOUMsTUFBTU0sYUFBYSxDQUFDLENBQUNGLElBQUlHLElBQUk7SUFDN0IsK0NBQStDO0lBQy9DLDJDQUEyQztJQUMzQyw2Q0FBNkM7SUFDN0MsK0NBQStDO0lBQy9DLE1BQU1DLFdBQVc7UUFDZkMsUUFBUSxDQUFDO0lBQ1g7SUFFQSxJQUFJQztJQUVKLGVBQWVDLGFBQWEsRUFBRUMsS0FBSyxFQUFxQixHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJVixPQUFPVyxJQUFJLEVBQUU7WUFDZixJQUFJUixTQUFTLFVBQVU7Z0JBQ3JCLE9BQU9ELElBQUlVLE9BQU8sQ0FBQ0MsVUFBVSxDQUFDO29CQUM1QkMsZ0JBQWdCO29CQUNoQlo7b0JBQ0FTLE1BQU1YLE9BQU9XLElBQUk7Z0JBQ25CO1lBQ0Y7WUFFQSxJQUFJUixTQUFTLGdCQUFnQkosSUFBSTtnQkFDL0IsSUFBSSxPQUFPVyxVQUFVLFVBQVU7b0JBQzdCLE1BQU1LLGVBQWUsTUFBTWIsSUFBSVUsT0FBTyxDQUFDSSxJQUFJLENBQUM7d0JBQzFDQyxZQUFZakIsT0FBT1csSUFBSTt3QkFDdkJPLE9BQU87d0JB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.0.15",
3
+ "version": "2.1.1",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -98,7 +98,7 @@
98
98
  "terser-webpack-plugin": "5.3.9",
99
99
  "ts-essentials": "7.0.3",
100
100
  "use-context-selector": "1.4.1",
101
- "uuid": "8.3.2"
101
+ "uuid": "9.0.1"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@release-it/conventional-changelog": "7.0.0",