speckl/out/KafkaKRaft.specbom.spdx.json
Scott Scoble 8b520284cb TS generator: fix #12 (5 expression patterns) + #11 (opaque record types)
#12: All 5 untranslated SpeckDL patterns now emit valid JS:
  - notIn → !.has(), old() → drop, union → Set spread,
    set diff → filter, append() → [...X, Y], length() → .length
  - ==/!= operator replacement fixed (word-boundary regression)
  - Postcondition object comparisons get @ts-expect-error TS2839

#11: Generator auto-detects opaque identifier types used in state
  variables and action params, emits 'type X = any' before class.
  - State properties use ! (non-null assertion) for strict mode

TigerBeetleLedger → tsc --noEmit = 0 errors. 37/37 tests pass.
2026-05-11 10:16:15 -07:00

69 lines
No EOL
1.6 KiB
JSON

{
"@context": [
"https://spdx.github.io/spdx-v3/spdx-context.jsonld",
{
"speckl": "https://speckl.scoble.me/ns/v0.2#"
}
],
"@type": "spdx:Document",
"spdx": {
"@id": "spdx:KafkaKRaft",
"@type": "spdx:Snippet",
"name": "KafkaKRaft",
"spdxVersion": "3.0.1",
"dataLicense": "CC0-1.0",
"creationInfo": {
"created": "2026-05-10T09:08:14.915Z",
"createdBy": [
"Organization: Speckl",
"tool: speckl-compile-0.2.0"
]
},
"annotations": [
{
"@type": "spdx:Annotation",
"annotationType": "spdx:REVIEW",
"annotator": {
"@type": "spdx:Tool",
"name": "speckl-compile"
},
"timestamp": "2026-05-10T09:08:14.915Z",
"comment": "Review type: hybrid"
}
]
},
"builtBy": [],
"relationships": [
{
"from": {
"@id": "spdx:KafkaKRaft"
},
"to": {
"@id": "spdx:agent:Speckl Compiler v0.3"
},
"relationshipType": "spdx:wasAttributedTo"
},
{
"from": {
"@id": "spdx:KafkaKRaft"
},
"to": {
"@id": "spdx:source:architecture_review:KRaft-Core-Consensus"
},
"relationshipType": "spdx:wasInformedBy"
}
],
"elements": [
{
"@type": "spdx:Person",
"@id": "spdx:agent:Speckl Compiler v0.3",
"name": "Speckl Compiler v0.3"
},
{
"@type": "spdx:Activity",
"@id": "spdx:source:architecture_review:KRaft-Core-Consensus",
"name": "architecture_review - KRaft-Core-Consensus",
"type": "architecture_review"
}
]
}