@blamejs/exceptd-skills 0.14.1 → 0.14.3
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/CHANGELOG.md +16 -0
- package/bin/exceptd.js +69 -3
- package/data/_indexes/_meta.json +3 -3
- package/data/_indexes/activity-feed.json +8 -8
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/frequency.json +1413 -1
- package/data/rfc-references.json +55757 -146
- package/lib/citation-resolve.js +44 -7
- package/lib/collectors/citation-hygiene.js +87 -1
- package/lib/cve-cli.js +13 -0
- package/lib/flag-suggest.js +1 -1
- package/lib/rfc-cli.js +13 -0
- package/manifest.json +44 -44
- package/package.json +2 -2
- package/sbom.cdx.json +29 -29
- package/scripts/refresh-upstream-catalogs.js +12 -2
package/sbom.cdx.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:099316cd-41d8-4bbe-8859-2b7c228db3ac",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "
|
|
7
|
+
"timestamp": "2031-02-03T04:42:53.000Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "blamejs",
|
|
11
11
|
"name": "scripts/refresh-sbom.js",
|
|
12
|
-
"version": "0.14.
|
|
12
|
+
"version": "0.14.3"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
|
-
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.
|
|
16
|
+
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.3",
|
|
17
17
|
"type": "application",
|
|
18
18
|
"name": "@blamejs/exceptd-skills",
|
|
19
|
-
"version": "0.14.
|
|
20
|
-
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND /
|
|
19
|
+
"version": "0.14.3",
|
|
20
|
+
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
|
|
21
21
|
"licenses": [
|
|
22
22
|
{
|
|
23
23
|
"license": {
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
|
-
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.
|
|
28
|
+
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.3",
|
|
29
29
|
"hashes": [
|
|
30
30
|
{
|
|
31
31
|
"alg": "SHA-256",
|
|
32
|
-
"content": "
|
|
32
|
+
"content": "d91bb87b521c678a73cd89966388bd05e9218f847164d0554bebe47370ed245c"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"externalReferences": [
|
|
36
36
|
{
|
|
37
37
|
"type": "distribution",
|
|
38
|
-
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.
|
|
38
|
+
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.3"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"type": "vcs",
|
|
@@ -116,11 +116,11 @@
|
|
|
116
116
|
"hashes": [
|
|
117
117
|
{
|
|
118
118
|
"alg": "SHA-256",
|
|
119
|
-
"content": "
|
|
119
|
+
"content": "247f5a4c21fbbca7cebf0763466756abeef8f3663066a255db6b9f4d24c919a6"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
"alg": "SHA3-512",
|
|
123
|
-
"content": "
|
|
123
|
+
"content": "02a50115f887fb45f02d8591e8320c3b0a938f23b22e04bc0acbad162384139dbd5f81d9d907dac231efbeff9eae3bf85418a70f7a1f113dd5103a648954be2c"
|
|
124
124
|
}
|
|
125
125
|
]
|
|
126
126
|
},
|
|
@@ -281,11 +281,11 @@
|
|
|
281
281
|
"hashes": [
|
|
282
282
|
{
|
|
283
283
|
"alg": "SHA-256",
|
|
284
|
-
"content": "
|
|
284
|
+
"content": "961e1d91c2d0e4cea7e9b91e2106337a65173fec7ceaedaf8873c0c80d6c8812"
|
|
285
285
|
},
|
|
286
286
|
{
|
|
287
287
|
"alg": "SHA3-512",
|
|
288
|
-
"content": "
|
|
288
|
+
"content": "756c641e00019e4bf63c52ae946831446664764ce90e81b506d27c096facac0b8a2fdff3a7bc13cc946b803c3362931714e4f6a3843437518b1ede250a56ffd4"
|
|
289
289
|
}
|
|
290
290
|
]
|
|
291
291
|
},
|
|
@@ -791,11 +791,11 @@
|
|
|
791
791
|
"hashes": [
|
|
792
792
|
{
|
|
793
793
|
"alg": "SHA-256",
|
|
794
|
-
"content": "
|
|
794
|
+
"content": "b21d03b948c41bc8a854e2f057948ecf844bd8c105848aeb141d1eadf8192c31"
|
|
795
795
|
},
|
|
796
796
|
{
|
|
797
797
|
"alg": "SHA3-512",
|
|
798
|
-
"content": "
|
|
798
|
+
"content": "19e242bf80e0d2984e0e807c3c4b236afc59561cc63a29efcc1f34488adc71dd0ba21eb8b6162eae83b87ca872d2d5073c1efc7aff05761b16b76631acfaaba4"
|
|
799
799
|
}
|
|
800
800
|
]
|
|
801
801
|
},
|
|
@@ -881,11 +881,11 @@
|
|
|
881
881
|
"hashes": [
|
|
882
882
|
{
|
|
883
883
|
"alg": "SHA-256",
|
|
884
|
-
"content": "
|
|
884
|
+
"content": "5ebcc854e28fbdc9b93192f93694790193eec74c66f3ffb830cbb337869cd4ad"
|
|
885
885
|
},
|
|
886
886
|
{
|
|
887
887
|
"alg": "SHA3-512",
|
|
888
|
-
"content": "
|
|
888
|
+
"content": "85642a02213e52a4eb9f8dd47c6ec18defde10c9b911db726ca3840edd8401e4f1ad091f1853edb88335f91aba496b05d312106c9e0050eb29c8864ac2f4172e"
|
|
889
889
|
}
|
|
890
890
|
]
|
|
891
891
|
},
|
|
@@ -941,11 +941,11 @@
|
|
|
941
941
|
"hashes": [
|
|
942
942
|
{
|
|
943
943
|
"alg": "SHA-256",
|
|
944
|
-
"content": "
|
|
944
|
+
"content": "b31872b10eb815a53d7753f294dc8409de58b847c296ca2d91c5be4548a3e696"
|
|
945
945
|
},
|
|
946
946
|
{
|
|
947
947
|
"alg": "SHA3-512",
|
|
948
|
-
"content": "
|
|
948
|
+
"content": "46aa9be2df845e10938e5f76a120d42541e3726d92b682504a70dde1d7f6c046606e33ff44bde3ca708d30065d85484d5ab3baa32e93340e6d3f8ac7ac878a1f"
|
|
949
949
|
}
|
|
950
950
|
]
|
|
951
951
|
},
|
|
@@ -1151,11 +1151,11 @@
|
|
|
1151
1151
|
"hashes": [
|
|
1152
1152
|
{
|
|
1153
1153
|
"alg": "SHA-256",
|
|
1154
|
-
"content": "
|
|
1154
|
+
"content": "bacd5bb4d26af7a025bc0e9cc8139551618bd352927acbaeaa5855ae1ea86849"
|
|
1155
1155
|
},
|
|
1156
1156
|
{
|
|
1157
1157
|
"alg": "SHA3-512",
|
|
1158
|
-
"content": "
|
|
1158
|
+
"content": "a5c7a22d905441b487b8cdaaff5744a7f008c00b8629b513ebd059eee3e07c6fccb7ac7c62bad3055a1204a92b493db38ef5fbc033da0fe2eca52a6d4b5d6585"
|
|
1159
1159
|
}
|
|
1160
1160
|
]
|
|
1161
1161
|
},
|
|
@@ -1226,11 +1226,11 @@
|
|
|
1226
1226
|
"hashes": [
|
|
1227
1227
|
{
|
|
1228
1228
|
"alg": "SHA-256",
|
|
1229
|
-
"content": "
|
|
1229
|
+
"content": "65257992ec15d25efa25667bd605166159b363719be86ddf4e99f53ce41c54e6"
|
|
1230
1230
|
},
|
|
1231
1231
|
{
|
|
1232
1232
|
"alg": "SHA3-512",
|
|
1233
|
-
"content": "
|
|
1233
|
+
"content": "31ad733cf5ed8177131f4a73235dd0991946b7eacfe7de3ddcb8717065804f076e66e3a7103c4304c52d33ff1799037893599a4924ef6f56e7c27a30ea615e8d"
|
|
1234
1234
|
}
|
|
1235
1235
|
]
|
|
1236
1236
|
},
|
|
@@ -1376,11 +1376,11 @@
|
|
|
1376
1376
|
"hashes": [
|
|
1377
1377
|
{
|
|
1378
1378
|
"alg": "SHA-256",
|
|
1379
|
-
"content": "
|
|
1379
|
+
"content": "96ffa31aaa2239a597eaea9f789777cb33241d13cbd87a295573740912cb1e1a"
|
|
1380
1380
|
},
|
|
1381
1381
|
{
|
|
1382
1382
|
"alg": "SHA3-512",
|
|
1383
|
-
"content": "
|
|
1383
|
+
"content": "dea608cddf51207d631dd3be0700ad313860750ce7f94ae3cd177b578999e499196f7a26ebc11be2524505901ab94efbda6a49ea78f8830fec9404e1bf75c67a"
|
|
1384
1384
|
}
|
|
1385
1385
|
]
|
|
1386
1386
|
},
|
|
@@ -1751,11 +1751,11 @@
|
|
|
1751
1751
|
"hashes": [
|
|
1752
1752
|
{
|
|
1753
1753
|
"alg": "SHA-256",
|
|
1754
|
-
"content": "
|
|
1754
|
+
"content": "cfe6dbf90ca102b12a5d538e2744df007f7c8df306dc2ccdeac76f408c328d91"
|
|
1755
1755
|
},
|
|
1756
1756
|
{
|
|
1757
1757
|
"alg": "SHA3-512",
|
|
1758
|
-
"content": "
|
|
1758
|
+
"content": "120634030ec92f4a700205a7508ef646bc56f84346213ba9828cea6041c248774ca21c099c68b4681cb6a90ff02a77a0fb2f20d5b631178ca131e7ccf19ffef9"
|
|
1759
1759
|
}
|
|
1760
1760
|
]
|
|
1761
1761
|
},
|
|
@@ -2426,11 +2426,11 @@
|
|
|
2426
2426
|
"hashes": [
|
|
2427
2427
|
{
|
|
2428
2428
|
"alg": "SHA-256",
|
|
2429
|
-
"content": "
|
|
2429
|
+
"content": "f0186de029d872b8523eb8a47e1d1162c5eddc6ed45e62e010a0b4a82ec67c26"
|
|
2430
2430
|
},
|
|
2431
2431
|
{
|
|
2432
2432
|
"alg": "SHA3-512",
|
|
2433
|
-
"content": "
|
|
2433
|
+
"content": "37d62e5a201c83be7d5882e8f1a968593f81b6b1cb2fb6c811107a19c2faa1890a4e19dd54f8233a866434bd15a1f9c43baeb2458676c9a1d3fef2cd85fc3e80"
|
|
2434
2434
|
}
|
|
2435
2435
|
]
|
|
2436
2436
|
},
|
|
@@ -249,10 +249,18 @@ async function refreshRfc({ dry = false } = {}) {
|
|
|
249
249
|
if (touched) { cur.last_verified = TODAY; backfilledCount++; }
|
|
250
250
|
}
|
|
251
251
|
// Second pass: add new "current" entries that weren't in the catalog.
|
|
252
|
-
|
|
252
|
+
// Add new rows from the FULL index, not just the current series. Obsoleted
|
|
253
|
+
// and historic RFCs were previously excluded, so "is RFC N still current?"
|
|
254
|
+
// had no offline answer and forced a datatracker lookup. They are added here
|
|
255
|
+
// marked `_obsoleted` (with obsoleted_by populated) so the resolver can say
|
|
256
|
+
// "Historic, superseded by RFC X" offline. UNKNOWN-status index rows
|
|
257
|
+
// (placeholders / not-issued numbers) are still skipped.
|
|
258
|
+
for (const e of backfillable) {
|
|
253
259
|
const id = `RFC-${e.num}`;
|
|
254
260
|
// Existing rows handled in the first-pass backfill above.
|
|
255
261
|
if (existing.has(id)) continue;
|
|
262
|
+
if (e.status === "UNKNOWN") continue;
|
|
263
|
+
const obsoleted = !!e.obsoleted || e.status === "HISTORIC";
|
|
256
264
|
cat[id] = {
|
|
257
265
|
number: e.num,
|
|
258
266
|
title: e.title,
|
|
@@ -269,6 +277,7 @@ async function refreshRfc({ dry = false } = {}) {
|
|
|
269
277
|
obsoletes: e.obsoletes,
|
|
270
278
|
updates: e.updates,
|
|
271
279
|
updated_by: e.updatedBy,
|
|
280
|
+
obsoleted_by: e.obsoletedBy,
|
|
272
281
|
is_also: e.isAlso,
|
|
273
282
|
errata_count: e.hasErrata ? null : 0,
|
|
274
283
|
tracker: `https://www.rfc-editor.org/info/rfc${e.num}`,
|
|
@@ -278,7 +287,8 @@ async function refreshRfc({ dry = false } = {}) {
|
|
|
278
287
|
skills_referencing: [],
|
|
279
288
|
last_verified: TODAY,
|
|
280
289
|
_auto_imported: true,
|
|
281
|
-
_intake_method: "ietf-rfc-index"
|
|
290
|
+
_intake_method: "ietf-rfc-index",
|
|
291
|
+
...(obsoleted ? { _obsoleted: true } : {}),
|
|
282
292
|
};
|
|
283
293
|
existing.add(id);
|
|
284
294
|
added++;
|