
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
meta-log-db
Advanced tools
A native npm package providing core database functionality for ProLog, DataLog, and R5RS integration. This package can be npm linked into both OpenCode and Obsidian plugins to provide a common database interface.
The Meta-Log Database package (meta-log-db) provides:
The following extensions are available as optional modules. All extensions are disabled by default for backward compatibility.
Algebraic topology validation with ∂² = 0 property checking:
const db = new MetaLogDb({
enableHomology: true
});
const complex: ChainComplex = {
C0: [{ id: 'v1', dim: 0, boundary: [], data: {} }],
C1: [{ id: 'e1', dim: 1, boundary: ['v1', 'v2'], data: {} }],
C2: [],
C3: [],
C4: [],
∂: new Map([['e1', ['v1', 'v2']]])
};
const result = db.validateHomology(complex);
console.log(`Valid: ${result.valid}, Betti numbers: ${result.betti}`);
Atemporal DAG node structure with cryptographic identity:
import { MetaLogNodeManager } from 'meta-log-db/extensions/metalog-node';
const manager = new MetaLogNodeManager();
const node = await manager.createNode({
content: {
topo: { type: 'Topology', objects: {}, arcs: [] },
geo: { type: 'FeatureCollection', features: [] }
},
parent: 'genesis'
});
const isValid = await manager.verifyNode(node);
Coordinate system transformations:
import { ProjectiveAffineConverter } from 'meta-log-db/extensions/geometry';
const converter = new ProjectiveAffineConverter();
const projective = converter.affineToProjective({ x: 1, y: 2 });
const affine = converter.projectiveToAffine({ x: 1, y: 2, z: 0, w: 1 });
Directed Acyclic Graph management:
import { DAGManager } from 'meta-log-db/extensions/dag';
const manager = new DAGManager(dag);
const lca = manager.findLCA('cid1', 'cid2');
const children = manager.getChildren('cid1');
const ancestors = manager.getAncestors('cid1');
Org Mode document parsing:
const db = new MetaLogDb({
enableOrgMode: true
});
// Via R5RS functions
const ast = await db.executeR5RS('r5rs:parse-org-document', [orgContent]);
const headings = await db.executeR5RS('r5rs:extract-headings', [orgContent]);
const blocks = await db.executeR5RS('r5rs:extract-source-blocks', [orgContent]);
npm install meta-log-db
git clone https://github.com/bthornemail/meta-log-db.git
cd meta-log-db
npm install
npm run build
npm link
import { MetaLogDb } from 'meta-log-db';
const db = new MetaLogDb({
r5rsEnginePath: './r5rs-canvas-engine.scm',
enableProlog: true,
enableDatalog: true,
enableRdf: true,
enableShacl: true,
// Extensions (optional)
enableHomology: true,
enableMetaLogNode: true,
enableProjectiveAffine: true,
enableDAG: true,
enableOrgMode: true
});
// Load JSONL canvas
await db.loadCanvas('automaton-kernel.jsonl');
// Extract facts
const facts = db.extractFacts();
// ProLog query
const results = await db.prologQuery('(node ?Id ?Type)');
// DataLog query
const datalogResults = await db.datalogQuery('(missing_implementation ?N)');
// SPARQL query
const sparqlResults = await db.sparqlQuery(`
SELECT ?id ?type WHERE {
?id rdf:type ?type
}
`);
// SHACL validation
const validation = await db.validateShacl();
# Build (Node.js)
npm run build
# Build browser bundle
npm run build:browser
# Build all (Node.js + browser)
npm run build:all
# Verify browser build
npm run verify:browser
# Watch mode
npm run watch
# Test
npm test
For browser environments, use the unified CanvasLMetaverseBrowser:
import { CanvasLMetaverseBrowser } from 'meta-log-db/browser';
const browser = new CanvasLMetaverseBrowser({
enableProlog: true,
enableDatalog: true,
enableRdf: true,
enableShacl: true,
cacheStrategy: 'both', // Use both memory and IndexedDB cache
indexedDBName: 'meta-log-db',
// Extensions (optional)
enableHomology: true,
enableMetaLogNode: true,
enableProjectiveAffine: true,
enableDAG: true,
enableOrgMode: true
});
// Initialize (sets up IndexedDB, file I/O, etc.)
await browser.init();
// Load canvas from URL (path is identifier, url is fetch location)
await browser.loadCanvas('automaton-kernel.jsonl', '/jsonl/automaton-kernel.jsonl');
// Use same API as Node.js version
const facts = browser.extractFacts();
const results = await browser.prologQuery('(node ?Id ?Type)');
// Execute CanvasL objects
const canvaslResult = await browser.executeCanvasLObject({
type: 'r5rs-call',
function: 'r5rs:church-add',
args: [2, 3]
});
CanvasLMetaverseBrowser provides unified CanvasL object execution:
// Execute single CanvasL object
const result = await browser.executeCanvasLObject({
type: 'rdf-triple',
subject: 'http://example.org/s',
predicate: 'http://example.org/p',
object: 'http://example.org/o'
});
// Execute multiple CanvasL objects
const results = await browser.executeCanvasLObjects([
{ type: 'rdf-triple', subject: '...', predicate: '...', object: '...' },
{ type: 'slide', id: 'slide-1', dimension: '0D' },
{ type: 'r5rs-call', function: 'r5rs:church-add', args: [2, 3] }
]);
Supported CanvasL object types:
rdf-triple - Add RDF triple to storer5rs-call - Execute R5RS functionsparql-construct - Execute SPARQL CONSTRUCT queryprolog-query - Execute ProLog querydatalog-query - Execute DataLog queryshacl-validate - Validate with SHACLslide - Return slide object as-isFor backward compatibility, MetaLogDbBrowser is still available:
import { MetaLogDbBrowser } from 'meta-log-db/browser';
const db = new MetaLogDbBrowser({ /* config */ });
await db.init();
await db.loadCanvas('path', 'url');
# Link meta-log-db
cd meta-log-db
npm link
# Use in OpenCode plugin
cd .opencode
npm link meta-log-db
# Use in Obsidian plugin
cd .obsidian/plugins/universal-life-protocol-plugin
npm link meta-log-db
meta-log-dbMIT
FAQs
Native database package for Meta-Log (ProLog, DataLog, R5RS)
We found that meta-log-db demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.