@lighthouse/common 6.10.0 → 6.10.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/.mise.toml +6 -6
  2. package/CHANGELOG.md +758 -758
  3. package/README.md +1 -1
  4. package/dist/errors/FetchImageError.js +3 -3
  5. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
  6. package/dist/helpers/floatify/index.js +6 -6
  7. package/dist/helpers/get-audit-items-data/index.js +47 -36
  8. package/dist/helpers/validate-url/index.js +4 -4
  9. package/dist/pdf/activity-report/index.js +32 -32
  10. package/dist/pdf/audit/index.js +23 -23
  11. package/dist/pdf/helpers/fields/index.js +47 -27
  12. package/dist/pdf/issue/index.js +23 -23
  13. package/dist/pdf/job/index.js +22 -22
  14. package/dist/pdf/shift-report/index.js +28 -28
  15. package/dist/pdf/task/index.js +23 -23
  16. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
  17. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
  18. package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
  19. package/dist/scheduling/helpers/convertToTimezone.js +6 -6
  20. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
  21. package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
  22. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
  23. package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
  24. package/dist/scheduling/helpers/intervalCovers.js +6 -6
  25. package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
  26. package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
  27. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
  28. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
  29. package/dist/scheduling/helpers/intervalOutside.js +6 -6
  30. package/dist/scheduling/helpers/intervalWithin.js +6 -6
  31. package/dist/scheduling/helpers/mergeIntervals.js +6 -6
  32. package/dist/scheduling/helpers/splitIntervals.js +6 -6
  33. package/dist/scheduling/strategies/getNext.js +2 -2
  34. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
  35. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
  36. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
  37. package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
  38. package/dist/scheduling/strategies/getNextWeekday.js +2 -2
  39. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
  40. package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
  41. package/dist/service-hours/__helpers__/isOpen.js +2 -2
  42. package/dist/service-hours/schema.js +4 -4
  43. package/lib/constants.js +12 -6
  44. package/lib/constants.js.map +1 -1
  45. package/lib/errors/DomainError.js +14 -21
  46. package/lib/errors/DomainError.js.map +1 -1
  47. package/lib/errors/FetchImageError.js +17 -24
  48. package/lib/errors/FetchImageError.js.map +1 -1
  49. package/lib/errors/ValidationError.js +30 -36
  50. package/lib/errors/ValidationError.js.map +1 -1
  51. package/lib/errors/index.js +23 -5
  52. package/lib/errors/index.js.map +1 -1
  53. package/lib/helpers/build-fetch-url/index.js +43 -47
  54. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  55. package/lib/helpers/fetch-image/index.js +83 -82
  56. package/lib/helpers/fetch-image/index.js.map +1 -1
  57. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
  58. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  59. package/lib/helpers/fetch-image-for-web/index.js +71 -94
  60. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  61. package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
  62. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  63. package/lib/helpers/floatify/index.js +13 -7
  64. package/lib/helpers/floatify/index.js.map +1 -1
  65. package/lib/helpers/get-assignees-full-names/index.js +11 -7
  66. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  67. package/lib/helpers/get-audit-entry-details/index.js +42 -32
  68. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  69. package/lib/helpers/get-audit-items-data/index.js +104 -83
  70. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  71. package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
  72. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  73. package/lib/helpers/get-issue-details/index.js +53 -43
  74. package/lib/helpers/get-issue-details/index.js.map +1 -1
  75. package/lib/helpers/get-job-details/index.js +49 -41
  76. package/lib/helpers/get-job-details/index.js.map +1 -1
  77. package/lib/helpers/get-location-reference/index.js +32 -34
  78. package/lib/helpers/get-location-reference/index.js.map +1 -1
  79. package/lib/helpers/get-pretty-duration/index.js +16 -10
  80. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  81. package/lib/helpers/get-reference-details/index.js +20 -10
  82. package/lib/helpers/get-reference-details/index.js.map +1 -1
  83. package/lib/helpers/get-status-details/index.js +8 -2
  84. package/lib/helpers/get-status-details/index.js.map +1 -1
  85. package/lib/helpers/get-task-entry-details/index.js +32 -23
  86. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  87. package/lib/helpers/get-timezone-abbr/index.js +11 -4
  88. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  89. package/lib/helpers/get-timezone-datetime/index.js +20 -13
  90. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  91. package/lib/helpers/get-user-full-name/index.js +9 -3
  92. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  93. package/lib/helpers/get-value-as-percentage/index.js +9 -4
  94. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  95. package/lib/helpers/image-validators/index.js +18 -12
  96. package/lib/helpers/image-validators/index.js.map +1 -1
  97. package/lib/helpers/index.js +130 -18
  98. package/lib/helpers/index.js.map +1 -1
  99. package/lib/helpers/validate-url/index.js +11 -5
  100. package/lib/helpers/validate-url/index.js.map +1 -1
  101. package/lib/images/index.js +10 -4
  102. package/lib/images/index.js.map +1 -1
  103. package/lib/index.js +66 -10
  104. package/lib/index.js.map +1 -1
  105. package/lib/pdf/activity-report/index.js +407 -537
  106. package/lib/pdf/activity-report/index.js.map +1 -1
  107. package/lib/pdf/audit/index.js +137 -134
  108. package/lib/pdf/audit/index.js.map +1 -1
  109. package/lib/pdf/fonts/index.js +4 -2
  110. package/lib/pdf/fonts/index.js.map +1 -1
  111. package/lib/pdf/helpers/build-audit-content/index.js +57 -51
  112. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  113. package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
  114. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  115. package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
  116. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  117. package/lib/pdf/helpers/build-template-content/index.js +52 -51
  118. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  119. package/lib/pdf/helpers/default-footer/index.js +38 -35
  120. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  121. package/lib/pdf/helpers/default-header/index.js +40 -35
  122. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  123. package/lib/pdf/helpers/default-styles/index.js +7 -1
  124. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  125. package/lib/pdf/helpers/fields/index.js +225 -214
  126. package/lib/pdf/helpers/fields/index.js.map +1 -1
  127. package/lib/pdf/helpers/format-location-address/index.js +14 -8
  128. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  129. package/lib/pdf/helpers/generate-definition/index.js +60 -65
  130. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  131. package/lib/pdf/helpers/horizontal-line/index.js +14 -14
  132. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  133. package/lib/pdf/helpers/html-transformer/index.js +45 -35
  134. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  135. package/lib/pdf/helpers/index.js +194 -15
  136. package/lib/pdf/helpers/index.js.map +1 -1
  137. package/lib/pdf/helpers/parse-value/index.js +10 -4
  138. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  139. package/lib/pdf/helpers/table/index.js +136 -205
  140. package/lib/pdf/helpers/table/index.js.map +1 -1
  141. package/lib/pdf/helpers/text/index.js +11 -8
  142. package/lib/pdf/helpers/text/index.js.map +1 -1
  143. package/lib/pdf/icons/index.js +8 -2
  144. package/lib/pdf/icons/index.js.map +1 -1
  145. package/lib/pdf/index.js +47 -6
  146. package/lib/pdf/index.js.map +1 -1
  147. package/lib/pdf/issue/index.js +141 -135
  148. package/lib/pdf/issue/index.js.map +1 -1
  149. package/lib/pdf/job/index.js +95 -81
  150. package/lib/pdf/job/index.js.map +1 -1
  151. package/lib/pdf/shift-report/emptyFixtures.js +8 -2
  152. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  153. package/lib/pdf/shift-report/index.js +399 -521
  154. package/lib/pdf/shift-report/index.js.map +1 -1
  155. package/lib/pdf/task/index.js +89 -83
  156. package/lib/pdf/task/index.js.map +1 -1
  157. package/lib/scheduling/generators/index.js +38 -3
  158. package/lib/scheduling/generators/index.js.map +1 -1
  159. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
  160. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  161. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
  162. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  163. package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
  164. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  165. package/lib/scheduling/helpers/convertToTimezone.js +18 -11
  166. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  167. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
  168. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  169. package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
  170. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  171. package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
  172. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  173. package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
  174. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  175. package/lib/scheduling/helpers/index.js +159 -14
  176. package/lib/scheduling/helpers/index.js.map +1 -1
  177. package/lib/scheduling/helpers/intervalCovers.js +13 -7
  178. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  179. package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
  180. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  181. package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
  182. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  183. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
  184. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  185. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
  186. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  187. package/lib/scheduling/helpers/intervalOutside.js +15 -9
  188. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  189. package/lib/scheduling/helpers/intervalWithin.js +13 -7
  190. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  191. package/lib/scheduling/helpers/mergeIntervals.js +21 -17
  192. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  193. package/lib/scheduling/helpers/splitIntervals.js +24 -23
  194. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  195. package/lib/scheduling/index.js +38 -3
  196. package/lib/scheduling/index.js.map +1 -1
  197. package/lib/scheduling/scheduling.types.js +9 -3
  198. package/lib/scheduling/scheduling.types.js.map +1 -1
  199. package/lib/scheduling/strategies/getNext.js +57 -63
  200. package/lib/scheduling/strategies/getNext.js.map +1 -1
  201. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
  202. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  203. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
  204. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  205. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
  206. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  207. package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
  208. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  209. package/lib/scheduling/strategies/getNextWeekday.js +47 -79
  210. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  211. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
  212. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  213. package/lib/scheduling/strategies/index.js +82 -7
  214. package/lib/scheduling/strategies/index.js.map +1 -1
  215. package/lib/schema/index.js +16 -1
  216. package/lib/schema/index.js.map +1 -1
  217. package/lib/schema/schema.js +28 -34
  218. package/lib/schema/schema.js.map +1 -1
  219. package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
  220. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  221. package/lib/service-hours/__helpers__/isOpen.js +25 -24
  222. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  223. package/lib/service-hours/index.js +27 -2
  224. package/lib/service-hours/index.js.map +1 -1
  225. package/lib/service-hours/schema.js +68 -55
  226. package/lib/service-hours/schema.js.map +1 -1
  227. package/package.json +86 -86
  228. package/vitest.config.ts +23 -23
  229. package/vitest.setup.js +7 -7
