speckl/compiler/test-output/RetryHandler.specbom.cdx.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

74 lines
No EOL
1.6 KiB
JSON

{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"components": [],
"metadata": {
"tools": [],
"component": {
"type": "application",
"name": "RetryHandler",
"version": "0.2.0",
"properties": [
{
"name": "speckl:derivesFrom",
"value": "FaultHandler"
},
{
"name": "speckl:satisfies",
"value": "RESILIENCE-REQ-01 clause 3.1.2"
},
{
"name": "speckl:satisfies",
"value": "RESILIENCE-REQ-02"
}
]
}
},
"annotations": [
{
"subject": "speck:RetryHandler",
"annotations": [
{
"type": "tag",
"value": "provenanceType",
"text": "author"
}
],
"author": {
"name": "Scott Scoble",
"email": "scott@scoble.me"
},
"timestamp": "2026-05-11T17:13:39.549Z"
},
{
"subject": "speck:RetryHandler",
"annotations": [
{
"type": "tag",
"value": "provenanceType",
"text": "source"
}
],
"author": {
"name": "Speckl Compiler",
"email": "compiler@speckl.scoble.me"
},
"timestamp": "2026-05-11T17:13:39.549Z"
},
{
"subject": "speck:RetryHandler",
"annotations": [
{
"type": "tag",
"value": "reviewType",
"text": "manual"
}
],
"author": {
"name": "Speckl Compiler",
"email": "compiler@speckl.scoble.me"
},
"timestamp": "2026-05-11T17:13:39.549Z"
}
]
}