@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.
Files changed (76) hide show
  1. package/README.md +179 -12
  2. package/dist/app-auth.d.ts +9 -1
  3. package/dist/app-auth.d.ts.map +1 -1
  4. package/dist/app-auth.js +11 -1
  5. package/dist/app-auth.js.map +1 -1
  6. package/dist/auth-fetch.d.ts +91 -0
  7. package/dist/auth-fetch.d.ts.map +1 -0
  8. package/dist/auth-fetch.js +263 -0
  9. package/dist/auth-fetch.js.map +1 -0
  10. package/dist/browser.d.ts +25 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +27 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/client.d.ts +32 -10
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +6 -2
  17. package/dist/client.js.map +1 -1
  18. package/dist/frame.d.ts +233 -4
  19. package/dist/frame.d.ts.map +1 -1
  20. package/dist/frame.js +694 -19
  21. package/dist/frame.js.map +1 -1
  22. package/dist/handoff.d.ts +32 -2
  23. package/dist/handoff.d.ts.map +1 -1
  24. package/dist/handoff.js +2 -1
  25. package/dist/handoff.js.map +1 -1
  26. package/dist/hono.d.ts +13 -0
  27. package/dist/hono.d.ts.map +1 -1
  28. package/dist/hono.js +15 -0
  29. package/dist/hono.js.map +1 -1
  30. package/dist/index.d.ts +11 -7
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +10 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/install-handlers.d.ts +33 -8
  35. package/dist/install-handlers.d.ts.map +1 -1
  36. package/dist/install-handlers.js +133 -15
  37. package/dist/install-handlers.js.map +1 -1
  38. package/dist/merchant-schema.d.ts +1550 -68
  39. package/dist/merchant-schema.d.ts.map +1 -1
  40. package/dist/merchant-schema.js +1 -1
  41. package/dist/proxy.d.ts +122 -0
  42. package/dist/proxy.d.ts.map +1 -0
  43. package/dist/proxy.js +204 -0
  44. package/dist/proxy.js.map +1 -0
  45. package/dist/react.d.ts +78 -0
  46. package/dist/react.d.ts.map +1 -0
  47. package/dist/react.js +262 -0
  48. package/dist/react.js.map +1 -0
  49. package/dist/scopes.d.ts +174 -0
  50. package/dist/scopes.d.ts.map +1 -0
  51. package/dist/scopes.js +297 -0
  52. package/dist/scopes.js.map +1 -0
  53. package/dist/server.d.ts +1 -1
  54. package/dist/server.js +1 -1
  55. package/dist/session.d.ts +17 -5
  56. package/dist/session.d.ts.map +1 -1
  57. package/dist/session.js +35 -16
  58. package/dist/session.js.map +1 -1
  59. package/dist/store.d.ts +33 -0
  60. package/dist/store.d.ts.map +1 -1
  61. package/dist/store.js +114 -4
  62. package/dist/store.js.map +1 -1
  63. package/dist/theme.d.ts +100 -0
  64. package/dist/theme.d.ts.map +1 -0
  65. package/dist/theme.js +162 -0
  66. package/dist/theme.js.map +1 -0
  67. package/dist/tokens.d.ts +30 -15
  68. package/dist/tokens.d.ts.map +1 -1
  69. package/dist/tokens.js +57 -19
  70. package/dist/tokens.js.map +1 -1
  71. package/dist/webhooks.d.ts.map +1 -1
  72. package/dist/webhooks.js +1 -1
  73. package/dist/webhooks.js.map +1 -1
  74. package/package.json +21 -5
  75. package/CHANGELOG.md +0 -162
  76. package/openapi/merchant.json +0 -21452
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Same-origin session carriage for embedded apps (U-validation "Auth
3
+ * carriage"): `installAuthFetch()` reads the dashboard token from the
4
+ * first-load URL (`?queek_token=`, stripped immediately), exchanges it
5
+ * ONCE for the app's own session, and attaches
6
+ * `Authorization: Bearer <session>` to every same-origin fetch. A 401
7
+ * re-establishes the session via the bridge `ready→token` flow and retries
8
+ * once. Cookies stay out (`credentials: "omit"` on handled requests —
9
+ * the cross-site iframe cannot rely on them anyway).
10
+ *
11
+ * The caller supplies `exchange(token) => session`: the app's own endpoint
12
+ * that verifies the dashboard token server-side with the single
13
+ * `verifySessionToken` verifier and mints the app session — the exchange
14
+ * runs once on the first load so the first paint needs no bridge
15
+ * round-trip, and again (same callback) with a fresh token of the same
16
+ * type after every 401 refresh. This module never sees secrets — it only
17
+ * carries opaque tokens.
18
+ *
19
+ * DOM-free by design (like `frame.ts`): location/history access is
20
+ * injectable and defaults to the global window when present.
21
+ */
22
+ import { listenToDashboard, sendReady } from "./frame.js";
23
+ /**
24
+ * Dashboard token query param on the first load. Matches the dashboard
25
+ * frame src contract (the ONLY token that may ride a URL, namespaced so it
26
+ * cannot collide with an app's own `token` param). The token is the same
27
+ * type the bridge `ready→token` flow returns on refresh — first load and
28
+ * refresh differ only in transport (URL param vs postMessage), exactly
29
+ * Shopify's `id_token`.
30
+ */
31
+ export const LAUNCH_TOKEN_PARAM = "queek_token";
32
+ /** How long to wait for the dashboard's token reply after a `ready`. */
33
+ export const BRIDGE_TOKEN_TIMEOUT_MS = 8000;
34
+ function globalWindow() {
35
+ const scope = globalThis;
36
+ return scope.window?.location !== undefined ? (scope.window ?? null) : null;
37
+ }
38
+ /** Read the first-load token from a URL without touching it. */
39
+ export function readLaunchToken(href, param = LAUNCH_TOKEN_PARAM) {
40
+ try {
41
+ const token = new URL(href, "https://app.invalid").searchParams.get(param);
42
+ return token !== null && token.length > 0 ? token : null;
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ /**
49
+ * Strip the first-load token from a URL (every other param, plus the hash,
50
+ * is preserved). Returns the stripped href, or null when no token is
51
+ * present.
52
+ */
53
+ export function stripLaunchToken(href, param = LAUNCH_TOKEN_PARAM) {
54
+ try {
55
+ const url = new URL(href, "https://app.invalid");
56
+ if (!url.searchParams.has(param)) {
57
+ return null;
58
+ }
59
+ url.searchParams.delete(param);
60
+ return url.toString();
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ }
66
+ export function installAuthFetch(options) {
67
+ const param = options.param ?? LAUNCH_TOKEN_PARAM;
68
+ const win = globalWindow();
69
+ const getHref = options.getHref ?? (() => win?.location.href ?? "");
70
+ const replaceUrl = options.replaceUrl ?? ((url) => win?.history.replaceState(null, "", url));
71
+ const fetchImpl = options.fetchImpl ?? globalThis.fetch ?? null;
72
+ if (fetchImpl === null) {
73
+ throw new Error("installAuthFetch needs a fetch implementation");
74
+ }
75
+ const fetchFn = fetchImpl;
76
+ const listenTarget = options.listenTarget ?? win ?? undefined;
77
+ const postTarget = options.postTarget ?? win?.parent;
78
+ // Signed first load: read the token, strip it from the URL bar
79
+ // immediately (it must not linger in history), exchange it once.
80
+ const href = getHref();
81
+ const firstLoadToken = readLaunchToken(href, param);
82
+ const stripped = firstLoadToken === null ? null : stripLaunchToken(href, param);
83
+ if (stripped !== null) {
84
+ try {
85
+ replaceUrl(stripped);
86
+ }
87
+ catch {
88
+ // A denied replaceState must not break the exchange.
89
+ }
90
+ }
91
+ let session = null;
92
+ let exchangePromise = null;
93
+ let refreshPromise = null;
94
+ const runExchange = (token) => {
95
+ if (exchangePromise === null) {
96
+ exchangePromise = options.exchange(token).then((next) => {
97
+ session = next;
98
+ return next;
99
+ });
100
+ // A failed first exchange must not poison later refreshes.
101
+ exchangePromise.catch(() => {
102
+ if (session === null) {
103
+ exchangePromise = null;
104
+ }
105
+ });
106
+ }
107
+ return exchangePromise;
108
+ };
109
+ const ready = firstLoadToken === null ? Promise.resolve(null) : runExchange(firstLoadToken).catch(() => null);
110
+ // A recovery only makes sense inside a dashboard frame: unframed, nothing
111
+ // can ever answer the ready. After one failed recovery, later requests skip
112
+ // it (no 8s stall per fetch) until a later token proves the dashboard is
113
+ // talking.
114
+ const framed = postTarget !== undefined && postTarget !== win;
115
+ let recoveryFailed = false;
116
+ let pendingToken = null;
117
+ const expectSource = options.expectSource !== undefined ? options.expectSource : (win?.parent ?? undefined);
118
+ const stopListening = listenToDashboard({
119
+ dashboardOrigin: options.dashboardOrigin,
120
+ target: listenTarget,
121
+ expectSource: expectSource ?? undefined,
122
+ onToken: (token) => {
123
+ recoveryFailed = false;
124
+ pendingToken?.resolve(token);
125
+ pendingToken = null;
126
+ },
127
+ });
128
+ const waitForBridgeToken = () => new Promise((resolve, reject) => {
129
+ pendingToken?.reject(new Error("superseded by a newer token request"));
130
+ pendingToken = { resolve, reject };
131
+ sendReady(options.dashboardOrigin, postTarget, {
132
+ capabilities: options.capabilities,
133
+ sdkVersion: options.sdkVersion,
134
+ });
135
+ const timer = setTimeout(() => {
136
+ if (pendingToken?.resolve === resolve) {
137
+ pendingToken = null;
138
+ reject(new Error("timed out waiting for the dashboard token"));
139
+ }
140
+ }, BRIDGE_TOKEN_TIMEOUT_MS);
141
+ timer.unref?.();
142
+ });
143
+ const refresh = () => {
144
+ if (refreshPromise === null) {
145
+ refreshPromise = waitForBridgeToken()
146
+ .then((token) => {
147
+ exchangePromise = null;
148
+ return runExchange(token);
149
+ })
150
+ .finally(() => {
151
+ refreshPromise = null;
152
+ });
153
+ }
154
+ return refreshPromise;
155
+ };
156
+ /**
157
+ * Resolve the request URL without coercing: a `Request` carries its URL in
158
+ * `.url` (`String(request)` is `"[object Request]"` and would resolve
159
+ * same-origin — leaking the bearer cross-origin). Anything that is not a
160
+ * string, URL, or Request resolves to null and never gains a bearer.
161
+ */
162
+ const requestUrl = (input) => {
163
+ try {
164
+ if (typeof Request !== "undefined" && input instanceof Request) {
165
+ return input.url;
166
+ }
167
+ if (input instanceof URL) {
168
+ return input.href;
169
+ }
170
+ if (typeof input === "string") {
171
+ return input;
172
+ }
173
+ return null;
174
+ }
175
+ catch {
176
+ return null;
177
+ }
178
+ };
179
+ const isSameOrigin = (url) => {
180
+ try {
181
+ return new URL(url, getHref()).origin === new URL(getHref()).origin;
182
+ }
183
+ catch {
184
+ return false;
185
+ }
186
+ };
187
+ const withSession = async (input, init, token) => {
188
+ // A fresh clone per attempt: a body-carrying Request is consumed by its
189
+ // first fetch, so the 401 retry would otherwise throw.
190
+ const isRequest = typeof Request !== "undefined" && input instanceof Request;
191
+ const attempt = isRequest ? input.clone() : input;
192
+ // Merge: the Request's own headers first, the explicit init wins.
193
+ const headers = new Headers(isRequest ? input.headers : undefined);
194
+ if (init?.headers !== undefined) {
195
+ new Headers(init.headers).forEach((value, key) => {
196
+ headers.set(key, value);
197
+ });
198
+ }
199
+ if (!headers.has("authorization")) {
200
+ headers.set("authorization", `Bearer ${token}`);
201
+ }
202
+ return fetchFn(attempt, { ...init, headers, credentials: "omit" });
203
+ };
204
+ const recover = async () => {
205
+ if (!framed || recoveryFailed) {
206
+ return null;
207
+ }
208
+ try {
209
+ return await refresh();
210
+ }
211
+ catch {
212
+ recoveryFailed = true;
213
+ return null;
214
+ }
215
+ };
216
+ const authFetch = async (input, init) => {
217
+ const url = requestUrl(input);
218
+ if (url === null || !isSameOrigin(url)) {
219
+ return fetchFn(input, init);
220
+ }
221
+ // No session yet (e.g. no launch token after an in-frame hard reload):
222
+ // recover via the bridge ready→token flow before giving up — framed only,
223
+ // and not again after a failed attempt.
224
+ const used = session ?? (await ready) ?? (await recover());
225
+ if (used === null) {
226
+ return fetchFn(input, { ...init, credentials: "omit" });
227
+ }
228
+ const first = await withSession(input, init, used);
229
+ if (first.status !== 401) {
230
+ return first;
231
+ }
232
+ // Someone else already refreshed while we were in flight: retry once
233
+ // with the current session instead of refreshing again.
234
+ if (session !== null && session !== used) {
235
+ return withSession(input, init, session);
236
+ }
237
+ // One re-establishment per 401, then exactly one retry — through the
238
+ // same framed / remembered-failure gate as the no-session path.
239
+ const next = await recover();
240
+ if (next === null) {
241
+ return first;
242
+ }
243
+ try {
244
+ return await withSession(input, init, next);
245
+ }
246
+ catch {
247
+ recoveryFailed = true;
248
+ return first;
249
+ }
250
+ };
251
+ return {
252
+ fetch: authFetch,
253
+ getSession: () => session,
254
+ ready,
255
+ refresh,
256
+ dispose: () => {
257
+ pendingToken?.reject(new Error("disposed"));
258
+ pendingToken = null;
259
+ stopListening();
260
+ },
261
+ };
262
+ }
263
+ //# sourceMappingURL=auth-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-fetch.js","sourceRoot":"","sources":["../src/auth-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Plain-browser entry for `@usequeek/app-sdk` (Booking fix): the embedded-app
3
+ * bridge plus `installAuthFetch`, with ZERO Node-only modules.
4
+ *
5
+ * Import from `@usequeek/app-sdk/browser` in any browser bundle (Vite,
6
+ * Rollup, esbuild, …). Importing the same helpers from the MAIN entry pulls
7
+ * the whole barrel (`app-auth` → `node:crypto`, `store` → `pg`, …) and breaks
8
+ * browser builds — the main entry stays the server/universal entry on
9
+ * purpose (see README "Which entry do I import?").
10
+ *
11
+ * This module re-exports ONLY modules with no Node dependencies:
12
+ * `auth-fetch.js`, `frame.js`, `theme.js` (each imports at most each other).
13
+ * The scope consent-link builder (`buildScopeRequestLink`) is deliberately
14
+ * NOT here: it lives in `scopes.ts`, which imports `app-auth`/`client`/
15
+ * `store` (`node:crypto`, `pg`, `node:sqlite`) — open consent links from the
16
+ * browser with `sendOpen` instead (see README "Scopes").
17
+ *
18
+ * `tests/browser.test.ts` statically walks this file's transitive imports
19
+ * and fails if any of them ever gains a `node:*` / `pg` / `hono` / `jose` /
20
+ * `react` dependency, so this entry can never silently regress.
21
+ */
22
+ export { type AuthFetchOptions, BRIDGE_TOKEN_TIMEOUT_MS, type InstalledAuth, installAuthFetch, LAUNCH_TOKEN_PARAM, readLaunchToken, stripLaunchToken, } from "./auth-fetch.js";
23
+ export { APP_SOURCE, type AppInboundMessage, type AppOutboundMessage, BRIDGE_VERSION, type BridgeTheme, DASHBOARD_SOURCE, type EmbedEvent, type EmbedEventTarget, type EmbedPostTarget, type FrameBridgeOptions, listenToDashboard, type PickResourceRequest, type ReadyOptions, type ResourceItem, type SaveBarAction, type SaveBarState, sendNavigated, sendOpen, sendPickResource, sendReady, sendResize, sendSaveBar, sendTitle, type ThemeMode, type TitleActionDef, } from "./frame.js";
24
+ export { applyTheme, getThemeModeFromUrl, installThemeListener, rememberThemeMode, syncThemeUrl, THEME_PARAM, THEME_STORAGE_KEY, type ThemeDocument, type ThemeDocumentElement, type ThemeListenerOptions, type ThemeStorage, type ThemeUrlOptions, themeBootstrapScript, } from "./theme.js";
25
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,KAAK,aAAa,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,cAAc,EACd,KAAK,WAAW,EAChB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Plain-browser entry for `@usequeek/app-sdk` (Booking fix): the embedded-app
3
+ * bridge plus `installAuthFetch`, with ZERO Node-only modules.
4
+ *
5
+ * Import from `@usequeek/app-sdk/browser` in any browser bundle (Vite,
6
+ * Rollup, esbuild, …). Importing the same helpers from the MAIN entry pulls
7
+ * the whole barrel (`app-auth` → `node:crypto`, `store` → `pg`, …) and breaks
8
+ * browser builds — the main entry stays the server/universal entry on
9
+ * purpose (see README "Which entry do I import?").
10
+ *
11
+ * This module re-exports ONLY modules with no Node dependencies:
12
+ * `auth-fetch.js`, `frame.js`, `theme.js` (each imports at most each other).
13
+ * The scope consent-link builder (`buildScopeRequestLink`) is deliberately
14
+ * NOT here: it lives in `scopes.ts`, which imports `app-auth`/`client`/
15
+ * `store` (`node:crypto`, `pg`, `node:sqlite`) — open consent links from the
16
+ * browser with `sendOpen` instead (see README "Scopes").
17
+ *
18
+ * `tests/browser.test.ts` statically walks this file's transitive imports
19
+ * and fails if any of them ever gains a `node:*` / `pg` / `hono` / `jose` /
20
+ * `react` dependency, so this entry can never silently regress.
21
+ */
22
+ export { BRIDGE_TOKEN_TIMEOUT_MS, installAuthFetch, LAUNCH_TOKEN_PARAM, readLaunchToken, stripLaunchToken, } from "./auth-fetch.js";
23
+ export { APP_SOURCE, BRIDGE_VERSION, DASHBOARD_SOURCE, listenToDashboard, sendNavigated, sendOpen, sendPickResource, sendReady, sendResize, sendSaveBar, sendTitle, } from "./frame.js";
24
+ // NOTE: ThemeMode comes from ./frame.js only — theme.js merely re-exports
25
+ // it, so listing it here too would be ambiguous.
26
+ export { applyTheme, getThemeModeFromUrl, installThemeListener, rememberThemeMode, syncThemeUrl, THEME_PARAM, THEME_STORAGE_KEY, themeBootstrapScript, } from "./theme.js";
27
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAEL,uBAAuB,EAEvB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EAGV,cAAc,EAEd,gBAAgB,EAKhB,iBAAiB,EAMjB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,GAGV,MAAM,YAAY,CAAC;AACpB,0EAA0E;AAC1E,iDAAiD;AACjD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,iBAAiB,EAMjB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
package/dist/client.d.ts CHANGED
@@ -26,13 +26,23 @@ import type { paths } from "./merchant-schema.js";
26
26
  * HTTP-date). Plain `request()` never retries; `requestWithRetry()`
27
27
  * retries 429s and network errors with the SAME idempotency key.
28
28
  *
29
- * Typed surface: `getStore()` is typed from the generated Merchant API
30
- * schema (`openapi/merchant.json` → `merchant-schema.ts` via
31
- * `pnpm gen:merchant`); `request()` is the generic escape hatch.
29
+ * Typed surface: `getStore()` is typed from the app's Merchant API
30
+ * paths. Pass the app's own codegen output as the type argument
31
+ * (`createQueekClient<AppPaths>` / `createInstallationClient<AppPaths>`);
32
+ * the bundled `merchant-schema.ts` stays the DEFAULT (`TPaths = paths`)
33
+ * so existing apps compile unchanged — but the default is a compat shim,
34
+ * not the freshness mechanism: it does NOT auto-update when the Merchant
35
+ * API gains fields (re-run codegen in the app for current types; sunset
36
+ * signal at 1.0). A pinned old SDK keeps working with new fields untyped
37
+ * until bumped (the contract is additive). `request()` is the generic
38
+ * escape hatch.
39
+ * In-repo reference: `openapi/merchant.json` → `merchant-schema.ts` via
40
+ * `npm run gen:merchant` (the json is NOT shipped in the published
41
+ * package).
32
42
  */
33
43
  export type MerchantPaths = paths;
34
- /** 200 JSON body of `GET <P>` for operations shaped `{responses: {200: {content: {"application/json": T}}}}`. */
35
- export type OperationResponse<P extends keyof paths, M extends keyof paths[P]> = paths[P][M] extends {
44
+ /** 200 JSON body of `GET <P>` for operations shaped `{responses: {200: {content: {"application/json": T}}}}`. Over `TPaths` (default: the bundled `paths` compat shim). */
45
+ export type OperationResponse<P extends keyof TPaths, M extends keyof TPaths[P], TPaths = paths> = TPaths[P][M] extends {
36
46
  responses: {
37
47
  200: {
38
48
  content: {
@@ -41,7 +51,17 @@ export type OperationResponse<P extends keyof paths, M extends keyof paths[P]> =
41
51
  };
42
52
  };
43
53
  } ? T : unknown;
44
- export type StoreProfile = OperationResponse<"/store", "get">;
54
+ export type StoreProfile<TPaths = paths> = "get" extends keyof TPaths[Extract<"/store", keyof TPaths>] ? OperationResponse<Extract<"/store", keyof TPaths>, Extract<"get", keyof TPaths[Extract<"/store", keyof TPaths>]>, TPaths> : unknown;
55
+ /**
56
+ * The paths a generic client is actually typed over. An UNRESOLVED
57
+ * `TPaths` collapses to the bundled default: TypeScript instantiates an
58
+ * unconstrained type parameter at `unknown` (ignoring `= paths`) wherever a
59
+ * generic function's type is inspected without type arguments, e.g.
60
+ * `ReturnType<typeof createInstallationClient>` — the alias every app uses.
61
+ * Without this collapse that alias is `QueekClient<unknown>`, not
62
+ * assignable with `QueekClient`, and existing apps fail to compile on upgrade.
63
+ */
64
+ export type ResolvedPaths<TPaths> = unknown extends TPaths ? paths : TPaths;
45
65
  /** Path of the public Merchant API below the store host. */
46
66
  export declare const MERCHANT_API_PATH = "/api/v1/merchant";
47
67
  /** Hosts a handoff `api_base` may point at without extra configuration. */
@@ -91,6 +111,8 @@ export interface RequestOptions {
91
111
  requestId?: string;
92
112
  signal?: AbortSignal;
93
113
  }
114
+ /** True for HTTP methods that carry an `Idempotency-Key` (POST/PUT/PATCH/DELETE). */
115
+ export declare function isWriteMethod(method: string): boolean;
94
116
  export declare function newIdempotencyKey(): string;
95
117
  export interface QueekErrorDetails {
96
118
  status: number;
@@ -131,9 +153,9 @@ export interface RetryOptions {
131
153
  /** Injectable clock for tests. Defaults to a real setTimeout sleep. */
132
154
  sleep?: (ms: number) => Promise<void>;
133
155
  }
134
- export interface QueekClient {
135
- /** `GET /store` — the handed-off key proving itself. Typed from the Merchant API schema. */
136
- getStore(signal?: AbortSignal): Promise<StoreProfile>;
156
+ export interface QueekClient<TPaths = paths> {
157
+ /** `GET /store` — the handed-off key proving itself. Typed from the app's paths (`TPaths`, default: bundled shim). */
158
+ getStore(signal?: AbortSignal): Promise<StoreProfile<TPaths>>;
137
159
  /** Generic typed escape hatch: `request<T>("GET", "/orders", { query })`. Never retries. */
138
160
  request<T>(method: string, path: string, options?: RequestOptions): Promise<T>;
139
161
  /**
@@ -144,5 +166,5 @@ export interface QueekClient {
144
166
  */
145
167
  requestWithRetry<T>(method: string, path: string, options?: RequestOptions & RetryOptions): Promise<T>;
146
168
  }
147
- export declare function createQueekClient(clientOptions: QueekClientOptions): QueekClient;
169
+ export declare function createQueekClient<TPaths = paths>(clientOptions: QueekClientOptions): QueekClient<ResolvedPaths<TPaths>>;
148
170
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -89,6 +89,10 @@ export function resolveApiBase(raw, allowedApiHosts = []) {
89
89
  return `https://${host}${url.port !== "" ? `:${url.port}` : ""}${merchantPath}`;
90
90
  }
91
91
  const WRITE_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
92
+ /** True for HTTP methods that carry an `Idempotency-Key` (POST/PUT/PATCH/DELETE). */
93
+ export function isWriteMethod(method) {
94
+ return WRITE_METHODS.has(method.toUpperCase());
95
+ }
92
96
  export function newIdempotencyKey() {
93
97
  return randomUUID();
94
98
  }
@@ -208,7 +212,7 @@ export function createQueekClient(clientOptions) {
208
212
  headers.set("Content-Type", "application/json");
209
213
  body = JSON.stringify(options.body);
210
214
  }
211
- if (WRITE_METHODS.has(upper)) {
215
+ if (isWriteMethod(upper)) {
212
216
  headers.set("Idempotency-Key", options.idempotencyKey ?? newIdempotencyKey());
213
217
  }
214
218
  let response;
@@ -236,7 +240,7 @@ export function createQueekClient(clientOptions) {
236
240
  const sleep = options.sleep ?? defaultSleep;
237
241
  // One key for every attempt: Queek replays same-key+same-body writes
238
242
  // instead of duplicating them, so retrying a write is safe.
239
- const idempotencyKey = options.idempotencyKey ?? (WRITE_METHODS.has(method.toUpperCase()) ? newIdempotencyKey() : undefined);
243
+ const idempotencyKey = options.idempotencyKey ?? (isWriteMethod(method) ? newIdempotencyKey() : undefined);
240
244
  let lastError;
241
245
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
242
246
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}