@isnap/sdk 1.3.0-next.34 → 1.3.0-next.36

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 CHANGED
@@ -21,6 +21,7 @@ All notable changes to `@isnap/sdk` will be documented in this file. The format
21
21
 
22
22
  ### Changed
23
23
  - `src/generated/openapi.d.ts` is now generated from the **published** contract. `packages/backend/openapi.json` carries only the partner-facing `/v1/*` surface, so the internal operator routes (`/admin`, `/va`, `/farm-ops`, `/kam`, `/auth`, …) and the bridge-only `/v1/device/*` contract — plus every schema reachable only from them — are no longer emitted into the SDK types. Those routes are the dashboard, the ops back-office and the device bridge; none of them is part of the partner contract this SDK wraps, and no `ISnapClient` method referenced their types, so no documented method changes shape.
24
+ - **`AppDownloadEntry.version` is now `string | null`** (API `1.15.0`, WHA-2538) — source-breaking for a consumer that renders `apps.manifest()`'s `version` without narrowing, which is the point. The field used to be a per-deployment configured string tied to no artifact: staging advertised `0.1.0-staging` for both platforms while the Mac ran `0.0.209` and the update channel published `0.0.x`, so the number could not be installed and the two platforms agreed only because both read one env value. It is now read from the release feed beside the artifact the download URL resolves to, and is `null` when that feed publishes nothing. Render the absence; do not substitute a number, and do not treat `null` as an error. It is also no longer the same string `byod.pair` returns as `bridge_version`.
24
25
 
25
26
  ### Fixed
26
27
  - `User-Agent` misreported the SDK version. `SDK_VERSION` was left at `1.0.0` through `package.json`'s bumps to `1.1.0` and `1.2.0`, and it is the sole input to the header, so every request from the published package mis-identified its own version to server, proxy and CDN logs. `SDK_VERSION` now tracks `package.json` (`1.2.0`), and `src/version.test.ts` reads the published version off disk and fails the build the next time they disagree.
@@ -5897,7 +5897,7 @@ export interface paths {
5897
5897
  };
5898
5898
  /**
5899
5899
  * Get the app/bridge download manifest (public)
5900
- * @description Per-platform installer URL, advertised bridge version, and availability. Requires no pairing and no auth — use it for setup guides, "add a device" flows, reinstalls, and update prompts. The URLs are the same stable 302-redirect endpoints `POST /v1/byod/pair` returns in `download_urls`, and `version` is the same string it returns as `bridge_version`; both surfaces derive from one builder so they cannot drift.
5900
+ * @description Per-platform installer URL, published version, and availability. Requires no pairing and no auth — use it for setup guides, "add a device" flows, reinstalls, and update prompts. The URLs are the same stable 302-redirect endpoints `POST /v1/byod/pair` returns in `download_urls`, built by one shared builder so they cannot drift. `version` is read from the release feed beside the artifact the redirect resolves to, and is `null` when that feed publishes nothing never a configured placeholder.
5901
5901
  */
