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 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 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 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 ## 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. 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 - **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. 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 - **`smsIds` from `sendSms()` is `(string | undefined)[]`**, one entry per segment, positional with
`pduObjs`, `undefined` where the SMSC took the segment without naming an id. `pduObjs`, `undefined` where the SMSC took the segment without naming an id.
- **`checkuserpass` is `authenticate`**, takes `{ password, session, systemId, systemType }` and - **`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`; 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` `declaredVersion` is 0-255, or `undefined` where the peer declared none. Anything else returns `err`
and records nothing. and records nothing.
- An ESME records the bind from its `bind_resp`, in `reconnect.onConnected` on every rebind: - An ESME wired by hand sends its own `bind_<bindType>` through `session.send()`, after it is
`session.bound('transmitter', pduObj.tlvs.sc_interface_version?.tagValue)`. 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 ## Receiving in depth