@biab-dev/sdk 0.2.1 → 0.7.2

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.
@@ -0,0 +1,230 @@
1
+ /**
2
+ * SDK auth handler — the file a tenant developer mounts on their own site
3
+ * to handle the WorkOS callback. Cookie lives on the tenant's domain so the
4
+ * tenant's SSR can read it via standard cookie APIs.
5
+ *
6
+ * Usage (Next.js App Router):
7
+ *
8
+ * // app/api/biab-auth/[...biab]/route.ts
9
+ * import { createAuthHandler } from "@biab-dev/sdk";
10
+ *
11
+ * const handler = createAuthHandler({
12
+ * baseUrl: process.env.BIAB_PACKAGE_API_BASE_URL!,
13
+ * apiKey: process.env.BIAB_API_KEY!,
14
+ * callbackUrl: "https://my-site.com/api/biab-auth/callback",
15
+ * });
16
+ *
17
+ * export const GET = handler.GET;
18
+ * export const POST = handler.POST;
19
+ *
20
+ * Then drop <SignIn />, <SignUp />, <SignOut /> into your pages — they call
21
+ * `/api/biab-auth/sign-in?intent=sign-in` etc., which 302s through the WorkOS
22
+ * hosted page and back to `callbackUrl`. The handler exchanges the code,
23
+ * sets the session cookie, and redirects the user to `returnTo`.
24
+ */
25
+ import { BiabDevClient, } from "./client";
26
+ import { BiabApiError } from "./errors";
27
+ export const DEFAULT_AUTH_COOKIE_NAME = "biab_session";
28
+ export const DEFAULT_AUTH_BASE_PATH = "/api/biab-auth";
29
+ function buildSetCookie(name, value, opts) {
30
+ const parts = [`${name}=${value}`, "Path=/", "HttpOnly", "SameSite=Lax"];
31
+ parts.push("Secure");
32
+ if (opts.domain)
33
+ parts.push(`Domain=${opts.domain}`);
34
+ if (opts.clear) {
35
+ parts.push("Max-Age=0");
36
+ }
37
+ else if (opts.expiresAt) {
38
+ parts.push(`Expires=${opts.expiresAt.toUTCString()}`);
39
+ }
40
+ return parts.join("; ");
41
+ }
42
+ function readCookie(request, name) {
43
+ const header = request.headers.get("cookie");
44
+ if (!header)
45
+ return null;
46
+ for (const part of header.split(";")) {
47
+ const [k, ...rest] = part.trim().split("=");
48
+ if (k === name)
49
+ return rest.join("=");
50
+ }
51
+ return null;
52
+ }
53
+ /**
54
+ * `auth/start` expects `returnTo` as an absolute URL. Plain paths like `/` come
55
+ * from `defaultReturnTo` and from `<SignIn returnTo="/dashboard" />`.
56
+ */
57
+ function absolutizeReturnTo(returnTo, requestUrl) {
58
+ try {
59
+ return new URL(returnTo, requestUrl).href;
60
+ }
61
+ catch {
62
+ return new URL("/", requestUrl).href;
63
+ }
64
+ }
65
+ function decodeReturnTo(state) {
66
+ if (!state)
67
+ return null;
68
+ try {
69
+ const decoded = Buffer.from(state, "base64url").toString("utf8");
70
+ const parsed = JSON.parse(decoded);
71
+ if (typeof parsed.returnTo === "string")
72
+ return parsed.returnTo;
73
+ }
74
+ catch {
75
+ /* ignore */
76
+ }
77
+ return null;
78
+ }
79
+ /**
80
+ * Returned as plain text so failed redirects show a readable page instead of
81
+ * Next.js's empty 500 from an uncaught `BiabApiError`.
82
+ */
83
+ function authStartFailureResponse(error) {
84
+ let detail = "";
85
+ if (error instanceof BiabApiError) {
86
+ const fromBody = error.body &&
87
+ typeof error.body === "object" &&
88
+ "message" in error.body &&
89
+ typeof error.body.message === "string"
90
+ ? error.body.message
91
+ : error.message;
92
+ detail = fromBody ? `${fromBody}\n\n` : "";
93
+ const needsTenantAuthHint = error.status === 403 &&
94
+ (typeof fromBody === "string"
95
+ ? /tenant_auth|missing_scope/i.test(fromBody)
96
+ : false);
97
+ if (needsTenantAuthHint) {
98
+ detail +=
99
+ "Your Package API key must include scope tenant_auth:public for hosted sign-in.\n";
100
+ detail +=
101
+ "In BIAB: Site Builder → Developer panel → Developer Package API keys.\n";
102
+ detail +=
103
+ "When creating or reissuing the key, include the tenant_auth:public scope (checkbox list), update BIAB_API_KEY in .env.local, restart the dev server.\n";
104
+ }
105
+ const status = error.status >= 400 && error.status <= 599 ? error.status : 502;
106
+ return new Response(`${detail || "Tenant auth request failed."}`.trim(), {
107
+ status,
108
+ headers: { "Content-Type": "text/plain; charset=utf-8" },
109
+ });
110
+ }
111
+ const fallback = error instanceof Error ? error.message : "Unexpected error during tenant auth.";
112
+ return new Response(`Tenant auth request failed.\n\n${fallback}`.trim(), {
113
+ status: 502,
114
+ headers: { "Content-Type": "text/plain; charset=utf-8" },
115
+ });
116
+ }
117
+ export function createAuthHandler(options) {
118
+ const cookieName = options.cookieName ?? DEFAULT_AUTH_COOKIE_NAME;
119
+ const basePath = (options.basePath ?? DEFAULT_AUTH_BASE_PATH).replace(/\/$/, "");
120
+ const defaultReturnTo = options.defaultReturnTo ?? "/";
121
+ const signOutReturnTo = options.signOutReturnTo ?? "/";
122
+ const derivedOrigin = options.siteOrigin ??
123
+ (() => {
124
+ try {
125
+ return new URL(options.callbackUrl).origin;
126
+ }
127
+ catch {
128
+ return undefined;
129
+ }
130
+ })();
131
+ const client = new BiabDevClient({
132
+ baseUrl: options.baseUrl,
133
+ apiKey: options.apiKey,
134
+ ...(options.fetch ? { fetch: options.fetch } : {}),
135
+ ...(derivedOrigin ? { siteOrigin: derivedOrigin } : {}),
136
+ });
137
+ async function handle(request) {
138
+ const url = new URL(request.url);
139
+ const subroute = url.pathname.startsWith(basePath)
140
+ ? url.pathname.slice(basePath.length).replace(/^\//, "")
141
+ : url.pathname;
142
+ // /sign-in?returnTo=... and /sign-up?returnTo=...
143
+ if (subroute === "sign-in" || subroute === "sign-up") {
144
+ const rawReturnTo = url.searchParams.get("returnTo") ?? defaultReturnTo;
145
+ try {
146
+ const start = await client.auth.start({
147
+ intent: subroute === "sign-up" ? "sign-up" : "sign-in",
148
+ returnTo: absolutizeReturnTo(rawReturnTo, request.url),
149
+ redirectUri: options.callbackUrl,
150
+ loginHint: url.searchParams.get("loginHint") ?? undefined,
151
+ });
152
+ return Response.redirect(start.url, 302);
153
+ }
154
+ catch (err) {
155
+ return authStartFailureResponse(err);
156
+ }
157
+ }
158
+ // /callback?code=...&state=...
159
+ if (subroute === "callback") {
160
+ const code = url.searchParams.get("code");
161
+ if (!code) {
162
+ return new Response("Missing code", { status: 400 });
163
+ }
164
+ try {
165
+ const session = await client.auth.exchange({
166
+ code,
167
+ redirectUri: options.callbackUrl,
168
+ });
169
+ const returnTo = decodeReturnTo(url.searchParams.get("state")) ?? defaultReturnTo;
170
+ return new Response(null, {
171
+ status: 302,
172
+ headers: {
173
+ Location: returnTo,
174
+ "Set-Cookie": buildSetCookie(cookieName, session.sessionToken, {
175
+ expiresAt: new Date(session.expiresAt),
176
+ domain: options.cookieDomain,
177
+ }),
178
+ },
179
+ });
180
+ }
181
+ catch (err) {
182
+ const message = err instanceof Error ? err.message : "exchange failed";
183
+ return new Response(`Sign-in failed: ${message}`, { status: 400 });
184
+ }
185
+ }
186
+ // /sign-out
187
+ if (subroute === "sign-out") {
188
+ await client.auth.signOut().catch(() => undefined);
189
+ return new Response(null, {
190
+ status: 302,
191
+ headers: {
192
+ Location: signOutReturnTo,
193
+ "Set-Cookie": buildSetCookie(cookieName, "", {
194
+ clear: true,
195
+ domain: options.cookieDomain,
196
+ }),
197
+ },
198
+ });
199
+ }
200
+ // /me — returns the current session (or null) as JSON, scoped to this cookie.
201
+ if (subroute === "me") {
202
+ const token = readCookie(request, cookieName);
203
+ if (!token) {
204
+ return Response.json(null);
205
+ }
206
+ const me = await client.auth
207
+ .me({ sessionToken: token })
208
+ .catch(() => null);
209
+ return Response.json(me);
210
+ }
211
+ return new Response("Not found", { status: 404 });
212
+ }
213
+ return { GET: handle, POST: handle };
214
+ }
215
+ /**
216
+ * Server-side helper for tenant SSR: read the current session from the cookie.
217
+ * Returns null when the user isn't signed in.
218
+ */
219
+ export async function getTenantSession(input) {
220
+ if (!input.cookieValue)
221
+ return null;
222
+ const client = new BiabDevClient({
223
+ baseUrl: input.baseUrl,
224
+ apiKey: input.apiKey,
225
+ ...(input.fetch ? { fetch: input.fetch } : {}),
226
+ ...(input.siteOrigin ? { siteOrigin: input.siteOrigin } : {}),
227
+ });
228
+ return client.auth.me({ sessionToken: input.cookieValue }).catch(() => null);
229
+ }
230
+ //# sourceMappingURL=auth-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-handler.js","sourceRoot":"","sources":["../src/auth-handler.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { z } from "zod";
2
- import { type AuthIntrospectResponse, type CreateCollectionInput, type CreateCollectionResponse, type CreateEmailTemplateInput, type CreateEmailTemplateResponse, type CreateEmailTemplateVersionInput, type CreateEmailTemplateVersionResponse, type DashboardSessionResponse, type ExecuteActionInput, type ExecuteActionResponse, type FollowerEditInput, type FollowerEditResponse, type FollowerJoinInput, type FollowerJoinResponse, type FollowerLeaveInput, type FollowerLeaveResponse, type FollowerMeInput, type FollowerMeResponse, type GetCollectionResponse, type GetEmailTemplateResponse, type GetSiteMarketingPageResponse, type ListCollectionsResponse, type ListEmailTemplatesInput, type ListEmailTemplatesResponse, type ListRowsInput, type ListRowsResponse, type QueryRowsInput, type QueryRowsResponse, type SiteAssetInput, type UploadSiteAssetResponse, type UpsertRowInput, type UpsertRowResponse } from "./contracts";
2
+ import { type AuthIntrospectResponse, type TenantAuthExchangeInput, type TenantAuthExchangeResponse, type TenantAuthMeResponse, type TenantAuthSignOutResponse, type TenantAuthStartInput, type TenantAuthStartResponse, type BlogSessionInput, type BlogSessionResponse, type CartSessionResponse, type ChatbotChatInput, type ChatbotChatResponse, type ChatbotConfig, type ChatbotConfigUpdateInput, type ChatbotSessionResponse, type CheckoutSessionInput, type CheckoutSessionResponse, type CreateCollectionInput, type CreateCollectionResponse, type CreateEmailTemplateInput, type CreateEmailTemplateResponse, type CreateEmailTemplateVersionInput, type CreateEmailTemplateVersionResponse, type CustomerPortalContextResponse, type CustomerPortalOtherOrgsResponse, type CustomerPortalProfile, type CustomerPortalUpdateProfileInput, type CustomerPortalUpdateProfileResponse, type DashboardSessionResponse, type ExecuteActionInput, type ExecuteActionResponse, type FollowerEditInput, type FollowerEditResponse, type FollowerJoinInput, type FollowerJoinResponse, type FollowerLeaveInput, type FollowerLeaveResponse, type FollowerMeInput, type FollowerMeResponse, type GetCollectionResponse, type GetEmailTemplateResponse, type GetSiteMarketingPageResponse, type ListCollectionsResponse, type ListEmailTemplatesInput, type ListEmailTemplatesResponse, type ListRowsInput, type ListRowsResponse, type QueryRowsInput, type QueryRowsResponse, type SiteAssetInput, type StorefrontSessionInput, type StorefrontSessionResponse, type UploadSiteAssetResponse, type UpsertRowInput, type UpsertRowResponse } from "./contracts";
3
3
  export type FetchLike = typeof fetch;
4
4
  /** Options for {@link BiabDevClient} / {@link createBiabDevClient}. */
5
5
  export type BiabDevClientOptions = {
@@ -7,6 +7,14 @@ export type BiabDevClientOptions = {
7
7
  apiKey: string;
8
8
  fetch?: FetchLike;
9
9
  defaultHeaders?: HeadersInit;
10
+ /**
11
+ * Origin to send to the platform on every request. Required when the API
12
+ * key has an Allowed Host set on the host (server-to-server `fetch` does
13
+ * not send `Origin` automatically — without it the platform replies 403
14
+ * `origin_required`). Accepts a full URL (`https://my-site.com`) or a
15
+ * bare hostname (`my-site.com`); only the origin is sent on the wire.
16
+ */
17
+ siteOrigin?: string;
10
18
  };
11
19
  type RequestOptions<T> = {
12
20
  method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
@@ -14,6 +22,7 @@ type RequestOptions<T> = {
14
22
  query?: Record<string, string | number | boolean | undefined>;
15
23
  body?: unknown;
16
24
  responseSchema: z.ZodType<T, z.ZodTypeDef, unknown>;
25
+ headers?: HeadersInit;
17
26
  };
18
27
  /**
19
28
  * Typed client for the BIAB package HTTP API.
@@ -28,9 +37,24 @@ export declare class BiabDevClient {
28
37
  private readonly fetchImpl;
29
38
  private readonly defaultHeaders;
30
39
  constructor(options: BiabDevClientOptions);
40
+ private readonly siteOrigin;
31
41
  site(siteId: string): BiabDevSiteClient;
32
42
  get emailTemplates(): BiabDevEmailTemplatesClient;
33
43
  get dashboard(): BiabDevDashboardClient;
44
+ get storefront(): BiabDevStorefrontClient;
45
+ get cart(): BiabDevCartClient;
46
+ get checkout(): BiabDevCheckoutClient;
47
+ get blog(): BiabDevBlogClient;
48
+ get chatbot(): BiabDevChatbotClient;
49
+ get auth(): BiabDevAuthClient;
50
+ /**
51
+ * Customer-portal client. Pin to a specific WorkOS organization id so the
52
+ * caller never sees data from any other org (recommended). Omit
53
+ * `organizationId` to fall back to the user's currently-active session
54
+ * org — only use that on first-party hosts where the host already pins
55
+ * the org.
56
+ */
57
+ customerPortal(organizationId?: string): BiabDevCustomerPortalClient;
34
58
  introspect(): Promise<AuthIntrospectResponse>;
35
59
  request<T>(options: RequestOptions<T>): Promise<T>;
36
60
  }
@@ -116,6 +140,67 @@ export declare class BiabDevDashboardClient {
116
140
  constructor(client: BiabDevClient);
117
141
  createSession(): Promise<DashboardSessionResponse>;
118
142
  }
143
+ export declare class BiabDevStorefrontClient {
144
+ private readonly client;
145
+ constructor(client: BiabDevClient);
146
+ createSession(input?: StorefrontSessionInput): Promise<StorefrontSessionResponse>;
147
+ }
148
+ export declare class BiabDevCartClient {
149
+ private readonly client;
150
+ constructor(client: BiabDevClient);
151
+ createSession(): Promise<CartSessionResponse>;
152
+ }
153
+ export declare class BiabDevCheckoutClient {
154
+ private readonly client;
155
+ constructor(client: BiabDevClient);
156
+ createSession(input: CheckoutSessionInput): Promise<CheckoutSessionResponse>;
157
+ }
158
+ export declare class BiabDevBlogClient {
159
+ private readonly client;
160
+ constructor(client: BiabDevClient);
161
+ createSession(input?: BlogSessionInput): Promise<BlogSessionResponse>;
162
+ }
163
+ export declare class BiabDevChatbotClient {
164
+ private readonly client;
165
+ constructor(client: BiabDevClient);
166
+ /** Returns the iframe URL for `<Chatbot/>`. */
167
+ createSession(): Promise<ChatbotSessionResponse>;
168
+ /** Reads the org's persisted chatbot config (system prompt, KB, model). */
169
+ getConfig(): Promise<ChatbotConfig>;
170
+ /**
171
+ * Persists the org's chatbot config. Requires `chatbot:write` scope on the
172
+ * API key — typically only used by admin tools, not embedded widgets.
173
+ */
174
+ updateConfig(input: ChatbotConfigUpdateInput): Promise<ChatbotConfig>;
175
+ /**
176
+ * Headless chat — host owns the UI. Each request is fully org-scoped: the
177
+ * server runs the LLM with the org's saved system prompt + KB + model.
178
+ */
179
+ chat(input: ChatbotChatInput): Promise<ChatbotChatResponse>;
180
+ }
181
+ /**
182
+ * Reads the active customer-portal context (organization + user) and exposes
183
+ * profile mutations + a list of *only this user's* other customer
184
+ * relationships.
185
+ *
186
+ * @remarks
187
+ * **Privacy:** When `organizationId` is set, every request is pinned to that
188
+ * org via the `X-BIAB-Customer-Portal-Org` header. The server-side
189
+ * `customerPortalProcedure` will reject any access to a different org, so a
190
+ * customer browsing a Dominoes-branded site can never accidentally see Pizza
191
+ * Hut data even if their account is linked to both. This is the recommended
192
+ * mode for embedding the SDK on a tenant's site or app.
193
+ */
194
+ export declare class BiabDevCustomerPortalClient {
195
+ private readonly client;
196
+ private readonly organizationId;
197
+ constructor(client: BiabDevClient, organizationId: string | null);
198
+ private headers;
199
+ context(): Promise<CustomerPortalContextResponse>;
200
+ getProfile(): Promise<CustomerPortalProfile>;
201
+ updateProfile(input: CustomerPortalUpdateProfileInput): Promise<CustomerPortalUpdateProfileResponse>;
202
+ myOtherCustomerOrgs(): Promise<CustomerPortalOtherOrgsResponse>;
203
+ }
119
204
  /**
120
205
  * Creates a {@link BiabDevClient} for the given host `baseUrl` and package API key.
121
206
  *
@@ -124,5 +209,20 @@ export declare class BiabDevDashboardClient {
124
209
  * for production use yet. Prefer non-production environments until a stable major is published.
125
210
  */
126
211
  export declare function createBiabDevClient(options: BiabDevClientOptions): BiabDevClient;
212
+ /**
213
+ * Per-tenant auth: WorkOS hosted sign-in/sign-up scoped to the org bound to
214
+ * the API key. Used by the SDK's `createAuthHandler` (server) and
215
+ * `<SignIn />` / `<SignUp />` / `<SignOut />` components (client).
216
+ */
217
+ export declare class BiabDevAuthClient {
218
+ private readonly client;
219
+ constructor(client: BiabDevClient);
220
+ start(input: TenantAuthStartInput): Promise<TenantAuthStartResponse>;
221
+ exchange(input: TenantAuthExchangeInput): Promise<TenantAuthExchangeResponse>;
222
+ me(input: {
223
+ sessionToken: string;
224
+ }): Promise<TenantAuthMeResponse>;
225
+ signOut(): Promise<TenantAuthSignOutResponse>;
226
+ }
127
227
  export {};
128
228
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EACN,KAAK,sBAAsB,EAE3B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,kCAAkC,EAOvC,KAAK,wBAAwB,EAE7B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAG1B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EASvB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EAIjC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAMrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGtB,KAAK,cAAc,EAEnB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAItB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,IAAI;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;CACpD,CAAC;AA8CF;;;;;;GAMG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;gBAE7C,OAAO,EAAE,oBAAoB;IAWzC,IAAI,CAAC,MAAM,EAAE,MAAM;IAInB,IAAI,cAAc,gCAEjB;IAED,IAAI,SAAS,2BAEZ;IAEK,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAQ7C,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAoCxD;AAED,qBAAa,iBAAiB;IAS5B,QAAQ,CAAC,MAAM,EAAE,aAAa;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;IATxB,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAC;gBAG3C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;CASxB;AAED;;;;;;;;GAQG;AACH,qBAAa,2BAA2B;IAEtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAGhC;;;;OAIG;IACG,GAAG,CAAC,OAAO,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAMlE;AAED,qBAAa,wBAAwB;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAG1B,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAOxC,MAAM,CACX,KAAK,EAAE,qBAAqB,GAC1B,OAAO,CAAC,wBAAwB,CAAC;IAW9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAMvD;AAED,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAG1B,IAAI,CACT,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,aAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAUtB,MAAM,CACX,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,cAAc,GACnB,OAAO,CAAC,iBAAiB,CAAC;IAWvB,KAAK,CACV,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,cAAc,GACnB,OAAO,CAAC,iBAAiB,CAAC;CAU7B;AAED,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAG1B,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAUrE;AAED,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAG1B,GAAG,CACR,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,kBAAoC,GACzC,OAAO,CAAC,qBAAqB,CAAC;CAUjC;AAED,qBAAa,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,IAAI,CACT,KAAK,GAAE,uBAA4B,GACjC,OAAO,CAAC,0BAA0B,CAAC;IAUhC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAO1D,MAAM,CACX,KAAK,EAAE,wBAAwB,GAC7B,OAAO,CAAC,2BAA2B,CAAC;IAWjC,aAAa,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,+BAA+B,GACpC,OAAO,CAAC,kCAAkC,CAAC;CAU9C;AAED,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM;IAGhC,OAAO,CAAC,UAAU;IAIZ,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY7D,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAYvD,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY7D,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAWtE;AAED,qBAAa,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC;CAOxD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,iBAEhE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}