{"_id":"@drc10101_bedrock_sdk/bedrock-sdk","name":"@drc10101_bedrock_sdk/bedrock-sdk","dist-tags":{"latest":"0.3.2"},"versions":{"0.3.2":{"name":"@drc10101_bedrock_sdk/bedrock-sdk","version":"0.3.2","description":"Bedrock SDK — Identity-based security framework for TypeScript/JavaScript. Every node is a user. Everything between is encrypted at rest.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"jest --coverage","test:watch":"jest --watch","lint":"eslint src/ --ext .ts","clean":"rm -rf dist/","prepack":"npm run build"},"keywords":["security","encryption","identity","e2ee","consent","audit","compliance","bedrock","infill"],"author":{"name":"InFill Systems, LLC"},"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git+https://github.com/drc10101/bedrock.git","directory":"sdk-ts"},"bugs":{"url":"https://github.com/drc10101/bedrock/issues"},"homepage":"https://github.com/drc10101/bedrock#readme","private":false,"publishConfig":{"access":"public"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^20.0.0","jest":"^29.7.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","eslint":"^8.0.0"},"dependencies":{},"_id":"@drc10101_bedrock_sdk/bedrock-sdk@0.3.2","gitHead":"1285edfc11e25fab8d3bd03dea0ede7db8099c12","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-TY2JbCCEBte4V4Ue2n4SYN5ZqCN2W+2dM8rrb7sJ2NyBIfQrzAFzIYIM/xE0BBuJki+eCOAyreSzOSkw2df8iA==","shasum":"bd5efc8257e64d043764e1275db79c117fc57e88","tarball":"https://registry.npmjs.org/@drc10101_bedrock_sdk/bedrock-sdk/-/bedrock-sdk-0.3.2.tgz","fileCount":47,"unpackedSize":143626,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCS4phneAVQQUKEub4Lr5JRtsNt7P96Qf5fSx0uv4AZsQIgFx7EalHZMjNkkK561FdqhkaHcMv3dBbI3rX+NmH9sSE="}]},"_npmUser":{"name":"drc10101","email":"drc10101@gmail.com"},"directories":{},"maintainers":[{"name":"drc10101","email":"drc10101@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bedrock-sdk_0.3.2_1782944833785_0.31989023712555587"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T22:27:13.655Z","0.3.2":"2026-07-01T22:27:13.923Z","modified":"2026-07-01T22:27:14.256Z"},"maintainers":[{"name":"drc10101","email":"drc10101@gmail.com"}],"description":"Bedrock SDK — Identity-based security framework for TypeScript/JavaScript. Every node is a user. Everything between is encrypted at rest.","homepage":"https://github.com/drc10101/bedrock#readme","keywords":["security","encryption","identity","e2ee","consent","audit","compliance","bedrock","infill"],"repository":{"type":"git","url":"git+https://github.com/drc10101/bedrock.git","directory":"sdk-ts"},"author":{"name":"InFill Systems, LLC"},"bugs":{"url":"https://github.com/drc10101/bedrock/issues"},"license":"SEE LICENSE IN LICENSE","readme":"# Bedrock TypeScript SDK\n\nIdentity-based security framework for TypeScript/JavaScript. Every node is a user. Everything between is encrypted at rest.\n\n**Licensed under BSL-1.1 — See [LICENSE](../LICENSE) for details.**\n\n## Installation\n\n```bash\nnpm install @bedrock/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { BedrockClient } from '@bedrock/sdk';\n\nconst client = new BedrockClient({ mode: 'developer' });\nawait client.init(); // Initialize crypto subsystem\n\n// Register a node\nconst node = client.identity.register('my-service');\n\n// Encrypt data\nconst ciphertext = await client.encryption.encrypt(\n  'sensitive data',\n  'medical',   // silo\n  'record-001', // record ID\n  'read',       // scope\n  'field',      // operation\n);\n\n// Decrypt\nconst plaintext = await client.encryption.decrypt(ciphertext, 'medical', 'record-001', 'read', 'field');\n\n// Request consent for cross-silo access\nconst consentId = client.data.requestConsent(node.nodeId.uuid, 'medical', 'identity', ['identity']);\nclient.data.approveConsent(consentId, 'owner-1');\n\n// Audit everything\nawait client.audit.log('data.read', node.nodeId.uuid, 'record-001', 'medical');\n\n// Verify chain integrity\nconst valid = await client.verifyIntegrity();\n```\n\n## Modules\n\n### Identity\n- `register(name)` — Create a node\n- `get(nodeId)` — Look up a node\n- `unregister(nodeId)` — Remove a node\n- `issueCertificate(nodeUuid, name, publicKeyHash)` — Issue a certificate\n- `revokeCertificate(nodeUuid, reason)` — Revoke a certificate\n- `createScope(nodeId, categories)` — Create a capability scope\n\n### Encryption\n- `encrypt(plaintext, silo, recordId, scope, operation)` — Field-level encrypt\n- `decrypt(ciphertext, silo, recordId, scope, operation)` — Field-level decrypt\n- `generateKeyPair()` — Generate ECDH key pair for E2EE\n- `rotateMasterKey()` — Rotate the master encryption key\n\n### Data\n- `requestConsent(requestor, sourceSilo, targetSilo, categories, scope, reason)` — Request cross-silo access\n- `approveConsent(consentId, dataOwner, ttl)` — Approve a consent request\n- `checkConsent(consentId)` — Check if consent is valid\n- `revokeConsent(consentId)` — Revoke consent\n- `createAnonymousId(realId, silo)` — Create an anonymous mapping\n- `resolveAnonymousId(anonId)` — Resolve anonymous ID back to real identity\n- `removeIdentity(realId)` — Remove all mappings (right to be forgotten)\n\n### Audit\n- `log(action, actorId, targetId, silo, details?)` — Log an event\n- `verify()` — Verify entire chain integrity\n- `query(filters?)` — Query with action/actor/silo filters\n- `export()` — Export chain as JSONL\n\n### Access\n- `createUser(username, password, role)` — Create a user account\n- `authenticate(username, password, portal)` — Authenticate and create session\n- `checkPermission(session, permission)` — Check if session has permission\n- `verifyMfa(sessionId, code)` — Verify MFA code\n- `endSession(sessionId)` — End a session\n\n### Transport\n- `tls.configureTLS(mode, certPath, keyPath, caCertPath)` — Configure TLS\n- `tls.detectDowngrade(headers)` — Detect TLS downgrade attacks\n- `mesh.registerNode(node, scope?)` — Register a node in the mesh\n- `mesh.flagNode(source, target, signalType)` — Flag a node for suspicious behavior\n- `mesh.processFlags()` — Process flags and quarantine nodes\n- `mesh.beginHealing(nodeId, reason)` — Begin healing a quarantined node\n- `mesh.completeHealing(nodeId)` — Restore a healed node to active\n\n## Configuration\n\n```typescript\n// Developer mode — self-signed certs, 3 nodes max, TLS 1.2\nconst client = new BedrockClient({ mode: 'developer' });\n\n// Production mode — CA-signed certs, unlimited nodes, TLS 1.3\nconst client = new BedrockClient({ mode: 'production' });\n```\n\n## License\n\nProprietary. See LICENSE file.","readmeFilename":"README.md","_rev":"1-c3964eb71ba58732987889e49b133167"}