Type each known TLV's value by its tag, on read and on write #30

Merged
lilleman merged 14 commits from tlv-types into main 2026-09-27 16:48:06 +02:00
Owner

pduObj.tlvs and every tlvs input are typed per tag (Tlvs, TlvInputs), derived from the TLV table's wire types and multiple flag. A TLV input is keyed by its name, or by its decimal id where the table names none; a tagId that disagrees with its key, the alternate names, and a number for an octet TLV are refused, and a parsed PDU's tlvs relay as they are. TLV octets are copied at parse. Exports Tlvs, TlvInputs, Tlv, isTlvName; TlvInput is gone.

`pduObj.tlvs` and every `tlvs` input are typed per tag (`Tlvs`, `TlvInputs`), derived from the TLV table's wire types and `multiple` flag. A TLV input is keyed by its name, or by its decimal id where the table names none; a `tagId` that disagrees with its key, the alternate names, and a number for an octet TLV are refused, and a parsed PDU's `tlvs` relay as they are. TLV octets are copied at parse. Exports `Tlvs`, `TlvInputs`, `Tlv`, `isTlvName`; `TlvInput` is gone.
lilleman added 1 commit 2026-09-27 15:12:09 +02:00
Type each known TLV's value by its tag, on read and on write
Test / lint (pull_request) Successful in 32s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 38s
Test / test (26) (pull_request) Successful in 30s
Mirror / push (push) Successful in 4s
75d4794522
lilleman added 1 commit 2026-09-27 15:18:08 +02:00
Key a TLV input like the read side, drop tagId, copy TLV octets at parse, and export only Tlvs, TlvInputs and Tlv
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 29s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 37s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 38s
939eda7269
lilleman added 1 commit 2026-09-27 15:18:49 +02:00
Read a named tag's definition once in tagIdOf()
Mirror / push (push) Successful in 4s
Test / lint (pull_request) Successful in 23s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 31s
c4b0437323
lilleman added 1 commit 2026-09-27 15:25:50 +02:00
Refuse a TLV input that is no { tagValue }, and the alternate tag names, keep numbers out of octet TLVs, and pin that a TLV is copied off its chunk
Mirror / push (push) Has been cancelled
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 30s
Test / lint (pull_request) Successful in 22s
Test / test (22) (pull_request) Successful in 39s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 32s
138464ad0f
lilleman added 1 commit 2026-09-27 15:27:25 +02:00
Drop an assertion that always passes, and reflow a decision
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 27s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 39s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 38s
Test / test (26) (pull_request) Successful in 31s
58e622143b
lilleman added 1 commit 2026-09-27 15:29:32 +02:00
Relay a parsed PDU's TLVs as they are, refuse only a tagId that disagrees with its key, and refuse a number for an octet TLV
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 22s
Test / test (18) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 39s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 36s
cda8e9b112
lilleman added 1 commit 2026-09-27 15:31:21 +02:00
Read an undefined tagId as absent
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 31s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 36s
9379212c68
lilleman added 1 commit 2026-09-27 15:33:35 +02:00
Word a disagreeing tagId as a mismatch, and record how a TLV input is keyed
Mirror / push (push) Has been cancelled
Test / test (18) (pull_request) Successful in 31s
Test / lint (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 37s
01891bc764
lilleman added 1 commit 2026-09-27 15:36:58 +02:00
Drop the alternate TLV names from tlvs, correct the false doc claims the prose pass found, and file the moves
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 36s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 30s
Test / test (18) (pull_request) Successful in 30s
9fb8f348c8
lilleman added 1 commit 2026-09-27 15:38:09 +02:00
Type tlvs by its own names, so a dropped alternate fails to compile
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 22s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 29s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 34s
Test / test (26) (pull_request) Successful in 30s
ac6206dfec
lilleman added 1 commit 2026-09-27 15:38:18 +02:00
Say tlvs is typed by TlvName
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 22s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 31s
4094949917
lilleman added 1 commit 2026-09-27 15:39:43 +02:00
Export isTlvName, so a string can be narrowed into tlvs
Test / lint (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 30s
Mirror / push (push) Successful in 5s
Test / test (18) (pull_request) Successful in 34s
Test / test (26) (pull_request) Successful in 35s
dd09a27dc6
lilleman marked the pull request as ready for review 2026-09-27 15:57:27 +02:00
lilleman added 1 commit 2026-09-27 16:41:48 +02:00
Record #30 merging under the comprehension floor, and put Locality first in 0.6.0
Mirror / push (push) Successful in 5s
Test / lint (pull_request) Successful in 23s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 30s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 31s
9724dd1751
lilleman added 1 commit 2026-09-27 16:41:53 +02:00
Reflow the under-floor decision
Test / lint (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 31s
Test / test (18) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 31s
Mirror / push (push) Successful in 4s
ac9cb40d69
lilleman merged commit ac9cb40d69 into main 2026-09-27 16:48:06 +02:00
lilleman deleted branch tlv-types 2026-09-27 16:48:06 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: larvit/smpp-js#30