@usequeek/app-sdk 0.5.1 → 0.6.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/README.md +179 -12
- package/dist/app-auth.d.ts +9 -1
- package/dist/app-auth.d.ts.map +1 -1
- package/dist/app-auth.js +11 -1
- package/dist/app-auth.js.map +1 -1
- package/dist/auth-fetch.d.ts +91 -0
- package/dist/auth-fetch.d.ts.map +1 -0
- package/dist/auth-fetch.js +263 -0
- package/dist/auth-fetch.js.map +1 -0
- package/dist/browser.d.ts +25 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +27 -0
- package/dist/browser.js.map +1 -0
- package/dist/client.d.ts +32 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -2
- package/dist/client.js.map +1 -1
- package/dist/frame.d.ts +233 -4
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +694 -19
- package/dist/frame.js.map +1 -1
- package/dist/handoff.d.ts +32 -2
- package/dist/handoff.d.ts.map +1 -1
- package/dist/handoff.js +2 -1
- package/dist/handoff.js.map +1 -1
- package/dist/hono.d.ts +13 -0
- package/dist/hono.d.ts.map +1 -1
- package/dist/hono.js +15 -0
- package/dist/hono.js.map +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/install-handlers.d.ts +33 -8
- package/dist/install-handlers.d.ts.map +1 -1
- package/dist/install-handlers.js +133 -15
- package/dist/install-handlers.js.map +1 -1
- package/dist/merchant-schema.d.ts +1550 -68
- package/dist/merchant-schema.d.ts.map +1 -1
- package/dist/merchant-schema.js +1 -1
- package/dist/proxy.d.ts +122 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +204 -0
- package/dist/proxy.js.map +1 -0
- package/dist/react.d.ts +78 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +262 -0
- package/dist/react.js.map +1 -0
- package/dist/scopes.d.ts +174 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +297 -0
- package/dist/scopes.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/session.d.ts +17 -5
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +35 -16
- package/dist/session.js.map +1 -1
- package/dist/store.d.ts +33 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +114 -4
- package/dist/store.js.map +1 -1
- package/dist/theme.d.ts +100 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +162 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.d.ts +30 -15
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +57 -19
- package/dist/tokens.js.map +1 -1
- package/dist/webhooks.d.ts.map +1 -1
- package/dist/webhooks.js +1 -1
- package/dist/webhooks.js.map +1 -1
- package/package.json +21 -5
- package/CHANGELOG.md +0 -162
- package/openapi/merchant.json +0 -21452
package/dist/store.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
2
|
import { Pool } from "pg";
|
|
3
3
|
import { decryptSecret, encryptSecret, parseStoreKey } from "./crypto.js";
|
|
4
|
+
/**
|
|
5
|
+
* Portable compare-and-clear for custom `InstallationStore`s that don't
|
|
6
|
+
* implement `clearCachedTokenIfMatches`: read the row, compare the stored
|
|
7
|
+
* token to the failing call's value, and clear only on a match. Best-effort
|
|
8
|
+
* across processes (read-then-clear is not atomic here) — exact for the
|
|
9
|
+
* single-process case, and a concurrent re-mint still self-heals via the
|
|
10
|
+
* caller's retry. Returns true when the token was cleared.
|
|
11
|
+
*/
|
|
12
|
+
export async function defaultClearCachedTokenIfMatches(store, installationId, expectedToken) {
|
|
13
|
+
const row = await store.getInstallation(installationId);
|
|
14
|
+
if (!row || row.token !== expectedToken)
|
|
15
|
+
return false;
|
|
16
|
+
await store.clearCachedToken(installationId);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
4
19
|
const SEEN_TTL_SECONDS = 24 * 60 * 60;
|
|
5
20
|
const INSTALLATIONS_TABLE_SQLITE = `
|
|
6
21
|
CREATE TABLE IF NOT EXISTS installations (
|
|
@@ -152,6 +167,29 @@ export class SqliteInstallationStore {
|
|
|
152
167
|
WHERE installation_id = ?`)
|
|
153
168
|
.run(installationId);
|
|
154
169
|
}
|
|
170
|
+
clearCachedTokenIfMatches(installationId, expectedToken) {
|
|
171
|
+
// Synchronous start to finish, so no other JS in this process can
|
|
172
|
+
// interleave a mint between the read and the clear.
|
|
173
|
+
const row = this.db
|
|
174
|
+
.prepare(`SELECT token_enc FROM installations WHERE installation_id = ?`)
|
|
175
|
+
.get(installationId);
|
|
176
|
+
if (!row || row.token_enc === null)
|
|
177
|
+
return false;
|
|
178
|
+
let current;
|
|
179
|
+
try {
|
|
180
|
+
current = decryptSecret(row.token_enc, this.key);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
if (current !== expectedToken)
|
|
186
|
+
return false;
|
|
187
|
+
this.db
|
|
188
|
+
.prepare(`UPDATE installations SET token_enc = NULL, token_expires_at = NULL, token_kid = NULL
|
|
189
|
+
WHERE installation_id = ?`)
|
|
190
|
+
.run(installationId);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
155
193
|
clearAllCachedTokens() {
|
|
156
194
|
this.db
|
|
157
195
|
.prepare(`UPDATE installations SET token_enc = NULL, token_expires_at = NULL, token_kid = NULL`)
|
|
@@ -212,12 +250,41 @@ export class SqliteInstallationStore {
|
|
|
212
250
|
this.db.close();
|
|
213
251
|
}
|
|
214
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Canonical integer-string form of a Queek `p_id`: the handoff contract
|
|
255
|
+
* types p_ids as strings and the backend casts on the wire, but the
|
|
256
|
+
* tolerance stays — a JSON integer would reach here as a JS number, and
|
|
257
|
+
* `node:sqlite` binds that number into a TEXT column as `"1021.0"`, which
|
|
258
|
+
* never equals the proxy `kid` (`"1021"`). Non-numeric pids pass through
|
|
259
|
+
* untouched.
|
|
260
|
+
*/
|
|
261
|
+
export function normalisePid(value) {
|
|
262
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
263
|
+
return String(Math.trunc(value));
|
|
264
|
+
if (typeof value === "string") {
|
|
265
|
+
const trimmed = value.trim();
|
|
266
|
+
if (/^[+-]?\d+(\.\d+)?$/.test(trimmed)) {
|
|
267
|
+
const parsed = Number(trimmed);
|
|
268
|
+
if (Number.isFinite(parsed))
|
|
269
|
+
return String(Math.trunc(parsed));
|
|
270
|
+
}
|
|
271
|
+
return value;
|
|
272
|
+
}
|
|
273
|
+
return String(value);
|
|
274
|
+
}
|
|
275
|
+
/** Nullable form for the store `p_id` (null stays null). */
|
|
276
|
+
export function normaliseNullablePid(value) {
|
|
277
|
+
if (value === null || value === undefined)
|
|
278
|
+
return null;
|
|
279
|
+
return normalisePid(value);
|
|
280
|
+
}
|
|
215
281
|
function rowToRecord(row, key) {
|
|
216
282
|
return {
|
|
217
283
|
installationId: column(row.installation_id),
|
|
218
|
-
|
|
284
|
+
// Heals rows written before normalisation (`"1021.0"` reads as `"1021"`).
|
|
285
|
+
installationPid: normalisePid(column(row.installation_pid)),
|
|
219
286
|
vendorId: column(row.vendor_id),
|
|
220
|
-
storePid: row.store_pid
|
|
287
|
+
storePid: normaliseNullablePid(row.store_pid),
|
|
221
288
|
storeName: column(row.store_name),
|
|
222
289
|
apiBase: column(row.api_base),
|
|
223
290
|
token: row.token_enc === null ? null : decryptSecret(column(row.token_enc), key),
|
|
@@ -458,6 +525,47 @@ export class PostgresInstallationStore {
|
|
|
458
525
|
await this.pool.query(`UPDATE installations SET token_enc = NULL, token_expires_at = NULL, token_kid = NULL
|
|
459
526
|
WHERE installation_id = $1`, [installationId]);
|
|
460
527
|
}
|
|
528
|
+
async clearCachedTokenIfMatches(installationId, expectedToken) {
|
|
529
|
+
await this.ready;
|
|
530
|
+
const client = await this.pool.connect();
|
|
531
|
+
try {
|
|
532
|
+
await client.query("BEGIN");
|
|
533
|
+
const result = await client.query(`SELECT token_enc FROM installations WHERE installation_id = $1 FOR UPDATE`, [installationId]);
|
|
534
|
+
const row = result.rows[0];
|
|
535
|
+
if (!row || row.token_enc === null) {
|
|
536
|
+
await client.query("ROLLBACK");
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
let current;
|
|
540
|
+
try {
|
|
541
|
+
current = decryptSecret(row.token_enc, this.key);
|
|
542
|
+
}
|
|
543
|
+
catch {
|
|
544
|
+
await client.query("ROLLBACK");
|
|
545
|
+
return false;
|
|
546
|
+
}
|
|
547
|
+
if (current !== expectedToken) {
|
|
548
|
+
await client.query("ROLLBACK");
|
|
549
|
+
return false;
|
|
550
|
+
}
|
|
551
|
+
await client.query(`UPDATE installations SET token_enc = NULL, token_expires_at = NULL, token_kid = NULL
|
|
552
|
+
WHERE installation_id = $1`, [installationId]);
|
|
553
|
+
await client.query("COMMIT");
|
|
554
|
+
return true;
|
|
555
|
+
}
|
|
556
|
+
catch (error) {
|
|
557
|
+
try {
|
|
558
|
+
await client.query("ROLLBACK");
|
|
559
|
+
}
|
|
560
|
+
catch {
|
|
561
|
+
// The rollback itself failed; the original error is what matters.
|
|
562
|
+
}
|
|
563
|
+
throw error;
|
|
564
|
+
}
|
|
565
|
+
finally {
|
|
566
|
+
client.release();
|
|
567
|
+
}
|
|
568
|
+
}
|
|
461
569
|
async clearAllCachedTokens() {
|
|
462
570
|
await this.ready;
|
|
463
571
|
await this.pool.query(`UPDATE installations SET token_enc = NULL, token_expires_at = NULL, token_kid = NULL`);
|
|
@@ -544,9 +652,11 @@ function pgRowToRecord(row, key) {
|
|
|
544
652
|
const expires = row.token_expires_at;
|
|
545
653
|
return {
|
|
546
654
|
installationId: pgText(row.installation_id, "installation_id"),
|
|
547
|
-
|
|
655
|
+
// Heals rows written before normalisation (`"1021.0"` reads as `"1021"`),
|
|
656
|
+
// like the sqlite path above.
|
|
657
|
+
installationPid: normalisePid(pgText(row.installation_pid, "installation_pid")),
|
|
548
658
|
vendorId: pgText(row.vendor_id, "vendor_id"),
|
|
549
|
-
storePid: row.store_pid
|
|
659
|
+
storePid: normaliseNullablePid(row.store_pid),
|
|
550
660
|
storeName: pgText(row.store_name, "store_name"),
|
|
551
661
|
apiBase: pgText(row.api_base, "api_base"),
|
|
552
662
|
token: tokenEnc === null ? null : decryptSecret(tokenEnc, key),
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard-following theme (U7): dark when the dashboard is dark, light
|
|
3
|
+
* when light, switching live. First load carries `theme=light|dark` as a
|
|
4
|
+
* plain UNSIGNED URL query param (dashboard `resolvedTheme`) so the app
|
|
5
|
+
* server-renders `<html class="dark">` with no flash; live changes arrive
|
|
6
|
+
* as bridge `theme{mode}` messages and toggle the `dark` class — shadcn's
|
|
7
|
+
* own dark-mode mechanism.
|
|
8
|
+
*
|
|
9
|
+
* The param is a first-paint hint only, never auth: it is validated
|
|
10
|
+
* (exactly `light` or `dark` — anything else is ignored) and the live
|
|
11
|
+
* bridge message overwrites it.
|
|
12
|
+
*
|
|
13
|
+
* DOM-free by design (structural minimal types, like `frame.ts`): pass a
|
|
14
|
+
* document in, or let the helpers use the global one when present.
|
|
15
|
+
*/
|
|
16
|
+
import { type EmbedEventTarget, type EmbedPostTarget, type ThemeMode } from "./frame.js";
|
|
17
|
+
export type { ThemeMode };
|
|
18
|
+
/** Frame URL query param carrying the dashboard's resolved theme. */
|
|
19
|
+
export declare const THEME_PARAM = "theme";
|
|
20
|
+
/** sessionStorage key remembering the last live mode (bootstrap fallback). */
|
|
21
|
+
export declare const THEME_STORAGE_KEY = "queek.theme";
|
|
22
|
+
export interface ThemeStorage {
|
|
23
|
+
getItem(key: string): string | null;
|
|
24
|
+
setItem(key: string, value: string): void;
|
|
25
|
+
}
|
|
26
|
+
export interface ThemeDocumentElement {
|
|
27
|
+
classList: {
|
|
28
|
+
toggle(name: string, force?: boolean): void;
|
|
29
|
+
};
|
|
30
|
+
style: {
|
|
31
|
+
colorScheme: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface ThemeDocument {
|
|
35
|
+
documentElement: ThemeDocumentElement;
|
|
36
|
+
}
|
|
37
|
+
/** Remember the live mode (best-effort; storage may be denied in sandboxes). */
|
|
38
|
+
export declare function rememberThemeMode(mode: ThemeMode, storage?: ThemeStorage | null): void;
|
|
39
|
+
/**
|
|
40
|
+
* Read the theme mode: the URL `theme` param wins; otherwise the remembered
|
|
41
|
+
* live mode (an in-frame reload drops the param but keeps sessionStorage);
|
|
42
|
+
* otherwise `light`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getThemeModeFromUrl(href: string, param?: string, storage?: ThemeStorage | null): ThemeMode;
|
|
45
|
+
export interface ThemeUrlOptions {
|
|
46
|
+
param?: string;
|
|
47
|
+
/** Current href (defaults to the global window location). */
|
|
48
|
+
getHref?: () => string;
|
|
49
|
+
/** Replace the URL without navigating (defaults to history.replaceState). */
|
|
50
|
+
replaceUrl?: (url: string) => void;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Rewrite the `theme` URL param to the live mode (other params and the hash
|
|
54
|
+
* are kept) so an in-frame reload's bootstrap reads the CURRENT mode, not the
|
|
55
|
+
* stale one from the first load. Best-effort: never throws.
|
|
56
|
+
*/
|
|
57
|
+
export declare function syncThemeUrl(mode: ThemeMode, options?: ThemeUrlOptions): void;
|
|
58
|
+
/**
|
|
59
|
+
* Apply the mode: toggle `.dark` on `<html>` + set `color-scheme`
|
|
60
|
+
* (shadcn's dark-mode mechanism). No-op without a document (SSR-safe).
|
|
61
|
+
*/
|
|
62
|
+
export declare function applyTheme(mode: ThemeMode, doc?: ThemeDocument): void;
|
|
63
|
+
/**
|
|
64
|
+
* Tiny inline script (to place in `<head>` before first paint) that reads
|
|
65
|
+
* the `theme` URL param — falling back to the mode remembered in
|
|
66
|
+
* sessionStorage when the URL carries none (an in-frame reload) — and sets
|
|
67
|
+
* `.dark` + `color-scheme` immediately, so a dark load never flashes light.
|
|
68
|
+
* No external dependency, no dashboard round-trip.
|
|
69
|
+
*/
|
|
70
|
+
export declare function themeBootstrapScript(param?: string): string;
|
|
71
|
+
export interface ThemeListenerOptions {
|
|
72
|
+
dashboardOrigin: string;
|
|
73
|
+
target?: EmbedEventTarget;
|
|
74
|
+
/**
|
|
75
|
+
* Required `event.source` for theme messages. Defaults to the global
|
|
76
|
+
* window's parent (the embedding dashboard); pass `null` to disable the
|
|
77
|
+
* source check.
|
|
78
|
+
*/
|
|
79
|
+
expectSource?: unknown;
|
|
80
|
+
onChange?: (mode: ThemeMode) => void;
|
|
81
|
+
doc?: ThemeDocument;
|
|
82
|
+
/** postMessage target for the `ready` announcement (non-React apps need it to get the mode). */
|
|
83
|
+
postTarget?: EmbedPostTarget;
|
|
84
|
+
capabilities?: string[];
|
|
85
|
+
sdkVersion?: string;
|
|
86
|
+
storage?: ThemeStorage | null;
|
|
87
|
+
/** URL access for the live `theme` param rewrite (default: the global window). */
|
|
88
|
+
getHref?: () => string;
|
|
89
|
+
replaceUrl?: (url: string) => void;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Follow live dashboard theme changes: announces `ready` on subscribe (so a
|
|
93
|
+
* non-React app gets the mode even after an in-frame reload), then every
|
|
94
|
+
* bridge `theme{mode}` toggles the `dark` class, is remembered for the
|
|
95
|
+
* bootstrap fallback, and notifies `onChange`. Applies nothing else on
|
|
96
|
+
* subscribe — first paint is the bootstrap script / server render's job.
|
|
97
|
+
* Returns an unsubscribe function.
|
|
98
|
+
*/
|
|
99
|
+
export declare function installThemeListener(options: ThemeListenerOptions): () => void;
|
|
100
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAGpB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,qEAAqE;AACrE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAeD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE;QAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,oBAAoB,CAAC;CACvC;AAOD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAUtF;AAeD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,EAC3B,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,GAC5B,SAAS,CAUX;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CA6BjF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAOrE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,MAAoB,GAAG,MAAM,CAUxE;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gGAAgG;IAChG,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAe9E"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard-following theme (U7): dark when the dashboard is dark, light
|
|
3
|
+
* when light, switching live. First load carries `theme=light|dark` as a
|
|
4
|
+
* plain UNSIGNED URL query param (dashboard `resolvedTheme`) so the app
|
|
5
|
+
* server-renders `<html class="dark">` with no flash; live changes arrive
|
|
6
|
+
* as bridge `theme{mode}` messages and toggle the `dark` class — shadcn's
|
|
7
|
+
* own dark-mode mechanism.
|
|
8
|
+
*
|
|
9
|
+
* The param is a first-paint hint only, never auth: it is validated
|
|
10
|
+
* (exactly `light` or `dark` — anything else is ignored) and the live
|
|
11
|
+
* bridge message overwrites it.
|
|
12
|
+
*
|
|
13
|
+
* DOM-free by design (structural minimal types, like `frame.ts`): pass a
|
|
14
|
+
* document in, or let the helpers use the global one when present.
|
|
15
|
+
*/
|
|
16
|
+
import { listenToDashboard, sendReady, } from "./frame.js";
|
|
17
|
+
/** Frame URL query param carrying the dashboard's resolved theme. */
|
|
18
|
+
export const THEME_PARAM = "theme";
|
|
19
|
+
/** sessionStorage key remembering the last live mode (bootstrap fallback). */
|
|
20
|
+
export const THEME_STORAGE_KEY = "queek.theme";
|
|
21
|
+
function globalSessionStorage() {
|
|
22
|
+
try {
|
|
23
|
+
const storage = globalThis.sessionStorage;
|
|
24
|
+
return storage ?? null;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function globalParent() {
|
|
31
|
+
return globalThis.window?.parent;
|
|
32
|
+
}
|
|
33
|
+
function globalDocument() {
|
|
34
|
+
const doc = globalThis.document;
|
|
35
|
+
return doc?.documentElement !== undefined ? doc : null;
|
|
36
|
+
}
|
|
37
|
+
/** Remember the live mode (best-effort; storage may be denied in sandboxes). */
|
|
38
|
+
export function rememberThemeMode(mode, storage) {
|
|
39
|
+
const target = storage === undefined ? globalSessionStorage() : storage;
|
|
40
|
+
if (target === null) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
target.setItem(THEME_STORAGE_KEY, mode);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Denied storage must never break theming.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function storedThemeMode(storage) {
|
|
51
|
+
const target = storage === undefined ? globalSessionStorage() : storage;
|
|
52
|
+
if (target === null || target === undefined) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const mode = target.getItem(THEME_STORAGE_KEY);
|
|
57
|
+
return mode === "dark" || mode === "light" ? mode : null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Read the theme mode: the URL `theme` param wins; otherwise the remembered
|
|
65
|
+
* live mode (an in-frame reload drops the param but keeps sessionStorage);
|
|
66
|
+
* otherwise `light`.
|
|
67
|
+
*/
|
|
68
|
+
export function getThemeModeFromUrl(href, param = THEME_PARAM, storage) {
|
|
69
|
+
try {
|
|
70
|
+
const params = new URL(href, "https://app.invalid").searchParams;
|
|
71
|
+
if (params.has(param)) {
|
|
72
|
+
return params.get(param) === "dark" ? "dark" : "light";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return "light";
|
|
77
|
+
}
|
|
78
|
+
return storedThemeMode(storage) ?? "light";
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Rewrite the `theme` URL param to the live mode (other params and the hash
|
|
82
|
+
* are kept) so an in-frame reload's bootstrap reads the CURRENT mode, not the
|
|
83
|
+
* stale one from the first load. Best-effort: never throws.
|
|
84
|
+
*/
|
|
85
|
+
export function syncThemeUrl(mode, options = {}) {
|
|
86
|
+
try {
|
|
87
|
+
const win = globalThis.window;
|
|
88
|
+
const href = options.getHref !== undefined ? options.getHref() : win?.location.href;
|
|
89
|
+
if (href === undefined) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const param = options.param ?? THEME_PARAM;
|
|
93
|
+
const url = new URL(href, "https://app.invalid");
|
|
94
|
+
if (url.searchParams.get(param) === mode) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
url.searchParams.set(param, mode);
|
|
98
|
+
const relative = `${url.pathname}${url.search}${url.hash}`;
|
|
99
|
+
if (options.replaceUrl !== undefined) {
|
|
100
|
+
options.replaceUrl(relative);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
win?.history.replaceState(null, "", relative);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// A denied replaceState must not break theming.
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Apply the mode: toggle `.dark` on `<html>` + set `color-scheme`
|
|
112
|
+
* (shadcn's dark-mode mechanism). No-op without a document (SSR-safe).
|
|
113
|
+
*/
|
|
114
|
+
export function applyTheme(mode, doc) {
|
|
115
|
+
const target = doc ?? globalDocument();
|
|
116
|
+
if (target === null || target === undefined) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
target.documentElement.classList.toggle("dark", mode === "dark");
|
|
120
|
+
target.documentElement.style.colorScheme = mode;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Tiny inline script (to place in `<head>` before first paint) that reads
|
|
124
|
+
* the `theme` URL param — falling back to the mode remembered in
|
|
125
|
+
* sessionStorage when the URL carries none (an in-frame reload) — and sets
|
|
126
|
+
* `.dark` + `color-scheme` immediately, so a dark load never flashes light.
|
|
127
|
+
* No external dependency, no dashboard round-trip.
|
|
128
|
+
*/
|
|
129
|
+
export function themeBootstrapScript(param = THEME_PARAM) {
|
|
130
|
+
const key = JSON.stringify(param);
|
|
131
|
+
const storageKey = JSON.stringify(THEME_STORAGE_KEY);
|
|
132
|
+
return (`try{var m=new URLSearchParams(location.search).get(${key});` +
|
|
133
|
+
`if(m===null){try{m=sessionStorage.getItem(${storageKey})}catch(x){}}` +
|
|
134
|
+
`else{try{sessionStorage.setItem(${storageKey},m==="dark"?"dark":"light")}catch(x){}}` +
|
|
135
|
+
`var d=m==="dark";var e=document.documentElement;` +
|
|
136
|
+
`e.classList.toggle("dark",d);e.style.colorScheme=d?"dark":"light"}catch(e){}`);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Follow live dashboard theme changes: announces `ready` on subscribe (so a
|
|
140
|
+
* non-React app gets the mode even after an in-frame reload), then every
|
|
141
|
+
* bridge `theme{mode}` toggles the `dark` class, is remembered for the
|
|
142
|
+
* bootstrap fallback, and notifies `onChange`. Applies nothing else on
|
|
143
|
+
* subscribe — first paint is the bootstrap script / server render's job.
|
|
144
|
+
* Returns an unsubscribe function.
|
|
145
|
+
*/
|
|
146
|
+
export function installThemeListener(options) {
|
|
147
|
+
const { dashboardOrigin, target, onChange, doc, postTarget, capabilities, sdkVersion, storage } = options;
|
|
148
|
+
const expectSource = options.expectSource !== undefined ? options.expectSource : globalParent();
|
|
149
|
+
sendReady(dashboardOrigin, postTarget, { capabilities, sdkVersion });
|
|
150
|
+
return listenToDashboard({
|
|
151
|
+
dashboardOrigin,
|
|
152
|
+
target,
|
|
153
|
+
expectSource: expectSource ?? undefined,
|
|
154
|
+
onTheme: (theme) => {
|
|
155
|
+
applyTheme(theme.mode, doc);
|
|
156
|
+
rememberThemeMode(theme.mode, storage);
|
|
157
|
+
syncThemeUrl(theme.mode, { getHref: options.getHref, replaceUrl: options.replaceUrl });
|
|
158
|
+
onChange?.(theme.mode);
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AppCredential } from "./app-auth.js";
|
|
2
|
-
import { QueekApiError, type QueekClient } from "./client.js";
|
|
2
|
+
import { type MerchantPaths, QueekApiError, type QueekClient, type ResolvedPaths } from "./client.js";
|
|
3
3
|
import { type Logger } from "./logger.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type InstallationStore } from "./store.js";
|
|
5
5
|
/**
|
|
6
6
|
* Installation tokens (S1, SDK 0.2.0): the app holds ONE asymmetric app
|
|
7
7
|
* credential and mints short-lived installation tokens from Queek on
|
|
@@ -14,10 +14,12 @@ import type { InstallationStore } from "./store.js";
|
|
|
14
14
|
* - A merchant-API token refusal → drop it, re-mint once, retry once; a
|
|
15
15
|
* second refusal propagates. Token refusal = any 401, or a 403 with
|
|
16
16
|
* `api_key_revoked` / `api_key_expired` / `invalid_client_key` (rev 7).
|
|
17
|
-
* A merchant 403 `
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* A merchant 403 `insufficient_scope` (stale grant) follows the same
|
|
18
|
+
* drop + re-mint-once + retry-once path. A merchant 403
|
|
19
|
+
* `app_token_revoked` is the app-wide kill switch (drop all + halt, no
|
|
20
|
+
* mint); any other merchant 403 (plan, mode) propagates untouched. (If
|
|
21
|
+
* the re-mint itself hits `invalid_client` / kill-switch / gone, the
|
|
22
|
+
* mint path below applies those rules.)
|
|
21
23
|
* - Concurrent callers in one process share ONE in-flight mint per
|
|
22
24
|
* installation (single-flight). Across containers two mints are harmless
|
|
23
25
|
* by design: Queek keeps coexisting tokens valid (K=2 slots) and the
|
|
@@ -37,7 +39,13 @@ export declare const APP_API_PATH = "/api/v1/apps";
|
|
|
37
39
|
/** Minimal surface the installation client needs (stubs stay one-liners). */
|
|
38
40
|
export interface AppTokens {
|
|
39
41
|
acquireToken(installationId: string): Promise<string>;
|
|
40
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Forget one installation's cached token. When `expectedToken` (the value
|
|
44
|
+
* the failing call presented) is given, the drop is compare-and-clear: a
|
|
45
|
+
* no-op when the store already holds a different (fresher) token, so a
|
|
46
|
+
* late drop can never wipe a concurrent re-mint.
|
|
47
|
+
*/
|
|
48
|
+
dropCachedToken(installationId: string, expectedToken?: string): Promise<void>;
|
|
41
49
|
/**
|
|
42
50
|
* Kill-switch path: forget EVERY cached token for the app and halt
|
|
43
51
|
* minting (loud log inside). Called on a merchant 403 `app_token_revoked`.
|
|
@@ -91,7 +99,7 @@ export declare class AppTokenProvider implements AppTokens {
|
|
|
91
99
|
acquireToken(installationId: string): Promise<string>;
|
|
92
100
|
private acquireUnshared;
|
|
93
101
|
private isFresh;
|
|
94
|
-
dropCachedToken(installationId: string): Promise<void>;
|
|
102
|
+
dropCachedToken(installationId: string, expectedToken?: string): Promise<void>;
|
|
95
103
|
/** Kill-switch path (also used by ops): forget every cached token, keep the rows. */
|
|
96
104
|
dropAllCachedTokens(): Promise<void>;
|
|
97
105
|
/**
|
|
@@ -151,12 +159,19 @@ export interface InstallationClientOptions {
|
|
|
151
159
|
* installation token is resolved per request (usually a cache hit — the
|
|
152
160
|
* store IS the cache, one shared row per installation), sent as
|
|
153
161
|
* `X-Client-Key`, and on a merchant-API token refusal (any 401, or 403
|
|
154
|
-
* `api_key_revoked` / `api_key_expired` / `invalid_client_key`)
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
* exactly like the
|
|
162
|
+
* `api_key_revoked` / `api_key_expired` / `invalid_client_key`) — or a 403
|
|
163
|
+
* `insufficient_scope` after a grant change — it is dropped, re-minted
|
|
164
|
+
* once, and the call retried once; a second refusal propagates to the
|
|
165
|
+
* caller. A merchant 403 `app_token_revoked` drops all cached tokens and
|
|
166
|
+
* halts minting; any other 403 propagates without a mint. 429/network
|
|
167
|
+
* retries (`requestWithRetry`) reuse one idempotency key exactly like the
|
|
168
|
+
* static client.
|
|
169
|
+
*
|
|
170
|
+
* Generic over the app's Merchant API paths (`TPaths`, default: the
|
|
171
|
+
* bundled `MerchantPaths` compat shim). Pass the app's own codegen output
|
|
172
|
+
* (`createInstallationClient<AppPaths>(...)`) for current types with zero
|
|
173
|
+
* SDK publish; the default keeps existing apps compiling unchanged but
|
|
174
|
+
* does NOT auto-update (re-run codegen in the app; sunset signal at 1.0).
|
|
160
175
|
*/
|
|
161
|
-
export declare function createInstallationClient(options: InstallationClientOptions): QueekClient
|
|
176
|
+
export declare function createInstallationClient<TPaths = MerchantPaths>(options: InstallationClientOptions): QueekClient<ResolvedPaths<TPaths>>;
|
|
162
177
|
//# sourceMappingURL=tokens.d.ts.map
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|