ugly-app 0.1.765 → 0.1.766

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.
@@ -43,4 +43,14 @@ export declare function refreshCloudflareToken(refreshToken: string): Promise<{
43
43
  * or the refresh has failed.
44
44
  */
45
45
  export declare function getFreshCloudflareCredentials(): Promise<CloudflareCredentials | undefined>;
46
+ /**
47
+ * FORCE a token refresh (ignoring the local `expiresAt`) and persist the result.
48
+ * For callers that hit a real 401 despite a locally-"valid" token — the cached
49
+ * `expiresAt` can lie (revoked token, or a mis-computed expiry). Persisting is
50
+ * mandatory: Cloudflare rotates refresh tokens (single-use), so a refresh that
51
+ * doesn't save the NEW refresh token burns the session on the next call.
52
+ * Returns `undefined` if there's no session or the refresh token is dead
53
+ * (caller must prompt re-login).
54
+ */
55
+ export declare function forceRefreshCloudflareCredentials(): Promise<CloudflareCredentials | undefined>;
46
56
  //# sourceMappingURL=cloudflareOauth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflareOauth.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/cloudflareOauth.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAyE1B,MAAM,WAAW,yBAAyB;IACxC,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA8DhC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAiBxF;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAehG"}
1
+ {"version":3,"file":"cloudflareOauth.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/cloudflareOauth.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAyE1B,MAAM,WAAW,yBAAyB;IACxC,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA8DhC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAiBxF;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAehG;AAED;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,IAAI,OAAO,CAChE,qBAAqB,GAAG,SAAS,CAClC,CAaA"}
@@ -182,6 +182,31 @@ export async function getFreshCloudflareCredentials() {
182
182
  await setCloudflareCredentials(next);
183
183
  return next;
184
184
  }
185
+ /**
186
+ * FORCE a token refresh (ignoring the local `expiresAt`) and persist the result.
187
+ * For callers that hit a real 401 despite a locally-"valid" token — the cached
188
+ * `expiresAt` can lie (revoked token, or a mis-computed expiry). Persisting is
189
+ * mandatory: Cloudflare rotates refresh tokens (single-use), so a refresh that
190
+ * doesn't save the NEW refresh token burns the session on the next call.
191
+ * Returns `undefined` if there's no session or the refresh token is dead
192
+ * (caller must prompt re-login).
193
+ */
194
+ export async function forceRefreshCloudflareCredentials() {
195
+ const creds = await getCloudflareCredentials();
196
+ if (!creds?.refreshToken)
197
+ return undefined;
198
+ const refreshed = await refreshCloudflareToken(creds.refreshToken);
199
+ if (!refreshed)
200
+ return undefined;
201
+ const next = {
202
+ ...creds,
203
+ accessToken: refreshed.accessToken,
204
+ refreshToken: refreshed.refreshToken,
205
+ expiresAt: refreshed.expiresAt,
206
+ };
207
+ await setCloudflareCredentials(next);
208
+ return next;
209
+ }
185
210
  async function selectAccount(accessToken, preferred) {
186
211
  // Try to fetch user email + accounts in parallel; tolerate either failing.
187
212
  const [userRes, accountsRes] = await Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflareOauth.js","sourceRoot":"","sources":["../../../src/cli/auth/cloudflareOauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflareOauth.js","sourceRoot":"","sources":["../../../src/cli/auth/cloudflareOauth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQueryApi.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"AASA,KAAK,eAAe,GAChB,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,UAAU,CAAC;AAyPf;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAyDf"}
1
+ {"version":3,"file":"serverLogQueryApi.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"AASA,KAAK,eAAe,GAChB,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,UAAU,CAAC;AA0Of;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -1,7 +1,7 @@
1
1
  import { pgQuery } from '../server/Pg.js';
2
2
  import { closePool, configurePg, initPg } from '../server/NodePool.js';
3
3
  import { resolveProdNeonConnectionString, resolveProdTelemetryD1, } from './prodDb.js';
4
- import { getSecret } from './publish/secret-storage.js';
4
+ import { cloudflareD1Fetch } from './telemetryAuth.js';
5
5
  const CLOUDFLARE_API_BASE = 'https://api.cloudflare.com/client/v4';
6
6
  /**
7
7
  * Run a read query against the project's Cloudflare D1 telemetry DB and return
@@ -11,11 +11,6 @@ const CLOUDFLARE_API_BASE = 'https://api.cloudflare.com/client/v4';
11
11
  */
12
12
  async function queryTelemetryD1(collection, options) {
13
13
  const d1 = resolveProdTelemetryD1();
14
- const token = (await getSecret(`cloudflare:token:${d1.projectId}`)) ??
15
- (await getSecret(`cloudflare:access-token:${d1.projectId}`));
16
- if (!token) {
17
- throw new Error(`No Cloudflare token for project "${d1.projectId}". Re-authenticate: \`ugly-app publish\`.`);
18
- }
19
14
  const params = [];
20
15
  let sql;
21
16
  if (collection === 'errorLog') {
@@ -39,15 +34,7 @@ async function queryTelemetryD1(collection, options) {
39
34
  params.push(options.limit);
40
35
  sql = `SELECT * FROM feedback_report ORDER BY created DESC LIMIT ?`;
41
36
  }
42
- const res = await globalThis.fetch(`${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`, {
43
- method: 'POST',
44
- headers: {
45
- Authorization: `Bearer ${token}`,
46
- 'Content-Type': 'application/json',
47
- Accept: 'application/json',
48
- },
49
- body: JSON.stringify({ sql, params }),
50
- });
37
+ const res = await cloudflareD1Fetch(d1.projectId, `${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`, { method: 'POST', body: JSON.stringify({ sql, params }) });
51
38
  if (!res.ok) {
52
39
  const body = await res.text().catch(() => '');
53
40
  // A missing table (no telemetry written yet) reads as empty, not an error.
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQueryApi.js","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverLogQueryApi.js","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Fetch against the Cloudflare API with a token that self-heals on auth failure.
3
+ *
4
+ * The stored Cloudflare OAuth access token (`cfoat_…`) is short-lived, and the
5
+ * cached `expiresAt` can lie (a token can be revoked, or the expiry was
6
+ * mis-computed) — so `getFreshCloudflareCredentials()`, which only refreshes when
7
+ * the LOCAL clock says the token is near expiry, will happily hand back a dead
8
+ * token. The telemetry query path used to take that token raw and 401 forever
9
+ * until the next `ugly-app publish` re-minted it. This wrapper instead refreshes
10
+ * and retries once on an actual 401/403, so `ugly-app errors`/`feedback`/`perf`
11
+ * keep working without a re-publish.
12
+ */
13
+ export declare function cloudflareD1Fetch(projectId: string, url: string, init: {
14
+ method: string;
15
+ body: string;
16
+ }): Promise<Response>;
17
+ //# sourceMappingURL=telemetryAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryAuth.d.ts","sourceRoot":"","sources":["../../src/cli/telemetryAuth.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC,OAAO,CAAC,QAAQ,CAAC,CAgCnB"}
@@ -0,0 +1,44 @@
1
+ import { getFreshCloudflareCredentials, forceRefreshCloudflareCredentials, } from './auth/cloudflareOauth.js';
2
+ import { getSecret } from './publish/secret-storage.js';
3
+ /**
4
+ * Fetch against the Cloudflare API with a token that self-heals on auth failure.
5
+ *
6
+ * The stored Cloudflare OAuth access token (`cfoat_…`) is short-lived, and the
7
+ * cached `expiresAt` can lie (a token can be revoked, or the expiry was
8
+ * mis-computed) — so `getFreshCloudflareCredentials()`, which only refreshes when
9
+ * the LOCAL clock says the token is near expiry, will happily hand back a dead
10
+ * token. The telemetry query path used to take that token raw and 401 forever
11
+ * until the next `ugly-app publish` re-minted it. This wrapper instead refreshes
12
+ * and retries once on an actual 401/403, so `ugly-app errors`/`feedback`/`perf`
13
+ * keep working without a re-publish.
14
+ */
15
+ export async function cloudflareD1Fetch(projectId, url, init) {
16
+ const creds = await getFreshCloudflareCredentials();
17
+ const token = creds?.accessToken ??
18
+ (await getSecret(`cloudflare:token:${projectId}`)) ??
19
+ (await getSecret(`cloudflare:access-token:${projectId}`));
20
+ if (!token) {
21
+ throw new Error(`No Cloudflare token for project "${projectId}". Re-authenticate: \`ugly-app login cloudflare\` (or \`ugly-app publish\`).`);
22
+ }
23
+ const send = (t) => globalThis.fetch(url, {
24
+ method: init.method,
25
+ headers: {
26
+ Authorization: `Bearer ${t}`,
27
+ 'Content-Type': 'application/json',
28
+ Accept: 'application/json',
29
+ },
30
+ body: init.body,
31
+ });
32
+ let res = await send(token);
33
+ // The cached token's local expiry can't be trusted — force a refresh on a REAL
34
+ // auth failure and retry once. forceRefresh PERSISTS the rotated refresh token
35
+ // (Cloudflare rotates them single-use), so it doesn't burn the session. This is
36
+ // the fix for the "works right after publish, 401s an hour later" flaw.
37
+ if (res.status === 401 || res.status === 403) {
38
+ const refreshed = await forceRefreshCloudflareCredentials();
39
+ if (refreshed?.accessToken)
40
+ res = await send(refreshed.accessToken);
41
+ }
42
+ return res;
43
+ }
44
+ //# sourceMappingURL=telemetryAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryAuth.js","sourceRoot":"","sources":["../../src/cli/telemetryAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,GAAW,EACX,IAAsC;IAEtC,MAAM,KAAK,GAAG,MAAM,6BAA6B,EAAE,CAAC;IACpD,MAAM,KAAK,GACT,KAAK,EAAE,WAAW;QAClB,CAAC,MAAM,SAAS,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC,MAAM,SAAS,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oCAAoC,SAAS,8EAA8E,CAC5H,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAqB,EAAE,CAC5C,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,CAAC,EAAE;YAC5B,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IAEL,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,wEAAwE;IACxE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,iCAAiC,EAAE,CAAC;QAC5D,IAAI,SAAS,EAAE,WAAW;YAAE,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryD1.d.ts","sourceRoot":"","sources":["../../src/cli/telemetryD1.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,kFAAkF;IAClF,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9E;AAeD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,EACtB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,YAAY,CAAC,CA2BvB"}
1
+ {"version":3,"file":"telemetryD1.d.ts","sourceRoot":"","sources":["../../src/cli/telemetryD1.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,kFAAkF;IAClF,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9E;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,EACtB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,YAAY,CAAC,CAmBvB"}
@@ -1,15 +1,6 @@
1
- import { getSecret } from './publish/secret-storage.js';
1
+ import { cloudflareD1Fetch } from './telemetryAuth.js';
2
2
  import { resolveProdTelemetryD1, } from './prodDb.js';
3
3
  const CLOUDFLARE_API_BASE = 'https://api.cloudflare.com/client/v4';
4
- /** Resolve the Cloudflare API token for a project's D1 (same lookup the read path uses). */
5
- async function resolveD1Token(d1) {
6
- const token = (await getSecret(`cloudflare:token:${d1.projectId}`)) ??
7
- (await getSecret(`cloudflare:access-token:${d1.projectId}`));
8
- if (!token) {
9
- throw new Error(`No Cloudflare token for project "${d1.projectId}". Re-authenticate: \`ugly-app publish\`.`);
10
- }
11
- return token;
12
- }
13
4
  /**
14
5
  * Run a single SQL statement (read OR write) against the project's PRODUCTION
15
6
  * Cloudflare D1 telemetry DB (errorLog / feedbackReport / …) via the HTTP API.
@@ -20,16 +11,7 @@ async function resolveD1Token(d1) {
20
11
  */
21
12
  export async function execTelemetryD1(sql, params = [], opts = {}) {
22
13
  const d1 = resolveProdTelemetryD1(opts);
23
- const token = await resolveD1Token(d1);
24
- const res = await globalThis.fetch(`${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`, {
25
- method: 'POST',
26
- headers: {
27
- Authorization: `Bearer ${token}`,
28
- 'Content-Type': 'application/json',
29
- Accept: 'application/json',
30
- },
31
- body: JSON.stringify({ sql, params }),
32
- });
14
+ const res = await cloudflareD1Fetch(d1.projectId, `${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`, { method: 'POST', body: JSON.stringify({ sql, params }) });
33
15
  if (!res.ok) {
34
16
  const body = await res.text().catch(() => '');
35
17
  throw new Error(`D1 query failed (${res.status}): ${body.slice(0, 200)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryD1.js","sourceRoot":"","sources":["../../src/cli/telemetryD1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EACL,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AAErB,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAQnE,4FAA4F;AAC5F,KAAK,UAAU,cAAc,CAAC,EAAmB;IAC/C,MAAM,KAAK,GACT,CAAC,MAAM,SAAS,CAAC,oBAAoB,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC,MAAM,SAAS,CAAC,2BAA2B,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oCAAoC,EAAE,CAAC,SAAS,2CAA2C,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,SAAoB,EAAE,EACtB,OAA8B,EAAE;IAEhC,MAAM,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAChC,GAAG,mBAAmB,aAAa,EAAE,CAAC,SAAS,gBAAgB,EAAE,CAAC,UAAU,QAAQ,EACpF;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;KACtC,CACF,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAKhC,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"telemetryD1.js","sourceRoot":"","sources":["../../src/cli/telemetryD1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AAErB,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAQnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,SAAoB,EAAE,EACtB,OAA8B,EAAE;IAEhC,MAAM,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CACjC,EAAE,CAAC,SAAS,EACZ,GAAG,mBAAmB,aAAa,EAAE,CAAC,SAAS,gBAAgB,EAAE,CAAC,UAAU,QAAQ,EACpF,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAC1D,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAKhC,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AACtE,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.765";
1
+ export declare const CLI_VERSION = "0.1.766";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.765";
2
+ export const CLI_VERSION = "0.1.766";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.765",
3
+ "version": "0.1.766",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -229,6 +229,32 @@ export async function getFreshCloudflareCredentials(): Promise<CloudflareCredent
229
229
  return next;
230
230
  }
231
231
 
232
+ /**
233
+ * FORCE a token refresh (ignoring the local `expiresAt`) and persist the result.
234
+ * For callers that hit a real 401 despite a locally-"valid" token — the cached
235
+ * `expiresAt` can lie (revoked token, or a mis-computed expiry). Persisting is
236
+ * mandatory: Cloudflare rotates refresh tokens (single-use), so a refresh that
237
+ * doesn't save the NEW refresh token burns the session on the next call.
238
+ * Returns `undefined` if there's no session or the refresh token is dead
239
+ * (caller must prompt re-login).
240
+ */
241
+ export async function forceRefreshCloudflareCredentials(): Promise<
242
+ CloudflareCredentials | undefined
243
+ > {
244
+ const creds = await getCloudflareCredentials();
245
+ if (!creds?.refreshToken) return undefined;
246
+ const refreshed = await refreshCloudflareToken(creds.refreshToken);
247
+ if (!refreshed) return undefined;
248
+ const next: CloudflareCredentials = {
249
+ ...creds,
250
+ accessToken: refreshed.accessToken,
251
+ refreshToken: refreshed.refreshToken,
252
+ expiresAt: refreshed.expiresAt,
253
+ };
254
+ await setCloudflareCredentials(next);
255
+ return next;
256
+ }
257
+
232
258
  interface CfAccount {
233
259
  id: string;
234
260
  name: string;
@@ -5,7 +5,7 @@ import {
5
5
  resolveProdTelemetryD1,
6
6
  type ProdTelemetryD1,
7
7
  } from './prodDb.js';
8
- import { getSecret } from './publish/secret-storage.js';
8
+ import { cloudflareD1Fetch } from './telemetryAuth.js';
9
9
 
10
10
  type AdminCollection =
11
11
  | 'errorLog'
@@ -27,14 +27,6 @@ async function queryTelemetryD1(
27
27
  options: { limit: number; level?: string },
28
28
  ): Promise<Record<string, unknown>[]> {
29
29
  const d1: ProdTelemetryD1 = resolveProdTelemetryD1();
30
- const token =
31
- (await getSecret(`cloudflare:token:${d1.projectId}`)) ??
32
- (await getSecret(`cloudflare:access-token:${d1.projectId}`));
33
- if (!token) {
34
- throw new Error(
35
- `No Cloudflare token for project "${d1.projectId}". Re-authenticate: \`ugly-app publish\`.`,
36
- );
37
- }
38
30
 
39
31
  const params: unknown[] = [];
40
32
  let sql: string;
@@ -57,17 +49,10 @@ async function queryTelemetryD1(
57
49
  sql = `SELECT * FROM feedback_report ORDER BY created DESC LIMIT ?`;
58
50
  }
59
51
 
60
- const res = await globalThis.fetch(
52
+ const res = await cloudflareD1Fetch(
53
+ d1.projectId,
61
54
  `${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`,
62
- {
63
- method: 'POST',
64
- headers: {
65
- Authorization: `Bearer ${token}`,
66
- 'Content-Type': 'application/json',
67
- Accept: 'application/json',
68
- },
69
- body: JSON.stringify({ sql, params }),
70
- },
55
+ { method: 'POST', body: JSON.stringify({ sql, params }) },
71
56
  );
72
57
  if (!res.ok) {
73
58
  const body = await res.text().catch(() => '');
@@ -0,0 +1,55 @@
1
+ import {
2
+ getFreshCloudflareCredentials,
3
+ forceRefreshCloudflareCredentials,
4
+ } from './auth/cloudflareOauth.js';
5
+ import { getSecret } from './publish/secret-storage.js';
6
+
7
+ /**
8
+ * Fetch against the Cloudflare API with a token that self-heals on auth failure.
9
+ *
10
+ * The stored Cloudflare OAuth access token (`cfoat_…`) is short-lived, and the
11
+ * cached `expiresAt` can lie (a token can be revoked, or the expiry was
12
+ * mis-computed) — so `getFreshCloudflareCredentials()`, which only refreshes when
13
+ * the LOCAL clock says the token is near expiry, will happily hand back a dead
14
+ * token. The telemetry query path used to take that token raw and 401 forever
15
+ * until the next `ugly-app publish` re-minted it. This wrapper instead refreshes
16
+ * and retries once on an actual 401/403, so `ugly-app errors`/`feedback`/`perf`
17
+ * keep working without a re-publish.
18
+ */
19
+ export async function cloudflareD1Fetch(
20
+ projectId: string,
21
+ url: string,
22
+ init: { method: string; body: string },
23
+ ): Promise<Response> {
24
+ const creds = await getFreshCloudflareCredentials();
25
+ const token =
26
+ creds?.accessToken ??
27
+ (await getSecret(`cloudflare:token:${projectId}`)) ??
28
+ (await getSecret(`cloudflare:access-token:${projectId}`));
29
+ if (!token) {
30
+ throw new Error(
31
+ `No Cloudflare token for project "${projectId}". Re-authenticate: \`ugly-app login cloudflare\` (or \`ugly-app publish\`).`,
32
+ );
33
+ }
34
+ const send = (t: string): Promise<Response> =>
35
+ globalThis.fetch(url, {
36
+ method: init.method,
37
+ headers: {
38
+ Authorization: `Bearer ${t}`,
39
+ 'Content-Type': 'application/json',
40
+ Accept: 'application/json',
41
+ },
42
+ body: init.body,
43
+ });
44
+
45
+ let res = await send(token);
46
+ // The cached token's local expiry can't be trusted — force a refresh on a REAL
47
+ // auth failure and retry once. forceRefresh PERSISTS the rotated refresh token
48
+ // (Cloudflare rotates them single-use), so it doesn't burn the session. This is
49
+ // the fix for the "works right after publish, 401s an hour later" flaw.
50
+ if (res.status === 401 || res.status === 403) {
51
+ const refreshed = await forceRefreshCloudflareCredentials();
52
+ if (refreshed?.accessToken) res = await send(refreshed.accessToken);
53
+ }
54
+ return res;
55
+ }
@@ -1,4 +1,4 @@
1
- import { getSecret } from './publish/secret-storage.js';
1
+ import { cloudflareD1Fetch } from './telemetryAuth.js';
2
2
  import {
3
3
  resolveProdTelemetryD1,
4
4
  type ProdNeonLookupOptions,
@@ -13,19 +13,6 @@ export interface D1ExecResult {
13
13
  meta: { changes?: number; rows_written?: number; rows_read?: number } | null;
14
14
  }
15
15
 
16
- /** Resolve the Cloudflare API token for a project's D1 (same lookup the read path uses). */
17
- async function resolveD1Token(d1: ProdTelemetryD1): Promise<string> {
18
- const token =
19
- (await getSecret(`cloudflare:token:${d1.projectId}`)) ??
20
- (await getSecret(`cloudflare:access-token:${d1.projectId}`));
21
- if (!token) {
22
- throw new Error(
23
- `No Cloudflare token for project "${d1.projectId}". Re-authenticate: \`ugly-app publish\`.`,
24
- );
25
- }
26
- return token;
27
- }
28
-
29
16
  /**
30
17
  * Run a single SQL statement (read OR write) against the project's PRODUCTION
31
18
  * Cloudflare D1 telemetry DB (errorLog / feedbackReport / …) via the HTTP API.
@@ -40,18 +27,10 @@ export async function execTelemetryD1(
40
27
  opts: ProdNeonLookupOptions = {},
41
28
  ): Promise<D1ExecResult> {
42
29
  const d1 = resolveProdTelemetryD1(opts);
43
- const token = await resolveD1Token(d1);
44
- const res = await globalThis.fetch(
30
+ const res = await cloudflareD1Fetch(
31
+ d1.projectId,
45
32
  `${CLOUDFLARE_API_BASE}/accounts/${d1.accountId}/d1/database/${d1.databaseId}/query`,
46
- {
47
- method: 'POST',
48
- headers: {
49
- Authorization: `Bearer ${token}`,
50
- 'Content-Type': 'application/json',
51
- Accept: 'application/json',
52
- },
53
- body: JSON.stringify({ sql, params }),
54
- },
33
+ { method: 'POST', body: JSON.stringify({ sql, params }) },
55
34
  );
56
35
  if (!res.ok) {
57
36
  const body = await res.text().catch(() => '');
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.765";
2
+ export const CLI_VERSION = "0.1.766";