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.
- package/LICENSE.md +2 -3
- package/README.md +2 -2
- package/dist/api/helpers/acm.d.ts +1 -1
- package/dist/api/helpers/acm.js +3 -3
- package/dist/api/helpers/api.d.ts +2 -2
- package/dist/api/helpers/api.js +26 -22
- package/dist/api/helpers/apigw.js +4 -4
- package/dist/api/helpers/aws.js +2 -2
- package/dist/api/helpers/cosmos/delete.d.ts +1 -1
- package/dist/api/helpers/cosmos/delete.js +15 -16
- package/dist/api/helpers/cosmos/get.d.ts +3 -3
- package/dist/api/helpers/cosmos/get.js +26 -32
- package/dist/api/helpers/cosmos/index.d.ts +3 -3
- package/dist/api/helpers/cosmos/index.js +1 -1
- package/dist/api/helpers/cosmos/utils.d.ts +1 -1
- package/dist/api/helpers/cosmos/utils.js +3 -7
- package/dist/api/helpers/cosmos/write.d.ts +1 -1
- package/dist/api/helpers/cosmos/write.js +11 -12
- package/dist/api/helpers/dynamo/delete.d.ts +1 -1
- package/dist/api/helpers/dynamo/delete.js +3 -3
- package/dist/api/helpers/dynamo/get.d.ts +2 -2
- package/dist/api/helpers/dynamo/get.js +20 -14
- package/dist/api/helpers/dynamo/index.d.ts +10 -38
- package/dist/api/helpers/dynamo/index.js +4 -4
- package/dist/api/helpers/dynamo/set.d.ts +1 -1
- package/dist/api/helpers/dynamo/set.js +10 -10
- package/dist/api/helpers/dynamo/types.d.ts +3 -3
- package/dist/api/helpers/dynamo/types.js +1 -1
- package/dist/api/helpers/enforceDynamoProvisionCap.d.ts +13 -1
- package/dist/api/helpers/enforceDynamoProvisionCap.js +3 -4
- package/dist/api/helpers/google/apikey.js +1 -1
- package/dist/api/helpers/google/gemini.d.ts +1 -1
- package/dist/api/helpers/google/gemini.js +43 -45
- package/dist/api/helpers/google/index.d.ts +2 -2
- package/dist/api/helpers/index.d.ts +17 -17
- package/dist/api/helpers/retryOnError.js +6 -11
- package/dist/api/helpers/s3.d.ts +9 -9
- package/dist/api/helpers/s3.js +19 -16
- package/dist/api/helpers/ses.d.ts +1 -1
- package/dist/api/helpers/ses.js +9 -9
- package/dist/api/helpers/sqs.d.ts +1 -1
- package/dist/api/helpers/sqs.js +1 -1
- package/dist/api/helpers/ssm.d.ts +1 -1
- package/dist/api/helpers/ssm.js +2 -2
- package/dist/api/helpers/ssmInfra/apigw.d.ts +6 -6
- package/dist/api/helpers/ssmInfra/apigw.js +6 -10
- package/dist/api/helpers/ssmInfra/dynamo.d.ts +2 -2
- package/dist/api/helpers/ssmInfra/dynamo.js +1 -1
- package/dist/api/helpers/ssmInfra/index.d.ts +4 -4
- package/dist/api/helpers/ssmInfra/s3.d.ts +3 -3
- package/dist/api/helpers/ssmInfra/s3.js +1 -1
- package/dist/api/helpers/ssmInfra/sqs.d.ts +3 -3
- package/dist/api/helpers/ssmInfra/sqs.js +1 -1
- package/dist/api/helpers/sts.d.ts +1 -1
- package/dist/api/helpers/sts.js +4 -4
- package/dist/api/helpers/validations.d.ts +2 -2
- package/dist/api/helpers/validations.js +14 -14
- package/dist/api/helpers/zod.d.ts +1 -1
- package/dist/api/helpers/zod.js +21 -27
- package/dist/api/index.d.ts +2 -2
- package/dist/api/types/aws.d.ts +0 -56
- package/dist/api/types/aws.js +0 -1
- package/dist/api/types/index.d.ts +1 -1
- package/dist/common/helpers/array.js +9 -10
- package/dist/common/helpers/async.js +2 -2
- package/dist/common/helpers/binary.d.ts +1 -1
- package/dist/common/helpers/binary.js +1 -1
- package/dist/common/helpers/csv.d.ts +4 -2
- package/dist/common/helpers/csv.js +8 -12
- package/dist/common/helpers/date.d.ts +2 -4
- package/dist/common/helpers/date.js +2 -2
- package/dist/common/helpers/email.js +2 -2
- package/dist/common/helpers/fetch.js +8 -8
- package/dist/common/helpers/generator.js +2 -2
- package/dist/common/helpers/groupBy.js +0 -2
- package/dist/common/helpers/hashCode.js +2 -6
- package/dist/common/helpers/headers.d.ts +20 -20
- package/dist/common/helpers/headers.js +38 -38
- package/dist/common/helpers/i18n.d.ts +2 -2
- package/dist/common/helpers/i18n.js +5 -6
- package/dist/common/helpers/index.d.ts +25 -25
- package/dist/common/helpers/log.d.ts +1 -1
- package/dist/common/helpers/log.js +30 -30
- package/dist/common/helpers/math.d.ts +2 -2
- package/dist/common/helpers/math.js +6 -6
- package/dist/common/helpers/memo.d.ts +1 -1
- package/dist/common/helpers/memo.js +1 -3
- package/dist/common/helpers/node-cache.d.ts +2 -2
- package/dist/common/helpers/node-cache.js +0 -1
- package/dist/common/helpers/object.d.ts +1 -1
- package/dist/common/helpers/object.js +16 -27
- package/dist/common/helpers/secondsInNearest.js +5 -5
- package/dist/common/helpers/stream.js +4 -6
- package/dist/common/helpers/string/base64.js +2 -2
- package/dist/common/helpers/string/chunk.js +1 -1
- package/dist/common/helpers/string/contains.js +1 -3
- package/dist/common/helpers/string/getExtendedStringSegment.js +1 -1
- package/dist/common/helpers/string/index.d.ts +11 -11
- package/dist/common/helpers/string/json.js +1 -1
- package/dist/common/helpers/string/redact.js +38 -39
- package/dist/common/helpers/string/trim.js +4 -4
- package/dist/common/helpers/string/truncate.js +1 -1
- package/dist/common/helpers/string/url.js +7 -8
- package/dist/common/helpers/withRetry.js +7 -7
- package/dist/common/helpers/xml.d.ts +7 -3
- package/dist/common/helpers/xml.js +33 -36
- package/dist/common/index.d.ts +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/node/helpers/fetch.js +1 -2
- package/dist/node/helpers/fs.js +2 -2
- package/dist/node/helpers/index.d.ts +2 -2
- package/dist/node/index.d.ts +1 -1
- package/dist/ui/components/DarkMode/Base.d.ts +4 -4
- package/dist/ui/components/DarkMode/Base.js +26 -31
- package/dist/ui/components/DarkMode/index.d.ts +2 -2
- package/dist/ui/components/DarkMode/types.d.ts +5 -5
- package/dist/ui/components/HeadersRaw/index.d.ts +2 -2
- package/dist/ui/components/HeadersRaw/index.js +5 -5
- package/dist/ui/components/Markdown/index.d.ts +1 -1
- package/dist/ui/components/Markdown/index.js +10 -10
- package/dist/ui/components/index.d.ts +4 -4
- package/dist/ui/components/shadcn/accordion.d.ts +4 -4
- package/dist/ui/components/shadcn/accordion.js +6 -6
- package/dist/ui/components/shadcn/alert.d.ts +2 -2
- package/dist/ui/components/shadcn/alert.js +6 -6
- package/dist/ui/components/shadcn/avatar.d.ts +2 -2
- package/dist/ui/components/shadcn/avatar.js +4 -4
- package/dist/ui/components/shadcn/button.d.ts +4 -4
- package/dist/ui/components/shadcn/button.js +14 -14
- package/dist/ui/components/shadcn/card.d.ts +2 -2
- package/dist/ui/components/shadcn/card.js +6 -6
- package/dist/ui/components/shadcn/checkbox.d.ts +2 -2
- package/dist/ui/components/shadcn/checkbox.js +3 -3
- package/dist/ui/components/shadcn/dialog.d.ts +10 -10
- package/dist/ui/components/shadcn/dialog.js +9 -11
- package/dist/ui/components/shadcn/divider.d.ts +1 -1
- package/dist/ui/components/shadcn/divider.js +1 -1
- package/dist/ui/components/shadcn/dropdown-list.d.ts +1 -1
- package/dist/ui/components/shadcn/dropdown-list.js +5 -5
- package/dist/ui/components/shadcn/dropdown-menu.d.ts +6 -6
- package/dist/ui/components/shadcn/dropdown-menu.js +11 -11
- package/dist/ui/components/shadcn/index.d.ts +21 -21
- package/dist/ui/components/shadcn/input-selector.d.ts +1 -1
- package/dist/ui/components/shadcn/input-selector.js +10 -12
- package/dist/ui/components/shadcn/input.d.ts +1 -1
- package/dist/ui/components/shadcn/input.js +1 -1
- package/dist/ui/components/shadcn/label.d.ts +3 -3
- package/dist/ui/components/shadcn/label.js +2 -2
- package/dist/ui/components/shadcn/popover.d.ts +2 -2
- package/dist/ui/components/shadcn/popover.js +3 -3
- package/dist/ui/components/shadcn/radio-group.d.ts +2 -2
- package/dist/ui/components/shadcn/radio-group.js +2 -2
- package/dist/ui/components/shadcn/scroll-area.d.ts +2 -2
- package/dist/ui/components/shadcn/scroll-area.js +3 -5
- package/dist/ui/components/shadcn/select.d.ts +2 -2
- package/dist/ui/components/shadcn/select.js +12 -12
- package/dist/ui/components/shadcn/sheet.d.ts +12 -12
- package/dist/ui/components/shadcn/sheet.js +15 -15
- package/dist/ui/components/shadcn/switch.d.ts +2 -2
- package/dist/ui/components/shadcn/switch.js +3 -3
- package/dist/ui/components/shadcn/textarea.d.ts +1 -1
- package/dist/ui/components/shadcn/textarea.js +1 -1
- package/dist/ui/components/shadcn/toast.d.ts +2 -2
- package/dist/ui/components/shadcn/toast.js +25 -25
- package/dist/ui/helpers/cognito.d.ts +1 -1
- package/dist/ui/helpers/cookie/const.js +1 -1
- package/dist/ui/helpers/cookie/get.js +3 -4
- package/dist/ui/helpers/cookie/index.d.ts +5 -5
- package/dist/ui/helpers/cookie/raw.d.ts +1 -1
- package/dist/ui/helpers/cookie/raw.js +8 -9
- package/dist/ui/helpers/cookie/use.d.ts +1 -1
- package/dist/ui/helpers/cookie/use.js +4 -4
- package/dist/ui/helpers/date.js +8 -8
- package/dist/ui/helpers/debounce.js +1 -1
- package/dist/ui/helpers/dom.d.ts +1 -1
- package/dist/ui/helpers/dom.js +4 -14
- package/dist/ui/helpers/index.d.ts +26 -26
- package/dist/ui/helpers/jwt.d.ts +3 -3
- package/dist/ui/helpers/openDialog.d.ts +2 -2
- package/dist/ui/helpers/openDialog.js +8 -8
- package/dist/ui/helpers/plural.js +1 -1
- package/dist/ui/helpers/routes.d.ts +2 -2
- package/dist/ui/helpers/routes.js +14 -15
- package/dist/ui/helpers/serviceWorker.js +1 -1
- package/dist/ui/helpers/useContextMenu.d.ts +1 -1
- package/dist/ui/helpers/useContextMenu.js +9 -10
- package/dist/ui/helpers/useElementAttribute.js +3 -5
- package/dist/ui/helpers/useGranularHook.d.ts +1 -1
- package/dist/ui/helpers/useGranularHook.js +2 -3
- package/dist/ui/helpers/useInterval.d.ts +2 -2
- package/dist/ui/helpers/useInterval.js +2 -2
- package/dist/ui/helpers/useIsInViewport.d.ts +1 -1
- package/dist/ui/helpers/useIsInViewport.js +0 -1
- package/dist/ui/helpers/useLocalStorage.js +6 -6
- package/dist/ui/helpers/useLockBodyScroll.js +2 -2
- package/dist/ui/helpers/useOnClickOutside.d.ts +1 -1
- package/dist/ui/helpers/useOnClickOutside.js +3 -6
- package/dist/ui/helpers/useOnScroll.d.ts +1 -1
- package/dist/ui/helpers/useOnScroll.js +3 -4
- package/dist/ui/helpers/useOverloadPageSearch.js +8 -10
- package/dist/ui/helpers/useQueryString.js +7 -7
- package/dist/ui/helpers/useResize.js +5 -6
- package/dist/ui/helpers/useTimeout.js +1 -1
- package/dist/ui/helpers/useTooltip.d.ts +2 -2
- package/dist/ui/helpers/useTooltip.js +5 -7
- package/dist/ui/helpers/utils.d.ts +2 -2
- package/dist/ui/icons/Checkmark.d.ts +2 -2
- package/dist/ui/icons/Checkmark.js +1 -1
- package/dist/ui/icons/ChevronRight.d.ts +1 -1
- package/dist/ui/icons/Circle.d.ts +2 -2
- package/dist/ui/icons/Circle.js +1 -1
- package/dist/ui/icons/CircleDot.d.ts +2 -2
- package/dist/ui/icons/Cog.d.ts +2 -2
- package/dist/ui/icons/Computer.d.ts +2 -2
- package/dist/ui/icons/Door.d.ts +1 -1
- package/dist/ui/icons/Hamburger.d.ts +1 -1
- package/dist/ui/icons/HorizontalDots.d.ts +1 -1
- package/dist/ui/icons/House.d.ts +2 -2
- package/dist/ui/icons/Magnify.d.ts +2 -2
- package/dist/ui/icons/Magnify.js +1 -1
- package/dist/ui/icons/Moon.d.ts +2 -2
- package/dist/ui/icons/Pencil.d.ts +1 -1
- package/dist/ui/icons/Save.d.ts +1 -1
- package/dist/ui/icons/Sun.d.ts +1 -1
- package/dist/ui/icons/Sun.js +1 -1
- package/dist/ui/icons/Undo.d.ts +1 -1
- package/dist/ui/icons/UserOutline.d.ts +1 -1
- package/dist/ui/icons/Warning.d.ts +2 -2
- package/dist/ui/icons/Warning.js +1 -1
- package/dist/ui/icons/index.d.ts +32 -74
- package/dist/ui/index.d.ts +3 -3
- package/dist/ui/styles/colours.js +29 -29
- package/dist/ui/styles/common.d.ts +1 -1
- package/dist/ui/styles/common.js +10 -10
- package/dist/ui/styles/index.d.ts +3 -3
- 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 =
|
|
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,
|
|
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,
|
|
16
|
-
ret = ret.replace(/(\b)(AKIA[0-9A-Z]{16})/gi,
|
|
17
|
-
ret = ret.replace(/(aws_secret_access_key["\s]*[:=]["\s]*)([0-9a-zA-Z/+]{40})/gi,
|
|
18
|
-
ret = ret.replace(/(\b)(AIza[0-9A-Za-z\\-_]{35})/gi,
|
|
19
|
-
ret = ret.replace(/(\b)(ya29\.[0-9A-Za-z\\-_]+)/gi,
|
|
20
|
-
ret = ret.replace(/(\b)(glpat-[a-zA-Z0-9\\-_]{20})/gi,
|
|
21
|
-
ret = ret.replace(/(\b)(ghp_[a-zA-Z0-9]{36})/gi,
|
|
22
|
-
ret = ret.replace(/(\b)(github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/gi,
|
|
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,
|
|
25
|
-
ret = ret.replace(/(passwd["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
26
|
-
ret = ret.replace(/(pwd["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
27
|
-
ret = ret.replace(/(secret["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
28
|
-
ret = ret.replace(/(token["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
29
|
-
ret = ret.replace(/(^|[^a-zA-Z])(api_?key|private_?key|secret_?key)["\s]*[:=]["\s]*([^",\s}]+)/gi,
|
|
30
|
-
ret = ret.replace(/(auth["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
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,
|
|
33
|
-
ret = ret.replace(/(mysql:\/\/[^:]+:)([^@]+)(@)/gi,
|
|
34
|
-
ret = ret.replace(/(postgresql:\/\/[^:]+:)([^@]+)(@)/gi,
|
|
35
|
-
ret = ret.replace(/(redis:\/\/[^:]+:)([^@]+)(@)/gi,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
44
|
-
ret = ret.replace(/(session["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi,
|
|
45
|
-
ret = ret.replace(/(csrftoken["\s]*[:=]["\s]*)([a-zA-Z0-9]{32,})/gi,
|
|
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,
|
|
48
|
-
ret = ret.replace(/(REDIS_URL["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
49
|
-
ret = ret.replace(/(SMTP_PASSWORD["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
50
|
-
ret = ret.replace(/(ENCRYPTION_KEY["\s]*[:=]["\s]*)([^",\s}]+)/gi,
|
|
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(
|
|
56
|
-
return
|
|
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
|
|
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 ===
|
|
82
|
+
if (typeof ob === "string") {
|
|
83
83
|
return redactString(ob);
|
|
84
84
|
}
|
|
85
|
-
else if (typeof ob ===
|
|
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
|
|
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}]*$`,
|
|
10
|
+
const ret = str.replace(new RegExp(`[${pstr}]*$`, "g"), "");
|
|
11
11
|
if (fromStart) {
|
|
12
|
-
return ret.replace(new RegExp(`^[${pstr}]*`,
|
|
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);
|
|
@@ -11,21 +11,20 @@ const niceUrl = (siteUrl) => {
|
|
|
11
11
|
return undefined;
|
|
12
12
|
}
|
|
13
13
|
let niceSiteUrl = siteUrl
|
|
14
|
-
.substring(siteUrl.indexOf(
|
|
15
|
-
.replace(
|
|
16
|
-
.replace(
|
|
17
|
-
.replace(
|
|
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 ===
|
|
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(
|
|
20
|
-
errorString.includes(
|
|
21
|
-
errorString.includes(
|
|
22
|
-
errorString.includes(
|
|
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<
|
|
7
|
+
}) => Promise<XmlJsonObject>;
|
|
4
8
|
export declare class XMLParser {
|
|
5
|
-
private stack;
|
|
9
|
+
private readonly stack;
|
|
6
10
|
private currentObject;
|
|
7
|
-
parse(xmlData: string):
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
24
|
+
const existingValue = parent[name];
|
|
25
|
+
if (existingValue === undefined) {
|
|
30
26
|
parent[name] = newObject;
|
|
31
27
|
}
|
|
32
|
-
else if (Array.isArray(
|
|
33
|
-
|
|
28
|
+
else if (Array.isArray(existingValue)) {
|
|
29
|
+
existingValue.push(newObject);
|
|
34
30
|
}
|
|
35
31
|
else {
|
|
36
|
-
parent[name] = [
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
|
62
|
-
const
|
|
56
|
+
this.buffer = xmlData.replace(/\r?\n/g, "");
|
|
57
|
+
const elementPattern = /<\/?([^\s>]+)(\s*[^>]*?)?>|([^<>]+)/g;
|
|
63
58
|
let match;
|
|
64
|
-
while ((match =
|
|
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
|
-
|
|
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
|
}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./const";
|
|
2
|
+
export * from "./helpers";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
1
|
+
export * from "./api";
|
|
2
|
+
export * from "./node";
|
|
3
|
+
export * from "./ui";
|
package/dist/node/helpers/fs.js
CHANGED
|
@@ -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 =
|
|
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
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./fetch";
|
|
2
|
+
export * from "./fs";
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./helpers";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { CSSProperties, Dispatch, JSX, SetStateAction } from
|
|
2
|
-
import { TDarkMode, TDarkModeCalc } from
|
|
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?:
|
|
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 ?
|
|
44
|
+
const deg = vert ? "180deg" : "90deg";
|
|
45
45
|
switch (p) {
|
|
46
46
|
case types_1.TDarkMode.dark: {
|
|
47
|
-
const d1 =
|
|
48
|
-
const d2 =
|
|
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 =
|
|
53
|
-
const l2 =
|
|
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 [
|
|
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:
|
|
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(
|
|
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 =
|
|
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 ===
|
|
93
|
+
const [fill, background] = getColours(modes[index].mode, mode === "vert");
|
|
96
94
|
const twCalc = `calc(${iconSize} + ${iconSize} + ${iconSize} + 8px)`;
|
|
97
|
-
const width = mode ===
|
|
98
|
-
const height = mode ===
|
|
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 +=
|
|
100
|
+
className += "dark-mode";
|
|
103
101
|
}
|
|
104
102
|
else if (newDarkMode === types_1.TDarkMode.light) {
|
|
105
|
-
className +=
|
|
103
|
+
className += "light-mode";
|
|
106
104
|
}
|
|
107
105
|
else {
|
|
108
|
-
className =
|
|
106
|
+
className = "";
|
|
109
107
|
}
|
|
110
108
|
try {
|
|
111
|
-
document.getElementsByTagName(
|
|
112
|
-
document.getElementsByTagName(
|
|
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(
|
|
112
|
+
document.getElementsByTagName("html")[0].classList.add(className);
|
|
115
113
|
}
|
|
116
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
117
114
|
}
|
|
118
|
-
catch
|
|
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)(
|
|
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)(
|
|
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 :
|
|
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
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./Base";
|
|
2
|
+
export * from "./types";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from
|
|
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
|
|
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;
|