@ansvar/singapore-law-mcp
Version:
Complete Singapore law database — 523 Acts, 28K+ provisions from Singapore Statutes Online (sso.agc.gov.sg) with full-text search, definitions, and citation support
46 lines • 1.68 kB
JavaScript
/**
* get_singapore_implementations — Find Singapore statutes implementing a specific EU directive/regulation
* or international framework.
*
* Singapore is not an EU member but many Singapore laws align with or reference
* EU regulations (e.g., PDPA aligns with GDPR) and international frameworks (ASEAN).
*/
import { generateResponseMetadata } from '../utils/metadata.js';
export async function getSingaporeImplementations(db, input) {
try {
db.prepare('SELECT 1 FROM eu_references LIMIT 1').get();
}
catch {
return {
results: [],
_metadata: {
...generateResponseMetadata(db),
...{ note: 'EU/international references not available in this database tier' },
},
};
}
let sql = `
SELECT
ld.id as document_id,
ld.title as document_title,
ld.status,
er.reference_type,
MAX(er.implementation_status) as implementation_status,
MAX(er.is_primary_implementation) as is_primary,
COUNT(*) as reference_count
FROM eu_references er
JOIN legal_documents ld ON ld.id = er.document_id
WHERE er.eu_document_id = ?
`;
const params = [input.eu_document_id];
if (input.primary_only) {
sql += ' AND er.is_primary_implementation = 1';
}
if (input.in_force_only) {
sql += " AND ld.status = 'in_force'";
}
sql += ' GROUP BY ld.id, er.reference_type ORDER BY is_primary DESC, reference_count DESC';
const rows = db.prepare(sql).all(...params);
return { results: rows, _metadata: generateResponseMetadata(db) };
}
//# sourceMappingURL=get-singapore-implementations.js.map