@x12i/map-store-client 0.1.3 → 0.1.4

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 (62) hide show
  1. package/README.md +147 -1
  2. package/dist/estate/analytics.d.ts +41 -0
  3. package/dist/estate/analytics.d.ts.map +1 -0
  4. package/dist/estate/analytics.js +115 -0
  5. package/dist/estate/analytics.js.map +1 -0
  6. package/dist/estate/census.d.ts +115 -0
  7. package/dist/estate/census.d.ts.map +1 -0
  8. package/dist/estate/census.js +266 -0
  9. package/dist/estate/census.js.map +1 -0
  10. package/dist/estate/client.d.ts +66 -0
  11. package/dist/estate/client.d.ts.map +1 -0
  12. package/dist/estate/client.js +10 -0
  13. package/dist/estate/client.js.map +1 -0
  14. package/dist/estate/content.d.ts +77 -0
  15. package/dist/estate/content.d.ts.map +1 -0
  16. package/dist/estate/content.js +226 -0
  17. package/dist/estate/content.js.map +1 -0
  18. package/dist/estate/contract.d.ts +64 -0
  19. package/dist/estate/contract.d.ts.map +1 -0
  20. package/dist/estate/contract.js +258 -0
  21. package/dist/estate/contract.js.map +1 -0
  22. package/dist/estate/decisions.d.ts +32 -0
  23. package/dist/estate/decisions.d.ts.map +1 -0
  24. package/dist/estate/decisions.js +113 -0
  25. package/dist/estate/decisions.js.map +1 -0
  26. package/dist/estate/ids.d.ts +3 -0
  27. package/dist/estate/ids.d.ts.map +1 -0
  28. package/dist/estate/ids.js +6 -0
  29. package/dist/estate/ids.js.map +1 -0
  30. package/dist/estate/index.d.ts +26 -0
  31. package/dist/estate/index.d.ts.map +1 -0
  32. package/dist/estate/index.js +17 -0
  33. package/dist/estate/index.js.map +1 -0
  34. package/dist/estate/localStories.d.ts +28 -0
  35. package/dist/estate/localStories.d.ts.map +1 -0
  36. package/dist/estate/localStories.js +980 -0
  37. package/dist/estate/localStories.js.map +1 -0
  38. package/dist/estate/pack.d.ts +45 -0
  39. package/dist/estate/pack.d.ts.map +1 -0
  40. package/dist/estate/pack.js +83 -0
  41. package/dist/estate/pack.js.map +1 -0
  42. package/dist/estate/predictedAttack.d.ts +79 -0
  43. package/dist/estate/predictedAttack.d.ts.map +1 -0
  44. package/dist/estate/predictedAttack.js +321 -0
  45. package/dist/estate/predictedAttack.js.map +1 -0
  46. package/dist/estate/stories.d.ts +85 -0
  47. package/dist/estate/stories.d.ts.map +1 -0
  48. package/dist/estate/stories.js +215 -0
  49. package/dist/estate/stories.js.map +1 -0
  50. package/dist/fetch.d.ts +2 -0
  51. package/dist/fetch.d.ts.map +1 -1
  52. package/dist/fetch.js +13 -3
  53. package/dist/fetch.js.map +1 -1
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +1 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/queries.d.ts +98 -0
  59. package/dist/queries.d.ts.map +1 -0
  60. package/dist/queries.js +180 -0
  61. package/dist/queries.js.map +1 -0
  62. package/package.json +14 -1