@@ -1,95 +1,72 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import { imageNotFound } from '../../images';
4
- import { fetchLighthouseLogo } from '../fetch-lighthouse-logo';
5
- import { isAbsoluteUrl } from '../validate-url/index.js';
6
- export var fetchImageForWeb = /*#__PURE__*/function () {
7
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, options) {
8
- var _options$isHeader, isHeader, Signature, Policy, KeyPairId, _options$context, context, error, firstParamConnector, hasSignatureParams, constructedUrl, imageResponse, contentLengthHeader, _t;
9
- return _regeneratorRuntime.wrap(function (_context) {
10
- while (1) switch (_context.prev = _context.next) {
11
- case 0:
12
- _options$isHeader = options.isHeader, isHeader = _options$isHeader === void 0 ? false : _options$isHeader, Signature = options.Signature, Policy = options.Policy, KeyPairId = options.KeyPairId, _options$context = options.context, context = _options$context === void 0 ? {} : _options$context; // Validate url parameter
13
- if (!(!url || typeof url !== 'string')) {
14
- _context.next = 2;
15
- break;
16
- }
17
- error = new Error("fetchImageForWeb: Invalid url parameter. url=".concat(JSON.stringify(url)));
18
- if (!isHeader) {
19
- _context.next = 1;
20
- break;
21
- }
22
- console.error('FetchImageHeaderError', {
23
- message: error.message,
24
- url: url,
25
- context: context
26
- });
27
- return _context.abrupt("return", fetchLighthouseLogo());
28
- case 1:
29
- console.error('FetchImageError', {
30
- message: error.message,
31
- url: url,
32
- context: context
33
- });
34
- return _context.abrupt("return", imageNotFound);
35
- case 2:
36
- _context.prev = 2;
37
- firstParamConnector = url.indexOf('?') > -1 ? '&' : '?';
38
- hasSignatureParams = url.includes('Signature=') && url.includes('Policy=') && url.includes('Key-Pair-Id=');
39
- constructedUrl = !hasSignatureParams ? "".concat(url).concat(firstParamConnector, "Signature=").concat(Signature, "&Policy=").concat(Policy, "&Key-Pair-Id=").concat(KeyPairId) : url;
40
- console.debug('Fetching image via CloudFront For Web');
41
- _context.next = 3;
42
- return fetch(constructedUrl);
43
- case 3:
44
- imageResponse = _context.sent;
45
- contentLengthHeader = imageResponse.headers.get('content-length');
46
- if (!(contentLengthHeader === '0')) {
47
- _context.next = 4;
48
- break;
49
- }
50
- return _context.abrupt("return", Promise.reject(new Error("Failed to fetch image as no content length: ".concat(url))));
51
- case 4:
52
- if (imageResponse.ok) {
53
- _context.next = 5;
54
- break;
55
- }
56
- return _context.abrupt("return", Promise.reject(new Error("Failed to fetch image: ".concat(url))));
57
- case 5:
58
- _context.next = 6;
59
- return imageResponse.arrayBuffer();
60
- case 6:
61
- return _context.abrupt("return", _context.sent);
62
- case 7:
63
- _context.prev = 7;
64
- _t = _context["catch"](2);
65
- if (!isHeader) {
66
- _context.next = 8;
67
- break;
68
- }
69
- // NOTE: Replace failed headers with LH logo
70
- console.error('FetchImageHeaderError', {
71
- url: url,
72
- message: _t.message,
73
- context: context,
74
- stack: _t.stack
75
- });
76
- return _context.abrupt("return", fetchLighthouseLogo());
77
- case 8:
78
- console.error('FetchImageError', {
79
- url: url,
80
- message: _t.message,
81
- context: context,
82
- stack: _t.stack
83
- });
84
- return _context.abrupt("return", imageNotFound);
85
- case 9:
86
- case "end":
87
- return _context.stop();
88
- }
89
- }, _callee, null, [[2, 7]]);
90
- }));
91
- return function fetchImageForWeb(_x, _x2) {
92
- return _ref.apply(this, arguments);
93
- };
94
- }();
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchImageForWeb = void 0;
7
+ var _images = require("../../images");
8
+ var _fetchLighthouseLogo = require("../fetch-lighthouse-logo");
9
+ var _index = require("../validate-url/index.js");
10
+ const fetchImageForWeb = async function (url, options) {
11
+ const {
12
+ isHeader = false,
13
+ Signature,
14
+ Policy,
15
+ KeyPairId,
16
+ context = {}
17
+ } = options;
18
+
19
+ // Validate url parameter
20
+ if (!url || typeof url !== 'string') {
21
+ const error = new Error(`fetchImageForWeb: Invalid url parameter. url=${JSON.stringify(url)}`);
22
+ if (isHeader) {
23
+ console.error('FetchImageHeaderError', {
24
+ message: error.message,
25
+ url,
26
+ context
27
+ });
28
+ return (0, _fetchLighthouseLogo.fetchLighthouseLogo)();
29
+ }
30
+ console.error('FetchImageError', {
31
+ message: error.message,
32
+ url,
33
+ context
34
+ });
35
+ return _images.imageNotFound;
36
+ }
37
+ try {
38
+ const firstParamConnector = url.indexOf('?') > -1 ? '&' : '?';
39
+ const hasSignatureParams = url.includes('Signature=') && url.includes('Policy=') && url.includes('Key-Pair-Id=');
40
+ const constructedUrl = !hasSignatureParams ? `${url}${firstParamConnector}Signature=${Signature}&Policy=${Policy}&Key-Pair-Id=${KeyPairId}` : url;
41
+ console.debug('Fetching image via CloudFront For Web');
42
+ const imageResponse = await fetch(constructedUrl);
43
+ const contentLengthHeader = imageResponse.headers.get('content-length');
44
+ if (contentLengthHeader === '0') {
45
+ return Promise.reject(new Error(`Failed to fetch image as no content length: ${url}`));
46
+ }
47
+ if (!imageResponse.ok) {
48
+ return Promise.reject(new Error(`Failed to fetch image: ${url}`));
49
+ }
50
+ return await imageResponse.arrayBuffer();
51
+ } catch (error) {
52
+ if (isHeader) {
53
+ // NOTE: Replace failed headers with LH logo
54
+ console.error('FetchImageHeaderError', {
55
+ url,
56
+ message: error.message,
57
+ context,
58
+ stack: error.stack
59
+ });
60
+ return (0, _fetchLighthouseLogo.fetchLighthouseLogo)();
61
+ }
62
+ console.error('FetchImageError', {
63
+ url,
64
+ message: error.message,
65
+ context,
66
+ stack: error.stack
67
+ });
68
+ return _images.imageNotFound;
69
+ }
70
+ };
71
+ exports.fetchImageForWeb = fetchImageForWeb;
95
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["imageNotFound","fetchLighthouseLogo","isAbsoluteUrl","fetchImageForWeb","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","options","_options$isHeader","isHeader","Signature","Policy","KeyPairId","_options$context","context","error","firstParamConnector","hasSignatureParams","constructedUrl","imageResponse","contentLengthHeader","_t","wrap","_context","prev","next","Error","concat","JSON","stringify","console","message","abrupt","indexOf","includes","debug","fetch","sent","headers","get","Promise","reject","ok","arrayBuffer","stack","stop","_x","_x2","apply","arguments"],"sources":["../../../src/helpers/fetch-image-for-web/index.js"],"sourcesContent":["import { imageNotFound } from '../../images'\nimport { fetchLighthouseLogo } from '../fetch-lighthouse-logo'\nimport { isAbsoluteUrl } from '../validate-url/index.js'\n\nexport const fetchImageForWeb = async function (url, options) {\n const {\n isHeader = false,\n Signature,\n Policy,\n KeyPairId,\n context = {},\n } = options\n\n // Validate url parameter\n if (!url || typeof url !== 'string') {\n const error = new Error(\n `fetchImageForWeb: Invalid url parameter. url=${JSON.stringify(url)}`\n )\n if (isHeader) {\n console.error('FetchImageHeaderError', {\n message: error.message,\n url,\n context,\n })\n return fetchLighthouseLogo()\n }\n console.error('FetchImageError', {\n message: error.message,\n url,\n context,\n })\n return imageNotFound\n }\n\n try {\n const firstParamConnector = url.indexOf('?') > -1 ? '&' : '?'\n\n const hasSignatureParams =\n url.includes('Signature=') &&\n url.includes('Policy=') &&\n url.includes('Key-Pair-Id=')\n\n const constructedUrl = !hasSignatureParams\n ? `${url}${firstParamConnector}Signature=${Signature}&Policy=${Policy}&Key-Pair-Id=${KeyPairId}`\n : url\n\n console.debug('Fetching image via CloudFront For Web')\n\n const imageResponse = await fetch(constructedUrl)\n\n const contentLengthHeader = imageResponse.headers.get('content-length')\n\n if (contentLengthHeader === '0') {\n return Promise.reject(\n new Error(`Failed to fetch image as no content length: ${url}`)\n )\n }\n\n if (!imageResponse.ok) {\n return Promise.reject(new Error(`Failed to fetch image: ${url}`))\n }\n\n return await imageResponse.arrayBuffer()\n } catch (error) {\n if (isHeader) {\n // NOTE: Replace failed headers with LH logo\n console.error('FetchImageHeaderError', {\n url,\n message: error.message,\n context,\n stack: error.stack,\n })\n return fetchLighthouseLogo()\n }\n\n console.error('FetchImageError', {\n url,\n message: error.message,\n context,\n stack: error.stack,\n })\n return imageNotFound\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_images","require","_fetchLighthouseLogo","_index","fetchImageForWeb","url","options","isHeader","Signature","Policy","KeyPairId","context","error","Error","JSON","stringify","console","message","fetchLighthouseLogo","imageNotFound","firstParamConnector","indexOf","hasSignatureParams","includes","constructedUrl","debug","imageResponse","fetch","contentLengthHeader","headers","get","Promise","reject","ok","arrayBuffer","stack","exports"],"sources":["../../../src/helpers/fetch-image-for-web/index.js"],"sourcesContent":["import { imageNotFound } from '../../images'\r\nimport { fetchLighthouseLogo } from '../fetch-lighthouse-logo'\r\nimport { isAbsoluteUrl } from '../validate-url/index.js'\r\n\r\nexport const fetchImageForWeb = async function (url, options) {\r\n const {\r\n isHeader = false,\r\n Signature,\r\n Policy,\r\n KeyPairId,\r\n context = {},\r\n } = options\r\n\r\n // Validate url parameter\r\n if (!url || typeof url !== 'string') {\r\n const error = new Error(\r\n `fetchImageForWeb: Invalid url parameter. url=${JSON.stringify(url)}`\r\n )\r\n if (isHeader) {\r\n console.error('FetchImageHeaderError', {\r\n message: error.message,\r\n url,\r\n context,\r\n })\r\n return fetchLighthouseLogo()\r\n }\r\n console.error('FetchImageError', {\r\n message: error.message,\r\n url,\r\n context,\r\n })\r\n return imageNotFound\r\n }\r\n\r\n try {\r\n const firstParamConnector = url.indexOf('?') > -1 ? '&' : '?'\r\n\r\n const hasSignatureParams =\r\n url.includes('Signature=') &&\r\n url.includes('Policy=') &&\r\n url.includes('Key-Pair-Id=')\r\n\r\n const constructedUrl = !hasSignatureParams\r\n ? `${url}${firstParamConnector}Signature=${Signature}&Policy=${Policy}&Key-Pair-Id=${KeyPairId}`\r\n : url\r\n\r\n console.debug('Fetching image via CloudFront For Web')\r\n\r\n const imageResponse = await fetch(constructedUrl)\r\n\r\n const contentLengthHeader = imageResponse.headers.get('content-length')\r\n\r\n if (contentLengthHeader === '0') {\r\n return Promise.reject(\r\n new Error(`Failed to fetch image as no content length: ${url}`)\r\n )\r\n }\r\n\r\n if (!imageResponse.ok) {\r\n return Promise.reject(new Error(`Failed to fetch image: ${url}`))\r\n }\r\n\r\n return await imageResponse.arrayBuffer()\r\n } catch (error) {\r\n if (isHeader) {\r\n // NOTE: Replace failed headers with LH logo\r\n console.error('FetchImageHeaderError', {\r\n url,\r\n message: error.message,\r\n context,\r\n stack: error.stack,\r\n })\r\n return fetchLighthouseLogo()\r\n }\r\n\r\n console.error('FetchImageError', {\r\n url,\r\n message: error.message,\r\n context,\r\n stack: error.stack,\r\n })\r\n return imageNotFound\r\n }\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,MAAMG,gBAAgB,GAAG,eAAAA,CAAgBC,GAAG,EAAEC,OAAO,EAAE;EAC5D,MAAM;IACJC,QAAQ,GAAG,KAAK;IAChBC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,OAAO,GAAG,CAAC;EACb,CAAC,GAAGL,OAAO;;EAEX;EACA,IAAI,CAACD,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IACnC,MAAMO,KAAK,GAAG,IAAIC,KAAK,CACrB,gDAAgDC,IAAI,CAACC,SAAS,CAACV,GAAG,CAAC,EACrE,CAAC;IACD,IAAIE,QAAQ,EAAE;MACZS,OAAO,CAACJ,KAAK,CAAC,uBAAuB,EAAE;QACrCK,OAAO,EAAEL,KAAK,CAACK,OAAO;QACtBZ,GAAG;QACHM;MACF,CAAC,CAAC;MACF,OAAO,IAAAO,wCAAmB,EAAC,CAAC;IAC9B;IACAF,OAAO,CAACJ,KAAK,CAAC,iBAAiB,EAAE;MAC/BK,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBZ,GAAG;MACHM;IACF,CAAC,CAAC;IACF,OAAOQ,qBAAa;EACtB;EAEA,IAAI;IACF,MAAMC,mBAAmB,GAAGf,GAAG,CAACgB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG;IAE7D,MAAMC,kBAAkB,GACtBjB,GAAG,CAACkB,QAAQ,CAAC,YAAY,CAAC,IAC1BlB,GAAG,CAACkB,QAAQ,CAAC,SAAS,CAAC,IACvBlB,GAAG,CAACkB,QAAQ,CAAC,cAAc,CAAC;IAE9B,MAAMC,cAAc,GAAG,CAACF,kBAAkB,GACtC,GAAGjB,GAAG,GAAGe,mBAAmB,aAAaZ,SAAS,WAAWC,MAAM,gBAAgBC,SAAS,EAAE,GAC9FL,GAAG;IAEPW,OAAO,CAACS,KAAK,CAAC,uCAAuC,CAAC;IAEtD,MAAMC,aAAa,GAAG,MAAMC,KAAK,CAACH,cAAc,CAAC;IAEjD,MAAMI,mBAAmB,GAAGF,aAAa,CAACG,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAEvE,IAAIF,mBAAmB,KAAK,GAAG,EAAE;MAC/B,OAAOG,OAAO,CAACC,MAAM,CACnB,IAAInB,KAAK,CAAC,+CAA+CR,GAAG,EAAE,CAChE,CAAC;IACH;IAEA,IAAI,CAACqB,aAAa,CAACO,EAAE,EAAE;MACrB,OAAOF,OAAO,CAACC,MAAM,CAAC,IAAInB,KAAK,CAAC,0BAA0BR,GAAG,EAAE,CAAC,CAAC;IACnE;IAEA,OAAO,MAAMqB,aAAa,CAACQ,WAAW,CAAC,CAAC;EAC1C,CAAC,CAAC,OAAOtB,KAAK,EAAE;IACd,IAAIL,QAAQ,EAAE;MACZ;MACAS,OAAO,CAACJ,KAAK,CAAC,uBAAuB,EAAE;QACrCP,GAAG;QACHY,OAAO,EAAEL,KAAK,CAACK,OAAO;QACtBN,OAAO;QACPwB,KAAK,EAAEvB,KAAK,CAACuB;MACf,CAAC,CAAC;MACF,OAAO,IAAAjB,wCAAmB,EAAC,CAAC;IAC9B;IAEAF,OAAO,CAACJ,KAAK,CAAC,iBAAiB,EAAE;MAC/BP,GAAG;MACHY,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBN,OAAO;MACPwB,KAAK,EAAEvB,KAAK,CAACuB;IACf,CAAC,CAAC;IACF,OAAOhB,qBAAa;EACtB;AACF,CAAC;AAAAiB,OAAA,CAAAhC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,72 +1,47 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _typeof from "@babel/runtime/helpers/typeof";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import { LIGHTHOUSE_LOGO_URL } from '../../constants';
5
- import { arrayBufferToBase64 } from '../fetch-image';
6
- import { validateBase64Image } from '../image-validators';
7
- import fetchPonyfill from 'fetch-ponyfill';
1
+ "use strict";
8
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fetchLighthouseLogo = void 0;
8
+ var _constants = require("../../constants");
9
+ var _fetchImage = require("../fetch-image");
10
+ var _imageValidators = require("../image-validators");
11
+ var _fetchPonyfill = _interopRequireDefault(require("fetch-ponyfill"));
9
12
  // NOTE use the native fetch if it's available in the browser, because the
10
13
  // ponyfill (which actually uses the github polyfill) does not support all the
11
14
  // same options as native fetch
12
- var fetch = (typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object' && self.fetch || fetchPonyfill({
13
- Promise: Promise
15
+ const fetch = typeof self === 'object' && self.fetch || (0, _fetchPonyfill.default)({
16
+ Promise
14
17
  }).fetch;
15
- var contentTypes = {
18
+ const contentTypes = {
16
19
  'image/png': 'png',
17
20
  'image/jpeg': 'jpeg'
18
21
  };
19
22
 
20
23
  // NOTE: This is not stored where other images are - so it cannot go through CloudFront
21
- export var fetchLighthouseLogo = /*#__PURE__*/function () {
22
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
23
- var encodedLogoUrl, logoResponse, contentLengthHeader, contentType, imageType, logoArrayBuffer, base64Flag, imageStr, base64, isValid;
24
- return _regeneratorRuntime.wrap(function (_context) {
25
- while (1) switch (_context.prev = _context.next) {
26
- case 0:
27
- encodedLogoUrl = encodeURI(LIGHTHOUSE_LOGO_URL);
28
- _context.next = 1;
29
- return fetch(encodedLogoUrl);
30
- case 1:
31
- logoResponse = _context.sent;
32
- contentLengthHeader = logoResponse.headers.get('content-length');
33
- contentType = logoResponse.headers.get('content-type');
34
- if (!(contentLengthHeader === '0')) {
35
- _context.next = 2;
36
- break;
37
- }
38
- return _context.abrupt("return", Promise.reject(new Error("Failed to fetch image as no content length: ".concat(encodedLogoUrl))));
39
- case 2:
40
- if (logoResponse.ok) {
41
- _context.next = 3;
42
- break;
43
- }
44
- return _context.abrupt("return", Promise.reject(new Error("Failed to fetch image: ".concat(encodedLogoUrl))));
45
- case 3:
46
- imageType = contentTypes[contentType];
47
- _context.next = 4;
48
- return logoResponse.arrayBuffer();
49
- case 4:
50
- logoArrayBuffer = _context.sent;
51
- base64Flag = "data:image/".concat(imageType, ";base64,");
52
- imageStr = arrayBufferToBase64(logoArrayBuffer);
53
- base64 = "".concat(base64Flag).concat(imageStr);
54
- isValid = validateBase64Image(base64);
55
- if (!isValid) {
56
- _context.next = 5;
57
- break;
58
- }
59
- return _context.abrupt("return", base64);
60
- case 5:
61
- return _context.abrupt("return", Promise.reject(new Error('InvalidImageError')));
62
- case 6:
63
- case "end":
64
- return _context.stop();
65
- }
66
- }, _callee);
67
- }));
68
- return function fetchLighthouseLogo() {
69
- return _ref.apply(this, arguments);
70
- };
71
- }();
24
+ const fetchLighthouseLogo = async function () {
25
+ const encodedLogoUrl = encodeURI(_constants.LIGHTHOUSE_LOGO_URL);
26
+ const logoResponse = await fetch(encodedLogoUrl);
27
+ const contentLengthHeader = logoResponse.headers.get('content-length');
28
+ const contentType = logoResponse.headers.get('content-type');
29
+ if (contentLengthHeader === '0') {
30
+ return Promise.reject(new Error(`Failed to fetch image as no content length: ${encodedLogoUrl}`));
31
+ }
32
+ if (!logoResponse.ok) {
33
+ return Promise.reject(new Error(`Failed to fetch image: ${encodedLogoUrl}`));
34
+ }
35
+ const imageType = contentTypes[contentType];
36
+ const logoArrayBuffer = await logoResponse.arrayBuffer();
37
+ const base64Flag = `data:image/${imageType};base64,`;
38
+ const imageStr = (0, _fetchImage.arrayBufferToBase64)(logoArrayBuffer);
39
+ const base64 = `${base64Flag}${imageStr}`;
40
+ const isValid = (0, _imageValidators.validateBase64Image)(base64);
41
+ if (isValid) {
42
+ return base64;
43
+ }
44
+ return Promise.reject(new Error('InvalidImageError'));
45
+ };
46
+ exports.fetchLighthouseLogo = fetchLighthouseLogo;
72
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LIGHTHOUSE_LOGO_URL","arrayBufferToBase64","validateBase64Image","fetchPonyfill","fetch","self","_typeof","Promise","contentTypes","fetchLighthouseLogo","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","encodedLogoUrl","logoResponse","contentLengthHeader","contentType","imageType","logoArrayBuffer","base64Flag","imageStr","base64","isValid","wrap","_context","prev","next","encodeURI","sent","headers","get","abrupt","reject","Error","concat","ok","arrayBuffer","stop","apply","arguments"],"sources":["../../../src/helpers/fetch-lighthouse-logo/index.js"],"sourcesContent":["import { LIGHTHOUSE_LOGO_URL } from '../../constants'\nimport { arrayBufferToBase64 } from '../fetch-image'\nimport { validateBase64Image } from '../image-validators'\nimport fetchPonyfill from 'fetch-ponyfill'\n\n// NOTE use the native fetch if it's available in the browser, because the\n// ponyfill (which actually uses the github polyfill) does not support all the\n// same options as native fetch\nconst fetch =\n (typeof self === 'object' && self.fetch) || fetchPonyfill({ Promise }).fetch\n\nconst contentTypes = {\n 'image/png': 'png',\n 'image/jpeg': 'jpeg',\n}\n\n// NOTE: This is not stored where other images are - so it cannot go through CloudFront\nexport const fetchLighthouseLogo = async function() {\n const encodedLogoUrl = encodeURI(LIGHTHOUSE_LOGO_URL)\n const logoResponse = await fetch(encodedLogoUrl)\n\n const contentLengthHeader = logoResponse.headers.get('content-length')\n const contentType = logoResponse.headers.get('content-type')\n\n if (contentLengthHeader === '0') {\n return Promise.reject(\n new Error(`Failed to fetch image as no content length: ${encodedLogoUrl}`)\n )\n }\n\n if (!logoResponse.ok) {\n return Promise.reject(new Error(`Failed to fetch image: ${encodedLogoUrl}`))\n }\n\n const imageType = contentTypes[contentType]\n\n const logoArrayBuffer = await logoResponse.arrayBuffer()\n\n const base64Flag = `data:image/${imageType};base64,`\n const imageStr = arrayBufferToBase64(logoArrayBuffer)\n\n const base64 = `${base64Flag}${imageStr}`\n const isValid = validateBase64Image(base64)\n\n if (isValid) {\n return base64\n }\n\n return Promise.reject(new Error('InvalidImageError'))\n}\n"],"mappings":";;;AAAA,SAASA,mBAAmB,QAAQ,iBAAiB;AACrD,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,SAASC,mBAAmB,QAAQ,qBAAqB;AACzD,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,IAAMC,KAAK,GACR,QAAOC,IAAI,iCAAAC,OAAA,CAAJD,IAAI,OAAK,QAAQ,IAAIA,IAAI,CAACD,KAAK,IAAKD,aAAa,CAAC;EAAEI,OAAO,EAAPA;AAAQ,CAAC,CAAC,CAACH,KAAK;AAE9E,IAAMI,YAAY,GAAG;EACnB,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE;AAChB,CAAC;;AAED;AACA,OAAO,IAAMC,mBAAmB;EAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,QAAA;IAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,OAAA;IAAA,OAAAZ,mBAAA,CAAAa,IAAA,WAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC3Bb,cAAc,GAAGc,SAAS,CAAC7B,mBAAmB,CAAC;UAAA0B,QAAA,CAAAE,IAAA;UAAA,OAC1BxB,KAAK,CAACW,cAAc,CAAC;QAAA;UAA1CC,YAAY,GAAAU,QAAA,CAAAI,IAAA;UAEZb,mBAAmB,GAAGD,YAAY,CAACe,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC;UAChEd,WAAW,GAAGF,YAAY,CAACe,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC;UAAA,MAExDf,mBAAmB,KAAK,GAAG;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA,WACtB1B,OAAO,CAAC2B,MAAM,CACnB,IAAIC,KAAK,gDAAAC,MAAA,CAAgDrB,cAAc,CAAE,CAC3E,CAAC;QAAA;UAAA,IAGEC,YAAY,CAACqB,EAAE;YAAAX,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA,WACX1B,OAAO,CAAC2B,MAAM,CAAC,IAAIC,KAAK,2BAAAC,MAAA,CAA2BrB,cAAc,CAAE,CAAC,CAAC;QAAA;UAGxEI,SAAS,GAAGX,YAAY,CAACU,WAAW,CAAC;UAAAQ,QAAA,CAAAE,IAAA;UAAA,OAEbZ,YAAY,CAACsB,WAAW,CAAC,CAAC;QAAA;UAAlDlB,eAAe,GAAAM,QAAA,CAAAI,IAAA;UAEfT,UAAU,iBAAAe,MAAA,CAAiBjB,SAAS;UACpCG,QAAQ,GAAGrB,mBAAmB,CAACmB,eAAe,CAAC;UAE/CG,MAAM,MAAAa,MAAA,CAAMf,UAAU,EAAAe,MAAA,CAAGd,QAAQ;UACjCE,OAAO,GAAGtB,mBAAmB,CAACqB,MAAM,CAAC;UAAA,KAEvCC,OAAO;YAAAE,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAO,MAAA,WACFV,MAAM;QAAA;UAAA,OAAAG,QAAA,CAAAO,MAAA,WAGR1B,OAAO,CAAC2B,MAAM,CAAC,IAAIC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAa,IAAA;MAAA;IAAA,GAAAzB,OAAA;EAAA,CACtD;EAAA,gBAhCYL,mBAAmBA,CAAA;IAAA,OAAAC,IAAA,CAAA8B,KAAA,OAAAC,SAAA;EAAA;AAAA,GAgC/B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_constants","require","_fetchImage","_imageValidators","_fetchPonyfill","_interopRequireDefault","fetch","self","fetchPonyfill","Promise","contentTypes","fetchLighthouseLogo","encodedLogoUrl","encodeURI","LIGHTHOUSE_LOGO_URL","logoResponse","contentLengthHeader","headers","get","contentType","reject","Error","ok","imageType","logoArrayBuffer","arrayBuffer","base64Flag","imageStr","arrayBufferToBase64","base64","isValid","validateBase64Image","exports"],"sources":["../../../src/helpers/fetch-lighthouse-logo/index.js"],"sourcesContent":["import { LIGHTHOUSE_LOGO_URL } from '../../constants'\r\nimport { arrayBufferToBase64 } from '../fetch-image'\r\nimport { validateBase64Image } from '../image-validators'\r\nimport fetchPonyfill from 'fetch-ponyfill'\r\n\r\n// NOTE use the native fetch if it's available in the browser, because the\r\n// ponyfill (which actually uses the github polyfill) does not support all the\r\n// same options as native fetch\r\nconst fetch =\r\n (typeof self === 'object' && self.fetch) || fetchPonyfill({ Promise }).fetch\r\n\r\nconst contentTypes = {\r\n 'image/png': 'png',\r\n 'image/jpeg': 'jpeg',\r\n}\r\n\r\n// NOTE: This is not stored where other images are - so it cannot go through CloudFront\r\nexport const fetchLighthouseLogo = async function() {\r\n const encodedLogoUrl = encodeURI(LIGHTHOUSE_LOGO_URL)\r\n const logoResponse = await fetch(encodedLogoUrl)\r\n\r\n const contentLengthHeader = logoResponse.headers.get('content-length')\r\n const contentType = logoResponse.headers.get('content-type')\r\n\r\n if (contentLengthHeader === '0') {\r\n return Promise.reject(\r\n new Error(`Failed to fetch image as no content length: ${encodedLogoUrl}`)\r\n )\r\n }\r\n\r\n if (!logoResponse.ok) {\r\n return Promise.reject(new Error(`Failed to fetch image: ${encodedLogoUrl}`))\r\n }\r\n\r\n const imageType = contentTypes[contentType]\r\n\r\n const logoArrayBuffer = await logoResponse.arrayBuffer()\r\n\r\n const base64Flag = `data:image/${imageType};base64,`\r\n const imageStr = arrayBufferToBase64(logoArrayBuffer)\r\n\r\n const base64 = `${base64Flag}${imageStr}`\r\n const isValid = validateBase64Image(base64)\r\n\r\n if (isValid) {\r\n return base64\r\n }\r\n\r\n return Promise.reject(new Error('InvalidImageError'))\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA;AACA;AACA;AACA,MAAMK,KAAK,GACR,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACD,KAAK,IAAK,IAAAE,sBAAa,EAAC;EAAEC;AAAQ,CAAC,CAAC,CAACH,KAAK;AAE9E,MAAMI,YAAY,GAAG;EACnB,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE;AAChB,CAAC;;AAED;AACO,MAAMC,mBAAmB,GAAG,eAAAA,CAAA,EAAiB;EAClD,MAAMC,cAAc,GAAGC,SAAS,CAACC,8BAAmB,CAAC;EACrD,MAAMC,YAAY,GAAG,MAAMT,KAAK,CAACM,cAAc,CAAC;EAEhD,MAAMI,mBAAmB,GAAGD,YAAY,CAACE,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC;EACtE,MAAMC,WAAW,GAAGJ,YAAY,CAACE,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC;EAE5D,IAAIF,mBAAmB,KAAK,GAAG,EAAE;IAC/B,OAAOP,OAAO,CAACW,MAAM,CACnB,IAAIC,KAAK,CAAC,+CAA+CT,cAAc,EAAE,CAC3E,CAAC;EACH;EAEA,IAAI,CAACG,YAAY,CAACO,EAAE,EAAE;IACpB,OAAOb,OAAO,CAACW,MAAM,CAAC,IAAIC,KAAK,CAAC,0BAA0BT,cAAc,EAAE,CAAC,CAAC;EAC9E;EAEA,MAAMW,SAAS,GAAGb,YAAY,CAACS,WAAW,CAAC;EAE3C,MAAMK,eAAe,GAAG,MAAMT,YAAY,CAACU,WAAW,CAAC,CAAC;EAExD,MAAMC,UAAU,GAAG,cAAcH,SAAS,UAAU;EACpD,MAAMI,QAAQ,GAAG,IAAAC,+BAAmB,EAACJ,eAAe,CAAC;EAErD,MAAMK,MAAM,GAAG,GAAGH,UAAU,GAAGC,QAAQ,EAAE;EACzC,MAAMG,OAAO,GAAG,IAAAC,oCAAmB,EAACF,MAAM,CAAC;EAE3C,IAAIC,OAAO,EAAE;IACX,OAAOD,MAAM;EACf;EAEA,OAAOpB,OAAO,CAACW,MAAM,CAAC,IAAIC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAAAW,OAAA,CAAArB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,11 +1,17 @@
1
- /**
2
- * floatify
3
- * Accepts a number and returns a float rounded to the expected precision,
4
- * avoiding floating point errors
5
- * https://stackoverflow.com/questions/588004/is-floating-point-math-broken/51723472#51723472
6
- * @param {Number} number
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = floatify;
7
+ /**
8
+ * floatify
9
+ * Accepts a number and returns a float rounded to the expected precision,
10
+ * avoiding floating point errors
11
+ * https://stackoverflow.com/questions/588004/is-floating-point-math-broken/51723472#51723472
12
+ * @param {Number} number
7
13
  */
