homebridge-intratone 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,78 @@
1
+ # Changelog
2
+
3
+ All notable changes to `homebridge-intratone`. Versions follow [semver](https://semver.org/).
4
+
5
+ ## [0.2.1] - 2026-10-31
6
+
7
+ ### Changed
8
+
9
+ - `app_id` is now optional and defaults to the iOS app's value, `app_apisip_ios`. It names the
10
+ official app, not your account, so every iPhone sends the same one. Set it only with
11
+ `user_agent: android`, whose value isn't known yet. `app_token` is still required and has no
12
+ default.
13
+ - The settings form shows **App ID** as an optional plain field, with the default as its
14
+ placeholder.
15
+
16
+ ### Documentation
17
+
18
+ - Step-by-step guide to read `app_token` on the iPhone itself with Proxyman for iOS.
19
+ - Install instructions say to search the full name `homebridge-intratone` in the Homebridge UI,
20
+ because a new package ranks too low to show up for "intratone".
21
+ - Added this changelog and a developer guide ([docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)).
22
+ - The npm page now links to the GitHub repository and issue tracker.
23
+
24
+ ## [0.2.0] - 2026-10-31
25
+
26
+ ### Added
27
+
28
+ - **Matter.** On a bridge with Matter enabled (Homebridge 2), every openable door is also
29
+ exposed as a Matter door lock, next to the HomeKit accessory, for Google Home, Alexa,
30
+ SmartThings and other Matter controllers.
31
+ - *Unlock* opens the door. It shows unlocked for `pulse_seconds`, then locked again.
32
+ - A failed open is reported to the controller as an error.
33
+ - Repeated unlocks while a door is opening send a single open.
34
+ - *Lock* only ends the unlocked pulse early, since the door relocks by itself.
35
+ - Cached Matter doors are registered again at startup to get their handlers back, and reset
36
+ to locked.
37
+ - Names are trimmed to Matter's 32-byte limit.
38
+ - As on HomeKit, an empty door list never removes doors.
39
+ - Every door is a lock on Matter, whatever `service` says: Matter has no gate opener.
40
+ - `supports-hap` and `supports-matter` package keywords, which the Homebridge UI reads to show
41
+ its HomeKit and Matter badges.
42
+
43
+ ### Changed
44
+
45
+ - Replaced a test fixture `device_id` with a fully synthetic value.
46
+
47
+ ## [0.1.0] - 2026-10-30
48
+
49
+ First release: remote opening over the REST API of the official app. Doorbell, video and
50
+ two-way audio are out of scope.
51
+
52
+ ### Added
53
+
54
+ - Homebridge dynamic platform `Intratone`, made to run as a child bridge.
55
+ - Sign-in with `POST /api/auth/device`. Several spellings of the phone number are tried (national,
56
+ country code + number, bare number), and the one that works is remembered.
57
+ - The 7-day JWT is kept fresh: checked every 12 h and renewed when less than a day is left.
58
+ A refused call triggers one refresh, and concurrent callers share a single refresh.
59
+ - Door discovery with `GET /api/access` at startup and every hour (configurable). `data` and
60
+ `ble` doors are exposed. `clemobil` (2G) doors are skipped and logged once, because the app
61
+ opens them with a GSM call. Names get the residence as a prefix when there are several
62
+ residences.
63
+ - Opening with `POST /api/access/open/clemobil`, shown as a HomeKit lock (default) or garage
64
+ door that stays unlocked/open for `pulse_seconds`.
65
+ - `device_id` and the JWT are stored in Homebridge's storage (mode 0600). The `device_id` is
66
+ generated once, or taken from the config to act as an existing phone.
67
+ - On HTTP 429 the plugin honours `Retry-After`, or else waits 1 min, doubling up to 15 min.
68
+ - When no door comes back, the log says why. The most common reason is the mobipass key being
69
+ active on another device. Cached doors are kept until the list returns.
70
+ - CLI `homebridge-intratone` with `status`, `login`, `list`, `open`, and the mobipass transfer
71
+ commands `activate` and `verify`.
72
+ - Debug logging of every request and response, with tokens, app credentials and phone numbers
73
+ masked.
74
+ - MIT license.
75
+
76
+ [0.2.1]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.2.1
77
+ [0.2.0]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.2.0
78
+ [0.1.0]: https://github.com/jtoucas-DIMO/Homebridge-Intratone/releases/tag/v0.1.0
package/README.md CHANGED
@@ -32,8 +32,10 @@ implemented.
32
32
 
33
33
  ## Install
34
34
 
35
- In the Homebridge UI, open **Plugins**, search for **intratone** and click **Install**. This
36
- works the same in the official `homebridge/homebridge` Docker image (Synology, Unraid, …).
35
+ In the Homebridge UI, open **Plugins**, search for **homebridge-intratone** (the full name) and
36
+ click **Install**. This works the same in the official `homebridge/homebridge` Docker image
37
+ (Synology, Unraid, …). A search for just "intratone" may not list it yet: the UI shows the 99
38
+ best-ranked Homebridge plugins for a word, and npm ranks new packages low.
37
39
 
38
40
  Without the UI:
39
41
 
@@ -50,7 +52,6 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
50
52
  {
51
53
  "platform": "Intratone",
52
54
  "name": "Intratone",
53
- "app_id": "<from the official app>",
54
55
  "app_token": "<from the official app>",
55
56
  "tel": "0612345678",
56
57
  "indicatif": "33",
@@ -61,7 +62,8 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
61
62
 
62
63
  | key | default | notes |
63
64
  | ------------------------ | -------- | ----- |
64
- | `app_id`, `app_token` | required | Hardcoded in the official app and not shipped with this plugin. See [Getting app_id and app_token](#getting-app_id-and-app_token). |
65
+ | `app_token` | required | The official app's secret, not shipped with this plugin. See [Getting app_token](#getting-app_token). |
66
+ | `app_id` | iOS app's | Names the official app, not your account: every iPhone sends `app_apisip_ios`, which is the default. Set it only with `user_agent: android`, whose value isn't known yet. |
65
67
  | `tel` | required | Phone number of the Intratone account. National (`06…`) or international (`+33 6…`). Several spellings are tried, and the one that works is remembered. |
66
68
  | `indicatif` | `33` | Country code. |
67
69
  | `device_id` | generated | Leave empty to generate a UUID that is stored and reused forever. Set it to reuse an existing phone's registration (`device_id` claim of that phone's JWT). |
@@ -72,6 +74,10 @@ settings → *Bridge Settings*), so a fault here can't take the main bridge down
72
74
  | `app_version` | `4.6.4` | `appversion` sent at login. |
73
75
  | `debug` | `false` | Logs every request and response at info level, plus the raw door list once at startup. Tokens, app credentials and your phone number are masked. |
74
76
 
77
+ The plugin keeps `device_id` and the current JWT in
78
+ `<homebridge storage>/intratone/<hash>.json` (mode 0600). Delete that file only if you want to
79
+ register as a new device.
80
+
75
81
  ### Matter
76
82
 
77
83
  Needs Homebridge 2. In the plugin settings, open *Bridge Settings*, tick **Enable Matter**,
@@ -90,24 +96,53 @@ or any other Matter controller. Several controllers can share the same pairing.
90
96
  - Homebridge's Matter support is experimental and not CSA certified, so controllers may warn
91
97
  about an uncertified accessory while pairing.
92
98
 
93
- The plugin keeps `device_id` and the current JWT in
94
- `<homebridge storage>/intratone/<hash>.json` (mode 0600). Delete that file only if you want to
95
- register as a new device.
99
+ ### Getting app_token
100
+
101
+ `app_token` is built into the official app and only travels in the request the app sends when
102
+ you sign in (`POST /api/auth/device`). You read it by recording your iPhone's own traffic for a
103
+ few minutes with [Proxyman for iOS](https://proxyman.com/ios), an App Store app that does this
104
+ on the phone itself. No computer is needed.
96
105
 
97
- ### Getting app_id and app_token
106
+ **1. Set up Proxyman**
98
107
 
99
- The official app sends both values only when it logs in (`POST /api/auth/device`). To read
100
- them, capture your own phone's traffic with an HTTPS proxy such as
101
- [mitmproxy](https://mitmproxy.org/):
108
+ 1. Install **Proxyman** from the App Store and open it.
109
+ 2. Follow its setup screens: allow the VPN configuration it adds, then generate its
110
+ certificate. iOS downloads it as a profile.
111
+ 3. Install the profile in **Settings → General → VPN & Device Management**.
112
+ 4. Trust it in **Settings → General → About → Certificate Trust Settings**: turn on full trust
113
+ for the Proxyman certificate.
114
+ 5. Back in Proxyman, start the VPN. Its status should say it is ready to intercept HTTPS.
102
115
 
103
- 1. Route the phone through the proxy and trust the proxy's certificate on the phone.
104
- 2. Make the app log in. It does this on its own about once a week, when its token expires, or
105
- at once after you delete and reinstall it and register again.
106
- 3. In the capture, open the `POST https://sip.intratone.info/api/auth/device` request. Its
107
- form body contains `app_id` and `app_token`, plus the `device_id` and `tel` the app uses.
116
+ **2. Decrypt Intratone's traffic**
108
117
 
109
- Reusing that `device_id` makes Homebridge act as your phone, so you don't need a mobipass
110
- transfer. A capture contains live tokens: keep it private and delete it when you're done.
118
+ 1. With Proxyman running, open the Intratone app and look at your doors, then switch back to
119
+ Proxyman.
120
+ 2. Tap the **sip.intratone.info** domain, then any request in it, and tap
121
+ **Enable SSL Proxying**. Requests to that domain are now readable.
122
+
123
+ **3. Capture the sign-in**
124
+
125
+ 1. Delete the Intratone app, reinstall it from the App Store and sign in as you did the first
126
+ time. A fresh install always sends the sign-in request. (The app also signs in by itself
127
+ about once a week, if you'd rather wait.)
128
+ 2. In Proxyman, open **sip.intratone.info** and find **POST /api/auth/device**.
129
+ 3. Open the request body. Copy `app_token` into the plugin's **App token** setting.
130
+ 4. Optional: copy `device_id` into the plugin's **Device ID** setting (under *Advanced*).
131
+ Homebridge then acts as your iPhone and shares its door key, so you don't need the mobipass
132
+ transfer described below.
133
+
134
+ **4. Clean up**
135
+
136
+ The capture holds a live session token and your phone number, so don't share it.
137
+
138
+ 1. Stop the VPN in Proxyman and delete the captured requests.
139
+ 2. Remove the Proxyman profile in **Settings → General → VPN & Device Management**, or at
140
+ least turn off its full trust. Leaving a trusted certificate installed weakens your
141
+ iPhone's HTTPS security.
142
+
143
+ Already run an HTTPS proxy on a computer, such as [mitmproxy](https://mitmproxy.org/)? It works
144
+ the same way: route the iPhone through it, trust its certificate, sign in to the Intratone app
145
+ and read the same request.
111
146
 
112
147
  ## Mobipass: taking the door key
113
148
 
@@ -162,6 +197,10 @@ npm test
162
197
  npm run build
163
198
  ```
164
199
 
200
+ How the plugin works inside, how it's tested and how releases are made:
201
+ [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md). What changed in each version:
202
+ [CHANGELOG.md](CHANGELOG.md).
203
+
165
204
  `npm run lint` and `npm run typecheck` are also available. Link the build into a local
166
205
  Homebridge with `npm link`.
167
206
 
@@ -15,9 +15,9 @@
15
15
  },
16
16
  "app_id": {
17
17
  "title": "App ID",
18
- "description": "Application id embedded in the official Intratone app.",
18
+ "description": "Identifies the official app, not your account. Leave empty to use the iOS app's id shown here; set it only for another app.",
19
19
  "type": "string",
20
- "required": true
20
+ "placeholder": "app_apisip_ios"
21
21
  },
22
22
  "app_token": {
23
23
  "title": "App token",
@@ -93,7 +93,7 @@
93
93
  },
94
94
  "layout": [
95
95
  "name",
96
- { "key": "app_id", "type": "password" },
96
+ "app_id",
97
97
  { "key": "app_token", "type": "password" },
98
98
  { "type": "flex", "flex-flow": "row wrap", "items": ["indicatif", "tel"] },
99
99
  "service",
package/dist/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { IntratoneClient } from './intratoneClient.js';
2
+ import { DEFAULT_APP_IDS, IntratoneClient } from './intratoneClient.js';
3
3
  import { StateStore, accountKey } from './storage.js';
4
4
  import { isRecord, str } from './util.js';
5
5
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -11,13 +11,14 @@ function clamp(value, fallback, min, max) {
11
11
  export function parseSettings(raw) {
12
12
  const config = isRecord(raw) ? raw : {};
13
13
  const errors = [];
14
- const appId = str(config.app_id);
14
+ const identity = config.user_agent === 'android' ? 'android' : 'ios';
15
+ const appId = str(config.app_id) || DEFAULT_APP_IDS[identity] || '';
15
16
  const appToken = str(config.app_token);
16
17
  const tel = str(config.tel);
17
18
  const indicatif = (str(config.indicatif) || '33').replace(/^\+/, '');
18
19
  const deviceId = str(config.device_id) || undefined;
19
20
  if (!appId) {
20
- errors.push('app_id is required');
21
+ errors.push(`app_id is required: there is no default for the ${identity} app`);
21
22
  }
22
23
  if (!appToken) {
23
24
  errors.push('app_token is required');
@@ -46,7 +47,7 @@ export function parseSettings(raw) {
46
47
  service: config.service === 'garage' ? 'garage' : 'lock',
47
48
  pulseMs: clamp(config.pulse_seconds, 2, 1, 30) * 1000,
48
49
  accessRefreshMs: clamp(config.access_refresh_minutes, 60, 15, 1440) * 60_000,
49
- identity: config.user_agent === 'android' ? 'android' : 'ios',
50
+ identity,
50
51
  appVersion: str(config.app_version) || '4.6.4',
51
52
  debug: config.debug === true,
52
53
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,14 @@ export const USER_AGENTS = {
4
4
  ios: 'intratone-x10-19/4 CFNetwork/3896.200.61 Darwin/27.2.0',
5
5
  android: 'okhttp/5.0.0-alpha.2',
6
6
  };
7
+ /**
8
+ * `app_id` names the client app, not the account or the install, so every iPhone sends the same
9
+ * value (captured from the iOS app 4.6.0). The Android app's is not known. `app_token` is the
10
+ * app's secret and is never defaulted.
11
+ */
12
+ export const DEFAULT_APP_IDS = {
13
+ ios: 'app_apisip_ios',
14
+ };
7
15
  /** Modes the REST open endpoint handles. `clemobil` (GSM call) cannot be driven headless. */
8
16
  export const OPENABLE_MODES = new Set(['data', 'ble']);
9
17
  const PATHS = {
@@ -1 +1 @@
1
- {"version":3,"file":"intratoneClient.js","sourceRoot":"","sources":["../src/intratoneClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intratoneClient.js","sourceRoot":"","sources":["../src/intratoneClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ # Developer guide
2
+
3
+ How the plugin is built, tested and released. For setup and usage, see the
4
+ [README](../README.md); for what changed in each version, see the [changelog](../CHANGELOG.md).
5
+
6
+ ## Layout
7
+
8
+ | file | role |
9
+ | ---- | ---- |
10
+ | `src/index.ts` | Registers the `Intratone` platform with Homebridge. |
11
+ | `src/platform.ts` | `IntratonePlatform`: startup, token upkeep, the access-list sync loop, and HomeKit accessory registration and removal. |
12
+ | `src/accessAccessory.ts` | One door as a HomeKit `LockMechanism` or `GarageDoorOpener` with a timed "open" pulse. |
13
+ | `src/matterDoors.ts` | The same doors as Matter door locks, when the bridge has Matter enabled. |
14
+ | `src/intratoneClient.ts` | REST client: sign-in, JWT lifecycle, access list, open, mobipass, 429 backoff. |
15
+ | `src/config.ts` | Validates the config block (`parseSettings`) and opens the account state (`openAccount`). |
16
+ | `src/storage.ts` | Per-account state file holding `device_id` and the session. |
17
+ | `src/cli.ts` | The `homebridge-intratone` command (`status`, `login`, `list`, `open`, `activate`, `verify`). |
18
+ | `src/util.ts` | Small helpers, including the log redaction. |
19
+ | `config.schema.json` | Settings form for the Homebridge UI. |
20
+
21
+ The code is TypeScript, compiled as ES modules (`NodeNext`) to `dist/`. Runtime dependencies:
22
+ none. Homebridge provides HAP and Matter at runtime, and HTTP uses Node's built-in `fetch`.
23
+
24
+ ## The Intratone API
25
+
26
+ All calls go to `https://sip.intratone.info/` with form-encoded bodies, a 10 s timeout and the
27
+ official app's `User-Agent`. The iOS app is used by default, and the Android one with
28
+ `user_agent: android`.
29
+
30
+ | call | used for |
31
+ | ---- | -------- |
32
+ | `POST /api/auth/device` (`app_id`, `app_token`, `tel`, `device_id`, `appversion`) | Sign-in. Returns a 7-day HS512 JWT and the mobipass flags (`openingaccess`, `access_refresh`, `mobipass_compatible`, `mobipass`). |
33
+ | `GET /api/access` | The doors. The first entry of `openmode` decides: `data`/`ble` can be opened, `clemobil` can't. The server sends modes in upper case (`["DATA"]`), so they're compared case-insensitively. |
34
+ | `POST /api/access/open/clemobil` (`phonenumber`, `access_id`) | Opens one door, whatever its mode. |
35
+ | `POST /api/mobipass/activate`, `POST /api/mobipass/otp/verify` | Moves the mobipass key to this device (SMS code). |
36
+
37
+ A response counts as success when `error` is `0` (or `state` is `ok` without an `error`).
38
+
39
+ - **Credentials:** `app_id` names the client app (`app_apisip_ios` for iPhone) and is a public
40
+ default. `app_token` is the app's secret: it's never shipped, and users capture it once
41
+ (README, *Getting app_token*).
42
+ - **The JWT** is decoded without verification, only to read its expiry. It's renewed when less
43
+ than 24 h is left, and once on a refused call. Concurrent callers share one refresh.
44
+ - **On HTTP 429** the client stops sending until `Retry-After`, or else 1 min doubling to 15 min.
45
+
46
+ The API notes come from the open-source Home Assistant integration
47
+ [GuiHash/ha-intratone](https://github.com/GuiHash/ha-intratone) and from a capture of the iOS
48
+ app. **Never commit a capture:** it holds a live JWT, the phone number and device ids.
49
+ `mitmproxy/`, `*.har` and `*.tgz` are git-ignored, and the npm `files` list only ships
50
+ `dist/`, the schema and the docs.
51
+
52
+ ## HomeKit
53
+
54
+ Each door is an accessory with UUID `uuid.generate('intratone:<access id>')`. The access is
55
+ kept in `accessory.context`, so cached doors work at startup even before the network answers.
56
+
57
+ A successful open shows *Unlocked* (or *Open*) for `pulse_seconds`, then *Locked* again. The
58
+ server reports no real door state. An empty access list never removes accessories, so a
59
+ server hiccup or a moved mobipass key can't wipe the user's rooms and automations.
60
+
61
+ ## Matter
62
+
63
+ Matter support is optional and appears only when Homebridge sets `api.matter`. That happens on
64
+ Homebridge 2, on a bridge with a `matter` block (*Enable Matter* in the child bridge
65
+ settings). Values come from `api.matter` (`deviceTypes`, `types`), never from a value import of
66
+ `homebridge`, which fails on installs where Homebridge lives in a separate `node_modules`.
67
+
68
+ - **Shape:** each door is a `DoorLock` with `lockState` `Locked`, `lockType` `Other`,
69
+ `actuatorEnabled` and `operatingMode` `Normal`. Its UUID is
70
+ `uuid.generate('intratone:matter:<access id>')`, separate from the HomeKit one.
71
+ - **Commands:**
72
+ - `unlockDoor` awaits the open. Homebridge sets `lockState` to *Unlocked* when the handler
73
+ resolves, and reports a failure when it throws.
74
+ - The plugin sets *Locked* again after the pulse with `updateAccessoryState`, outside the
75
+ handler.
76
+ - `lockDoor` only cancels the pulse.
77
+ - **Cache:**
78
+ - Homebridge restores cached Matter accessories with *empty* handlers and calls
79
+ `configureMatterAccessory`.
80
+ - The plugin then registers each cached door again at startup. Homebridge attaches the
81
+ handlers to the restored endpoint ("Attached plugin registration to restored accessory")
82
+ and forces `Locked`.
83
+ - Registering the same UUID twice in one session throws, so the plugin tracks what it
84
+ registered.
85
+ - `updatePlatformAccessories` only updates the cache (a rename shows after a restart).
86
+ - **Names:** the bridged node label is limited to 32 bytes and Homebridge doesn't trim it,
87
+ so `matterLabel` does.
88
+ - **UI badges:** the Homebridge UI shows its HomeKit and Matter badges from the `supports-hap`
89
+ and `supports-matter` keywords in `package.json`.
90
+
91
+ ## Tests
92
+
93
+ ```bash
94
+ npm test
95
+ ```
96
+
97
+ Vitest, no network. `test/helpers.ts` has a `fetch` double that routes on path, a JWT builder,
98
+ a fake `api.matter` with matter.js's real DoorLock enum values, and a helper that runs a
99
+ DoorLock command the way Homebridge does. HomeKit tests use the real `@homebridge/hap-nodejs`,
100
+ pinned to the version Homebridge itself requires, so the types match.
101
+
102
+ ```bash
103
+ npm run lint
104
+ ```
105
+
106
+ ```bash
107
+ npm run typecheck
108
+ ```
109
+
110
+ ### Smoke test against a real Homebridge with Matter
111
+
112
+ The 0.2.0 Matter support was also checked end to end in a throwaway Homebridge 2.4 (matter.js
113
+ 0.17), with no real account involved:
114
+
115
+ - **Setup:** a temporary storage folder whose `config.json` has a `bridge.matter` block and the
116
+ Intratone platform with dummy credentials.
117
+ - **Fake API:** Homebridge started with `NODE_OPTIONS=--import=<preload>`. The preload replaces
118
+ `fetch` for `sip.intratone.info` with canned answers, and keeps a reference to Homebridge's
119
+ Matter manager (`HomebridgeAPI.prototype._setMatterManager`).
120
+ - **The run:** `homebridge -U <tmp> -P <repo> --strict-plugin-resolution -D`.
121
+ - **The unlock:** the preload calls `matterServer.triggerCommand(uuid, 'doorLock',
122
+ 'unlockDoor', {})`, which goes through Homebridge's real `HomebridgeDoorLockServer`. It then
123
+ reads `lockState` before, right after, and after the pulse (1 → 2 → 1). Finally it sends
124
+ `SIGTERM` for a clean shutdown.
125
+ - **The restart:** a second run on the same storage checks the cache restore.
126
+
127
+ ## Releasing
128
+
129
+ 1. Update `CHANGELOG.md` and bump `version` in `package.json`.
130
+ 2. `npm publish`. `prepublishOnly` runs lint, typecheck and tests, and `prepack` builds `dist/`.
131
+ The npm account uses 2FA: npm prints an approval link and waits. Approve it within a few
132
+ minutes, or the request expires and the publish fails with a 404 on `/-/v1/done`.
133
+ 3. After `+ homebridge-intratone@x.y.z`, the registry takes about a minute to move `latest`.
134
+ 4. Tag the commit `vX.Y.Z`, push the tag, and create the GitHub release from the changelog
135
+ entry.
136
+
137
+ A new package scores 0 in npm search for a while. The Homebridge UI shows only the 99
138
+ best-ranked plugins for a word, so a new package appears there only when searched by its full
139
+ name, `homebridge-intratone`, which the UI fetches directly.
package/package.json CHANGED
@@ -1,10 +1,18 @@
1
1
  {
2
2
  "name": "homebridge-intratone",
3
3
  "displayName": "Intratone",
4
- "version": "0.2.0",
4
+ "version": "0.2.1",
5
5
  "description": "Unofficial Homebridge plugin to open Intratone / Cogelec doors and gates from HomeKit and Matter (remote open, no doorbell).",
6
6
  "license": "MIT",
7
7
  "author": "jtoucas-DIMO",
8
+ "homepage": "https://github.com/jtoucas-DIMO/Homebridge-Intratone#readme",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/jtoucas-DIMO/Homebridge-Intratone.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/jtoucas-DIMO/Homebridge-Intratone/issues"
15
+ },
8
16
  "type": "module",
9
17
  "main": "dist/index.js",
10
18
  "bin": {
@@ -13,7 +21,9 @@
13
21
  "files": [
14
22
  "dist",
15
23
  "config.schema.json",
16
- "README.md"
24
+ "README.md",
25
+ "CHANGELOG.md",
26
+ "docs"
17
27
  ],
18
28
  "engines": {
19
29
  "homebridge": "^1.8.0 || ^2.0.0-beta.0",