ag-common 0.0.894 → 0.0.896

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 (236) hide show
  1. package/LICENSE.md +2 -3
  2. package/README.md +2 -2
  3. package/dist/api/helpers/acm.d.ts +1 -1
  4. package/dist/api/helpers/acm.js +3 -3
  5. package/dist/api/helpers/api.d.ts +2 -2
  6. package/dist/api/helpers/api.js +26 -22
  7. package/dist/api/helpers/apigw.js +4 -4
  8. package/dist/api/helpers/aws.js +2 -2
  9. package/dist/api/helpers/cosmos/delete.d.ts +1 -1
  10. package/dist/api/helpers/cosmos/delete.js +15 -16
  11. package/dist/api/helpers/cosmos/get.d.ts +3 -3
  12. package/dist/api/helpers/cosmos/get.js +26 -32
  13. package/dist/api/helpers/cosmos/index.d.ts +3 -3
  14. package/dist/api/helpers/cosmos/index.js +1 -1
  15. package/dist/api/helpers/cosmos/utils.d.ts +1 -1
  16. package/dist/api/helpers/cosmos/utils.js +3 -7
  17. package/dist/api/helpers/cosmos/write.d.ts +1 -1
  18. package/dist/api/helpers/cosmos/write.js +11 -12
  19. package/dist/api/helpers/dynamo/delete.d.ts +1 -1
  20. package/dist/api/helpers/dynamo/delete.js +3 -3
  21. package/dist/api/helpers/dynamo/get.d.ts +2 -2
  22. package/dist/api/helpers/dynamo/get.js +20 -14
  23. package/dist/api/helpers/dynamo/index.d.ts +10 -38
  24. package/dist/api/helpers/dynamo/index.js +4 -4
  25. package/dist/api/helpers/dynamo/set.d.ts +1 -1
  26. package/dist/api/helpers/dynamo/set.js +10 -10
  27. package/dist/api/helpers/dynamo/types.d.ts +3 -3
  28. package/dist/api/helpers/dynamo/types.js +1 -1
  29. package/dist/api/helpers/enforceDynamoProvisionCap.d.ts +13 -1
  30. package/dist/api/helpers/enforceDynamoProvisionCap.js +3 -4
  31. package/dist/api/helpers/google/apikey.js +1 -1
  32. package/dist/api/helpers/google/gemini.d.ts +1 -1
  33. package/dist/api/helpers/google/gemini.js +43 -45
  34. package/dist/api/helpers/google/index.d.ts +2 -2
  35. package/dist/api/helpers/index.d.ts +17 -17
  36. package/dist/api/helpers/retryOnError.js +6 -11
  37. package/dist/api/helpers/s3.d.ts +9 -9
  38. package/dist/api/helpers/s3.js +19 -16
  39. package/dist/api/helpers/ses.d.ts +1 -1
  40. package/dist/api/helpers/ses.js +9 -9
  41. package/dist/api/helpers/sqs.d.ts +1 -1
  42. package/dist/api/helpers/sqs.js +1 -1
  43. package/dist/api/helpers/ssm.d.ts +1 -1
  44. package/dist/api/helpers/ssm.js +2 -2
  45. package/dist/api/helpers/ssmInfra/apigw.d.ts +6 -6
  46. package/dist/api/helpers/ssmInfra/apigw.js +6 -10
  47. package/dist/api/helpers/ssmInfra/dynamo.d.ts +2 -2
  48. package/dist/api/helpers/ssmInfra/dynamo.js +1 -1
  49. package/dist/api/helpers/ssmInfra/index.d.ts +4 -4
  50. package/dist/api/helpers/ssmInfra/s3.d.ts +3 -3
  51. package/dist/api/helpers/ssmInfra/s3.js +1 -1
  52. package/dist/api/helpers/ssmInfra/sqs.d.ts +3 -3
  53. package/dist/api/helpers/ssmInfra/sqs.js +1 -1
  54. package/dist/api/helpers/sts.d.ts +1 -1
  55. package/dist/api/helpers/sts.js +4 -4
  56. package/dist/api/helpers/validations.d.ts +2 -2
  57. package/dist/api/helpers/validations.js +14 -14
  58. package/dist/api/helpers/zod.d.ts +1 -1
  59. package/dist/api/helpers/zod.js +21 -27
  60. package/dist/api/index.d.ts +2 -2
  61. package/dist/api/types/aws.d.ts +0 -56
  62. package/dist/api/types/aws.js +0 -1
  63. package/dist/api/types/index.d.ts +1 -1
  64. package/dist/common/helpers/array.js +9 -10
  65. package/dist/common/helpers/async.js +2 -2
  66. package/dist/common/helpers/binary.d.ts +1 -1
  67. package/dist/common/helpers/binary.js +1 -1
  68. package/dist/common/helpers/csv.d.ts +4 -2
  69. package/dist/common/helpers/csv.js +8 -12
  70. package/dist/common/helpers/date.d.ts +2 -4
  71. package/dist/common/helpers/date.js +2 -2
  72. package/dist/common/helpers/email.js +2 -2
  73. package/dist/common/helpers/fetch.js +8 -8
  74. package/dist/common/helpers/generator.js +2 -2
  75. package/dist/common/helpers/groupBy.js +0 -2
  76. package/dist/common/helpers/hashCode.js +2 -6
  77. package/dist/common/helpers/headers.d.ts +20 -20
  78. package/dist/common/helpers/headers.js +38 -38
  79. package/dist/common/helpers/i18n.d.ts +2 -2
  80. package/dist/common/helpers/i18n.js +5 -6
  81. package/dist/common/helpers/index.d.ts +25 -25
  82. package/dist/common/helpers/log.d.ts +1 -1
  83. package/dist/common/helpers/log.js +30 -30
  84. package/dist/common/helpers/math.d.ts +2 -2
  85. package/dist/common/helpers/math.js +6 -6
  86. package/dist/common/helpers/memo.d.ts +1 -1
  87. package/dist/common/helpers/memo.js +1 -3
  88. package/dist/common/helpers/node-cache.d.ts +2 -2
  89. package/dist/common/helpers/node-cache.js +0 -1
  90. package/dist/common/helpers/object.d.ts +1 -1
  91. package/dist/common/helpers/object.js +16 -27
  92. package/dist/common/helpers/secondsInNearest.js +5 -5
  93. package/dist/common/helpers/stream.js +4 -6
  94. package/dist/common/helpers/string/base64.js +2 -2
  95. package/dist/common/helpers/string/chunk.js +1 -1
  96. package/dist/common/helpers/string/contains.js +1 -3
  97. package/dist/common/helpers/string/getExtendedStringSegment.js +1 -1
  98. package/dist/common/helpers/string/index.d.ts +11 -11
  99. package/dist/common/helpers/string/json.js +1 -1
  100. package/dist/common/helpers/string/redact.js +38 -39
  101. package/dist/common/helpers/string/trim.js +4 -4
  102. package/dist/common/helpers/string/truncate.js +1 -1
  103. package/dist/common/helpers/string/url.js +7 -8
  104. package/dist/common/helpers/withRetry.js +7 -7
  105. package/dist/common/helpers/xml.d.ts +7 -3
  106. package/dist/common/helpers/xml.js +33 -36
  107. package/dist/common/index.d.ts +2 -2
  108. package/dist/index.d.ts +3 -3
  109. package/dist/node/helpers/fetch.js +1 -2
  110. package/dist/node/helpers/fs.js +2 -2
  111. package/dist/node/helpers/index.d.ts +2 -2
  112. package/dist/node/index.d.ts +1 -1
  113. package/dist/ui/components/DarkMode/Base.d.ts +4 -4
  114. package/dist/ui/components/DarkMode/Base.js +26 -31
  115. package/dist/ui/components/DarkMode/index.d.ts +2 -2
  116. package/dist/ui/components/DarkMode/types.d.ts +5 -5
  117. package/dist/ui/components/HeadersRaw/index.d.ts +2 -2
  118. package/dist/ui/components/HeadersRaw/index.js +5 -5
  119. package/dist/ui/components/Markdown/index.d.ts +1 -1
  120. package/dist/ui/components/Markdown/index.js +10 -10
  121. package/dist/ui/components/index.d.ts +4 -4
  122. package/dist/ui/components/shadcn/accordion.d.ts +4 -4
  123. package/dist/ui/components/shadcn/accordion.js +6 -6
  124. package/dist/ui/components/shadcn/alert.d.ts +2 -2
  125. package/dist/ui/components/shadcn/alert.js +6 -6
  126. package/dist/ui/components/shadcn/avatar.d.ts +2 -2
  127. package/dist/ui/components/shadcn/avatar.js +4 -4
  128. package/dist/ui/components/shadcn/button.d.ts +4 -4
  129. package/dist/ui/components/shadcn/button.js +14 -14
  130. package/dist/ui/components/shadcn/card.d.ts +2 -2
  131. package/dist/ui/components/shadcn/card.js +6 -6
  132. package/dist/ui/components/shadcn/checkbox.d.ts +2 -2
  133. package/dist/ui/components/shadcn/checkbox.js +3 -3
  134. package/dist/ui/components/shadcn/dialog.d.ts +10 -10
  135. package/dist/ui/components/shadcn/dialog.js +9 -11
  136. package/dist/ui/components/shadcn/divider.d.ts +1 -1
  137. package/dist/ui/components/shadcn/divider.js +1 -1
  138. package/dist/ui/components/shadcn/dropdown-list.d.ts +1 -1
  139. package/dist/ui/components/shadcn/dropdown-list.js +5 -5
  140. package/dist/ui/components/shadcn/dropdown-menu.d.ts +6 -6
  141. package/dist/ui/components/shadcn/dropdown-menu.js +11 -11
  142. package/dist/ui/components/shadcn/index.d.ts +21 -21
  143. package/dist/ui/components/shadcn/input-selector.d.ts +1 -1
  144. package/dist/ui/components/shadcn/input-selector.js +10 -12
  145. package/dist/ui/components/shadcn/input.d.ts +1 -1
  146. package/dist/ui/components/shadcn/input.js +1 -1
  147. package/dist/ui/components/shadcn/label.d.ts +3 -3
  148. package/dist/ui/components/shadcn/label.js +2 -2
  149. package/dist/ui/components/shadcn/popover.d.ts +2 -2
  150. package/dist/ui/components/shadcn/popover.js +3 -3
  151. package/dist/ui/components/shadcn/radio-group.d.ts +2 -2
  152. package/dist/ui/components/shadcn/radio-group.js +2 -2
  153. package/dist/ui/components/shadcn/scroll-area.d.ts +2 -2
  154. package/dist/ui/components/shadcn/scroll-area.js +3 -5
  155. package/dist/ui/components/shadcn/select.d.ts +2 -2
  156. package/dist/ui/components/shadcn/select.js +12 -12
  157. package/dist/ui/components/shadcn/sheet.d.ts +12 -12
  158. package/dist/ui/components/shadcn/sheet.js +15 -15
  159. package/dist/ui/components/shadcn/switch.d.ts +2 -2
  160. package/dist/ui/components/shadcn/switch.js +3 -3
  161. package/dist/ui/components/shadcn/textarea.d.ts +1 -1
  162. package/dist/ui/components/shadcn/textarea.js +1 -1
  163. package/dist/ui/components/shadcn/toast.d.ts +2 -2
  164. package/dist/ui/components/shadcn/toast.js +25 -25
  165. package/dist/ui/helpers/cognito.d.ts +1 -1
  166. package/dist/ui/helpers/cookie/const.js +1 -1
  167. package/dist/ui/helpers/cookie/get.js +3 -4
  168. package/dist/ui/helpers/cookie/index.d.ts +5 -5
  169. package/dist/ui/helpers/cookie/raw.d.ts +1 -1
  170. package/dist/ui/helpers/cookie/raw.js +8 -9
  171. package/dist/ui/helpers/cookie/use.d.ts +1 -1
  172. package/dist/ui/helpers/cookie/use.js +4 -4
  173. package/dist/ui/helpers/date.js +8 -8
  174. package/dist/ui/helpers/debounce.js +1 -1
  175. package/dist/ui/helpers/dom.d.ts +1 -1
  176. package/dist/ui/helpers/dom.js +4 -14
  177. package/dist/ui/helpers/index.d.ts +26 -26
  178. package/dist/ui/helpers/jwt.d.ts +3 -3
  179. package/dist/ui/helpers/openDialog.d.ts +2 -2
  180. package/dist/ui/helpers/openDialog.js +8 -8
  181. package/dist/ui/helpers/plural.js +1 -1
  182. package/dist/ui/helpers/routes.d.ts +2 -2
  183. package/dist/ui/helpers/routes.js +14 -15
  184. package/dist/ui/helpers/serviceWorker.js +1 -1
  185. package/dist/ui/helpers/useContextMenu.d.ts +1 -1
  186. package/dist/ui/helpers/useContextMenu.js +9 -10
  187. package/dist/ui/helpers/useElementAttribute.js +3 -5
  188. package/dist/ui/helpers/useGranularHook.d.ts +1 -1
  189. package/dist/ui/helpers/useGranularHook.js +2 -3
  190. package/dist/ui/helpers/useInterval.d.ts +2 -2
  191. package/dist/ui/helpers/useInterval.js +2 -2
  192. package/dist/ui/helpers/useIsInViewport.d.ts +1 -1
  193. package/dist/ui/helpers/useIsInViewport.js +0 -1
  194. package/dist/ui/helpers/useLocalStorage.js +6 -6
  195. package/dist/ui/helpers/useLockBodyScroll.js +2 -2
  196. package/dist/ui/helpers/useOnClickOutside.d.ts +1 -1
  197. package/dist/ui/helpers/useOnClickOutside.js +3 -6
  198. package/dist/ui/helpers/useOnScroll.d.ts +1 -1
  199. package/dist/ui/helpers/useOnScroll.js +3 -4
  200. package/dist/ui/helpers/useOverloadPageSearch.js +8 -10
  201. package/dist/ui/helpers/useQueryString.js +7 -7
  202. package/dist/ui/helpers/useResize.js +5 -6
  203. package/dist/ui/helpers/useTimeout.js +1 -1
  204. package/dist/ui/helpers/useTooltip.d.ts +2 -2
  205. package/dist/ui/helpers/useTooltip.js +5 -7
  206. package/dist/ui/helpers/utils.d.ts +2 -2
  207. package/dist/ui/icons/Checkmark.d.ts +2 -2
  208. package/dist/ui/icons/Checkmark.js +1 -1
  209. package/dist/ui/icons/ChevronRight.d.ts +1 -1
  210. package/dist/ui/icons/Circle.d.ts +2 -2
  211. package/dist/ui/icons/Circle.js +1 -1
  212. package/dist/ui/icons/CircleDot.d.ts +2 -2
  213. package/dist/ui/icons/Cog.d.ts +2 -2
  214. package/dist/ui/icons/Computer.d.ts +2 -2
  215. package/dist/ui/icons/Door.d.ts +1 -1
  216. package/dist/ui/icons/Hamburger.d.ts +1 -1
  217. package/dist/ui/icons/HorizontalDots.d.ts +1 -1
  218. package/dist/ui/icons/House.d.ts +2 -2
  219. package/dist/ui/icons/Magnify.d.ts +2 -2
  220. package/dist/ui/icons/Magnify.js +1 -1
  221. package/dist/ui/icons/Moon.d.ts +2 -2
  222. package/dist/ui/icons/Pencil.d.ts +1 -1
  223. package/dist/ui/icons/Save.d.ts +1 -1
  224. package/dist/ui/icons/Sun.d.ts +1 -1
  225. package/dist/ui/icons/Sun.js +1 -1
  226. package/dist/ui/icons/Undo.d.ts +1 -1
  227. package/dist/ui/icons/UserOutline.d.ts +1 -1
  228. package/dist/ui/icons/Warning.d.ts +2 -2
  229. package/dist/ui/icons/Warning.js +1 -1
  230. package/dist/ui/icons/index.d.ts +32 -74
  231. package/dist/ui/index.d.ts +3 -3
  232. package/dist/ui/styles/colours.js +29 -29
  233. package/dist/ui/styles/common.d.ts +1 -1
  234. package/dist/ui/styles/common.js +10 -10
  235. package/dist/ui/styles/index.d.ts +3 -3
  236. package/package.json +65 -75