@@ -0,0 +1,180 @@
1
+ /**
2
+ * The two map-store routes that are POST queries rather than working products.
3
+ * Both pin the session pair from `fetchBootstrap` and read the open vulnerability set.
4
+ * Descriptions come from the vendor feed the station stored. Nothing here invents text.
5
+ */
6
+ import { mapPost } from './fetch';
7
+ import { asList, asRecord, firstString } from './util';
8
+ const DEFAULT_TENANT = 'tgi';
9
+ /** A CVE id wherever it is written, or null when the text names none. */
10
+ function readLooseCve(value) {
11
+ if (typeof value === 'string') {
12
+ const match = value.match(/CVE-\d{4}-\d+/i);
13
+ return match ? match[0].toUpperCase() : null;
14
+ }
15
+ const rec = asRecord(value);
16
+ if (!rec)
17
+ return null;
18
+ return readLooseCve(rec.id ?? rec.cveId ?? rec.value ?? rec.cve);
19
+ }
20
+ function num(value) {
21
+ if (typeof value === 'number' && Number.isFinite(value))
22
+ return value;
23
+ if (typeof value === 'string' && value.trim() && Number.isFinite(Number(value)))
24
+ return Number(value);
25
+ return null;
26
+ }
27
+ function bool(value) {
28
+ if (value === true || value === false)
29
+ return value;
30
+ return null;
31
+ }
32
+ function statusOf(value) {
33
+ const s = firstString(value)?.toUpperCase();
34
+ if (s === 'AVAILABLE' || s === 'VENDOR_NOT_PROVIDED')
35
+ return s;
36
+ return null;
37
+ }
38
+ export function parseFindingSignal(row) {
39
+ const rec = asRecord(row);
40
+ if (!rec)
41
+ return null;
42
+ const signals = asRecord(rec.globalSignals);
43
+ return {
44
+ id: firstString(rec.id, rec.findingId, rec.objectId) ?? null,
45
+ cveId: firstString(rec.cveId) ?? null,
46
+ severity: firstString(rec.severity, signals?.severity) ?? null,
47
+ cvssScore: num(rec.cvssScore ?? signals?.cvssScore ?? asRecord(signals?.cvss)?.baseScore),
48
+ kevListed: bool(rec.kevListed ?? rec.cisaKev ?? signals?.kevListed ?? signals?.cisaKev ?? signals?.kev),
49
+ epss: num(rec.epss ?? signals?.epss ?? asRecord(signals?.epss)?.score ?? signals?.epssScore),
50
+ exprtRating: firstString(rec.exprtRating) ?? null,
51
+ description: firstString(rec.description) ?? null,
52
+ descriptionStatus: statusOf(rec.descriptionStatus),
53
+ };
54
+ }
55
+ /**
56
+ * `POST /map-store/v1/tenants/{tenant}/findings:query`.
57
+ * Open vulnerability findings for the pinned pair. The vulnerability catalog joins
58
+ * these onto the walked `findings-query` rows by finding id and by CVE id.
59
+ */
60
+ export async function queryFindings(input) {
61
+ const tenant = encodeURIComponent(input.tenantId ?? DEFAULT_TENANT);
62
+ const body = await mapPost(`/tenants/${tenant}/findings:query`, {
63
+ snapshotSetId: input.snapshotSetId,
64
+ ...(input.analysisSnapshotId ? { analysisSnapshotId: input.analysisSnapshotId } : {}),
65
+ status: 'open',
66
+ findingType: 'vulnerability',
67
+ format: 'json',
68
+ limit: input.limit ?? 200,
69
+ }, { signal: input.signal });
70
+ const rec = asRecord(body);
71
+ return asList(rec?.items ?? rec?.findings ?? rec?.records).flatMap((row) => {
72
+ const parsed = parseFindingSignal(row);
73
+ return parsed ? [parsed] : [];
74
+ });
75
+ }
76
+ const VENDOR_GAP = 'gap:soes:cve-name-unavailable';
77
+ export const VENDOR_NO_DESCRIPTION = 'Vendor did not provide a description';
78
+ function distinctFromId(text, cveId) {
79
+ if (!text)
80
+ return null;
81
+ const t = text.trim();
82
+ if (!t)
83
+ return null;
84
+ if (cveId && t.toUpperCase() === cveId.toUpperCase())
85
+ return null;
86
+ return t;
87
+ }
88
+ export function parseRelevantCritical(row) {
89
+ const rec = asRecord(row);
90
+ if (!rec)
91
+ return null;
92
+ const cveId = readLooseCve(rec.cveId ?? rec.cve) ??
93
+ readLooseCve(rec.riskId) ??
94
+ readLooseCve(rec.uniqueRiskKey);
95
+ const kindRaw = (firstString(rec.kind) ?? (cveId ? 'cve' : '')).toLowerCase();
96
+ const kind = kindRaw || (cveId ? 'cve' : 'unknown');
97
+ if (!cveId && kind === 'cve')
98
+ return null;
99
+ return {
100
+ uniqueRiskKey: firstString(rec.uniqueRiskKey) ?? null,
101
+ riskId: firstString(rec.riskId) ?? cveId,
102
+ kind,
103
+ cveId,
104
+ title: distinctFromId(firstString(rec.title) ?? null, cveId),
105
+ description: distinctFromId(firstString(rec.description) ?? null, cveId),
106
+ descriptionStatus: statusOf(rec.descriptionStatus),
107
+ hostCount: num(rec.hostCount) ?? 0,
108
+ findingCount: num(rec.findingCount),
109
+ cvssScore: num(rec.cvssScore),
110
+ exprtRating: firstString(rec.exprtRating, rec.vendorExploitRating) ?? null,
111
+ kevListed: bool(rec.kevListed),
112
+ exploitAvailable: bool(rec.exploitAvailable),
113
+ cisaKev: bool(rec.cisaKev),
114
+ };
115
+ }
116
+ export function parseVulnerabilitiesBriefing(payload) {
117
+ const top = asRecord(payload) ?? {};
118
+ const briefing = asRecord(top.briefing) ?? top;
119
+ const gaps = asList(briefing.gaps).flatMap((raw) => {
120
+ const rec = asRecord(raw);
121
+ if (!rec)
122
+ return [];
123
+ const id = firstString(rec.id) ?? '';
124
+ if (!id)
125
+ return [];
126
+ return [{
127
+ id,
128
+ kind: firstString(rec.kind) ?? null,
129
+ message: firstString(rec.message) ?? null,
130
+ count: num(rec.count),
131
+ }];
132
+ });
133
+ return {
134
+ snapshotSetId: firstString(briefing.snapshotSetId, top.snapshotSetId) ?? null,
135
+ relevantCriticals: asList(briefing.relevantCriticals)
136
+ .map(parseRelevantCritical)
137
+ .filter((row) => row != null),
138
+ gaps,
139
+ cveNameUnavailable: gaps.some((g) => g.id === VENDOR_GAP),
140
+ };
141
+ }
142
+ /**
143
+ * Caption for a CVE chip.
144
+ * AVAILABLE → description, then title. VENDOR_NOT_PROVIDED → the explicit vendor gap.
145
+ * No status → only text the row already carries.
146
+ */
147
+ export function briefingDescriptionLine(row) {
148
+ if (row.descriptionStatus === 'VENDOR_NOT_PROVIDED')
149
+ return VENDOR_NO_DESCRIPTION;
150
+ if (row.descriptionStatus === 'AVAILABLE')
151
+ return row.description ?? row.title;
152
+ return row.description ?? row.title;
153
+ }
154
+ /**
155
+ * `POST /map-store/v1/tenants/{tenant}/vulnerabilities:briefing`.
156
+ * Ranked CVE hubs for the pinned pair. The CVE catalog paints these first,
157
+ * ahead of the walked `cve-catalog` and the bundled CVE text.
158
+ */
159
+ export async function fetchVulnerabilitiesBriefing(input) {
160
+ const tenant = encodeURIComponent(input.tenantId ?? DEFAULT_TENANT);
161
+ const body = await mapPost(`/tenants/${tenant}/vulnerabilities:briefing`, {
162
+ snapshotSetId: input.snapshotSetId,
163
+ ...(input.analysisSnapshotId ? { analysisSnapshotId: input.analysisSnapshotId } : {}),
164
+ status: 'open',
165
+ findingType: 'vulnerability',
166
+ format: 'json',
167
+ relevantLimit: input.relevantLimit ?? 10,
168
+ }, { signal: input.signal });
169
+ return parseVulnerabilitiesBriefing(body);
170
+ }
171
+ /** CVE hubs only, ranked by host count. */
172
+ export function cveRelevantCriticals(briefing, limit = 5) {
173
+ if (!briefing)
174
+ return [];
175
+ return briefing.relevantCriticals
176
+ .filter((row) => row.kind === 'cve' && row.cveId)
177
+ .sort((a, b) => b.hostCount - a.hostCount || (a.cveId ?? '').localeCompare(b.cveId ?? ''))
178
+ .slice(0, limit);
179
+ }
180
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/map-store-client",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Browser HTTP client for map-store /map-store/v1 (Memorix estate via map-store only)",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -43,6 +43,10 @@
43
43
  "types": "./dist/packets.d.ts",
44
44
  "import": "./dist/packets.js"
45
45
  },
46
+ "./estate": {
47
+ "types": "./dist/estate/index.d.ts",
48
+ "import": "./dist/estate/index.js"
49
+ },
46
50
  "./package.json": "./package.json"
47
51
  },
48
52
  "scripts": {
@@ -53,8 +57,17 @@
53
57
  "node": ">=20"
54
58
  },
55
59
  "devDependencies": {
60
+ "@x12i/storyflowix": "1.2.0",
56
61
  "typescript": "~5.9.2"
57
62
  },
63
+ "peerDependencies": {
64
+ "@x12i/storyflowix": ">=1.2.0"
65
+ },
66
+ "peerDependenciesMeta": {
67
+ "@x12i/storyflowix": {
68
+ "optional": true
69
+ }
70
+ },
58
71
  "publishConfig": {
59
72
  "access": "public"
60
73
  }