@akasecurity/cli 0.9.5 → 0.9.6
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/dist/cli.js +129 -50
- package/extension/manifest.json +1 -1
- package/native-host/host.js +90 -35
- package/native-host/scan-worker.js +61 -12
- package/package.json +6 -6
- package/web-ui/package.json +5 -2
- package/web-ui/packages/detections/package.json +3 -2
- package/web-ui/packages/persistence/package.json +3 -2
- package/web-ui/packages/plugin-sdk/package.json +2 -1
- package/web-ui/web-ui/.next/BUILD_ID +1 -1
- package/web-ui/web-ui/.next/app-build-manifest.json +66 -66
- package/web-ui/web-ui/.next/app-path-routes-manifest.json +7 -7
- package/web-ui/web-ui/.next/build-manifest.json +2 -2
- package/web-ui/web-ui/.next/prerender-manifest.json +14 -14
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/detections/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/detections/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/findings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/policies/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/settings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/vault/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/vault/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.html +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.rsc +2 -2
- package/web-ui/web-ui/.next/server/app/index.html +1 -1
- package/web-ui/web-ui/.next/server/app/index.rsc +2 -2
- package/web-ui/web-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app-paths-manifest.json +7 -7
- package/web-ui/web-ui/.next/server/chunks/160.js +2 -2
- package/web-ui/web-ui/.next/server/chunks/243.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/333.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/{330.js → 413.js} +1 -1
- package/web-ui/web-ui/.next/server/chunks/557.js +2 -2
- package/web-ui/web-ui/.next/server/functions-config-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/pages/404.html +1 -1
- package/web-ui/web-ui/.next/server/pages/500.html +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.json +1 -1
- package/web-ui/web-ui/.next/static/chunks/133-66e4c8e40b72a3e8.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-1151de62cd9386c8.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/{page-d96aa1158bb1c630.js → page-eaee9ff5ba1056e3.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/{page-269fa2d4f47e6125.js → page-7fbcf876de9f09de.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-8f33eba279e45c1d.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-bf9c74a239afdab2.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-e17e9d7c8547bc32.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-4bdf3d2ede57b3c7.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-88b768ca343a8524.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/{layout-d7a290e9b0dd8a15.js → layout-a346cd78f5f28936.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/policies/{page-1d1a93a1e561ca82.js → page-f79874ebd61fbf46.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-86e7e860ce98d0a4.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/security/{page-a7fa0e028623b7cb.js → page-557e1703a106d286.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-a1956abf86b48b8b.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-fe71f1fd0ab6cde6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-2473d9063bd5eb69.js +1 -0
- package/web-ui/web-ui/.next/static/css/2eca310301b96d98.css +2 -0
- package/web-ui/web-ui/dist/scan-worker.js +61 -12
- package/web-ui/web-ui/.next/static/chunks/133-14f0f297836736b9.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-90ea4cb1f1956a03.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-4ad5b60f476d7c6e.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-2bf76696fbe6e76d.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-5d2511a7c06dd645.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-1891ec610b461455.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-bc090490b3416d48.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-7a1a29a230626f96.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-9729632fc8128534.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-bda9e826a1ac1a00.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/vault/page-28116d3ce827e152.js +0 -1
- package/web-ui/web-ui/.next/static/css/0af7782f7a750368.css +0 -2
- /package/web-ui/web-ui/.next/static/{x4ixG3_q4UeyC_WNmSFdI → scT_YT84DnOMXJI2dA75N}/_buildManifest.js +0 -0
- /package/web-ui/web-ui/.next/static/{x4ixG3_q4UeyC_WNmSFdI → scT_YT84DnOMXJI2dA75N}/_ssgManifest.js +0 -0
|
@@ -579,6 +579,40 @@ function escapeRegExp2(value) {
|
|
|
579
579
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
580
580
|
}
|
|
581
581
|
|
|
582
|
+
// ../packages/detections/src/regex-cache.ts
|
|
583
|
+
var singles = /* @__PURE__ */ new WeakMap();
|
|
584
|
+
var keywordLists = /* @__PURE__ */ new WeakMap();
|
|
585
|
+
var labelLists = /* @__PURE__ */ new WeakMap();
|
|
586
|
+
function listCache(kind) {
|
|
587
|
+
return kind === "keyword" ? keywordLists : labelLists;
|
|
588
|
+
}
|
|
589
|
+
function memoizedRegExp(owner, build) {
|
|
590
|
+
const cached2 = singles.get(owner);
|
|
591
|
+
if (cached2 !== void 0) {
|
|
592
|
+
cached2.lastIndex = 0;
|
|
593
|
+
return cached2;
|
|
594
|
+
}
|
|
595
|
+
const compiled = build();
|
|
596
|
+
singles.set(owner, compiled);
|
|
597
|
+
return compiled;
|
|
598
|
+
}
|
|
599
|
+
function memoizedRegExpList(kind, owner, build) {
|
|
600
|
+
const cache = listCache(kind);
|
|
601
|
+
const cached2 = cache.get(owner);
|
|
602
|
+
if (cached2 !== void 0) {
|
|
603
|
+
if (cached2.stateful) {
|
|
604
|
+
for (const re of cached2.entries) if (re !== void 0) re.lastIndex = 0;
|
|
605
|
+
}
|
|
606
|
+
return cached2.entries;
|
|
607
|
+
}
|
|
608
|
+
const entries = build();
|
|
609
|
+
cache.set(owner, {
|
|
610
|
+
entries,
|
|
611
|
+
stateful: entries.some((re) => re !== void 0 && (re.global || re.sticky))
|
|
612
|
+
});
|
|
613
|
+
return entries;
|
|
614
|
+
}
|
|
615
|
+
|
|
582
616
|
// ../packages/detections/src/matchers/limits.ts
|
|
583
617
|
var MAX_MATCHES_PER_RULE = 1e4;
|
|
584
618
|
var MAX_REGEX_INPUT_LENGTH = 2e5;
|
|
@@ -589,10 +623,17 @@ var KeywordMatcher = class {
|
|
|
589
623
|
if (rule.matcher.type !== "keyword") return [];
|
|
590
624
|
const { keywords, caseSensitive } = rule.matcher;
|
|
591
625
|
const spans = [];
|
|
592
|
-
|
|
593
|
-
|
|
626
|
+
const compiled = memoizedRegExpList(
|
|
627
|
+
"keyword",
|
|
628
|
+
rule.matcher,
|
|
629
|
+
() => keywords.map((kw) => {
|
|
630
|
+
if (kw.length === 0) return void 0;
|
|
631
|
+
return new RegExp(escapeRegExp2(kw), caseSensitive ? "gu" : "giu");
|
|
632
|
+
})
|
|
633
|
+
);
|
|
634
|
+
for (const re of compiled) {
|
|
635
|
+
if (re === void 0) continue;
|
|
594
636
|
if (spans.length >= MAX_MATCHES_PER_RULE) break;
|
|
595
|
-
const re = new RegExp(escapeRegExp2(kw), caseSensitive ? "gu" : "giu");
|
|
596
637
|
let m;
|
|
597
638
|
while ((m = re.exec(text)) !== null) {
|
|
598
639
|
spans.push({ start: m.index, end: m.index + m[0].length });
|
|
@@ -608,7 +649,10 @@ var RegexMatcher = class {
|
|
|
608
649
|
match(text, rule) {
|
|
609
650
|
if (rule.matcher.type !== "regex") return [];
|
|
610
651
|
const { pattern, flags, captureGroup } = rule.matcher;
|
|
611
|
-
const re =
|
|
652
|
+
const re = memoizedRegExp(
|
|
653
|
+
rule.matcher,
|
|
654
|
+
() => new RegExp(pattern, flags.includes("d") ? flags : `${flags}d`)
|
|
655
|
+
);
|
|
612
656
|
const scanText = text.length > MAX_REGEX_INPUT_LENGTH ? text.slice(0, MAX_REGEX_INPUT_LENGTH) : text;
|
|
613
657
|
const spans = [];
|
|
614
658
|
let m;
|
|
@@ -713,11 +757,15 @@ function isCorroborated(candidate, candidates, text) {
|
|
|
713
757
|
const labels = req.labels;
|
|
714
758
|
if (labels && labels.length > 0) {
|
|
715
759
|
const haystack = text.slice(Math.max(0, winStart), winEnd);
|
|
716
|
-
for (const
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
760
|
+
for (const re of memoizedRegExpList(
|
|
761
|
+
"label",
|
|
762
|
+
req,
|
|
763
|
+
() => labels.map((label) => {
|
|
764
|
+
const trimmed = label.trim();
|
|
765
|
+
return trimmed.length === 0 ? void 0 : new RegExp(`(?<![A-Za-z0-9])${escapeRegExp2(trimmed)}(?![A-Za-z0-9])`, "i");
|
|
766
|
+
})
|
|
767
|
+
)) {
|
|
768
|
+
if (re?.test(haystack)) return true;
|
|
721
769
|
}
|
|
722
770
|
}
|
|
723
771
|
return false;
|
|
@@ -17951,13 +17999,14 @@ function probesFor(rule) {
|
|
|
17951
17999
|
const derived = rule.matcher.type === "regex" ? derivedProbes(rule.matcher.pattern) : [];
|
|
17952
18000
|
return [...derived, ...EXPONENTIAL_PROBES, ...POLYNOMIAL_PROBES];
|
|
17953
18001
|
}
|
|
17954
|
-
|
|
18002
|
+
var wallClock = () => performance.now();
|
|
18003
|
+
function worstProbeMs(rule, now = wallClock) {
|
|
17955
18004
|
let ms = 0;
|
|
17956
18005
|
let probe = "";
|
|
17957
18006
|
for (const text of probesFor(rule)) {
|
|
17958
|
-
const start =
|
|
18007
|
+
const start = now();
|
|
17959
18008
|
scan(text, [rule]);
|
|
17960
|
-
const elapsed =
|
|
18009
|
+
const elapsed = now() - start;
|
|
17961
18010
|
if (elapsed > ms) {
|
|
17962
18011
|
ms = elapsed;
|
|
17963
18012
|
probe = text;
|