Release as 0.5.0, and file issues on the GitHub mirror

This commit is contained in:
2026-09-14 14:09:58 +02:00
parent 773db43305
commit e8558aa471
4 changed files with 17 additions and 13 deletions
+10 -9
View File
@@ -5,7 +5,7 @@ Guidance for LLM agents working in this repository. What each file in it is for
## What this is
A ground-up TypeScript rewrite of `larvitsmpp` 0.4.0, published as `@larvit/smpp` 1.0.0. The branch
A ground-up TypeScript rewrite of `larvitsmpp` 0.4.0, published as `@larvit/smpp` 0.5.0. The branch
started from an orphan commit — no history from 0.4.0 is carried over. The 0.4.0 source is still
readable on the `v0.4.0` branch of the same repository and is the reference for protocol behaviour,
not for structure or style.
@@ -338,14 +338,15 @@ Grouped by what each one constrains.
What settles it here is the resolved text rather than the parameter, because `writeParams()`
substitutes the field's own default: a peer that omits `message_id` and one that writes it empty
build the same octets, leaving a raw-parameter test nothing to tell apart. Rejected: keeping `''`
and documenting it, which leaves the published type promising what the value does not keep —
goal 2, a wrong answer about what the peer named. Rejected: dropping the unnamed entries, which
breaks the positional correspondence with `pduObjs` that README promises and loses which segment a
PDU belongs to. Rejected: `{ id?: string; pduObj: PduObject }[]`, which makes that positional
promise structural where today the compiler cannot check it; deferred to the next major, the first
place two documented fields may become one. Accepted: every consumer reading `smsIds` narrows,
including the majority whose SMSC names every id; indexing narrows too, except for the consumer
who sets `noUncheckedIndexedAccess`, which typed `smsIds[0]` as `string | undefined` already.
and documenting it, which leaves the published type promising what the value does not keep — goal
2, a wrong answer about what the peer named. Rejected: dropping the unnamed entries, which breaks
the positional correspondence with `pduObjs` that README promises and loses which segment a PDU
belongs to. Rejected: `{ id?: string; pduObj: PduObject }[]`, which makes that positional promise
structural where today the compiler cannot check it; deferred to the next breaking release, the
first place two documented fields may become one. Accepted: every consumer reading `smsIds`
narrows, including the majority whose SMSC names every id; indexing narrows too, except for the
consumer who sets `noUncheckedIndexedAccess`, which typed `smsIds[0]` as `string | undefined`
already.
### The wire
+1 -1
View File
@@ -1,6 +1,6 @@
# Migrating from larvitsmpp 0.4.0
`@larvit/smpp` 1.0.0 succeeds [larvitsmpp](https://www.npmjs.com/package/larvitsmpp) 0.4.0. The
`@larvit/smpp` 0.5.0 succeeds [larvitsmpp](https://www.npmjs.com/package/larvitsmpp) 0.4.0. The
shape is the same, connect, send, listen for delivery reports, with callbacks replaced by promises.
## API changes
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@larvit/smpp",
"version": "1.0.0",
"version": "0.5.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@larvit/smpp",
"version": "1.0.0",
"version": "0.5.0",
"license": "MIT",
"devDependencies": {
"@eslint/js": "10.0.1",
+4 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@larvit/smpp",
"version": "1.0.0",
"version": "0.5.0",
"description": "SMPP 3.4 client and server for Node.js with the session layer built in: keepalive, reconnect, send window, long messages and delivery receipts",
"keywords": [
"esm",
@@ -10,6 +10,9 @@
"typescript"
],
"homepage": "https://gitea.larvit.se/larvit/smpp-js",
"bugs": {
"url": "https://github.com/larvit/smpp-js/issues"
},
"repository": {
"type": "git",
"url": "git+https://gitea.larvit.se/larvit/smpp-js.git"