8
- export default function floatify(number) {
14
+ function floatify(number) {
9
15
  return parseFloat(number.toFixed(10));
10
16
  }
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["floatify","number","parseFloat","toFixed"],"sources":["../../../src/helpers/floatify/index.js"],"sourcesContent":["/**\n * floatify\n * Accepts a number and returns a float rounded to the expected precision,\n * avoiding floating point errors\n * https://stackoverflow.com/questions/588004/is-floating-point-math-broken/51723472#51723472\n * @param {Number} number\n */\nexport default function floatify(number) {\n return parseFloat(number.toFixed(10))\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,QAAQA,CAACC,MAAM,EAAE;EACvC,OAAOC,UAAU,CAACD,MAAM,CAACE,OAAO,CAAC,EAAE,CAAC,CAAC;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["floatify","number","parseFloat","toFixed"],"sources":["../../../src/helpers/floatify/index.js"],"sourcesContent":["/**\r\n * floatify\r\n * Accepts a number and returns a float rounded to the expected precision,\r\n * avoiding floating point errors\r\n * https://stackoverflow.com/questions/588004/is-floating-point-math-broken/51723472#51723472\r\n * @param {Number} number\r\n */\r\nexport default function floatify(number) {\r\n return parseFloat(number.toFixed(10))\r\n}\r\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,QAAQA,CAACC,MAAM,EAAE;EACvC,OAAOC,UAAU,CAACD,MAAM,CAACE,OAAO,CAAC,EAAE,CAAC,CAAC;AACvC","ignoreList":[]}
@@ -1,12 +1,16 @@
1
- import { chain, isEmpty } from 'lodash';
2
- import { getUserFullName } from '../';
3
- export function getAssigneesFullNames(users, assignees) {
4
- if (isEmpty(assignees)) {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAssigneesFullNames = getAssigneesFullNames;
7
+ var _lodash = require("lodash");
8
+ var _ = require("../");
9
+ function getAssigneesFullNames(users, assignees) {
10
+ if ((0, _lodash.isEmpty)(assignees)) {
5
11
  return 'No users assigned';
6
12
  }
7
- var fullNames = chain(assignees).map(function (userId) {
8
- return getUserFullName(users, userId);
9
- }).compact().join(', ').value();
13
+ const fullNames = (0, _lodash.chain)(assignees).map(userId => (0, _.getUserFullName)(users, userId)).compact().join(', ').value();
10
14
  return fullNames;
11
15
  }
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["chain","isEmpty","getUserFullName","getAssigneesFullNames","users","assignees","fullNames","map","userId","compact","join","value"],"sources":["../../../src/helpers/get-assignees-full-names/index.js"],"sourcesContent":["import { chain, isEmpty } from 'lodash'\n\nimport { getUserFullName } from '../'\n\nexport function getAssigneesFullNames(users, assignees) {\n if (isEmpty(assignees)) {\n return 'No users assigned'\n }\n\n const fullNames = chain(assignees)\n .map(userId => getUserFullName(users, userId))\n .compact()\n .join(', ')\n .value()\n\n return fullNames\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,OAAO,QAAQ,QAAQ;AAEvC,SAASC,eAAe,QAAQ,KAAK;AAErC,OAAO,SAASC,qBAAqBA,CAACC,KAAK,EAAEC,SAAS,EAAE;EACtD,IAAIJ,OAAO,CAACI,SAAS,CAAC,EAAE;IACtB,OAAO,mBAAmB;EAC5B;EAEA,IAAMC,SAAS,GAAGN,KAAK,CAACK,SAAS,CAAC,CAC/BE,GAAG,CAAC,UAAAC,MAAM;IAAA,OAAIN,eAAe,CAACE,KAAK,EAAEI,MAAM,CAAC;EAAA,EAAC,CAC7CC,OAAO,CAAC,CAAC,CACTC,IAAI,CAAC,IAAI,CAAC,CACVC,KAAK,CAAC,CAAC;EAEV,OAAOL,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_lodash","require","_","getAssigneesFullNames","users","assignees","isEmpty","fullNames","chain","map","userId","getUserFullName","compact","join","value"],"sources":["../../../src/helpers/get-assignees-full-names/index.js"],"sourcesContent":["import { chain, isEmpty } from 'lodash'\r\n\r\nimport { getUserFullName } from '../'\r\n\r\nexport function getAssigneesFullNames(users, assignees) {\r\n if (isEmpty(assignees)) {\r\n return 'No users assigned'\r\n }\r\n\r\n const fullNames = chain(assignees)\r\n .map(userId => getUserFullName(users, userId))\r\n .compact()\r\n .join(', ')\r\n .value()\r\n\r\n return fullNames\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AAEO,SAASE,qBAAqBA,CAACC,KAAK,EAAEC,SAAS,EAAE;EACtD,IAAI,IAAAC,eAAO,EAACD,SAAS,CAAC,EAAE;IACtB,OAAO,mBAAmB;EAC5B;EAEA,MAAME,SAAS,GAAG,IAAAC,aAAK,EAACH,SAAS,CAAC,CAC/BI,GAAG,CAACC,MAAM,IAAI,IAAAC,iBAAe,EAACP,KAAK,EAAEM,MAAM,CAAC,CAAC,CAC7CE,OAAO,CAAC,CAAC,CACTC,IAAI,CAAC,IAAI,CAAC,CACVC,KAAK,CAAC,CAAC;EAEV,OAAOP,SAAS;AAClB","ignoreList":[]}
@@ -1,43 +1,53 @@
1
- import { get } from 'lodash';
2
- import { getAuditItemsData, getLocationReference, getReferenceDetails, getTimezoneDatetime } from '../';
3
- export function getAuditEntryDetails(data) {
4
- var entity = data.entity,
5
- timezone = data.timezone;
6
- var createdAt = entity.createdAt,
7
- gps = entity.gps,
8
- items = entity.items,
9
- templateRevision = entity.templateRevision,
10
- sequenceId = entity.sequenceId,
11
- score = entity.score,
12
- target = entity.target,
13
- targetServiceLevel = entity.targetServiceLevel;
14
- var locationText = getLocationReference(data);
15
- var gpsText = get(gps, 'reverseGeocoded.label', 'Unknown Location');
16
- var groupedData = getAuditItemsData(items, data);
17
- var referenceDetails = getReferenceDetails(data);
18
- var scoreText = score && score.percentageResult !== undefined ? "".concat(score.percentageResult, "%") : '';
19
- var timezoneHourTime = getTimezoneDatetime({
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAuditEntryDetails = getAuditEntryDetails;
7
+ var _lodash = require("lodash");
8
+ var _ = require("../");
9
+ function getAuditEntryDetails(data) {
10
+ const {
11
+ entity,
12
+ timezone
13
+ } = data;
14
+ const {
15
+ createdAt,
16
+ gps,
17
+ items,
18
+ templateRevision,
19
+ sequenceId,
20
+ score,
21
+ target,
22
+ targetServiceLevel
23
+ } = entity;
24
+ const locationText = (0, _.getLocationReference)(data);
25
+ const gpsText = (0, _lodash.get)(gps, 'reverseGeocoded.label', 'Unknown Location');
26
+ const groupedData = (0, _.getAuditItemsData)(items, data);
27
+ const referenceDetails = (0, _.getReferenceDetails)(data);
28
+ const scoreText = score && score.percentageResult !== undefined ? `${score.percentageResult}%` : '';
29
+ const timezoneHourTime = (0, _.getTimezoneDatetime)({
20
30
  format: 'h:mm a',
21
31
  timestamp: createdAt,
22
- timezone: timezone
32
+ timezone
23
33
  });
24
- var timezoneDatetime = getTimezoneDatetime({
34
+ const timezoneDatetime = (0, _.getTimezoneDatetime)({
25
35
  timestamp: createdAt,
26
- timezone: timezone
36
+ timezone
27
37
  });
28
38
  return {
29
- gpsText: gpsText,
30
- groupedData: groupedData,
31
- locationText: locationText,
39
+ gpsText,
40
+ groupedData,
41
+ locationText,
32
42
  referenceLabel: referenceDetails.label,
33
43
  referenceValue: referenceDetails.value,
34
- templateRevision: templateRevision,
35
- scoreText: scoreText,
36
- sequenceId: sequenceId,
37
- target: target,
38
- targetServiceLevel: targetServiceLevel,
39
- timezoneDatetime: timezoneDatetime,
40
- timezoneHourTime: timezoneHourTime
44
+ templateRevision,
45
+ scoreText,
46
+ sequenceId,
47
+ target,
48
+ targetServiceLevel,
49
+ timezoneDatetime,
50
+ timezoneHourTime
41
51
  };
42
52
  }
43
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["get","getAuditItemsData","getLocationReference","getReferenceDetails","getTimezoneDatetime","getAuditEntryDetails","data","entity","timezone","createdAt","gps","items","templateRevision","sequenceId","score","target","targetServiceLevel","locationText","gpsText","groupedData","referenceDetails","scoreText","percentageResult","undefined","concat","timezoneHourTime","format","timestamp","timezoneDatetime","referenceLabel","label","referenceValue","value"],"sources":["../../../src/helpers/get-audit-entry-details/index.js"],"sourcesContent":["import { get } from 'lodash'\n\nimport {\n getAuditItemsData,\n getLocationReference,\n getReferenceDetails,\n getTimezoneDatetime,\n} from '../'\n\nexport function getAuditEntryDetails(data) {\n const { entity, timezone } = data\n\n const {\n createdAt,\n gps,\n items,\n templateRevision,\n sequenceId,\n score,\n target,\n targetServiceLevel,\n } = entity\n\n const locationText = getLocationReference(data)\n const gpsText = get(gps, 'reverseGeocoded.label', 'Unknown Location')\n const groupedData = getAuditItemsData(items, data)\n const referenceDetails = getReferenceDetails(data)\n const scoreText =\n score && score.percentageResult !== undefined\n ? `${score.percentageResult}%`\n : ''\n const timezoneHourTime = getTimezoneDatetime({\n format: 'h:mm a',\n timestamp: createdAt,\n timezone,\n })\n const timezoneDatetime = getTimezoneDatetime({\n timestamp: createdAt,\n timezone,\n })\n\n return {\n gpsText,\n groupedData,\n locationText,\n referenceLabel: referenceDetails.label,\n referenceValue: referenceDetails.value,\n templateRevision,\n scoreText,\n sequenceId,\n target,\n targetServiceLevel,\n timezoneDatetime,\n timezoneHourTime,\n }\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,QAAQ;AAE5B,SACEC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,mBAAmB,QACd,KAAK;AAEZ,OAAO,SAASC,oBAAoBA,CAACC,IAAI,EAAE;EACzC,IAAQC,MAAM,GAAeD,IAAI,CAAzBC,MAAM;IAAEC,QAAQ,GAAKF,IAAI,CAAjBE,QAAQ;EAExB,IACEC,SAAS,GAQPF,MAAM,CARRE,SAAS;IACTC,GAAG,GAODH,MAAM,CAPRG,GAAG;IACHC,KAAK,GAMHJ,MAAM,CANRI,KAAK;IACLC,gBAAgB,GAKdL,MAAM,CALRK,gBAAgB;IAChBC,UAAU,GAIRN,MAAM,CAJRM,UAAU;IACVC,KAAK,GAGHP,MAAM,CAHRO,KAAK;IACLC,MAAM,GAEJR,MAAM,CAFRQ,MAAM;IACNC,kBAAkB,GAChBT,MAAM,CADRS,kBAAkB;EAGpB,IAAMC,YAAY,GAAGf,oBAAoB,CAACI,IAAI,CAAC;EAC/C,IAAMY,OAAO,GAAGlB,GAAG,CAACU,GAAG,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;EACrE,IAAMS,WAAW,GAAGlB,iBAAiB,CAACU,KAAK,EAAEL,IAAI,CAAC;EAClD,IAAMc,gBAAgB,GAAGjB,mBAAmB,CAACG,IAAI,CAAC;EAClD,IAAMe,SAAS,GACbP,KAAK,IAAIA,KAAK,CAACQ,gBAAgB,KAAKC,SAAS,MAAAC,MAAA,CACtCV,KAAK,CAACQ,gBAAgB,SACzB,EAAE;EACR,IAAMG,gBAAgB,GAAGrB,mBAAmB,CAAC;IAC3CsB,MAAM,EAAE,QAAQ;IAChBC,SAAS,EAAElB,SAAS;IACpBD,QAAQ,EAARA;EACF,CAAC,CAAC;EACF,IAAMoB,gBAAgB,GAAGxB,mBAAmB,CAAC;IAC3CuB,SAAS,EAAElB,SAAS;IACpBD,QAAQ,EAARA;EACF,CAAC,CAAC;EAEF,OAAO;IACLU,OAAO,EAAPA,OAAO;IACPC,WAAW,EAAXA,WAAW;IACXF,YAAY,EAAZA,YAAY;IACZY,cAAc,EAAET,gBAAgB,CAACU,KAAK;IACtCC,cAAc,EAAEX,gBAAgB,CAACY,KAAK;IACtCpB,gBAAgB,EAAhBA,gBAAgB;IAChBS,SAAS,EAATA,SAAS;IACTR,UAAU,EAAVA,UAAU;IACVE,MAAM,EAANA,MAAM;IACNC,kBAAkB,EAAlBA,kBAAkB;IAClBY,gBAAgB,EAAhBA,gBAAgB;IAChBH,gBAAgB,EAAhBA;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_lodash","require","_","getAuditEntryDetails","data","entity","timezone","createdAt","gps","items","templateRevision","sequenceId","score","target","targetServiceLevel","locationText","getLocationReference","gpsText","get","groupedData","getAuditItemsData","referenceDetails","getReferenceDetails","scoreText","percentageResult","undefined","timezoneHourTime","getTimezoneDatetime","format","timestamp","timezoneDatetime","referenceLabel","label","referenceValue","value"],"sources":["../../../src/helpers/get-audit-entry-details/index.js"],"sourcesContent":["import { get } from 'lodash'\r\n\r\nimport {\r\n getAuditItemsData,\r\n getLocationReference,\r\n getReferenceDetails,\r\n getTimezoneDatetime,\r\n} from '../'\r\n\r\nexport function getAuditEntryDetails(data) {\r\n const { entity, timezone } = data\r\n\r\n const {\r\n createdAt,\r\n gps,\r\n items,\r\n templateRevision,\r\n sequenceId,\r\n score,\r\n target,\r\n targetServiceLevel,\r\n } = entity\r\n\r\n const locationText = getLocationReference(data)\r\n const gpsText = get(gps, 'reverseGeocoded.label', 'Unknown Location')\r\n const groupedData = getAuditItemsData(items, data)\r\n const referenceDetails = getReferenceDetails(data)\r\n const scoreText =\r\n score && score.percentageResult !== undefined\r\n ? `${score.percentageResult}%`\r\n : ''\r\n const timezoneHourTime = getTimezoneDatetime({\r\n format: 'h:mm a',\r\n timestamp: createdAt,\r\n timezone,\r\n })\r\n const timezoneDatetime = getTimezoneDatetime({\r\n timestamp: createdAt,\r\n timezone,\r\n })\r\n\r\n return {\r\n gpsText,\r\n groupedData,\r\n locationText,\r\n referenceLabel: referenceDetails.label,\r\n referenceValue: referenceDetails.value,\r\n templateRevision,\r\n scoreText,\r\n sequenceId,\r\n target,\r\n targetServiceLevel,\r\n timezoneDatetime,\r\n timezoneHourTime,\r\n }\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AAOO,SAASE,oBAAoBA,CAACC,IAAI,EAAE;EACzC,MAAM;IAAEC,MAAM;IAAEC;EAAS,CAAC,GAAGF,IAAI;EAEjC,MAAM;IACJG,SAAS;IACTC,GAAG;IACHC,KAAK;IACLC,gBAAgB;IAChBC,UAAU;IACVC,KAAK;IACLC,MAAM;IACNC;EACF,CAAC,GAAGT,MAAM;EAEV,MAAMU,YAAY,GAAG,IAAAC,sBAAoB,EAACZ,IAAI,CAAC;EAC/C,MAAMa,OAAO,GAAG,IAAAC,WAAG,EAACV,GAAG,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;EACrE,MAAMW,WAAW,GAAG,IAAAC,mBAAiB,EAACX,KAAK,EAAEL,IAAI,CAAC;EAClD,MAAMiB,gBAAgB,GAAG,IAAAC,qBAAmB,EAAClB,IAAI,CAAC;EAClD,MAAMmB,SAAS,GACbX,KAAK,IAAIA,KAAK,CAACY,gBAAgB,KAAKC,SAAS,GACzC,GAAGb,KAAK,CAACY,gBAAgB,GAAG,GAC5B,EAAE;EACR,MAAME,gBAAgB,GAAG,IAAAC,qBAAmB,EAAC;IAC3CC,MAAM,EAAE,QAAQ;IAChBC,SAAS,EAAEtB,SAAS;IACpBD;EACF,CAAC,CAAC;EACF,MAAMwB,gBAAgB,GAAG,IAAAH,qBAAmB,EAAC;IAC3CE,SAAS,EAAEtB,SAAS;IACpBD;EACF,CAAC,CAAC;EAEF,OAAO;IACLW,OAAO;IACPE,WAAW;IACXJ,YAAY;IACZgB,cAAc,EAAEV,gBAAgB,CAACW,KAAK;IACtCC,cAAc,EAAEZ,gBAAgB,CAACa,KAAK;IACtCxB,gBAAgB;IAChBa,SAAS;IACTZ,UAAU;IACVE,MAAM;IACNC,kBAAkB;IAClBgB,gBAAgB;IAChBJ;EACF,CAAC;AACH","ignoreList":[]}