@@ -4,60 +4,60 @@ exports.redactString = redactString;
4
4
  exports.redactObject = redactObject;
5
5
  function redactString(str) {
6
6
  let ret = str;
7
- ret = ret || '';
8
- const repl = '$1<redacted>$2';
7
+ ret = ret || "";
8
+ const repl = "$1<redacted>$2";
9
9
  // OAuth and authentication tokens
10
10
  ret = ret.replace(/(\b)grant_type.+?(\b)/gm, repl);
11
11
  ret = ret.replace(/(\b)Bearer .+?(\b)/gm, repl);
12
12
  // JWT tokens (base64 with dots)
13
- ret = ret.replace(/(eyJ[\w-_.]*\.[\w-_.]*\.[\w-_.]*)/gim, '<redacted>');
13
+ ret = ret.replace(/(eyJ[\w-_.]*\.[\w-_.]*\.[\w-_.]*)/gim, "<redacted>");
14
14
  // API Keys (various formats)
15
- ret = ret.replace(/(\b)(sk_live_|sk_test_|pk_live_|pk_test_)[\w-]+/gi, '$1<redacted>'); // Stripe
16
- ret = ret.replace(/(\b)(AKIA[0-9A-Z]{16})/gi, '$1<redacted>'); // AWS Access Key ID
17
- ret = ret.replace(/(aws_secret_access_key["\s]*[:=]["\s]*)([0-9a-zA-Z/+]{40})/gi, '$1<redacted>'); // AWS Secret Access Key pattern
18
- ret = ret.replace(/(\b)(AIza[0-9A-Za-z\\-_]{35})/gi, '$1<redacted>'); // Google API Key
19
- ret = ret.replace(/(\b)(ya29\.[0-9A-Za-z\\-_]+)/gi, '$1<redacted>'); // Google OAuth Access Token
20
- ret = ret.replace(/(\b)(glpat-[a-zA-Z0-9\\-_]{20})/gi, '$1<redacted>'); // GitLab Personal Access Token
21
- ret = ret.replace(/(\b)(ghp_[a-zA-Z0-9]{36})/gi, '$1<redacted>'); // GitHub Personal Access Token
22
- ret = ret.replace(/(\b)(github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/gi, '$1<redacted>'); // GitHub Fine-grained PAT
15
+ ret = ret.replace(/(\b)(sk_live_|sk_test_|pk_live_|pk_test_)[\w-]+/gi, "$1<redacted>"); // Stripe
16
+ ret = ret.replace(/(\b)(AKIA[0-9A-Z]{16})/gi, "$1<redacted>"); // AWS Access Key ID
17
+ ret = ret.replace(/(aws_secret_access_key["\s]*[:=]["\s]*)([0-9a-zA-Z/+]{40})/gi, "$1<redacted>"); // AWS Secret Access Key pattern
18
+ ret = ret.replace(/(\b)(AIza[0-9A-Za-z\\-_]{35})/gi, "$1<redacted>"); // Google API Key
19
+ ret = ret.replace(/(\b)(ya29\.[0-9A-Za-z\\-_]+)/gi, "$1<redacted>"); // Google OAuth Access Token
20
+ ret = ret.replace(/(\b)(glpat-[a-zA-Z0-9\\-_]{20})/gi, "$1<redacted>"); // GitLab Personal Access Token
21
+ ret = ret.replace(/(\b)(ghp_[a-zA-Z0-9]{36})/gi, "$1<redacted>"); // GitHub Personal Access Token
22
+ ret = ret.replace(/(\b)(github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/gi, "$1<redacted>"); // GitHub Fine-grained PAT
23
23
  // Password patterns in key-value pairs
24
- ret = ret.replace(/(password["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
25
- ret = ret.replace(/(passwd["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
26
- ret = ret.replace(/(pwd["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
27
- ret = ret.replace(/(secret["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
28
- ret = ret.replace(/(token["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
29
- ret = ret.replace(/(^|[^a-zA-Z])(api_?key|private_?key|secret_?key)["\s]*[:=]["\s]*([^",\s}]+)/gi, '$1$2<redacted>');
30
- ret = ret.replace(/(auth["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
24
+ ret = ret.replace(/(password["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
25
+ ret = ret.replace(/(passwd["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
26
+ ret = ret.replace(/(pwd["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
27
+ ret = ret.replace(/(secret["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
28
+ ret = ret.replace(/(token["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
29
+ ret = ret.replace(/(^|[^a-zA-Z])(api_?key|private_?key|secret_?key)["\s]*[:=]["\s]*([^",\s}]+)/gi, "$1$2<redacted>");
30
+ ret = ret.replace(/(auth["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
31
31
  // Database connection strings
32
- ret = ret.replace(/(mongodb:\/\/[^:]+:)([^@]+)(@)/gi, '$1<redacted>$3');
33
- ret = ret.replace(/(mysql:\/\/[^:]+:)([^@]+)(@)/gi, '$1<redacted>$3');
34
- ret = ret.replace(/(postgresql:\/\/[^:]+:)([^@]+)(@)/gi, '$1<redacted>$3');
35
- ret = ret.replace(/(redis:\/\/[^:]+:)([^@]+)(@)/gi, '$1<redacted>$3');
32
+ ret = ret.replace(/(mongodb:\/\/[^:]+:)([^@]+)(@)/gi, "$1<redacted>$3");
33
+ ret = ret.replace(/(mysql:\/\/[^:]+:)([^@]+)(@)/gi, "$1<redacted>$3");
34
+ ret = ret.replace(/(postgresql:\/\/[^:]+:)([^@]+)(@)/gi, "$1<redacted>$3");
35
+ ret = ret.replace(/(redis:\/\/[^:]+:)([^@]+)(@)/gi, "$1<redacted>$3");
36
36
  // Credit card numbers (basic pattern)
37
- ret = ret.replace(/(\b)([3-6]\d{3}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{3,4})(\b)/g, '$1<redacted>$3');
37
+ ret = ret.replace(/(\b)([3-6]\d{3}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{3,4})(\b)/g, "$1<redacted>$3");
38
38
  // Social Security Numbers (US format)
39
- ret = ret.replace(/(\b)(\d{3}[-\s]?\d{2}[-\s]?\d{4})(\b)/g, '$1<redacted>$3');
39
+ ret = ret.replace(/(\b)(\d{3}[-\s]?\d{2}[-\s]?\d{4})(\b)/g, "$1<redacted>$3");
40
40
  // Private keys
41
- ret = ret.replace(/(-----BEGIN [A-Z\s]+PRIVATE KEY-----)([\s\S]*?)(-----END [A-Z\s]+PRIVATE KEY-----)/gi, '$1\n<redacted>\n$3');
41
+ ret = ret.replace(/(-----BEGIN [A-Z\s]+PRIVATE KEY-----)([\s\S]*?)(-----END [A-Z\s]+PRIVATE KEY-----)/gi, "$1\n<redacted>\n$3");
42
42
  // Session IDs and UUIDs in headers/cookies
43
- ret = ret.replace(/(sessionid["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, '$1<redacted>');
44
- ret = ret.replace(/(session["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, '$1<redacted>');
45
- ret = ret.replace(/(csrftoken["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, '$1<redacted>');
43
+ ret = ret.replace(/(sessionid["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, "$1<redacted>");
44
+ ret = ret.replace(/(session["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, "$1<redacted>");
45
+ ret = ret.replace(/(csrftoken["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi, "$1<redacted>");
46
46
  // Common environment variable patterns
47
- ret = ret.replace(/(DATABASE_URL["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
48
- ret = ret.replace(/(REDIS_URL["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
49
- ret = ret.replace(/(SMTP_PASSWORD["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
50
- ret = ret.replace(/(ENCRYPTION_KEY["\s]*[:=]["\s]*)([^",\s}]+)/gi, '$1<redacted>');
47
+ ret = ret.replace(/(DATABASE_URL["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
48
+ ret = ret.replace(/(REDIS_URL["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
49
+ ret = ret.replace(/(SMTP_PASSWORD["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
50
+ ret = ret.replace(/(ENCRYPTION_KEY["\s]*[:=]["\s]*)([^",\s}]+)/gi, "$1<redacted>");
51
51
  // High entropy strings and long base64-like strings
52
52
  ret = ret.replace(/\b([a-zA-Z0-9+/=_-]{20,})\b/g, (match) => {
53
53
  // If it ends with ==, it's almost certainly a base64 string provided it is long enough
54
54
  // We use a slightly higher length threshold for this specific check to be safe
55
- if (match.endsWith('==') && match.length > 30) {
56
- return '<redacted>';
55
+ if (match.endsWith("==") && match.length > 30) {
56
+ return "<redacted>";
57
57
  }
58
58
  // Check entropy for other long strings
59
59
  if (getShannonEntropy(match) > 4.5) {
60
- return '<redacted>';
60
+ return "<redacted>";
61
61
  }
62
62
  return match;
63
63
  });
@@ -79,15 +79,14 @@ function getShannonEntropy(str) {
79
79
  return entropy;
80
80
  }
81
81
  function redactObject(ob) {
82
- if (typeof ob === 'string') {
82
+ if (typeof ob === "string") {
83
83
  return redactString(ob);
84
84
  }
85
- else if (typeof ob === 'object') {
85
+ else if (typeof ob === "object") {
86
86
  try {
87
87
  return JSON.parse(redactString(JSON.stringify(ob)));
88
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
88
  }
90
- catch (e) {
89
+ catch {
91
90
  return ob;
92
91
  }
93
92
  }
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.trimSide = trimSide;
4
4
  exports.trim = trim;
5
5
  function trimSide(str, fromStart = true, ...params) {
6
- const pstr = params.join('');
6
+ const pstr = params.join("");
7
7
  if (!str) {
8
8
  return str;
9
9
  }
10
- const ret = str.replace(new RegExp(`[${pstr}]*$`, 'g'), '');
10
+ const ret = str.replace(new RegExp(`[${pstr}]*$`, "g"), "");
11
11
  if (fromStart) {
12
- return ret.replace(new RegExp(`^[${pstr}]*`, 'g'), '');
12
+ return ret.replace(new RegExp(`^[${pstr}]*`, "g"), "");
13
13
  }
14
14
  return ret;
15
15
  }
16
16
  function trim(str, ...params) {
17
17
  if (!str) {
18
- return '';
18
+ return "";
19
19
  }
20
20
  str = trimSide(str, true, ...params);
21
21
  str = trimSide(str, false, ...params);
@@ -8,7 +8,7 @@ str,
8
8
  /** max length */
9
9
  n,
10
10
  /** default '...' */
11
- ellip = '...') {
11
+ ellip = "...") {
12
12
  if (!str) {
13
13
  return str;
14
14
  }
@@ -11,21 +11,20 @@ const niceUrl = (siteUrl) => {
11
11
  return undefined;
12
12
  }
13
13
  let niceSiteUrl = siteUrl
14
- .substring(siteUrl.indexOf(':') + 1)
15
- .replace('sc-domain:', '')
16
- .replace('https://', '')
17
- .replace('http://', '');
18
- niceSiteUrl = (0, trim_1.trim)(niceSiteUrl, '/');
14
+ .substring(siteUrl.indexOf(":") + 1)
15
+ .replace("sc-domain:", "")
16
+ .replace("https://", "")
17
+ .replace("http://", "");
18
+ niceSiteUrl = (0, trim_1.trim)(niceSiteUrl, "/");
19
19
  return { siteUrl, niceSiteUrl };
20
20
  };
21
21
  exports.niceUrl = niceUrl;
22
22
  function isValidUrl(raw) {
23
23
  try {
24
24
  const url = new URL(raw);
25
- return url.protocol === 'http:' || url.protocol === 'https:';
26
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ return url.protocol === "http:" || url.protocol === "https:";
27
26
  }
28
- catch (_) {
27
+ catch {
29
28
  return false;
30
29
  }
31
30
  }
@@ -1,25 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withRetry = void 0;
4
- /* eslint-disable no-await-in-loop */
5
4
  const log_1 = require("./log");
6
5
  const sleep_1 = require("./sleep");
7
6
  const withRetry = async (operation, operationName, opt) => {
8
7
  let retryCount = 0;
9
8
  const baseDelay = 2000;
10
9
  const { maxRetries = 3 } = opt ?? {};
11
- // eslint-disable-next-line
12
10
  while (true) {
13
11
  try {
12
+ // oxlint-disable-next-line no-await-in-loop -- retries are intentionally sequential
14
13
  return await operation();
15
14
  }
16
15
  catch (e) {
17
16
  const error = e;
18
- const errorString = error.toString().toLowerCase().replace(/\s+/gim, '');
19
- if (errorString.includes('429') ||
20
- errorString.includes('provisionedthroughputexceeded') ||
21
- errorString.includes('toolarge') ||
22
- errorString.includes('ratelimited')) {
17
+ const errorString = error.toString().toLowerCase().replace(/\s+/gim, "");
18
+ if (errorString.includes("429") ||
19
+ errorString.includes("provisionedthroughputexceeded") ||
20
+ errorString.includes("toolarge") ||
21
+ errorString.includes("ratelimited")) {
23
22
  retryCount++;
24
23
  if (maxRetries !== null && retryCount >= maxRetries) {
25
24
  (0, log_1.warn)(`${operationName}: Max retries exceeded`);
@@ -27,6 +26,7 @@ const withRetry = async (operation, operationName, opt) => {
27
26
  }
28
27
  const delay = baseDelay + retryCount * 1000;
29
28
  (0, log_1.warn)(`${operationName}: Throttled. Retry ${retryCount}. Sleeping for ${delay}ms`);
29
+ // oxlint-disable-next-line no-await-in-loop -- backoff must complete before retrying
30
30
  await (0, sleep_1.sleep)(delay);
31
31
  continue;
32
32
  }
@@ -1,10 +1,14 @@
1
+ export type XmlJsonValue = string | XmlJsonObject | XmlJsonValue[];
2
+ export interface XmlJsonObject {
3
+ [key: string]: XmlJsonValue;
4
+ }
1
5
  export declare const convertXmlToJson: (p: {
2
6
  xmlData: string;
3
- }) => Promise<any>;
7
+ }) => Promise<XmlJsonObject>;
4
8
  export declare class XMLParser {
5
- private stack;
9
+ private readonly stack;
6
10
  private currentObject;
7
- parse(xmlData: string): any;
11
+ parse(xmlData: string): XmlJsonObject;
8
12
  private onStartElement;
9
13
  private onEndElement;
10
14
  private onText;
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XMLParser = exports.convertXmlToJson = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
4
  const convertXmlToJson = async (p) => {
6
5
  const parser = new XMLParser();
7
- const ret = parser.parse(p.xmlData);
8
- return ret;
6
+ return parser.parse(p.xmlData);
9
7
  };
10
8
  exports.convertXmlToJson = convertXmlToJson;
11
9
  class XMLParser {
@@ -20,69 +18,68 @@ class XMLParser {
20
18
  return this.currentObject;
21
19
  }
22
20
  onStartElement(name, attributes) {
23
- let newObject = {};
24
- if (Object.keys(attributes).length > 0) {
25
- newObject = { ...newObject, ...attributes };
26
- }
21
+ const newObject = { ...attributes };
27
22
  this.stack.push(this.currentObject);
28
23
  const parent = this.stack[this.stack.length - 1];
29
- if (!parent[name]) {
24
+ const existingValue = parent[name];
25
+ if (existingValue === undefined) {
30
26
  parent[name] = newObject;
31
27
  }
32
- else if (Array.isArray(parent[name])) {
33
- parent[name].push(newObject);
28
+ else if (Array.isArray(existingValue)) {
29
+ existingValue.push(newObject);
34
30
  }
35
31
  else {
36
- parent[name] = [parent[name], newObject];
32
+ parent[name] = [existingValue, newObject];
37
33
  }
38
34
  this.currentObject = newObject;
39
35
  }
40
36
  onEndElement() {
41
- this.currentObject = this.stack.pop() || {};
37
+ this.currentObject = this.stack.pop() ?? {};
42
38
  }
43
39
  onText(text) {
44
- if (text.trim().length > 0) {
45
- if (!this.currentObject['$text']) {
46
- this.currentObject['$text'] = text.trim();
47
- }
48
- else {
49
- this.currentObject['$text'] += text.trim();
50
- }
40
+ const cleanText = text.trim();
41
+ if (!cleanText) {
42
+ return;
51
43
  }
44
+ const existingText = this.currentObject.$text;
45
+ this.currentObject.$text =
46
+ typeof existingText === "string" ? existingText + cleanText : cleanText;
52
47
  }
53
48
  }
54
49
  exports.XMLParser = XMLParser;
55
50
  class XMLReader {
56
- buffer = '';
51
+ buffer = "";
57
52
  onStartElement = () => { };
58
53
  onEndElement = () => { };
59
54
  onText = () => { };
60
55
  parse(xmlData) {
61
- this.buffer = xmlData.replace(/\r\n/g, '').replace(/\n/g, '');
62
- const regex = /<\/?([^\s>]+)(\s*[^>]*?)?>|([^<>]+)/g;
56
+ this.buffer = xmlData.replace(/\r?\n/g, "");
57
+ const elementPattern = /<\/?([^\s>]+)(\s*[^>]*?)?>|([^<>]+)/g;
63
58
  let match;
64
- while ((match = regex.exec(this.buffer))) {
59
+ while ((match = elementPattern.exec(this.buffer))) {
65
60
  const [line, startTag, attributes, text] = match;
66
61
  if (text) {
67
62
  this.onText(text);
68
63
  }
69
- else if (line.startsWith('</')) {
64
+ else if (line.startsWith("</")) {
70
65
  this.onEndElement(startTag.slice(1));
71
66
  }
72
67
  else {
73
- const attributeObj = {};
74
- if (attributes) {
75
- const attrRegex = /\s*([^=\s]+)=(?:"([^"]+)"|'([^']+)')/g;
76
- let attrMatch;
77
- while ((attrMatch = attrRegex.exec(attributes))) {
78
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
79
- const [_, key, value1, value2] = attrMatch;
80
- const cleanValue = value1 || value2;
81
- attributeObj[key] = cleanValue;
82
- }
83
- }
84
- this.onStartElement(startTag, attributeObj);
68
+ this.onStartElement(startTag, this.parseAttributes(attributes));
85
69
  }
86
70
  }
87
71
  }
72
+ parseAttributes(attributes) {
73
+ const parsedAttributes = {};
74
+ if (!attributes) {
75
+ return parsedAttributes;
76
+ }
77
+ const attributePattern = /\s*([^=\s]+)=(?:"([^"]+)"|'([^']+)')/g;
78
+ let match;
79
+ while ((match = attributePattern.exec(attributes))) {
80
+ const [, key, doubleQuotedValue, singleQuotedValue] = match;
81
+ parsedAttributes[key] = doubleQuotedValue ?? singleQuotedValue;
82
+ }
83
+ return parsedAttributes;
84
+ }
88
85
  }
@@ -1,2 +1,2 @@
1
- export * from './const';
2
- export * from './helpers';
1
+ export * from "./const";
2
+ export * from "./helpers";
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './api';
2
- export * from './node';
3
- export * from './ui';
1
+ export * from "./api";
2
+ export * from "./node";
3
+ export * from "./ui";
@@ -28,9 +28,8 @@ async function fetchFile(p) {
28
28
  await write();
29
29
  try {
30
30
  fileStream.close();
31
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
31
  }
33
- catch (e) {
32
+ catch {
34
33
  //
35
34
  }
36
35
  }
@@ -16,8 +16,8 @@ const path_1 = __importDefault(require("path"));
16
16
  */
17
17
  function getAllFiles(dirPath, extension) {
18
18
  const files = [];
19
- if (extension && !extension.startsWith('.')) {
20
- extension = '.' + extension;
19
+ if (extension && !extension.startsWith(".")) {
20
+ extension = "." + extension;
21
21
  }
22
22
  const getFilesRecursively = (currentPath) => {
23
23
  const entries = fs_1.default.readdirSync(currentPath, { withFileTypes: true });
@@ -1,2 +1,2 @@
1
- export * from './fetch';
2
- export * from './fs';
1
+ export * from "./fetch";
2
+ export * from "./fs";
@@ -1 +1 @@
1
- export * from './helpers';
1
+ export * from "./helpers";
@@ -1,9 +1,9 @@
1
- import type { CSSProperties, Dispatch, JSX, SetStateAction } from 'react';
2
- import { TDarkMode, TDarkModeCalc } from './types';
1
+ import type { CSSProperties, Dispatch, JSX, SetStateAction } from "react";
2
+ import { TDarkMode, TDarkModeCalc } from "./types";
3
3
  export interface IDarkMode {
4
4
  onSubmit?: (p: TDarkMode) => void;
5
5
  /** default horiz */
6
- mode?: 'vert' | 'horiz';
6
+ mode?: "vert" | "horiz";
7
7
  /** default 2.5rem */
8
8
  iconSize?: string;
9
9
  className?: string;
@@ -16,7 +16,7 @@ export interface IUseDarkMode {
16
16
  /** converts system to the required output */
17
17
  calcDarkMode: () => TDarkModeCalc;
18
18
  }
19
- export declare const UseDarkMode: ({ cookieDocument, }: {
19
+ export declare const UseDarkMode: ({ cookieDocument }: {
20
20
  cookieDocument: string;
21
21
  }) => IUseDarkMode;
22
22
  /** shows darkmode toggle. Persists to cookie, and modifies html classList with either dark-mode or light-mode
@@ -1,5 +1,5 @@
1
- 'use client';
2
1
  "use strict";
2
+ "use client";
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -41,20 +41,20 @@ const utils_1 = require("../../helpers/utils");
41
41
  const icons_1 = require("../../icons");
42
42
  const types_1 = require("./types");
43
43
  const getColours = (p, vert) => {
44
- const deg = vert ? '180deg' : '90deg';
44
+ const deg = vert ? "180deg" : "90deg";
45
45
  switch (p) {
46
46
  case types_1.TDarkMode.dark: {
47
- const d1 = 'rgba(173,128,227,1)';
48
- const d2 = 'rgba(106,44,181,1)';
47
+ const d1 = "rgba(173,128,227,1)";
48
+ const d2 = "rgba(106,44,181,1)";
49
49
  return [d1, `linear-gradient(${deg}, ${d1} 0%, ${d2} 76%)`];
50
50
  }
51
51
  case types_1.TDarkMode.light: {
52
- const l1 = 'rgba(255,169,54,1)';
53
- const l2 = 'rgba(255,189,100,1)';
52
+ const l1 = "rgba(255,169,54,1)";
53
+ const l2 = "rgba(255,189,100,1)";
54
54
  return [l1, `linear-gradient(${deg}, ${l1} 0%, ${l2} 76%)`];
55
55
  }
56
56
  case types_1.TDarkMode.system: {
57
- return ['green', 'green'];
57
+ return ["green", "green"];
58
58
  }
59
59
  }
60
60
  };
@@ -63,22 +63,20 @@ const modes = [
63
63
  { mode: types_1.TDarkMode.system, icon: icons_1.Computer },
64
64
  { mode: types_1.TDarkMode.light, icon: icons_1.Sun },
65
65
  ];
66
- const UseDarkMode = ({ cookieDocument, }) => {
66
+ const UseDarkMode = ({ cookieDocument }) => {
67
67
  const [darkmode, setDarkmode] = (0, use_1.useCookie)({
68
68
  defaultValue: types_1.TDarkMode.system,
69
- name: 'darkmode',
69
+ name: "darkmode",
70
70
  cookieDocument,
71
71
  parse: (v) => Number(v),
72
72
  stringify: (v) => v.toString(),
73
73
  });
74
74
  const calcDarkMode = () => {
75
- const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
75
+ const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
76
76
  if (darkmode === types_1.TDarkMode.system) {
77
77
  return isDarkMode ? types_1.TDarkModeCalc.dark : types_1.TDarkModeCalc.light;
78
78
  }
79
- return darkmode === types_1.TDarkMode.dark
80
- ? types_1.TDarkModeCalc.dark
81
- : types_1.TDarkModeCalc.light;
79
+ return darkmode === types_1.TDarkMode.dark ? types_1.TDarkModeCalc.dark : types_1.TDarkModeCalc.light;
82
80
  };
83
81
  return {
84
82
  darkmode,
@@ -90,38 +88,37 @@ exports.UseDarkMode = UseDarkMode;
90
88
  /** shows darkmode toggle. Persists to cookie, and modifies html classList with either dark-mode or light-mode
91
89
  * this method has the darkmode passed in, so UseDarkMode can be used globally
92
90
  */
93
- const DarkModeAux = ({ iconSize = '2.5rem', className, mode, onSubmit, style, dm, }) => {
91
+ const DarkModeAux = ({ iconSize = "2.5rem", className, mode, onSubmit, style, dm, }) => {
94
92
  const [index, setIndex] = (0, react_1.useState)(modes.findIndex((d) => d.mode === dm.darkmode));
95
- const [fill, background] = getColours(modes[index].mode, mode === 'vert');
93
+ const [fill, background] = getColours(modes[index].mode, mode === "vert");
96
94
  const twCalc = `calc(${iconSize} + ${iconSize} + ${iconSize} + 8px)`;
97
- const width = mode === 'vert' ? `calc(${iconSize} + 8px)` : twCalc;
98
- const height = mode === 'vert' ? twCalc : `calc(${iconSize} + 8px)`;
95
+ const width = mode === "vert" ? `calc(${iconSize} + 8px)` : twCalc;
96
+ const height = mode === "vert" ? twCalc : `calc(${iconSize} + 8px)`;
99
97
  const setDarkmode = (newDarkMode) => {
100
- let className = '';
98
+ let className = "";
101
99
  if (newDarkMode === types_1.TDarkMode.dark) {
102
- className += 'dark-mode';
100
+ className += "dark-mode";
103
101
  }
104
102
  else if (newDarkMode === types_1.TDarkMode.light) {
105
- className += 'light-mode';
103
+ className += "light-mode";
106
104
  }
107
105
  else {
108
- className = '';
106
+ className = "";
109
107
  }
110
108
  try {
111
- document.getElementsByTagName('html')[0].classList.remove('dark-mode');
112
- document.getElementsByTagName('html')[0].classList.remove('light-mode');
109
+ document.getElementsByTagName("html")[0].classList.remove("dark-mode");
110
+ document.getElementsByTagName("html")[0].classList.remove("light-mode");
113
111
  if (className) {
114
- document.getElementsByTagName('html')[0].classList.add(className);
112
+ document.getElementsByTagName("html")[0].classList.add(className);
115
113
  }
116
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
117
114
  }
118
- catch (e) {
115
+ catch {
119
116
  //
120
117
  }
121
118
  dm.setDarkmode(newDarkMode);
122
119
  onSubmit?.(newDarkMode);
123
120
  };
124
- return (react_1.default.createElement("div", { className: (0, utils_1.cn)('flex flex-row overflow-hidden justify-between items-center rounded-4xl', 'border-2 border-solid p-[2px] box-border', 'data-[mode=vert]:flex-col', className), "data-mode": mode ?? 'horiz', style: {
121
+ return (react_1.default.createElement("div", { className: (0, utils_1.cn)("flex flex-row overflow-hidden justify-between items-center rounded-4xl", "border-2 border-solid p-[2px] box-border", "data-[mode=vert]:flex-col", className), "data-mode": mode ?? "horiz", style: {
125
122
  ...style,
126
123
  background,
127
124
  borderColor: fill,
@@ -129,16 +126,14 @@ const DarkModeAux = ({ iconSize = '2.5rem', className, mode, onSubmit, style, dm
129
126
  height,
130
127
  } }, modes.map((v, i) => {
131
128
  const selected = index === i;
132
- return (react_1.default.createElement("div", { className: (0, utils_1.cn)('flex flex-col items-center justify-center rounded-full overflow-hidden cursor-pointer', selected && 'bg-white cursor-default'), "data-selected": selected, style: { width: iconSize, height: iconSize },
133
- // eslint-disable-next-line react/no-array-index-key
134
- key: i.toString(), onClick: () => {
129
+ return (react_1.default.createElement("div", { className: (0, utils_1.cn)("flex flex-col items-center justify-center rounded-full overflow-hidden cursor-pointer", selected && "bg-white cursor-default"), "data-selected": selected, style: { width: iconSize, height: iconSize }, key: v.mode, onClick: () => {
135
130
  if (index === i) {
136
131
  return;
137
132
  }
138
133
  setIndex(i);
139
134
  setDarkmode(v.mode);
140
135
  } },
141
- react_1.default.createElement("div", { className: "[&>svg]:h-[70%] flex justify-center items-center w-full h-full" }, v.icon({ style: { fill: selected ? fill : 'white' } }))));
136
+ react_1.default.createElement("div", { className: "[&>svg]:h-[70%] flex justify-center items-center w-full h-full" }, v.icon({ style: { fill: selected ? fill : "white" } }))));
142
137
  })));
143
138
  };
144
139
  exports.DarkModeAux = DarkModeAux;
@@ -1,2 +1,2 @@
1
- export * from './Base';
2
- export * from './types';
1
+ export * from "./Base";
2
+ export * from "./types";
@@ -1,9 +1,9 @@
1
1
  export declare enum TDarkMode {
2
- 'dark' = 0,
3
- 'light' = 1,
4
- 'system' = 2
2
+ "dark" = 0,
3
+ "light" = 1,
4
+ "system" = 2
5
5
  }
6
6
  export declare enum TDarkModeCalc {
7
- 'dark' = 0,
8
- 'light' = 1
7
+ "dark" = 0,
8
+ "light" = 1
9
9
  }
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React from "react";
2
2
  /** full page title = title | hostname | tagline */
3
3
  export interface IHeadersRaw {
4
4
  /** eg https://abc.def */
@@ -11,7 +11,7 @@ export interface IHeadersRaw {
11
11
  /** csv or separate keyword strings */
12
12
  keywords?: string | string[];
13
13
  }
14
- export declare const HeadersRaw: ({ title, image, siteUrl, tagline, keywords, }: IHeadersRaw) => React.JSX.Element[];
14
+ export declare const HeadersRaw: ({ title, image, siteUrl, tagline, keywords }: IHeadersRaw) => React.JSX.Element[];
15
15
  export declare const HeadersRawNext: ({ title, image, siteUrl, tagline, description, keywords, }: IHeadersRaw) => {
16
16
  title: string;
17
17
  description: string;