{"_id":"@codeforamerica/blueprint-core","_rev":"4-779fba4543293bc69d2d5d10543a9a6c","name":"@codeforamerica/blueprint-core","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@codeforamerica/blueprint-core","version":"0.1.0","license":"SEE LICENSE IN LICENSE","_id":"@codeforamerica/blueprint-core@0.1.0","maintainers":[{"name":"fritzjooste","email":"fritz@fritzjooste.com"},{"name":"alice-sjconsulting","email":"alice@sjconsulting.us"},{"name":"devowhippit","email":"dhirth@codeforamerica.org"},{"name":"chriscorrea","email":"ccorrea@codeforamerica.org"},{"name":"mryhmln","email":"mhamlin@codeforamerica.org"},{"name":"lkacenjar","email":"lkacenjar@codeforamerica.org"}],"homepage":"https://github.com/codeforamerica/safety-net-blueprint#readme","bugs":{"url":"https://github.com/codeforamerica/safety-net-blueprint/issues"},"dist":{"shasum":"6db671e1e6e06cd3d4b838941d227685429de67f","tarball":"https://registry.npmjs.org/@codeforamerica/blueprint-core/-/blueprint-core-0.1.0.tgz","fileCount":24,"integrity":"sha512-87Bgl1COpSdyp4o52uexpUyMcvKjEFnnlxhjC+xMvDS+p3YqAdT7t+usm2cqZz7vjWq8lagB5gND98u1NHW2QQ==","signatures":[{"sig":"MEUCIDZRaN3VCvmTKX8W1wJEC2sJoYACCJ5CjnAMdnjrdou+AiEAy3d/CPvVJ6UCmRM9gNWAx6a9t5NlaxUvxpVRIStAuYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270699},"type":"module","engines":{"node":">=22.11.0"},"exports":{".":"./src/index.js","./bundle":"./src/bundle.js","./config":"./src/overlay/config.js","./loader":"./src/validation/openapi-loader.js","./overlay":"./src/overlay/overlay-resolver.js","./patterns":"./src/validation/pattern-validator.js","./policies":"./src/policies.js","./validation":"./src/validation/openapi-validator.js","./annotations":"./src/annotations.js","./compositions":"./src/compositions.js","./relationships":"./src/relationships.js","./state-machines":"./src/state-machines.js","./example-validator":"./src/validation/example-validator.js","./state-machine-validator":"./src/validation/state-machine-validator.js"},"gitHead":"a5017065a6e126c02d22f04114ebc1e768a2254b","scripts":{"test":"node --test tests/unit/*.test.js","test:unit":"node --test tests/unit/*.test.js"},"_npmUser":{"name":"mryhmln","email":"mhamlin@codeforamerica.org"},"repository":{"url":"git+https://github.com/codeforamerica/safety-net-blueprint.git","type":"git","directory":"packages/blueprint-core"},"_npmVersion":"10.9.8","description":"Blueprint framework core — contract resolution and validation","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.12.0","js-yaml":"^4.1.0","pluralize":"^8.0.0","ajv-formats":"^3.0.1","@apidevtools/json-schema-ref-parser":"^11.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/blueprint-core_0.1.0_1789143683437_0.25830841548502526","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@codeforamerica/blueprint-core","version":"0.1.1","license":"SEE LICENSE IN LICENSE","_id":"@codeforamerica/blueprint-core@0.1.1","maintainers":[{"name":"fritzjooste","email":"fritz@fritzjooste.com"},{"name":"alice-sjconsulting","email":"alice@sjconsulting.us"},{"name":"devowhippit","email":"dhirth@codeforamerica.org"},{"name":"chriscorrea","email":"ccorrea@codeforamerica.org"},{"name":"mryhmln","email":"mhamlin@codeforamerica.org"},{"name":"lkacenjar","email":"lkacenjar@codeforamerica.org"}],"homepage":"https://github.com/codeforamerica/safety-net-blueprint#readme","bugs":{"url":"https://github.com/codeforamerica/safety-net-blueprint/issues"},"dist":{"shasum":"bc7bae741bacc4babce6204c1b0ba37ef1630875","tarball":"https://registry.npmjs.org/@codeforamerica/blueprint-core/-/blueprint-core-0.1.1.tgz","fileCount":35,"integrity":"sha512-ELERa/XNWvBf7emryZX1UtYfhkuVD0Q32t/eorYmtvS0pYbhrTBH8gTygdxybZSqcQ8oXOW+MwrphD0QuDGP7w==","signatures":[{"sig":"MEUCIQC9go7Z1ZgnfM4WHeNjNV7ndxDGx568X3QmoWTPd9rtPAIgSkoaN61eGPoSOAHrO2XT2CGFDyMzbbcR5V9v7ZQHYas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCyRDRghEc4MQVwq95cTaYFE8Hj+8lrY17xKYnxiV6W/QIhAPodpRJHKFue/Dd5gm4Dl2cG0/f0W6/4gFsXDaNfZ2iN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311196},"type":"module","engines":{"node":">=22.11.0"},"exports":{".":"./src/index.js","./bundle":"./src/bundle.js","./config":"./src/overlay/config.js","./loader":"./src/validation/openapi-loader.js","./overlay":"./src/overlay/overlay-resolver.js","./patterns":"./src/validation/pattern-validator.js","./policies":"./src/policies.js","./validation":"./src/validation/openapi-validator.js","./annotations":"./src/annotations.js","./compositions":"./src/compositions.js","./relationships":"./src/relationships.js","./state-machines":"./src/state-machines.js","./example-validator":"./src/validation/example-validator.js","./state-machine-validator":"./src/validation/state-machine-validator.js"},"gitHead":"944bc41f9b9ef7407b95bff14e940b74636a76a4","scripts":{"test":"node --test tests/unit/*.test.js","test:unit":"node --test tests/unit/*.test.js"},"_npmUser":{"name":"mryhmln","email":"mhamlin@codeforamerica.org"},"repository":{"url":"git+https://github.com/codeforamerica/safety-net-blueprint.git","type":"git","directory":"packages/blueprint-core"},"_npmVersion":"10.9.8","description":"Blueprint framework core — contract resolution and validation","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.12.0","js-yaml":"^4.1.0","pluralize":"^8.0.0","ajv-formats":"^3.0.1","@apidevtools/json-schema-ref-parser":"^11.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/blueprint-core_0.1.1_1789499371022_0.9972871475030818","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-09-11T16:21:23.120Z","modified":"2026-09-16T22:36:17.694Z","0.1.0":"2026-09-11T16:21:23.595Z","0.1.1":"2026-09-15T19:09:31.177Z"},"bugs":{"url":"https://github.com/codeforamerica/safety-net-blueprint/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/codeforamerica/safety-net-blueprint#readme","repository":{"url":"git+https://github.com/codeforamerica/safety-net-blueprint.git","type":"git","directory":"packages/blueprint-core"},"description":"Blueprint framework core — contract resolution and validation","maintainers":[{"email":"fritz@fritzjooste.com","name":"fritzjooste"},{"email":"dhirth@codeforamerica.org","name":"devowhippit"},{"email":"rob.diciuccio@gmail.com","name":"robdiciuccio"},{"email":"ccorrea@codeforamerica.org","name":"chriscorrea"},{"email":"mhamlin@codeforamerica.org","name":"mryhmln"},{"email":"lkacenjar@codeforamerica.org","name":"lkacenjar"}],"readme":"# @codeforamerica/blueprint-core\n\n> Blueprint framework core — contract resolution and validation\n\n[![npm version](https://img.shields.io/npm/v/@codeforamerica/blueprint-core.svg)](https://www.npmjs.com/package/@codeforamerica/blueprint-core)\n[![license](https://img.shields.io/npm/l/@codeforamerica/blueprint-core.svg)](https://github.com/codeforamerica/safety-net-blueprint/blob/main/LICENSE)\n\n> **Pre-release:** This package is at `0.x`. Until `1.0.0`, minor versions may include breaking changes. Pin your version if stability matters.\n\n## What It Does\n\n`blueprint-core` is the domain-agnostic runtime library underlying the Blueprint toolkit. It provides the core primitives used by `blueprint-cli` and `blueprint-mock-server`. Most consumers will use those packages rather than importing `blueprint-core` directly.\n\n### Resolution\n\n| Feature | Description |\n|---------|-------------|\n| **Overlay application** | Applies overlay actions to base specs — adding, updating, or removing fields |\n| **RPC endpoint generation** | Adds RPC action paths to OpenAPI specs derived from state machine action definitions |\n| **Composition endpoints** | Adds endpoints whose responses are composed from fields across multiple resource schemas |\n| **Cross-domain relationships** | Expands foreign key fields into linked or embedded related resources on response schemas |\n| **Environment filtering** | Removes contract elements not tagged for the target deployment environment |\n| **Placeholder substitution** | Replaces `${VAR}` strings in contracts with values from an env file |\n\n### Validation\n\n| Feature | Description |\n|---------|-------------|\n| **OpenAPI** | Structural correctness and `$ref` resolution |\n| **Design patterns** | List response shapes, pagination parameters, and foreign key annotation requirements |\n| **State machines** | Within-file consistency and cross-artifact correctness — referenced fields, enum values, and endpoints |\n| **Examples** | Example data accuracy against component schemas |\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/codeforamerica/safety-net-blueprint/blob/main/packages/blueprint-core/CHANGELOG.md) for release history.\n\n## Documentation\n\nSee the [Safety Net Blueprint documentation](https://github.com/codeforamerica/safety-net-blueprint) for full guides and reference.\n\n## License\n\n[PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/)\n","readmeFilename":"README.md"}