5902
5902
  get: {
5903
5903
  parameters: {
@@ -6935,10 +6935,10 @@ export interface components {
6935
6935
  */
6936
6936
  url: string;
6937
6937
  /**
6938
- * @description Bridge version this deployment advertises the same string `POST /v1/byod/pair` returns as `bridge_version`. Compare it against an installed version to offer an update.
6939
- * @example 2.0.1
6938
+ * @description Version currently published for this platform, read from the release feed that sits beside the artifact `url` resolves to — so the number announced and the file served cannot name different releases. `null` when that feed publishes nothing or cannot be read: render "version not published" rather than a number, because a fabricated version makes a failed install and an uninformed console indistinguishable to whoever is checking. Compare it against an installed version to offer an update.
6939
+ * @example 0.0.211
6940
6940
  */
6941
- version: string;
6941
+ version: string | null;
6942
6942
  /**
6943
6943
  * @description False when this deployment has no artifact configured for the platform. The entry is still returned, so a consumer can hide the affordance instead of surfacing a link that 404s on click.
6944
6944
  * @example true
@@ -6,15 +6,22 @@ export type AppDownloadEntry = components['schemas']['AppDownloadEntry'];
6
6
  export declare class AppsResource extends BaseResource {
7
7
  /**
8
8
  * `GET /v1/apps` — the app/bridge download manifest: per-platform installer
9
- * URL, the advertised bridge version, and whether this deployment has an
10
- * artifact configured for the platform. Public (no auth) and, unlike
9
+ * URL, the version currently published for that platform, and whether this
10
+ * deployment has an artifact configured for it. Public (no auth) and, unlike
11
11
  * `byod.pair`, requires no pairing in flight — use it for setup guides,
12
12
  * "add a device" flows, reinstalls, and update prompts (compare `version`
13
13
  * against the version the device reports).
14
14
  *
15
15
  * The URLs are the same stable redirects `byod.pair` returns in
16
- * `download_urls`, and `version` is the same string it returns as
17
- * `bridge_version` — both surfaces derive from one builder server-side.
16
+ * `download_urls` one builder server-side, so they cannot drift.
17
+ *
18
+ * `version` is `string | null`. It is read from the release feed beside the
19
+ * artifact `url` resolves to, so the number and the file cannot name
20
+ * different releases, and it is `null` when that feed publishes nothing.
21
+ * Render the absence ("version not published"); never substitute a number,
22
+ * and do not treat `null` as an error. It is deliberately NOT the
23
+ * `bridge_version` string `byod.pair` returns — that field is a separate,
24
+ * device-facing value (WHA-2538).
18
25
  *
19
26
  * A platform with `available: false` still appears in the response; hide the
20
27
  * affordance rather than offering a link that 404s on click.
@@ -1 +1 @@
1
- {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/resources/apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAA;AACtE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAExE,qBAAa,YAAa,SAAQ,YAAY;IAC5C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;CAGtD"}
1
+ {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/resources/apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAA;AACtE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAExE,qBAAa,YAAa,SAAQ,YAAY;IAC5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;CAGtD"}
@@ -2,15 +2,22 @@ import { BaseResource } from './base.js';
2
2
  export class AppsResource extends BaseResource {
3
3
  /**
4
4
  * `GET /v1/apps` — the app/bridge download manifest: per-platform installer
5
- * URL, the advertised bridge version, and whether this deployment has an
6
- * artifact configured for the platform. Public (no auth) and, unlike
5
+ * URL, the version currently published for that platform, and whether this
6
+ * deployment has an artifact configured for it. Public (no auth) and, unlike
7
7
  * `byod.pair`, requires no pairing in flight — use it for setup guides,
8
8
  * "add a device" flows, reinstalls, and update prompts (compare `version`
9
9
  * against the version the device reports).
10
10
  *
11
11
  * The URLs are the same stable redirects `byod.pair` returns in
12
- * `download_urls`, and `version` is the same string it returns as
13
- * `bridge_version` — both surfaces derive from one builder server-side.
12
+ * `download_urls` one builder server-side, so they cannot drift.
13
+ *
14
+ * `version` is `string | null`. It is read from the release feed beside the
15
+ * artifact `url` resolves to, so the number and the file cannot name
16
+ * different releases, and it is `null` when that feed publishes nothing.
17
+ * Render the absence ("version not published"); never substitute a number,
18
+ * and do not treat `null` as an error. It is deliberately NOT the
19
+ * `bridge_version` string `byod.pair` returns — that field is a separate,
20
+ * device-facing value (WHA-2538).
14
21
  *
15
22
  * A platform with `available: false` still appears in the response; hide the
16
23
  * affordance rather than offering a link that 404s on click.
@@ -1 +1 @@
1
- {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/resources/apps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAKxC,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAqB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAc,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7E,CAAC;CACF"}
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/resources/apps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAKxC,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAqB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAc,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isnap/sdk",
3
- "version": "1.3.0-next.34",
3
+ "version": "1.3.0-next.36",
4
4
  "description": "Official TypeScript SDK for the iSnap P2P telephony API",
5
5
  "license": "MIT",
6
6
  "type": "module",