homebridge-peloton 1.0.2 → 1.0.3

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
@@ -2,6 +2,23 @@
2
2
 
3
3
  All notable changes to homebridge-peloton are listed here. The format follows Keep a Changelog, and the project follows semantic versioning from 0.1.0-beta.1. The release notes of a version are its section here and nothing else.
4
4
 
5
+ ## 1.0.3 (2026-10-28)
6
+
7
+ A runtime release. A workout Peloton leaves in progress no longer keeps sensors on, a rate limit from Peloton pauses polling for the whole household instead of making it worse, removing an account signs its session out with Peloton, and Node 26 is tested.
8
+
9
+ ### Added
10
+
11
+ - Open workout limit. A workout Peloton leaves IN_PROGRESS (someone walks away and never finishes) no longer keeps triggers on and the household on fast polling indefinitely. A class is treated as ended 20 minutes after its class length; a workout without a class length (Just Ride, Just Run, free workouts) after the new `advanced.openWorkoutLimitMinutes`, default 180, 30 to 720, under Advanced as "Treat an unfinished workout as ended after (minutes)". The check runs on every locked tick before the request, so a network outage cannot keep a sensor on either; the end is processed like any other (holds, keep-fast window, auto-off re-arm) and logs "{name}: workout still open after {minutes} minutes, treated as ended". The same workout is never locked on again, an IN_PROGRESS workout already past its limit is not a start (also at startup), and a later COMPLETE for it changes nothing.
12
+ - Rate limit handling. A response is rate limited when it is HTTP 429, or any other non-2xx whose body starts with "error code: 1015" (the CDN's rate limit page; the body is read only to classify it). `ApiError` and `AuthError` carry `rateLimited` and `retryAfter` (Retry-After as delta-seconds or an HTTP-date, garbage ignored), from the shared `src/rate-limit.ts`. A rate limited poll or token refresh pauses polling for the whole household, since every account shares one IP address: Retry-After clamped to at least the current interval and at most 30 minutes, else 2 minutes doubling on each consecutive rate limited poll up to 30, reset on the next success. One warn line per pause: "Peloton is rate limiting this network (HTTP {status}); pausing polling for every account for {seconds}s". The fast polling switch takes effect when a pause ends, and the open workout limit is checked first when it does. A rate limited startup sign-in is logged once and the remaining startup sign-ins are skipped for that run; nothing retries in a loop. Other transient failures keep the backoff they had.
13
+ - Revoke on removal. Removing an account on the settings page first revokes its refresh token with Auth0 (`revoke(refreshToken, fetchImpl)` in `src/auth/peloton-auth.ts`: POST `/oauth/revoke` on the Auth0 host with `client_id` and `token` as JSON, no redirects followed, a 10 second timeout), then deletes the account file. Best effort: a failure logs one debug line with stage revoke and the HTTP status, the file is deleted regardless, and Remove never fails because of it. The auth probe gains `revoke`, which revokes the probe's stored token and then shows that a refresh with it fails; the revoke is unverified against Peloton's tenant until it runs on the Pi.
14
+
15
+ ### Changed
16
+
17
+ - Node 26 support. Homebridge now runs on Node 26, and the build workflow tests Node 20, 22, 24, and 26; the 22, 24, and 26 legs update npm to the version the release uses. `engines.node` stays `>=20` and `engines.homebridge` is unchanged. Nothing in the source or the tests depended on an API Node 26 removed or warns on. The README requirements say Node 20 to 26 is tested.
18
+ - 429 is no longer an ordinary transient failure with the 60 second backoff; it pauses the household as described under Added. Network failures, 5xx and a second 401 keep the backoff.
19
+ - Version 1.0.3 in package.json, package-lock.json, the version literals in the tests and the bug report form. SPEC section 16 (1.0.3 clarifications) and the sections it names, CLAUDE.md, the README and design/README.md carry the changes.
20
+ - Tests: a rate limit suite; rules, config, schema, page model and page tests for the open workout limit; fake clock poller tests for the limit and the household pause; API and auth tests for the rate limit fields and revoke; platform tests for a rate limited startup sign-in; UI server tests for revoke on /remove.
21
+
5
22
  ## 1.0.2 (2026-10-18)
6
23
 
7
24
  A packaging and copy release, prepared as the plugin was verified by Homebridge (homebridge/plugins#1239). The developer auth probe stays out of the npm package, and nothing in the package description or the banner promises heart-rate zone triggers, which 1.0.x does not offer. No runtime code changes.
package/README.md CHANGED
@@ -34,7 +34,7 @@ Not affiliated with or endorsed by Peloton Interactive. Uses Peloton's undocumen
34
34
  ## Requirements
35
35
 
36
36
  - Homebridge 1.8 or 2.x, with the Homebridge UI for the settings page.
37
- - Node 20 or later.
37
+ - Node 20 or later. Every release is tested on Node 20, 22, 24, and 26.
38
38
  - A Peloton membership. Every profile you want to watch signs in with its own Peloton account.
39
39
 
40
40
  ## Install
@@ -92,6 +92,7 @@ Settings holds one Advanced disclosure, collapsed until something inside it is c
92
92
  - Debug logging: logs every poll and the workout data it returns; sign-in details and session tokens are never logged.
93
93
  - Fast polling switch turns off after: the auto-off period in minutes.
94
94
  - Keep fast polling after a workout ends: how many minutes the plugin keeps the fast interval after any workout ends, even with the switch off, so a second workout is caught quickly. 5 by default, 0 turns it off.
95
+ - Treat an unfinished workout as ended after: a workout Peloton still shows in progress long after anyone is riding (someone walked away without finishing) would otherwise keep your sensor on. A class is treated as ended 20 minutes after its class length; this setting covers workouts without a class length, such as Just Ride or Just Run. 180 minutes by default, from 30 to 720.
95
96
  - Attention needed sensor: an occupancy sensor that is on while any account needs to be reconnected, for an automation that sends you a notification.
96
97
  - Daily check-in time: once a day the plugin refreshes each account's session and heart-rate zones, even when nobody is working out.
97
98
  - Devices seen: a read-only list of the device codes the plugin has seen on your membership, each tagged Known or Unknown. An Unknown row has a Copy report button; see [Devices](#devices).
@@ -123,6 +124,8 @@ If Back does not show the callback address, long-press the Back button and pick
123
124
  - **Lock-on.** One workout is followed at a time. Other members' workouts are not polled while a workout is locked, so two riders on one membership should start the second ride after the first has ended, or use one Workout trigger for anyone.
124
125
  - **Hold.** A Workout sensor stays on for the keep-on time after the class ends, and a new matching workout during that time keeps it on without a gap. A Heart-rate zone sensor changes only after the zone has held for the hold time, and turns off when the workout ends.
125
126
  - **Third-party imports are ignored.** Runs and other activities synced into Peloton from Apple Health, Strava, or Fitbit never start or end a workout, even when they land at the top of your workout list mid-ride.
127
+ - **Unfinished workouts.** A workout Peloton leaves in progress is treated as ended once it has been open 20 minutes longer than its class, or, without a class length, for the minutes set under Advanced (180 by default). This happens even while Peloton cannot be reached, so a sensor never stays on indefinitely, and the same workout is never picked up again.
128
+ - **Rate limits.** Peloton limits how often one network may ask. If it answers that the plugin is asking too often, the plugin pauses polling for every account, since they all share your network: for as long as Peloton asks (at most 30 minutes), or 2 minutes doubling up to 30 when it does not say, and logs one warning per pause. Turning on the fast polling switch during a pause takes effect when the pause ends.
126
129
  - **Fast polling after a workout.** After any workout ends the plugin keeps the fast interval for the minutes set under Advanced (5 by default), whatever the switch, then follows the switch again.
127
130
  - **Configuration.** The settings page writes the platform block in config.json; the shape and every default are in [SPEC.md](SPEC.md) section 6 and in `config.schema.json`, for anyone who edits by hand.
128
131
 
@@ -152,7 +155,7 @@ When the plugin sees a code it does not know it logs one line, "New Peloton devi
152
155
  - Profile photos are fetched by the plugin and proxied to the settings page; the page never talks to Peloton's servers itself.
153
156
  - The log never contains tokens, passwords, emails, or Peloton's responses. Debug logging prints workout ids and statuses only.
154
157
  - The devices seen list keeps only device codes (device type and platform) and the workout type each was first seen on, in the owner's account file. No workout ids, titles, dates, or account details are kept for it.
155
- - To remove everything for an account, click Remove on its card. To remove every stored sign-in, delete the `homebridge-peloton` folder in the Homebridge storage folder.
158
+ - To remove everything for an account, click Remove on its card. The plugin first asks Peloton to end that account's session (it revokes the stored refresh token), then deletes the account file; the file is deleted even if Peloton cannot be reached. To remove every stored sign-in, delete the `homebridge-peloton` folder in the Homebridge storage folder.
156
159
 
157
160
  ## Troubleshooting
158
161
 
@@ -160,12 +163,13 @@ When the plugin sees a code it does not know it logs one line, "New Peloton devi
160
163
  - **Accounts with extra verification.** If Peloton asks for a verification code when the plugin signs in, the panel says so and offers Sign in with browser; complete the verification in the browser tab and paste the callback address. Please open an issue if you hit this, since it has not been seen on a household account yet.
161
164
  - **"Peloton sign-in did not complete."** Peloton changed something about its login page and the headless sign-in no longer fits it. Use Sign in with browser to keep going, and open an issue with the output of the auth probe (see [Development](#development)); the fix lives in one file.
162
165
  - **No heart-rate data.** The log says "no heart-rate data for this workout" once per workout when no heart-rate monitor is paired. The zone sensor stays off for that workout.
166
+ - **"Peloton is rate limiting this network".** Peloton answered that this network is asking too often, so polling pauses for the time in the warning. It resumes on its own. If it happens often, raise the standby interval under Polling or shorten how long the fast polling switch stays on; other Peloton apps or scripts on the same network count against the same limit.
163
167
  - **A workout is noticed late.** Without the fast polling automation the plugin polls at the standby interval. Set up the automation, or lower the standby interval under Polling. A second workout soon after the first is caught quickly either way, for the minutes set by Keep fast polling after a workout ends under Advanced.
164
168
  - **A trigger with a Device filter never turns on.** The workout may come from hardware or an app the plugin does not know yet. Check Devices seen under Advanced: an Unknown row means the codes are new, and Copy report gives you everything a [device report](https://github.com/arodbuilds/homebridge-peloton/issues/new?template=device-report.yml) needs. A trigger set to Any device works meanwhile.
165
169
 
166
170
  ## Development
167
171
 
168
- Node 20 or later. Install with `npm install`, then:
172
+ Node 20 or later (CI runs Node 20, 22, 24, and 26). Install with `npm install`, then:
169
173
 
170
174
  | Script | What it does |
171
175
  | --- | --- |
@@ -184,6 +188,7 @@ npm run build
184
188
  node dist/scripts/auth-probe.mjs login you@example.com # prompts for the password without echo
185
189
  node dist/scripts/auth-probe.mjs login you@example.com --dump ./auth-dump
186
190
  node dist/scripts/auth-probe.mjs refresh
191
+ node dist/scripts/auth-probe.mjs revoke # revokes the stored session, then shows a refresh with it fails
187
192
  node dist/scripts/auth-probe.mjs browser # prints the sign-in URL, waits for the pasted callback URL
188
193
  node dist/scripts/auth-probe.mjs me
189
194
  node dist/scripts/auth-probe.mjs workout --keys
@@ -250,6 +250,14 @@
250
250
  "minimum": 0,
251
251
  "default": 5
252
252
  },
253
+ "openWorkoutLimitMinutes": {
254
+ "title": "Treat an unfinished workout as ended after (minutes)",
255
+ "description": "A class is treated as ended 20 minutes after its class length if Peloton still shows it in progress. This applies to workouts without a class length, such as Just Ride or Just Run, so one left unfinished cannot keep a sensor on.",
256
+ "type": "integer",
257
+ "minimum": 30,
258
+ "maximum": 720,
259
+ "default": 180
260
+ },
253
261
  "attentionSensor": {
254
262
  "title": "Attention needed sensor",
255
263
  "description": "Create an occupancy sensor that turns on when any account needs to be reconnected. Use it in an automation to get a notification.",
@@ -4,15 +4,19 @@
4
4
  * Each takes an access token and a fetch implementation, and never stores either.
5
5
  * Returned objects contain only the fields SPEC lists.
6
6
  */
7
+ import { type RateLimitInfo } from '../rate-limit.js';
7
8
  export declare const PELOTON_API_BASE = "https://api.onepeloton.com";
8
9
  /**
9
10
  * Non-2xx response from the Peloton API. status 401 tells the caller to refresh and retry.
10
- * Never carries the response body.
11
+ * rateLimited is true for HTTP 429 or the CDN's rate limit page (SPEC section 8.2), with retryAfter
12
+ * the response's Retry-After in seconds when it carried a usable one. Never carries the response body.
11
13
  */
12
14
  export declare class ApiError extends Error {
13
15
  readonly status: number;
14
16
  readonly path: string;
15
- constructor(status: number, path: string);
17
+ readonly rateLimited: boolean;
18
+ readonly retryAfter?: number;
19
+ constructor(status: number, path: string, rateLimit?: RateLimitInfo);
16
20
  }
17
21
  export interface HeartRateZone {
18
22
  /** Zone number 1 to 5, derived from slug or position. */
@@ -4,19 +4,27 @@
4
4
  * Each takes an access token and a fetch implementation, and never stores either.
5
5
  * Returned objects contain only the fields SPEC lists.
6
6
  */
7
+ import { rateLimitInfo } from '../rate-limit.js';
7
8
  export const PELOTON_API_BASE = 'https://api.onepeloton.com';
8
9
  /**
9
10
  * Non-2xx response from the Peloton API. status 401 tells the caller to refresh and retry.
10
- * Never carries the response body.
11
+ * rateLimited is true for HTTP 429 or the CDN's rate limit page (SPEC section 8.2), with retryAfter
12
+ * the response's Retry-After in seconds when it carried a usable one. Never carries the response body.
11
13
  */
12
14
  export class ApiError extends Error {
13
15
  status;
14
16
  path;
15
- constructor(status, path) {
16
- super(`Peloton API ${path} returned HTTP ${status}`);
17
+ rateLimited;
18
+ retryAfter;
19
+ constructor(status, path, rateLimit = { rateLimited: false }) {
20
+ super(`Peloton API ${path} returned HTTP ${status}${rateLimit.rateLimited ? ' (rate limited)' : ''}`);
17
21
  this.name = 'ApiError';
18
22
  this.status = status;
19
23
  this.path = path;
24
+ this.rateLimited = rateLimit.rateLimited;
25
+ if (rateLimit.retryAfter !== undefined) {
26
+ this.retryAfter = rateLimit.retryAfter;
27
+ }
20
28
  }
21
29
  }
22
30
  /** GET /api/me */
@@ -161,8 +169,9 @@ async function getJson(path, accessToken, fetchImpl) {
161
169
  },
162
170
  });
163
171
  if (response.status < 200 || response.status >= 300) {
164
- await response.text().catch(() => undefined);
165
- throw new ApiError(response.status, path.split('?')[0] ?? path);
172
+ // The body is read only to tell the CDN's rate limit page from other failures; it is never kept.
173
+ const text = await response.text().catch(() => '');
174
+ throw new ApiError(response.status, path.split('?')[0] ?? path, rateLimitInfo(response.status, text, response.headers.get('retry-after'), Date.now()));
166
175
  }
167
176
  const body = await response.json();
168
177
  return obj(body);
@@ -1 +1 @@
1
- {"version":3,"file":"peloton-api.js","sourceRoot":"","sources":["../../src/api/peloton-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peloton-api.js","sourceRoot":"","sources":["../../src/api/peloton-api.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,10 @@
6
6
  *
7
7
  * Flow written from observation of Peloton's Auth0 login on September 10 to 11, 2026. Endpoint and
8
8
  * parameter knowledge cross-checked against peloton-to-garmin, the Home Assistant Peloton
9
- * integration, and @dofek/peloton; no code was taken from them.
9
+ * integration, and @dofek/peloton; no code was taken from them. revoke (1.0.3) was written from Auth0's
10
+ * documented refresh token revocation endpoint alone, and rate limit handling from RFC 9110.
10
11
  */
12
+ import { type RateLimitInfo } from '../rate-limit.js';
11
13
  /**
12
14
  * Everything Peloton-specific about the login. These constants are the only thing to change
13
15
  * when Peloton changes its login (tenant, client, redirect, or the Auth0 connection name).
@@ -46,18 +48,26 @@ export declare const PELOTON_AUTH: {
46
48
  readonly credentialsPath: "/usernamepassword/login";
47
49
  /** Path of the token endpoint on the tenant. */
48
50
  readonly tokenPath: "/oauth/token";
51
+ /** Path of Auth0's refresh token revocation endpoint on the tenant (POST, JSON body client_id and token). */
52
+ readonly revokePath: "/oauth/revoke";
53
+ /** How long a revoke may take before it is abandoned, in milliseconds. */
54
+ readonly revokeTimeoutMs: 10000;
49
55
  };
50
- export type AuthStage = 'authorize' | 'credentials' | 'callback' | 'exchange' | 'refresh' | 'verification_required' | 'state_mismatch' | 'expired_code' | 'malformed_callback';
56
+ export type AuthStage = 'authorize' | 'credentials' | 'callback' | 'exchange' | 'refresh' | 'verification_required' | 'state_mismatch' | 'expired_code' | 'malformed_callback' | 'revoke';
51
57
  /**
52
58
  * Every auth failure. Carries the stage and, where there was one, the HTTP status and the
53
- * OAuth error code. Never carries response bodies, tokens, or the password.
59
+ * OAuth error code. rateLimited is true when the response was HTTP 429 or the CDN's rate limit
60
+ * page, with retryAfter its Retry-After in seconds when usable (SPEC section 8.2). Never carries
61
+ * response bodies, tokens, or the password.
54
62
  */
55
63
  export declare class AuthError extends Error {
56
64
  readonly stage: AuthStage;
57
65
  readonly status?: number;
58
66
  /** OAuth error code such as invalid_grant, when the response carried one. */
59
67
  readonly code?: string;
60
- constructor(stage: AuthStage, status?: number, code?: string);
68
+ readonly rateLimited: boolean;
69
+ readonly retryAfter?: number;
70
+ constructor(stage: AuthStage, status?: number, code?: string, rateLimit?: RateLimitInfo);
61
71
  }
62
72
  export interface Tokens {
63
73
  accessToken: string;
@@ -124,6 +134,18 @@ export declare function login(email: string, password: string, fetchImpl?: Fetch
124
134
  * invalid_grant is surfaced as AuthError stage refresh with code invalid_grant; everything else is transient.
125
135
  */
126
136
  export declare function refresh(refreshToken: string, fetchImpl?: FetchImpl, options?: AuthOptions): Promise<Tokens>;
137
+ export interface RevokeOptions {
138
+ /** Abandons the request after this many milliseconds. Defaults to PELOTON_AUTH.revokeTimeoutMs (10 s). */
139
+ timeoutMs?: number;
140
+ }
141
+ /**
142
+ * Revokes a refresh token with Auth0's documented revocation endpoint: POST {tenant}/oauth/revoke with
143
+ * a JSON body of client_id and token. Redirects are not followed. Resolves on any 2xx; anything else,
144
+ * a redirect included, is AuthError stage revoke with the HTTP status, and a network failure or the
145
+ * timeout is AuthError stage revoke without one. The token is never logged or kept. Callers treat a
146
+ * revoke as best effort (SPEC section 10, /remove).
147
+ */
148
+ export declare function revoke(refreshToken: string, fetchImpl?: FetchImpl, options?: RevokeOptions): Promise<void>;
127
149
  /**
128
150
  * Starts the browser sign-in fallback. The caller keeps verifier and state for browserFinish.
129
151
  */
@@ -6,11 +6,13 @@
6
6
  *
7
7
  * Flow written from observation of Peloton's Auth0 login on September 10 to 11, 2026. Endpoint and
8
8
  * parameter knowledge cross-checked against peloton-to-garmin, the Home Assistant Peloton
9
- * integration, and @dofek/peloton; no code was taken from them.
9
+ * integration, and @dofek/peloton; no code was taken from them. revoke (1.0.3) was written from Auth0's
10
+ * documented refresh token revocation endpoint alone, and rate limit handling from RFC 9110.
10
11
  */
11
12
  import { createHash, randomBytes } from 'node:crypto';
12
13
  import { mkdir, writeFile } from 'node:fs/promises';
13
14
  import { join } from 'node:path';
15
+ import { rateLimitInfo } from '../rate-limit.js';
14
16
  /**
15
17
  * Everything Peloton-specific about the login. These constants are the only thing to change
16
18
  * when Peloton changes its login (tenant, client, redirect, or the Auth0 connection name).
@@ -49,22 +51,34 @@ export const PELOTON_AUTH = {
49
51
  credentialsPath: '/usernamepassword/login',
50
52
  /** Path of the token endpoint on the tenant. */
51
53
  tokenPath: '/oauth/token',
54
+ /** Path of Auth0's refresh token revocation endpoint on the tenant (POST, JSON body client_id and token). */
55
+ revokePath: '/oauth/revoke',
56
+ /** How long a revoke may take before it is abandoned, in milliseconds. */
57
+ revokeTimeoutMs: 10_000,
52
58
  };
53
59
  /**
54
60
  * Every auth failure. Carries the stage and, where there was one, the HTTP status and the
55
- * OAuth error code. Never carries response bodies, tokens, or the password.
61
+ * OAuth error code. rateLimited is true when the response was HTTP 429 or the CDN's rate limit
62
+ * page, with retryAfter its Retry-After in seconds when usable (SPEC section 8.2). Never carries
63
+ * response bodies, tokens, or the password.
56
64
  */
57
65
  export class AuthError extends Error {
58
66
  stage;
59
67
  status;
60
68
  /** OAuth error code such as invalid_grant, when the response carried one. */
61
69
  code;
62
- constructor(stage, status, code) {
70
+ rateLimited;
71
+ retryAfter;
72
+ constructor(stage, status, code, rateLimit = { rateLimited: false }) {
63
73
  super(status === undefined ? `Auth failed at ${stage}` : `Auth failed at ${stage} (HTTP ${status})`);
64
74
  this.name = 'AuthError';
65
75
  this.stage = stage;
66
76
  this.status = status;
67
77
  this.code = code;
78
+ this.rateLimited = rateLimit.rateLimited;
79
+ if (rateLimit.retryAfter !== undefined) {
80
+ this.retryAfter = rateLimit.retryAfter;
81
+ }
68
82
  }
69
83
  }
70
84
  /**
@@ -124,7 +138,7 @@ export async function login(email, password, fetchImpl = fetch, options = {}) {
124
138
  throw new AuthError('authorize', loginPage.status);
125
139
  }
126
140
  if (loginPage.status < 200 || loginPage.status >= 300) {
127
- throw new AuthError('authorize', loginPage.status);
141
+ throw new AuthError('authorize', loginPage.status, undefined, rateLimitInfo(loginPage.status, loginPage.body, loginPage.retryAfter, now()));
128
142
  }
129
143
  await dump.write('authorize-login-page', loginPage.body);
130
144
  // No verification check here: Universal Login bundles its Lock library and text dictionary, which
@@ -177,7 +191,8 @@ export async function login(email, password, fetchImpl = fetch, options = {}) {
177
191
  const credentialsText = await credentialsResponse.text();
178
192
  if (credentialsResponse.status < 200 || credentialsResponse.status >= 300) {
179
193
  await dump.write('credentials-response', credentialsText);
180
- throw classifyCredentialsFailure(credentialsResponse.status, credentialsText);
194
+ const rateLimit = rateLimitInfo(credentialsResponse.status, credentialsText, credentialsResponse.headers.get('retry-after'), now());
195
+ throw classifyCredentialsFailure(credentialsResponse.status, credentialsText, rateLimit);
181
196
  }
182
197
  await dump.write('credentials-response', credentialsText);
183
198
  if (looksLikeVerification(credentialsText)) {
@@ -209,7 +224,7 @@ export async function login(email, password, fetchImpl = fetch, options = {}) {
209
224
  if (looksLikeVerification(callback.body)) {
210
225
  throw new AuthError('verification_required', callback.status);
211
226
  }
212
- throw new AuthError('callback', callback.status);
227
+ throw new AuthError('callback', callback.status, undefined, rateLimitInfo(callback.status, callback.body, callback.retryAfter, now()));
213
228
  }
214
229
  const redirect = parseCallbackLocation(callback.location, callback.status);
215
230
  if (redirect.state !== state) {
@@ -228,12 +243,39 @@ export async function refresh(refreshToken, fetchImpl = fetch, options = {}) {
228
243
  grant_type: 'refresh_token',
229
244
  client_id: PELOTON_AUTH.clientId,
230
245
  refresh_token: refreshToken,
231
- }, 'refresh');
246
+ }, 'refresh', now);
232
247
  if (response.status < 200 || response.status >= 300) {
233
- throw new AuthError('refresh', response.status, response.errorCode);
248
+ throw new AuthError('refresh', response.status, response.errorCode, response.rateLimit);
234
249
  }
235
250
  return tokensFromResponse(response.json, now, 'refresh', response.status, refreshToken);
236
251
  }
252
+ /**
253
+ * Revokes a refresh token with Auth0's documented revocation endpoint: POST {tenant}/oauth/revoke with
254
+ * a JSON body of client_id and token. Redirects are not followed. Resolves on any 2xx; anything else,
255
+ * a redirect included, is AuthError stage revoke with the HTTP status, and a network failure or the
256
+ * timeout is AuthError stage revoke without one. The token is never logged or kept. Callers treat a
257
+ * revoke as best effort (SPEC section 10, /remove).
258
+ */
259
+ export async function revoke(refreshToken, fetchImpl = fetch, options = {}) {
260
+ const url = new URL(PELOTON_AUTH.revokePath, PELOTON_AUTH.tenantUrl).toString();
261
+ let response;
262
+ try {
263
+ response = await fetchImpl(url, {
264
+ method: 'POST',
265
+ headers: { 'content-type': 'application/json', accept: 'application/json' },
266
+ body: JSON.stringify({ client_id: PELOTON_AUTH.clientId, token: refreshToken }),
267
+ redirect: 'manual',
268
+ signal: AbortSignal.timeout(options.timeoutMs ?? PELOTON_AUTH.revokeTimeoutMs),
269
+ });
270
+ }
271
+ catch {
272
+ throw new AuthError('revoke');
273
+ }
274
+ await response.text().catch(() => undefined);
275
+ if (response.status < 200 || response.status >= 300) {
276
+ throw new AuthError('revoke', response.status);
277
+ }
278
+ }
237
279
  /**
238
280
  * Starts the browser sign-in fallback. The caller keeps verifier and state for browserFinish.
239
281
  */
@@ -268,16 +310,16 @@ async function exchangeCode(code, verifier, fetchImpl, now) {
268
310
  code_verifier: verifier,
269
311
  code,
270
312
  redirect_uri: PELOTON_AUTH.redirectUri,
271
- }, 'exchange');
313
+ }, 'exchange', now);
272
314
  if (response.status < 200 || response.status >= 300) {
273
315
  if (response.errorCode === 'invalid_grant') {
274
316
  throw new AuthError('expired_code', response.status, response.errorCode);
275
317
  }
276
- throw new AuthError('exchange', response.status, response.errorCode);
318
+ throw new AuthError('exchange', response.status, response.errorCode, response.rateLimit);
277
319
  }
278
320
  return tokensFromResponse(response.json, now, 'exchange', response.status);
279
321
  }
280
- async function tokenRequest(fetchImpl, body, stage) {
322
+ async function tokenRequest(fetchImpl, body, stage, now) {
281
323
  const url = new URL(PELOTON_AUTH.tokenPath, PELOTON_AUTH.tenantUrl).toString();
282
324
  let response;
283
325
  try {
@@ -292,8 +334,9 @@ async function tokenRequest(fetchImpl, body, stage) {
292
334
  throw new AuthError(stage);
293
335
  }
294
336
  let json = {};
337
+ let text = '';
295
338
  try {
296
- const text = await response.text();
339
+ text = await response.text();
297
340
  if (text.length > 0) {
298
341
  const parsed = JSON.parse(text);
299
342
  if (parsed !== null && typeof parsed === 'object') {
@@ -305,7 +348,8 @@ async function tokenRequest(fetchImpl, body, stage) {
305
348
  json = {};
306
349
  }
307
350
  const errorCode = typeof json.error === 'string' ? json.error : undefined;
308
- return { status: response.status, json, errorCode };
351
+ const rateLimit = rateLimitInfo(response.status, text, response.headers.get('retry-after'), now());
352
+ return { status: response.status, json, errorCode, rateLimit };
309
353
  }
310
354
  function tokensFromResponse(json, now, stage, status, previousRefreshToken) {
311
355
  const accessToken = json.access_token;
@@ -407,7 +451,7 @@ function parseCallbackLocation(location, status) {
407
451
  /* ------------------------------------------------------------------------------------------------
408
452
  * Credentials failure classification
409
453
  * ---------------------------------------------------------------------------------------------- */
410
- function classifyCredentialsFailure(status, body) {
454
+ function classifyCredentialsFailure(status, body, rateLimit) {
411
455
  let code;
412
456
  let description = '';
413
457
  try {
@@ -435,19 +479,19 @@ function classifyCredentialsFailure(status, body) {
435
479
  }
436
480
  const haystack = `${code ?? ''} ${description} ${body.slice(0, 2000)}`;
437
481
  if (looksLikeVerification(haystack)) {
438
- return new AuthError('verification_required', status, code);
482
+ return new AuthError('verification_required', status, code, rateLimit);
439
483
  }
440
484
  const wrongPassword = (code !== undefined && WRONG_PASSWORD_CODES.has(code.toLowerCase()))
441
485
  || /wrong (email|username|user)( or|\/)? ?password/i.test(haystack)
442
486
  || /invalid (email|username)? ?(or|\/)? ?password/i.test(haystack)
443
487
  || status === 401;
444
488
  if (wrongPassword) {
445
- return new AuthError('credentials', status, code);
489
+ return new AuthError('credentials', status, code, rateLimit);
446
490
  }
447
491
  // Anything else on this step is not the user's credentials: a rate limit, an outage, or a
448
492
  // request Auth0 rejects (403 AnomalyDetected "Invalid state" when the body carries the wrong
449
493
  // state). The settings page then offers the browser fallback.
450
- return new AuthError('authorize', status, code);
494
+ return new AuthError('authorize', status, code, rateLimit);
451
495
  }
452
496
  function looksLikeVerification(text) {
453
497
  return VERIFICATION_MARKERS.some((marker) => marker.test(text));
@@ -625,7 +669,7 @@ async function followRedirects(fetchImpl, jar, startUrl, init, stage) {
625
669
  continue;
626
670
  }
627
671
  const body = await response.text();
628
- return { kind: 'page', status: response.status, body, url };
672
+ return { kind: 'page', status: response.status, body, url, retryAfter: response.headers.get('retry-after') };
629
673
  }
630
674
  throw new AuthError(stage);
631
675
  }
@@ -1 +1 @@
1
- {"version":3,"file":"peloton-auth.js","sourceRoot":"","sources":["../../src/auth/peloton-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peloton-auth.js","sourceRoot":"","sources":["../../src/auth/peloton-auth.ts"],"names":[],"mappings":"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"}