@ansvar/us-regulations-mcp 1.0.0 → 1.2.2
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/README.md +422 -79
- package/data/regulations.db +0 -0
- package/data/seed/colorado-cpa.json +97 -0
- package/data/seed/ffiec.json +103 -0
- package/data/seed/mappings/ccpa-nist-csf.json +11 -1
- package/data/seed/mappings/hipaa-nist-800-53.json +10 -1
- package/data/seed/nydfs.json +122 -0
- package/data/seed/sox.json +109 -0
- package/dist/index.js +1 -1
- package/dist/ingest/adapters/colorado-public.d.ts +25 -0
- package/dist/ingest/adapters/colorado-public.d.ts.map +1 -0
- package/dist/ingest/adapters/colorado-public.js +76 -0
- package/dist/ingest/adapters/colorado-public.js.map +1 -0
- package/dist/ingest/adapters/connecticut-cga.d.ts +22 -0
- package/dist/ingest/adapters/connecticut-cga.d.ts.map +1 -0
- package/dist/ingest/adapters/connecticut-cga.js +116 -0
- package/dist/ingest/adapters/connecticut-cga.js.map +1 -0
- package/dist/ingest/adapters/ecfr.d.ts +46 -4
- package/dist/ingest/adapters/ecfr.d.ts.map +1 -1
- package/dist/ingest/adapters/ecfr.js +131 -16
- package/dist/ingest/adapters/ecfr.js.map +1 -1
- package/dist/ingest/adapters/ffiec.d.ts +42 -0
- package/dist/ingest/adapters/ffiec.d.ts.map +1 -0
- package/dist/ingest/adapters/ffiec.js +68 -0
- package/dist/ingest/adapters/ffiec.js.map +1 -0
- package/dist/ingest/adapters/nydfs.d.ts +42 -0
- package/dist/ingest/adapters/nydfs.d.ts.map +1 -0
- package/dist/ingest/adapters/nydfs.js +68 -0
- package/dist/ingest/adapters/nydfs.js.map +1 -0
- package/dist/ingest/adapters/regulations-gov.d.ts +11 -12
- package/dist/ingest/adapters/regulations-gov.d.ts.map +1 -1
- package/dist/ingest/adapters/regulations-gov.js +46 -43
- package/dist/ingest/adapters/regulations-gov.js.map +1 -1
- package/dist/ingest/adapters/utah-xcode.d.ts +19 -0
- package/dist/ingest/adapters/utah-xcode.d.ts.map +1 -0
- package/dist/ingest/adapters/utah-xcode.js +112 -0
- package/dist/ingest/adapters/utah-xcode.js.map +1 -0
- package/dist/ingest/adapters/virginia-law.d.ts +21 -0
- package/dist/ingest/adapters/virginia-law.d.ts.map +1 -0
- package/dist/ingest/adapters/virginia-law.js +111 -0
- package/dist/ingest/adapters/virginia-law.js.map +1 -0
- package/package.json +27 -5
- package/scripts/build-db.ts +50 -32
- package/scripts/check-updates.ts +184 -0
- package/scripts/ingest.ts +72 -25
- package/src/index.ts +1 -1
- package/src/ingest/adapters/colorado-public.ts +96 -0
- package/src/ingest/adapters/connecticut-cga.ts +150 -0
- package/src/ingest/adapters/ecfr.ts +158 -17
- package/src/ingest/adapters/ffiec.ts +77 -0
- package/src/ingest/adapters/nydfs.ts +77 -0
- package/src/ingest/adapters/regulations-gov.ts +48 -47
- package/src/ingest/adapters/utah-xcode.ts +143 -0
- package/src/ingest/adapters/virginia-law.ts +140 -0
- package/scripts/quality-test.ts +0 -346
- package/scripts/test-mcp-tools.ts +0 -187
- package/scripts/test-remaining-tools.ts +0 -107
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorado-public.d.ts","sourceRoot":"","sources":["../../../src/ingest/adapters/colorado-public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,YAAY,EACb,MAAM,iBAAiB,CAAC;AAQzB,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;;IAM5B,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAa3C,aAAa,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;IA+B3C,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI3C,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;CAOhE;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Colorado Privacy Act Adapter
|
|
3
|
+
*
|
|
4
|
+
* Fetches Colorado CPA from official Colorado General Assembly sources.
|
|
5
|
+
* Source: C.R.S. § 6-1-1301 to 6-1-1313
|
|
6
|
+
*
|
|
7
|
+
* Official Source: https://leg.colorado.gov/colorado-revised-statutes
|
|
8
|
+
*
|
|
9
|
+
* NOTE: Uses seed data extracted from official Colorado Revised Statutes.
|
|
10
|
+
* The Colorado General Assembly publishes statutes in PDF format at leg.colorado.gov.
|
|
11
|
+
* This adapter uses pre-verified seed data to ensure accuracy and avoid
|
|
12
|
+
* reliance on third-party aggregators.
|
|
13
|
+
*/
|
|
14
|
+
import * as fs from 'fs';
|
|
15
|
+
import * as path from 'path';
|
|
16
|
+
import { fileURLToPath } from 'url';
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = path.dirname(__filename);
|
|
19
|
+
export class ColoradoLegAdapter {
|
|
20
|
+
regulationId = 'COLORADO_CPA';
|
|
21
|
+
seedPath;
|
|
22
|
+
constructor() {
|
|
23
|
+
this.seedPath = path.join(__dirname, '../../../data/seed/colorado-cpa.json');
|
|
24
|
+
}
|
|
25
|
+
async fetchMetadata() {
|
|
26
|
+
return {
|
|
27
|
+
id: 'COLORADO_CPA',
|
|
28
|
+
full_name: 'Colorado Privacy Act',
|
|
29
|
+
citation: 'C.R.S. §6-1-1301 to 6-1-1313',
|
|
30
|
+
effective_date: '2023-07-01',
|
|
31
|
+
last_amended: '2024-01-01',
|
|
32
|
+
source_url: 'https://leg.colorado.gov/colorado-revised-statutes',
|
|
33
|
+
jurisdiction: 'colorado',
|
|
34
|
+
regulation_type: 'statute',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async *fetchSections() {
|
|
38
|
+
console.log('Loading Colorado CPA from official seed data...');
|
|
39
|
+
try {
|
|
40
|
+
const seedData = JSON.parse(fs.readFileSync(this.seedPath, 'utf-8'));
|
|
41
|
+
if (!seedData.sections || !Array.isArray(seedData.sections)) {
|
|
42
|
+
throw new Error('Invalid seed data format');
|
|
43
|
+
}
|
|
44
|
+
const sections = seedData.sections.map((s) => ({
|
|
45
|
+
sectionNumber: s.sectionNumber,
|
|
46
|
+
title: s.title,
|
|
47
|
+
text: s.text,
|
|
48
|
+
chapter: s.chapter || 'Colorado Privacy Act',
|
|
49
|
+
}));
|
|
50
|
+
console.log(` Loaded ${sections.length} sections from seed data`);
|
|
51
|
+
// Validate minimum section count
|
|
52
|
+
if (sections.length < 10) {
|
|
53
|
+
throw new Error(`Expected at least 10 sections, got ${sections.length}`);
|
|
54
|
+
}
|
|
55
|
+
yield sections;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Failed to load Colorado CPA seed data:', error);
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async extractDefinitions() {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
async checkForUpdates(lastFetched) {
|
|
66
|
+
// Seed data is static - updates require manual verification
|
|
67
|
+
return {
|
|
68
|
+
hasChanges: false,
|
|
69
|
+
changes: ['Colorado CPA uses verified seed data. Check leg.colorado.gov for updates.']
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export function createColoradoAdapter() {
|
|
74
|
+
return new ColoradoLegAdapter();
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=colorado-public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorado-public.js","sourceRoot":"","sources":["../../../src/ingest/adapters/colorado-public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,OAAO,kBAAkB;IACZ,YAAY,GAAG,cAAc,CAAC;IAC9B,QAAQ,CAAS;IAElC;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO;YACL,EAAE,EAAE,cAAc;YAClB,SAAS,EAAE,sBAAsB;YACjC,QAAQ,EAAE,8BAA8B;YACxC,cAAc,EAAE,YAAY;YAC5B,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,oDAAoD;YAChE,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,aAAa;QAClB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAErE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,QAAQ,GAAc,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC7D,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,sBAAsB;aAC7C,CAAC,CAAC,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,0BAA0B,CAAC,CAAC;YAEnE,iCAAiC;YACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAiB;QACrC,4DAA4D;QAC5D,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,CAAC,2EAA2E,CAAC;SACvF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connecticut General Assembly Adapter
|
|
3
|
+
*
|
|
4
|
+
* Fetches Connecticut CTDPA from Connecticut General Assembly website.
|
|
5
|
+
* Source: Conn. Gen. Stat. § 42-515 to 42-524
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This adapter parses a SINGLE page containing ALL sections,
|
|
8
|
+
* unlike Virginia/Colorado which fetch individual section pages.
|
|
9
|
+
*/
|
|
10
|
+
import { SourceAdapter, RegulationMetadata, Section, Definition, UpdateStatus } from '../framework.js';
|
|
11
|
+
export declare class ConnecticutCGAAdapter implements SourceAdapter {
|
|
12
|
+
private readonly regulationId;
|
|
13
|
+
private readonly chapterUrl;
|
|
14
|
+
fetchMetadata(): Promise<RegulationMetadata>;
|
|
15
|
+
fetchSections(): AsyncGenerator<Section[]>;
|
|
16
|
+
private fetchWithHttps;
|
|
17
|
+
private parseSections;
|
|
18
|
+
extractDefinitions(): Promise<Definition[]>;
|
|
19
|
+
checkForUpdates(lastFetched: Date): Promise<UpdateStatus>;
|
|
20
|
+
}
|
|
21
|
+
export declare function createConnecticutAdapter(): SourceAdapter;
|
|
22
|
+
//# sourceMappingURL=connecticut-cga.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connecticut-cga.d.ts","sourceRoot":"","sources":["../../../src/ingest/adapters/connecticut-cga.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,YAAY,EACb,MAAM,iBAAiB,CAAC;AAWzB,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAC2B;IAEhD,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAa3C,aAAa,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAmBnC,cAAc;IAgB5B,OAAO,CAAC,aAAa;IAyDf,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAK3C,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;CAGhE;AAED,wBAAgB,wBAAwB,IAAI,aAAa,CAExD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connecticut General Assembly Adapter
|
|
3
|
+
*
|
|
4
|
+
* Fetches Connecticut CTDPA from Connecticut General Assembly website.
|
|
5
|
+
* Source: Conn. Gen. Stat. § 42-515 to 42-524
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This adapter parses a SINGLE page containing ALL sections,
|
|
8
|
+
* unlike Virginia/Colorado which fetch individual section pages.
|
|
9
|
+
*/
|
|
10
|
+
import * as cheerio from 'cheerio';
|
|
11
|
+
import https from 'https';
|
|
12
|
+
class ScrapingError extends Error {
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'ScrapingError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class ConnecticutCGAAdapter {
|
|
19
|
+
regulationId = 'CONNECTICUT_CTDPA';
|
|
20
|
+
chapterUrl = 'https://www.cga.ct.gov/current/pub/chap_743jj.htm';
|
|
21
|
+
async fetchMetadata() {
|
|
22
|
+
return {
|
|
23
|
+
id: 'CONNECTICUT_CTDPA',
|
|
24
|
+
full_name: 'Connecticut Data Privacy Act',
|
|
25
|
+
citation: 'Conn. Gen. Stat. §42-515 to 42-524',
|
|
26
|
+
effective_date: '2023-07-01',
|
|
27
|
+
last_amended: '2023-07-01',
|
|
28
|
+
source_url: this.chapterUrl,
|
|
29
|
+
jurisdiction: 'connecticut',
|
|
30
|
+
regulation_type: 'statute',
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async *fetchSections() {
|
|
34
|
+
console.log('Fetching Connecticut CTDPA from single chapter page...');
|
|
35
|
+
// Connecticut's certificate has SSL issues, use https module directly
|
|
36
|
+
const html = await this.fetchWithHttps(this.chapterUrl);
|
|
37
|
+
const $ = cheerio.load(html);
|
|
38
|
+
const sections = this.parseSections($);
|
|
39
|
+
if (sections.length < 8) {
|
|
40
|
+
throw new ScrapingError(`Expected at least 8 sections, got ${sections.length}`);
|
|
41
|
+
}
|
|
42
|
+
console.log(` ✅ Parsed ${sections.length} sections from chapter page`);
|
|
43
|
+
yield sections;
|
|
44
|
+
}
|
|
45
|
+
async fetchWithHttps(url) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
https.get(url, { rejectUnauthorized: false }, (res) => {
|
|
48
|
+
if (res.statusCode !== 200) {
|
|
49
|
+
reject(new ScrapingError(`HTTP ${res.statusCode}`));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
let data = '';
|
|
53
|
+
res.on('data', (chunk) => data += chunk);
|
|
54
|
+
res.on('end', () => resolve(data));
|
|
55
|
+
res.on('error', reject);
|
|
56
|
+
}).on('error', reject);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
parseSections($) {
|
|
60
|
+
const sections = [];
|
|
61
|
+
// Find all paragraphs containing section headers (span.catchln)
|
|
62
|
+
$('span.catchln[id^="sec_42-"]').each((_idx, elem) => {
|
|
63
|
+
const $span = $(elem);
|
|
64
|
+
const id = $span.attr('id');
|
|
65
|
+
if (!id)
|
|
66
|
+
return;
|
|
67
|
+
// Extract section number from id: "sec_42-515" -> "515"
|
|
68
|
+
const idMatch = id.match(/sec_42-(\d+)/);
|
|
69
|
+
if (!idMatch)
|
|
70
|
+
return;
|
|
71
|
+
const sectionNum = idMatch[1];
|
|
72
|
+
// Extract title from span text: "Sec. 42-515. Definitions." -> "Definitions"
|
|
73
|
+
const spanText = $span.text().trim();
|
|
74
|
+
const titleMatch = spanText.match(/^Sec\.\s+42-\d+\.\s+(.+?)\.?\s*$/);
|
|
75
|
+
const title = titleMatch ? titleMatch[1].trim() : `Section 42-${sectionNum}`;
|
|
76
|
+
// Get the parent paragraph and all following paragraphs until next section
|
|
77
|
+
const $startPara = $span.parent();
|
|
78
|
+
let fullText = $startPara.text().trim();
|
|
79
|
+
// Collect following paragraphs until we hit another section marker
|
|
80
|
+
let $next = $startPara.next('p');
|
|
81
|
+
while ($next.length > 0) {
|
|
82
|
+
// Stop if this paragraph contains another section marker
|
|
83
|
+
if ($next.find('span.catchln[id^="sec_42-"]').length > 0) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
const nextText = $next.text().trim();
|
|
87
|
+
if (nextText.length > 0) {
|
|
88
|
+
fullText += '\n\n' + nextText;
|
|
89
|
+
}
|
|
90
|
+
$next = $next.next('p');
|
|
91
|
+
}
|
|
92
|
+
// Only include sections in the 42-515 to 42-526 range (CTDPA)
|
|
93
|
+
const num = parseInt(sectionNum);
|
|
94
|
+
if (num >= 515 && num <= 526) {
|
|
95
|
+
sections.push({
|
|
96
|
+
sectionNumber: `42-${sectionNum}`,
|
|
97
|
+
title: title,
|
|
98
|
+
text: fullText,
|
|
99
|
+
});
|
|
100
|
+
console.log(` Found § 42-${sectionNum}: ${title}`);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return sections;
|
|
104
|
+
}
|
|
105
|
+
async extractDefinitions() {
|
|
106
|
+
// Definitions are in section 42-515, could be extracted if needed
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
async checkForUpdates(lastFetched) {
|
|
110
|
+
return { hasChanges: false };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export function createConnecticutAdapter() {
|
|
114
|
+
return new ConnecticutCGAAdapter();
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=connecticut-cga.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connecticut-cga.js","sourceRoot":"","sources":["../../../src/ingest/adapters/connecticut-cga.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,aAAc,SAAQ,KAAK;IAC/B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IACf,YAAY,GAAG,mBAAmB,CAAC;IACnC,UAAU,GACzB,mDAAmD,CAAC;IAEtD,KAAK,CAAC,aAAa;QACjB,OAAO;YACL,EAAE,EAAE,mBAAmB;YACvB,SAAS,EAAE,8BAA8B;YACzC,QAAQ,EAAE,oCAAoC;YAC9C,cAAc,EAAE,YAAY;YAC5B,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,aAAa;YAC3B,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,aAAa;QAClB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QAEtE,sEAAsE;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CACrB,qCAAqC,QAAQ,CAAC,MAAM,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACxE,MAAM,QAAQ,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAW;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,aAAa,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACzC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,CAAe;QACnC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,gEAAgE;QAChE,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACnD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,CAAC,EAAE;gBAAE,OAAO;YAEhB,wDAAwD;YACxD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE9B,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,UAAU,EAAE,CAAC;YAE7E,2EAA2E;YAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAExC,mEAAmE;YACnE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,yDAAyD;gBACzD,IAAI,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzD,MAAM;gBACR,CAAC;gBAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC;gBAChC,CAAC;gBAED,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,8DAA8D;YAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE,MAAM,UAAU,EAAE;oBACjC,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,kEAAkE;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAiB;QACrC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,qBAAqB,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
* Uses the eCFR API: https://www.ecfr.gov/developers/documentation/api/v1
|
|
9
9
|
*/
|
|
10
10
|
import { SourceAdapter, RegulationMetadata, Section, Definition, UpdateStatus } from '../framework.js';
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for regulation metadata fallback
|
|
13
|
+
*/
|
|
14
|
+
export interface RegulationConfig {
|
|
15
|
+
full_name: string;
|
|
16
|
+
citation: string;
|
|
17
|
+
effective_date: string;
|
|
18
|
+
jurisdiction: 'federal' | 'state';
|
|
19
|
+
regulation_type: 'rule' | 'statute';
|
|
20
|
+
}
|
|
11
21
|
/**
|
|
12
22
|
* Adapter for fetching HIPAA from eCFR API
|
|
13
23
|
*/
|
|
@@ -15,12 +25,19 @@ export declare class EcfrAdapter implements SourceAdapter {
|
|
|
15
25
|
private readonly regulationId;
|
|
16
26
|
private readonly cfr_title;
|
|
17
27
|
private readonly cfr_parts;
|
|
18
|
-
|
|
28
|
+
private readonly fallbackMetadata;
|
|
29
|
+
constructor(regulationId: string, cfr_title: number, cfr_parts: number[], fallbackMetadata: RegulationConfig);
|
|
30
|
+
/**
|
|
31
|
+
* Fetch metadata from eCFR API
|
|
32
|
+
* Returns effective_date and last_amended from API with fallback metadata for other fields
|
|
33
|
+
*/
|
|
34
|
+
private fetchMetadataFromAPI;
|
|
19
35
|
/**
|
|
20
|
-
* Fetch
|
|
36
|
+
* Fetch regulation metadata
|
|
21
37
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
38
|
+
* Hybrid approach:
|
|
39
|
+
* 1. Try to fetch effective_date and last_amended from eCFR API
|
|
40
|
+
* 2. Fall back to hardcoded metadata if API unavailable
|
|
24
41
|
*/
|
|
25
42
|
fetchMetadata(): Promise<RegulationMetadata>;
|
|
26
43
|
/**
|
|
@@ -73,4 +90,29 @@ export declare class EcfrAdapter implements SourceAdapter {
|
|
|
73
90
|
* Factory function to create HIPAA adapter
|
|
74
91
|
*/
|
|
75
92
|
export declare function createHipaaAdapter(): EcfrAdapter;
|
|
93
|
+
/**
|
|
94
|
+
* Factory function to create GLBA adapter
|
|
95
|
+
* Gramm-Leach-Bliley Act - Safeguards Rule
|
|
96
|
+
*/
|
|
97
|
+
export declare function createGlbaAdapter(): EcfrAdapter;
|
|
98
|
+
/**
|
|
99
|
+
* Factory function to create FERPA adapter
|
|
100
|
+
* Family Educational Rights and Privacy Act
|
|
101
|
+
*/
|
|
102
|
+
export declare function createFerpaAdapter(): EcfrAdapter;
|
|
103
|
+
/**
|
|
104
|
+
* Factory function to create COPPA adapter
|
|
105
|
+
* Children's Online Privacy Protection Act Rule
|
|
106
|
+
*/
|
|
107
|
+
export declare function createCoppaAdapter(): EcfrAdapter;
|
|
108
|
+
/**
|
|
109
|
+
* Factory function to create FDA 21 CFR Part 11 adapter
|
|
110
|
+
* Electronic Records and Electronic Signatures
|
|
111
|
+
*/
|
|
112
|
+
export declare function createFdaAdapter(): EcfrAdapter;
|
|
113
|
+
/**
|
|
114
|
+
* Factory function to create EPA RMP adapter
|
|
115
|
+
* Risk Management Plan Rule
|
|
116
|
+
*/
|
|
117
|
+
export declare function createEpaRmpAdapter(): EcfrAdapter;
|
|
76
118
|
//# sourceMappingURL=ecfr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr.d.ts","sourceRoot":"","sources":["../../../src/ingest/adapters/ecfr.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,YAAY,EACb,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;
|
|
1
|
+
{"version":3,"file":"ecfr.d.ts","sourceRoot":"","sources":["../../../src/ingest/adapters/ecfr.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,YAAY,EACb,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAGlD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAAE,EACnB,gBAAgB,EAAE,gBAAgB;IAQpC;;;OAGG;YACW,oBAAoB;IAoClC;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAoBlD;;;;;OAKG;IACI,aAAa,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;IAoHjD;;OAEG;IACH,OAAO,CAAC,YAAY;IA8BpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkCnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;YACW,aAAa;IAkB3B;;OAEG;YACW,cAAc;IA6B5B;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAqC/D;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAWlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAQhD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAQ/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAQhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAQhD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAQjD"}
|
|
@@ -15,29 +15,73 @@ export class EcfrAdapter {
|
|
|
15
15
|
regulationId;
|
|
16
16
|
cfr_title;
|
|
17
17
|
cfr_parts;
|
|
18
|
-
|
|
18
|
+
fallbackMetadata;
|
|
19
|
+
constructor(regulationId, cfr_title, cfr_parts, fallbackMetadata) {
|
|
19
20
|
this.regulationId = regulationId;
|
|
20
21
|
this.cfr_title = cfr_title;
|
|
21
22
|
this.cfr_parts = cfr_parts;
|
|
23
|
+
this.fallbackMetadata = fallbackMetadata;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
|
-
* Fetch
|
|
26
|
+
* Fetch metadata from eCFR API
|
|
27
|
+
* Returns effective_date and last_amended from API with fallback metadata for other fields
|
|
28
|
+
*/
|
|
29
|
+
async fetchMetadataFromAPI() {
|
|
30
|
+
try {
|
|
31
|
+
// Get latest available date for this CFR title
|
|
32
|
+
const latestDate = await this.getLatestDate();
|
|
33
|
+
// Fetch structure JSON (lighter than full XML)
|
|
34
|
+
const url = `https://www.ecfr.gov/api/versioner/v1/structure/${latestDate}/title-${this.cfr_title}.json`;
|
|
35
|
+
const response = await fetch(url);
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
throw new Error(`eCFR API returned ${response.status} for ${url}`);
|
|
38
|
+
}
|
|
39
|
+
const data = await response.json();
|
|
40
|
+
// Extract dates from API response
|
|
41
|
+
// Note: eCFR structure API may not have these exact fields, using latest date as proxy
|
|
42
|
+
const effectiveDate = data.effective_date || latestDate;
|
|
43
|
+
const lastAmended = data.last_amended || latestDate;
|
|
44
|
+
return {
|
|
45
|
+
id: this.regulationId,
|
|
46
|
+
full_name: this.fallbackMetadata.full_name,
|
|
47
|
+
citation: this.fallbackMetadata.citation,
|
|
48
|
+
effective_date: effectiveDate,
|
|
49
|
+
last_amended: lastAmended,
|
|
50
|
+
source_url: `https://www.ecfr.gov/current/title-${this.cfr_title}`,
|
|
51
|
+
jurisdiction: this.fallbackMetadata.jurisdiction,
|
|
52
|
+
regulation_type: this.fallbackMetadata.regulation_type
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Re-throw to be caught by fetchMetadata
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Fetch regulation metadata
|
|
25
62
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
63
|
+
* Hybrid approach:
|
|
64
|
+
* 1. Try to fetch effective_date and last_amended from eCFR API
|
|
65
|
+
* 2. Fall back to hardcoded metadata if API unavailable
|
|
28
66
|
*/
|
|
29
67
|
async fetchMetadata() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
68
|
+
try {
|
|
69
|
+
return await this.fetchMetadataFromAPI();
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.warn(`⚠️ eCFR API unavailable for ${this.regulationId}, using fallback metadata`);
|
|
73
|
+
console.warn(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
74
|
+
return {
|
|
75
|
+
id: this.regulationId,
|
|
76
|
+
full_name: this.fallbackMetadata.full_name,
|
|
77
|
+
citation: this.fallbackMetadata.citation,
|
|
78
|
+
effective_date: this.fallbackMetadata.effective_date,
|
|
79
|
+
last_amended: this.fallbackMetadata.effective_date, // Use effective_date as fallback
|
|
80
|
+
source_url: `https://www.ecfr.gov/current/title-${this.cfr_title}`,
|
|
81
|
+
jurisdiction: this.fallbackMetadata.jurisdiction,
|
|
82
|
+
regulation_type: this.fallbackMetadata.regulation_type
|
|
83
|
+
};
|
|
84
|
+
}
|
|
41
85
|
}
|
|
42
86
|
/**
|
|
43
87
|
* Fetch all HIPAA sections
|
|
@@ -350,6 +394,77 @@ export class EcfrAdapter {
|
|
|
350
394
|
* Factory function to create HIPAA adapter
|
|
351
395
|
*/
|
|
352
396
|
export function createHipaaAdapter() {
|
|
353
|
-
return new EcfrAdapter('HIPAA', 45, [160, 162, 164]
|
|
397
|
+
return new EcfrAdapter('HIPAA', 45, [160, 162, 164], {
|
|
398
|
+
full_name: 'Health Insurance Portability and Accountability Act',
|
|
399
|
+
citation: '45 CFR Parts 160, 162, 164',
|
|
400
|
+
effective_date: '2003-04-14',
|
|
401
|
+
jurisdiction: 'federal',
|
|
402
|
+
regulation_type: 'rule'
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Factory function to create GLBA adapter
|
|
407
|
+
* Gramm-Leach-Bliley Act - Safeguards Rule
|
|
408
|
+
*/
|
|
409
|
+
export function createGlbaAdapter() {
|
|
410
|
+
return new EcfrAdapter('GLBA', 16, [314], {
|
|
411
|
+
full_name: 'Gramm-Leach-Bliley Act - Safeguards Rule',
|
|
412
|
+
citation: '16 CFR Part 314',
|
|
413
|
+
effective_date: '2003-05-23',
|
|
414
|
+
jurisdiction: 'federal',
|
|
415
|
+
regulation_type: 'rule'
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Factory function to create FERPA adapter
|
|
420
|
+
* Family Educational Rights and Privacy Act
|
|
421
|
+
*/
|
|
422
|
+
export function createFerpaAdapter() {
|
|
423
|
+
return new EcfrAdapter('FERPA', 34, [99], {
|
|
424
|
+
full_name: 'Family Educational Rights and Privacy Act',
|
|
425
|
+
citation: '34 CFR Part 99',
|
|
426
|
+
effective_date: '2009-01-03',
|
|
427
|
+
jurisdiction: 'federal',
|
|
428
|
+
regulation_type: 'rule'
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Factory function to create COPPA adapter
|
|
433
|
+
* Children's Online Privacy Protection Act Rule
|
|
434
|
+
*/
|
|
435
|
+
export function createCoppaAdapter() {
|
|
436
|
+
return new EcfrAdapter('COPPA', 16, [312], {
|
|
437
|
+
full_name: "Children's Online Privacy Protection Act Rule",
|
|
438
|
+
citation: '16 CFR Part 312',
|
|
439
|
+
effective_date: '2013-07-01',
|
|
440
|
+
jurisdiction: 'federal',
|
|
441
|
+
regulation_type: 'rule'
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Factory function to create FDA 21 CFR Part 11 adapter
|
|
446
|
+
* Electronic Records and Electronic Signatures
|
|
447
|
+
*/
|
|
448
|
+
export function createFdaAdapter() {
|
|
449
|
+
return new EcfrAdapter('FDA_CFR_11', 21, [11], {
|
|
450
|
+
full_name: 'FDA Electronic Records and Electronic Signatures',
|
|
451
|
+
citation: '21 CFR Part 11',
|
|
452
|
+
effective_date: '1997-08-20',
|
|
453
|
+
jurisdiction: 'federal',
|
|
454
|
+
regulation_type: 'rule'
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Factory function to create EPA RMP adapter
|
|
459
|
+
* Risk Management Plan Rule
|
|
460
|
+
*/
|
|
461
|
+
export function createEpaRmpAdapter() {
|
|
462
|
+
return new EcfrAdapter('EPA_RMP', 40, [68], {
|
|
463
|
+
full_name: 'EPA Risk Management Plan Rule',
|
|
464
|
+
citation: '40 CFR Part 68',
|
|
465
|
+
effective_date: '2017-01-13',
|
|
466
|
+
jurisdiction: 'federal',
|
|
467
|
+
regulation_type: 'rule'
|
|
468
|
+
});
|
|
354
469
|
}
|
|
355
470
|
//# sourceMappingURL=ecfr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr.js","sourceRoot":"","sources":["../../../src/ingest/adapters/ecfr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ecfr.js","sourceRoot":"","sources":["../../../src/ingest/adapters/ecfr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FFIEC Adapter - Seed-based for v1.1
|
|
3
|
+
* TODO: Implement PDF scraping for automated updates
|
|
4
|
+
*
|
|
5
|
+
* Source: FFIEC IT Examination Handbook
|
|
6
|
+
* URL: https://www.ffiec.gov/examination.htm
|
|
7
|
+
*/
|
|
8
|
+
import { SourceAdapter, RegulationMetadata, Section, Definition, UpdateStatus } from '../framework.js';
|
|
9
|
+
/**
|
|
10
|
+
* Seed-based adapter for FFIEC Guidelines
|
|
11
|
+
*
|
|
12
|
+
* Future enhancement: Implement PDF scraping from ffiec.gov
|
|
13
|
+
* The IT Examination Handbook is published as a collection of PDF booklets
|
|
14
|
+
*/
|
|
15
|
+
export declare class FfiecAdapter implements SourceAdapter {
|
|
16
|
+
private seedPath;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Fetch regulation metadata from seed file
|
|
20
|
+
*/
|
|
21
|
+
fetchMetadata(): Promise<RegulationMetadata>;
|
|
22
|
+
/**
|
|
23
|
+
* Fetch sections from seed file
|
|
24
|
+
* Returns all sections in a single batch
|
|
25
|
+
*/
|
|
26
|
+
fetchSections(): AsyncGenerator<Section[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Extract definitions (not implemented for seed-based adapter)
|
|
29
|
+
* Future: Extract from PDF glossary sections
|
|
30
|
+
*/
|
|
31
|
+
extractDefinitions(): Promise<Definition[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Check for updates (not implemented for seed-based adapter)
|
|
34
|
+
* Future: Check PDF publication dates on ffiec.gov
|
|
35
|
+
*/
|
|
36
|
+
checkForUpdates(lastFetched: Date): Promise<UpdateStatus>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Factory function to create FFIEC adapter
|
|
40
|
+
*/
|
|
41
|
+
export declare function createFfiecAdapter(): FfiecAdapter;
|
|
42
|
+
//# sourceMappingURL=ffiec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffiec.d.ts","sourceRoot":"","sources":["../../../src/ingest/adapters/ffiec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQvG;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAS;;IAMzB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IASlD;;;OAGG;IACI,aAAa,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;IAKjD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjD;;;OAGG;IACG,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;CAOhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FFIEC Adapter - Seed-based for v1.1
|
|
3
|
+
* TODO: Implement PDF scraping for automated updates
|
|
4
|
+
*
|
|
5
|
+
* Source: FFIEC IT Examination Handbook
|
|
6
|
+
* URL: https://www.ffiec.gov/examination.htm
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync } from 'fs';
|
|
9
|
+
import { join, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
/**
|
|
14
|
+
* Seed-based adapter for FFIEC Guidelines
|
|
15
|
+
*
|
|
16
|
+
* Future enhancement: Implement PDF scraping from ffiec.gov
|
|
17
|
+
* The IT Examination Handbook is published as a collection of PDF booklets
|
|
18
|
+
*/
|
|
19
|
+
export class FfiecAdapter {
|
|
20
|
+
seedPath;
|
|
21
|
+
constructor() {
|
|
22
|
+
this.seedPath = join(__dirname, '../../../data/seed/ffiec.json');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fetch regulation metadata from seed file
|
|
26
|
+
*/
|
|
27
|
+
async fetchMetadata() {
|
|
28
|
+
const seed = JSON.parse(readFileSync(this.seedPath, 'utf-8'));
|
|
29
|
+
return {
|
|
30
|
+
...seed.regulation,
|
|
31
|
+
source_url: 'https://www.ffiec.gov/examination.htm',
|
|
32
|
+
last_amended: seed.regulation.effective_date
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Fetch sections from seed file
|
|
37
|
+
* Returns all sections in a single batch
|
|
38
|
+
*/
|
|
39
|
+
async *fetchSections() {
|
|
40
|
+
const seed = JSON.parse(readFileSync(this.seedPath, 'utf-8'));
|
|
41
|
+
yield seed.sections;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract definitions (not implemented for seed-based adapter)
|
|
45
|
+
* Future: Extract from PDF glossary sections
|
|
46
|
+
*/
|
|
47
|
+
async extractDefinitions() {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check for updates (not implemented for seed-based adapter)
|
|
52
|
+
* Future: Check PDF publication dates on ffiec.gov
|
|
53
|
+
*/
|
|
54
|
+
async checkForUpdates(lastFetched) {
|
|
55
|
+
return {
|
|
56
|
+
hasChanges: false,
|
|
57
|
+
lastModified: new Date(),
|
|
58
|
+
changes: []
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Factory function to create FFIEC adapter
|
|
64
|
+
*/
|
|
65
|
+
export function createFfiecAdapter() {
|
|
66
|
+
return new FfiecAdapter();
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ffiec.js.map
|