{"_id":"@deterministic-code/specifications","_rev":"3-0dcdf5f7ea513438c724842b8a8470e1","name":"@deterministic-code/specifications","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@deterministic-code/specifications","version":"0.1.0","keywords":["deterministic","codegen","json-schema","openapi","contract"],"license":"MIT","_id":"@deterministic-code/specifications@0.1.0","maintainers":[{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"}],"homepage":"https://github.com/deterministic-code/deterministic-specifications#readme","bugs":{"url":"https://github.com/deterministic-code/deterministic-specifications/issues"},"dist":{"shasum":"667b50c0be5234e986e20d7addbc8c710f1437dc","tarball":"https://registry.npmjs.org/@deterministic-code/specifications/-/specifications-0.1.0.tgz","fileCount":9,"integrity":"sha512-0PGbk6VBBCSiAgHWBXi6ZW3j7ssg+mmaw9YQ3pXyl8xPsJ5czHjNNAc4jlBh1ZGBS8SS+MfYDndji+XwbCEVcg==","signatures":[{"sig":"MEYCIQDgrbxJvrcecnY1QD/tpojR3ByLB3XZVxgM+ujqaAafywIhAOaAinNajpXCA8UKy+iDuLWkklQo3561vwbiP5ZzTAzX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57814},"type":"module","engines":{"node":">=18"},"gitHead":"a44c79270eb53423cdc6bf86dd5f036330d622d3","_npmUser":{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"},"repository":{"url":"git+https://github.com/deterministic-code/deterministic-specifications.git","type":"git"},"_npmVersion":"11.16.0","description":"Canonical YAML contract (JSON Schema) for the deterministic code generator: the specs consumers author against and emitters read.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/specifications_0.1.0_1786765894951_0.9512774995742488","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@deterministic-code/specifications","version":"0.2.0","keywords":["deterministic","codegen","json-schema","openapi","contract"],"license":"MIT","_id":"@deterministic-code/specifications@0.2.0","maintainers":[{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"}],"homepage":"https://github.com/deterministic-code/deterministic-specifications#readme","bugs":{"url":"https://github.com/deterministic-code/deterministic-specifications/issues"},"dist":{"shasum":"5c57a1c9a06f22e08126ec45af00e1b7cd2a8c10","tarball":"https://registry.npmjs.org/@deterministic-code/specifications/-/specifications-0.2.0.tgz","fileCount":9,"integrity":"sha512-bosf3ua418F4cTCgKwFvFEuUVRbzMGfQCVBflhr1w3Jb2v2r/nBHNqD3Fvun9gdf6682gPy48V0dyoNzVywwjg==","signatures":[{"sig":"MEQCIA1x9FVhd5oj/MNhB6NYVHWW9c4K6K1kJIezd3KZJOg0AiB/8yQABrByrrm8ZWYcuIbZgb+BCj/6Jw9c8uloh9AtLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57814},"type":"module","engines":{"node":">=18"},"gitHead":"f745f5bfe8c148c6c6da0059147ca7ff74494259","_npmUser":{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"},"repository":{"url":"git+https://github.com/deterministic-code/deterministic-specifications.git","type":"git"},"_npmVersion":"11.16.0","description":"Canonical YAML contract (JSON Schema) for the deterministic code generator: the specs consumers author against and emitters read.","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/specifications_0.2.0_1786766108249_0.8354059650240564","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@deterministic-code/specifications","version":"0.3.0","description":"Canonical YAML contract (JSON Schema) for the deterministic code generator: the specs consumers author against and emitters read.","license":"MIT","type":"module","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deterministic-code/deterministic-specifications.git"},"keywords":["deterministic","codegen","json-schema","openapi","contract"],"engines":{"node":">=18"},"gitHead":"0d790789c99c67cd380d829001a8e7e9b6ec7ba2","_id":"@deterministic-code/specifications@0.3.0","bugs":{"url":"https://github.com/deterministic-code/deterministic-specifications/issues"},"homepage":"https://github.com/deterministic-code/deterministic-specifications#readme","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-qwZfKrvbaKil25e+je7bFTDWwrk7PexkW5+eNwm9SOw+5Hy7M60sq/FtlpEVQEcmqFhR+MjonOfiBPlWgHoaAQ==","shasum":"b800b507cfcec036a2b39a8fbf5ab7e1f74eeaad","tarball":"https://registry.npmjs.org/@deterministic-code/specifications/-/specifications-0.3.0.tgz","fileCount":9,"unpackedSize":57938,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDXk2/1aKhyRHaIKiXMTsxt7B5TFfVgt04dCchinCWIuQIhALL68eQSSDdcIPhB3fdE6pkhfchAlS6ZCNo12tqenliI"}]},"_npmUser":{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"},"directories":{},"maintainers":[{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/specifications_0.3.0_1786767544805_0.19312505686466253"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-15T03:51:34.761Z","modified":"2026-08-15T04:19:05.162Z","0.1.0":"2026-08-15T03:51:35.107Z","0.2.0":"2026-08-15T03:55:08.409Z","0.3.0":"2026-08-15T04:19:04.961Z"},"bugs":{"url":"https://github.com/deterministic-code/deterministic-specifications/issues"},"license":"MIT","homepage":"https://github.com/deterministic-code/deterministic-specifications#readme","keywords":["deterministic","codegen","json-schema","openapi","contract"],"repository":{"type":"git","url":"git+https://github.com/deterministic-code/deterministic-specifications.git"},"description":"Canonical YAML contract (JSON Schema) for the deterministic code generator: the specs consumers author against and emitters read.","maintainers":[{"name":"rmcfadden25","email":"ryanpmcfadden@gmail.com"}],"readme":"# deterministic-specifications\n\nThe canonical YAML contract for the [deterministic](https://github.com/rmcfadden/deterministic) code generator. Each file under [`backend/`](./backend) and [`frontend/`](./frontend) is a strict [JSON Schema](https://json-schema.org/) (draft 2020-12, authored in YAML) that defines the shape of one authored `deterministic/*.yaml` file — the source of truth consumers author against and emitters read.\n\n## The specs\n\n| Spec | Governs | Purpose |\n| --- | --- | --- |\n| [`backend/datasource-types.spec.yaml`](backend/datasource-types.spec.yaml) | `datasource_types.yaml` | The physical data model — tables, fields, indexes, seeds, FKs. |\n| [`backend/view-types.spec.yaml`](backend/view-types.spec.yaml) | `view_types.yaml` | View shapes composed from datasource tables and other views. |\n| [`backend/routes.spec.yaml`](backend/routes.spec.yaml) | `routes.yaml` | The HTTP route surface. |\n| [`backend/services.spec.yaml`](backend/services.spec.yaml) | `services.yaml` | Service classes resolved via DI at app bootstrap. |\n| [`backend/app.spec.yaml`](backend/app.spec.yaml) | `backend-app.yaml` | Express app bootstrap — middleware, statics, tail handlers. |\n| [`frontend/bindings.spec.yaml`](frontend/bindings.spec.yaml) | `frontend_bindings.yaml` | External datasources a frontend binds to (REST/GraphQL). |\n\n## Conventions\n\n- Every schema is `additionalProperties: false` — unknown keys are rejected so typos fail loudly rather than being silently ignored.\n- Shared identifier patterns (`^[a-z_][a-z0-9_]*$`), the `file:`/`id:`/`uuid:`/`user_id+name` include machinery, and the `combine_options` merge transforms recur across several specs.\n- Schema shape is only the first gate; several specs pair with a semantic layer (cross-document reference checks, merged-settings validation) in the consuming generator.\n\n## Versioning\n\nThese are contract files: adding a field, key, `x-` extension, or op annotation is a deliberate contract change — every emitter that reads the spec must honor it. Treat changes here as breaking until every consumer is updated.\n","readmeFilename":"README.md"}