Spell out the hand-wired ESME's bind, and where a getter-only assignment throws
Mirror / push (push) Has been cancelled
Test / test (18) (pull_request) Successful in 32s
Test / test (20) (pull_request) Successful in 31s
Test / lint (pull_request) Successful in 28s
Test / test (22) (pull_request) Successful in 32s
Test / test (24) (pull_request) Successful in 37s
Test / test (26) (pull_request) Successful in 31s

This commit is contained in:
2026-09-28 04:08:53 +02:00
parent 4bdb1e64b0
commit 2142c2e3bb
3 changed files with 8 additions and 4 deletions
+2 -1
View File
@@ -78,7 +78,8 @@
removed: read `session.boundAs !== undefined`. A session you wire yourself records the bind it
accepted or had accepted with `session.bound(bindType, declaredVersion)`, which returns `err` for a
bind type or version it cannot record. An assignment to either field does not compile in
TypeScript, and throws a `TypeError` in strict-mode JavaScript, which every module is.
TypeScript, throws a `TypeError` in an ES module or strict-mode script, and is ignored in
sloppy-mode CommonJS.
## 0.5.0
+2 -1
View File
@@ -13,7 +13,8 @@ shape is the same, connect, send, listen for delivery reports, with callbacks re
a `session` event. It no longer calls back once per connection.
- **The id a message is answered with goes to `sendResp({ smsId })`.** `sms.smsId` is read-only: the
id the segments were answered with, the id `sendResp()` was given, or the generated UUID v7.
Assigning to it throws a `TypeError`, since modules are strict mode.
Assigning to it throws a `TypeError` in an ES module or strict-mode script, and is ignored in
sloppy-mode CommonJS.
- **`smsIds` from `sendSms()` is `(string | undefined)[]`**, one entry per segment, positional with
`pduObjs`, `undefined` where the SMSC took the segment without naming an id.
- **`checkuserpass` is `authenticate`**, takes `{ password, session, systemId, systemType }` and
+4 -2
View File
@@ -429,8 +429,10 @@ const { err, pduObj } = await session.send({
end accepted it, on every link it binds. `bindType` is `receiver`, `transceiver` or `transmitter`;
`declaredVersion` is 0-255, or `undefined` where the peer declared none. Anything else returns `err`
and records nothing.
- An ESME records the bind from its `bind_resp`, in `reconnect.onConnected` on every rebind:
`session.bound('transmitter', pduObj.tlvs.sc_interface_version?.tagValue)`.
- An ESME wired by hand sends its own `bind_<bindType>` through `session.send()`, after it is
constructed and again in `reconnect.onConnected`, and records each accepted one with
`session.bound(bindType, pduObj.tlvs.sc_interface_version?.tagValue)`, where `bindType` is the one
it sent and `pduObj` the `bind_resp` that `send()` resolved with.
## Receiving in depth