@nvisy/sdk 0.10.0 → 0.12.0

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,144 @@
1
+ import { d as WebhookEvent } from "../index-DJSrXmm0.js";
2
+ import { n as NvisyError } from "../errors-DEIpR751.js";
3
+ //#region src/webhooks/verify.d.ts
4
+ /**
5
+ * A webhook event type: any of the known {@link WebhookEvent} values (which
6
+ * autocomplete), plus any other string — the server may emit an event type the
7
+ * installed SDK version doesn't yet know about, so always handle the default
8
+ * case.
9
+ */
10
+ type WebhookEventType = WebhookEvent | (string & {});
11
+ /**
12
+ * Header names the Nvisy webhook delivery sends. Use these to pull values off
13
+ * an incoming request before verifying.
14
+ */
15
+ declare const WEBHOOK_HEADERS: {
16
+ readonly signature: "X-Webhook-Signature";
17
+ readonly timestamp: "X-Webhook-Timestamp";
18
+ readonly event: "X-Webhook-Event";
19
+ readonly requestId: "X-Webhook-Request-Id";
20
+ };
21
+ /**
22
+ * Thrown when a webhook delivery fails verification (bad or missing signature,
23
+ * or a timestamp outside the tolerance window).
24
+ */
25
+ declare class WebhookSignatureError extends NvisyError {}
26
+ /**
27
+ * Options for verifying a webhook delivery.
28
+ */
29
+ interface VerifyWebhookOptions {
30
+ /**
31
+ * The webhook's signing secret, returned once from `webhooks.createWebhook()`
32
+ * as `WebhookCreated.secret`.
33
+ */
34
+ secret: string;
35
+ /**
36
+ * The **raw** request body, exactly as received. Do not parse and
37
+ * re-serialize it — the signature is computed over the raw bytes, so any
38
+ * reformatting (key reordering, whitespace) will fail verification.
39
+ */
40
+ payload: string;
41
+ /** The `X-Webhook-Signature` header value (e.g. `sha256=...`). */
42
+ signature: string;
43
+ /** The `X-Webhook-Timestamp` header value (unix seconds). */
44
+ timestamp: string;
45
+ /**
46
+ * How many seconds of clock skew to tolerate between the delivery timestamp
47
+ * and now. Deliveries outside this window are rejected as possible replays.
48
+ * Set to `0` to disable the timestamp check. Defaults to 300 (5 minutes).
49
+ */
50
+ toleranceSeconds?: number;
51
+ /**
52
+ * Current unix time in seconds, for the timestamp check. Defaults to
53
+ * `Date.now() / 1000`. Exposed for testing.
54
+ */
55
+ now?: number;
56
+ }
57
+ /**
58
+ * Verify the signature and timestamp of a webhook delivery.
59
+ *
60
+ * The signature is an HMAC-SHA256, keyed by the webhook secret, computed over
61
+ * `` `${timestamp}.${payload}` ``. Comparison is constant-time, and (unless
62
+ * disabled) the timestamp must be within `toleranceSeconds` of now.
63
+ *
64
+ * @returns `true` if the delivery is authentic.
65
+ * @throws {WebhookSignatureError} if the signature is missing/invalid or the
66
+ * timestamp is outside the tolerance window.
67
+ */
68
+ declare function verifyWebhook(options: VerifyWebhookOptions): Promise<true>;
69
+ /**
70
+ * A verified webhook delivery: the parsed payload plus its envelope metadata.
71
+ *
72
+ * The payload body varies by `event`, so it is typed as `unknown` — narrow it
73
+ * based on the `event` field.
74
+ */
75
+ interface WebhookDelivery {
76
+ /**
77
+ * The event type, from the `X-Webhook-Event` header. `undefined` if the
78
+ * delivery carried no event header.
79
+ */
80
+ event?: WebhookEventType;
81
+ /** The delivery's request id (from `X-Webhook-Request-Id`). */
82
+ requestId?: string;
83
+ /** The delivery timestamp in unix seconds. */
84
+ timestamp: number;
85
+ /** The parsed JSON payload. Narrow by `event`. */
86
+ payload: unknown;
87
+ }
88
+ /**
89
+ * Options for {@link constructEvent}: everything {@link verifyWebhook} needs,
90
+ * plus the delivery headers used to populate the envelope.
91
+ */
92
+ interface ConstructEventOptions extends VerifyWebhookOptions {
93
+ /** The `X-Webhook-Event` header value. */
94
+ event?: string;
95
+ /** The `X-Webhook-Request-Id` header value. */
96
+ requestId?: string;
97
+ }
98
+ /**
99
+ * Verify a webhook delivery and return the parsed event in one step.
100
+ *
101
+ * Verifies the signature (see {@link verifyWebhook}), then JSON-parses the raw
102
+ * payload and returns it alongside the envelope metadata.
103
+ *
104
+ * @throws {WebhookSignatureError} if verification fails.
105
+ */
106
+ declare function constructEvent(options: ConstructEventOptions): Promise<WebhookDelivery>;
107
+ //#endregion
108
+ //#region src/webhooks/request.d.ts
109
+ /** Options for the `Request`-based webhook helpers. */
110
+ interface RequestVerifyOptions {
111
+ /** The webhook's signing secret (`WebhookCreated.secret`). */
112
+ secret: string;
113
+ /**
114
+ * Replay tolerance in seconds; see `VerifyWebhookOptions.toleranceSeconds`.
115
+ */
116
+ toleranceSeconds?: number;
117
+ /** Current unix time in seconds, for the timestamp check (testing). */
118
+ now?: number;
119
+ }
120
+ /**
121
+ * Verify a webhook delivery from a standard `Request` (Fetch API).
122
+ *
123
+ * Reads the raw body and the `X-Webhook-*` headers off the request — so it
124
+ * works out of the box with web-standard frameworks (Hono, Next.js App Router,
125
+ * Remix, SvelteKit, Deno, Bun, Cloudflare Workers). The request is cloned
126
+ * before its body is read, so the caller can still consume the original.
127
+ *
128
+ * @returns `true` if the delivery is authentic.
129
+ * @throws {WebhookSignatureError} if verification fails.
130
+ */
131
+ declare function verifyRequest(request: Request, options: RequestVerifyOptions): Promise<true>;
132
+ /**
133
+ * Verify a webhook delivery from a standard `Request` and return the parsed
134
+ * event in one step. See {@link verifyRequest} for framework compatibility.
135
+ *
136
+ * The request is cloned before its body is read, so the caller can still
137
+ * consume the original.
138
+ *
139
+ * @throws {WebhookSignatureError} if verification fails.
140
+ */
141
+ declare function constructEventFromRequest(request: Request, options: RequestVerifyOptions): Promise<WebhookDelivery>;
142
+ //#endregion
143
+ export { type ConstructEventOptions, type RequestVerifyOptions, type VerifyWebhookOptions, WEBHOOK_HEADERS, type WebhookDelivery, type WebhookEventType, WebhookSignatureError, constructEvent, constructEventFromRequest, verifyRequest, verifyWebhook };
144
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/webhooks/verify.ts","../../src/webhooks/request.ts"],"mappings":";;;;;;;;;KAUY,mBAAmB;;;;;cAMlB;;;;;;;;;;cAcA,8BAA8B;;;;UAK1B;;;;;EAKhB;;;;;;EAMA;;EAEA;;EAEA;;;;;;EAMA;;;;;EAKA;;;;;;;;;;;;;iBAyCqB,cACrB,SAAS,uBACP;;;;;;;UA6Cc;;;;;EAKhB,QAAQ;;EAER;;EAEA;;EAEA;;;;;;UAOgB,8BAA8B;;EAE9C;;EAEA;;;;;;;;;;iBAWqB,eACrB,SAAS,wBACP,QAAQ;;;;UCnJM;;EAEhB;;;;EAIA;;EAEA;;;;;;;;;;;;;iBAcqB,cACrB,SAAS,SACT,SAAS,uBACP;;;;;;;;;;iBAsBmB,0BACrB,SAAS,SACT,SAAS,uBACP,QAAQ"}
@@ -0,0 +1,147 @@
1
+ import { n as NvisyError } from "../errors-BOLD8iC1.js";
2
+
3
+ //#region src/webhooks/verify.ts
4
+ /**
5
+ * Header names the Nvisy webhook delivery sends. Use these to pull values off
6
+ * an incoming request before verifying.
7
+ */
8
+ const WEBHOOK_HEADERS = {
9
+ signature: "X-Webhook-Signature",
10
+ timestamp: "X-Webhook-Timestamp",
11
+ event: "X-Webhook-Event",
12
+ requestId: "X-Webhook-Request-Id"
13
+ };
14
+ /** Default replay-protection window: reject deliveries older than 5 minutes. */
15
+ const DEFAULT_TOLERANCE_SECONDS = 300;
16
+ /**
17
+ * Thrown when a webhook delivery fails verification (bad or missing signature,
18
+ * or a timestamp outside the tolerance window).
19
+ */
20
+ var WebhookSignatureError = class extends NvisyError {};
21
+ const encoder = new TextEncoder();
22
+ /** Compute the lowercase hex HMAC-SHA256 of `data` keyed by `secret`. */
23
+ async function hmacSha256Hex(secret, data) {
24
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
25
+ name: "HMAC",
26
+ hash: "SHA-256"
27
+ }, false, ["sign"]);
28
+ const mac = await crypto.subtle.sign("HMAC", key, encoder.encode(data));
29
+ return [...new Uint8Array(mac)].map((b) => b.toString(16).padStart(2, "0")).join("");
30
+ }
31
+ /** Constant-time comparison of two equal-purpose hex strings. */
32
+ function timingSafeEqual(a, b) {
33
+ if (a.length !== b.length) return false;
34
+ let mismatch = 0;
35
+ for (let i = 0; i < a.length; i++) mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
36
+ return mismatch === 0;
37
+ }
38
+ /**
39
+ * Verify the signature and timestamp of a webhook delivery.
40
+ *
41
+ * The signature is an HMAC-SHA256, keyed by the webhook secret, computed over
42
+ * `` `${timestamp}.${payload}` ``. Comparison is constant-time, and (unless
43
+ * disabled) the timestamp must be within `toleranceSeconds` of now.
44
+ *
45
+ * @returns `true` if the delivery is authentic.
46
+ * @throws {WebhookSignatureError} if the signature is missing/invalid or the
47
+ * timestamp is outside the tolerance window.
48
+ */
49
+ async function verifyWebhook(options) {
50
+ const { secret, payload, signature, timestamp, toleranceSeconds = DEFAULT_TOLERANCE_SECONDS, now = Date.now() / 1e3 } = options;
51
+ if (!signature) throw new WebhookSignatureError("Missing webhook signature");
52
+ const provided = signature.startsWith("sha256=") ? signature.slice(7) : signature;
53
+ const ts = Number(timestamp);
54
+ if (!Number.isFinite(ts)) throw new WebhookSignatureError("Invalid webhook timestamp");
55
+ if (toleranceSeconds > 0 && Math.abs(now - ts) > toleranceSeconds) throw new WebhookSignatureError("Webhook timestamp is outside the tolerance window");
56
+ if (!timingSafeEqual(provided, await hmacSha256Hex(secret, `${timestamp}.${payload}`))) throw new WebhookSignatureError("Webhook signature mismatch");
57
+ return true;
58
+ }
59
+ /**
60
+ * Verify a webhook delivery and return the parsed event in one step.
61
+ *
62
+ * Verifies the signature (see {@link verifyWebhook}), then JSON-parses the raw
63
+ * payload and returns it alongside the envelope metadata.
64
+ *
65
+ * @throws {WebhookSignatureError} if verification fails.
66
+ */
67
+ async function constructEvent(options) {
68
+ await verifyWebhook(options);
69
+ return {
70
+ event: options.event,
71
+ requestId: options.requestId,
72
+ timestamp: Number(options.timestamp),
73
+ payload: JSON.parse(options.payload)
74
+ };
75
+ }
76
+
77
+ //#endregion
78
+ //#region src/webhooks/request.ts
79
+ /** Read a required header, rejecting (with its name) when it is absent. */
80
+ function requireHeader(request, name) {
81
+ const value = request.headers.get(name);
82
+ if (value === null) throw new WebhookSignatureError(`Missing ${name} header`);
83
+ return value;
84
+ }
85
+ /**
86
+ * Pull the signing headers off a delivery `Request`. The signature and
87
+ * timestamp are required; a missing one is rejected here (rather than being
88
+ * coerced to an empty string) so the error names the offending header.
89
+ */
90
+ function deliveryHeaders(request) {
91
+ return {
92
+ signature: requireHeader(request, WEBHOOK_HEADERS.signature),
93
+ timestamp: requireHeader(request, WEBHOOK_HEADERS.timestamp),
94
+ event: request.headers.get(WEBHOOK_HEADERS.event) ?? void 0,
95
+ requestId: request.headers.get(WEBHOOK_HEADERS.requestId) ?? void 0
96
+ };
97
+ }
98
+ /**
99
+ * Verify a webhook delivery from a standard `Request` (Fetch API).
100
+ *
101
+ * Reads the raw body and the `X-Webhook-*` headers off the request — so it
102
+ * works out of the box with web-standard frameworks (Hono, Next.js App Router,
103
+ * Remix, SvelteKit, Deno, Bun, Cloudflare Workers). The request is cloned
104
+ * before its body is read, so the caller can still consume the original.
105
+ *
106
+ * @returns `true` if the delivery is authentic.
107
+ * @throws {WebhookSignatureError} if verification fails.
108
+ */
109
+ async function verifyRequest(request, options) {
110
+ const { signature, timestamp } = deliveryHeaders(request);
111
+ const payload = await request.clone().text();
112
+ return verifyWebhook({
113
+ secret: options.secret,
114
+ payload,
115
+ signature,
116
+ timestamp,
117
+ toleranceSeconds: options.toleranceSeconds,
118
+ now: options.now
119
+ });
120
+ }
121
+ /**
122
+ * Verify a webhook delivery from a standard `Request` and return the parsed
123
+ * event in one step. See {@link verifyRequest} for framework compatibility.
124
+ *
125
+ * The request is cloned before its body is read, so the caller can still
126
+ * consume the original.
127
+ *
128
+ * @throws {WebhookSignatureError} if verification fails.
129
+ */
130
+ async function constructEventFromRequest(request, options) {
131
+ const { signature, timestamp, event, requestId } = deliveryHeaders(request);
132
+ const payload = await request.clone().text();
133
+ return constructEvent({
134
+ secret: options.secret,
135
+ payload,
136
+ signature,
137
+ timestamp,
138
+ event,
139
+ requestId,
140
+ toleranceSeconds: options.toleranceSeconds,
141
+ now: options.now
142
+ });
143
+ }
144
+
145
+ //#endregion
146
+ export { WEBHOOK_HEADERS, WebhookSignatureError, constructEvent, constructEventFromRequest, verifyRequest, verifyWebhook };
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/webhooks/verify.ts","../../src/webhooks/request.ts"],"sourcesContent":["import type { WebhookEvent } from \"@/datatypes/index.js\";\nimport { NvisyError } from \"@/errors.js\";\n\n/**\n * A webhook event type: any of the known {@link WebhookEvent} values (which\n * autocomplete), plus any other string — the server may emit an event type the\n * installed SDK version doesn't yet know about, so always handle the default\n * case.\n */\n// `string & {}` preserves the literal-union autocomplete while widening to string.\nexport type WebhookEventType = WebhookEvent | (string & {});\n\n/**\n * Header names the Nvisy webhook delivery sends. Use these to pull values off\n * an incoming request before verifying.\n */\nexport const WEBHOOK_HEADERS = {\n\tsignature: \"X-Webhook-Signature\",\n\ttimestamp: \"X-Webhook-Timestamp\",\n\tevent: \"X-Webhook-Event\",\n\trequestId: \"X-Webhook-Request-Id\",\n} as const;\n\n/** Default replay-protection window: reject deliveries older than 5 minutes. */\nconst DEFAULT_TOLERANCE_SECONDS = 300;\n\n/**\n * Thrown when a webhook delivery fails verification (bad or missing signature,\n * or a timestamp outside the tolerance window).\n */\nexport class WebhookSignatureError extends NvisyError {}\n\n/**\n * Options for verifying a webhook delivery.\n */\nexport interface VerifyWebhookOptions {\n\t/**\n\t * The webhook's signing secret, returned once from `webhooks.createWebhook()`\n\t * as `WebhookCreated.secret`.\n\t */\n\tsecret: string;\n\t/**\n\t * The **raw** request body, exactly as received. Do not parse and\n\t * re-serialize it — the signature is computed over the raw bytes, so any\n\t * reformatting (key reordering, whitespace) will fail verification.\n\t */\n\tpayload: string;\n\t/** The `X-Webhook-Signature` header value (e.g. `sha256=...`). */\n\tsignature: string;\n\t/** The `X-Webhook-Timestamp` header value (unix seconds). */\n\ttimestamp: string;\n\t/**\n\t * How many seconds of clock skew to tolerate between the delivery timestamp\n\t * and now. Deliveries outside this window are rejected as possible replays.\n\t * Set to `0` to disable the timestamp check. Defaults to 300 (5 minutes).\n\t */\n\ttoleranceSeconds?: number;\n\t/**\n\t * Current unix time in seconds, for the timestamp check. Defaults to\n\t * `Date.now() / 1000`. Exposed for testing.\n\t */\n\tnow?: number;\n}\n\nconst encoder = new TextEncoder();\n\n/** Compute the lowercase hex HMAC-SHA256 of `data` keyed by `secret`. */\nasync function hmacSha256Hex(secret: string, data: string): Promise<string> {\n\tconst key = await crypto.subtle.importKey(\n\t\t\"raw\",\n\t\tencoder.encode(secret),\n\t\t{ name: \"HMAC\", hash: \"SHA-256\" },\n\t\tfalse,\n\t\t[\"sign\"],\n\t);\n\tconst mac = await crypto.subtle.sign(\"HMAC\", key, encoder.encode(data));\n\treturn [...new Uint8Array(mac)]\n\t\t.map((b) => b.toString(16).padStart(2, \"0\"))\n\t\t.join(\"\");\n}\n\n/** Constant-time comparison of two equal-purpose hex strings. */\nfunction timingSafeEqual(a: string, b: string): boolean {\n\tif (a.length !== b.length) return false;\n\tlet mismatch = 0;\n\tfor (let i = 0; i < a.length; i++) {\n\t\tmismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);\n\t}\n\treturn mismatch === 0;\n}\n\n/**\n * Verify the signature and timestamp of a webhook delivery.\n *\n * The signature is an HMAC-SHA256, keyed by the webhook secret, computed over\n * `` `${timestamp}.${payload}` ``. Comparison is constant-time, and (unless\n * disabled) the timestamp must be within `toleranceSeconds` of now.\n *\n * @returns `true` if the delivery is authentic.\n * @throws {WebhookSignatureError} if the signature is missing/invalid or the\n * timestamp is outside the tolerance window.\n */\nexport async function verifyWebhook(\n\toptions: VerifyWebhookOptions,\n): Promise<true> {\n\tconst {\n\t\tsecret,\n\t\tpayload,\n\t\tsignature,\n\t\ttimestamp,\n\t\ttoleranceSeconds = DEFAULT_TOLERANCE_SECONDS,\n\t\tnow = Date.now() / 1000,\n\t} = options;\n\n\tif (!signature) {\n\t\tthrow new WebhookSignatureError(\"Missing webhook signature\");\n\t}\n\n\t// Signatures are sent as `sha256=<hex>`; accept a bare hex too.\n\tconst provided = signature.startsWith(\"sha256=\")\n\t\t? signature.slice(\"sha256=\".length)\n\t\t: signature;\n\n\tconst ts = Number(timestamp);\n\tif (!Number.isFinite(ts)) {\n\t\tthrow new WebhookSignatureError(\"Invalid webhook timestamp\");\n\t}\n\n\tif (toleranceSeconds > 0 && Math.abs(now - ts) > toleranceSeconds) {\n\t\tthrow new WebhookSignatureError(\n\t\t\t\"Webhook timestamp is outside the tolerance window\",\n\t\t);\n\t}\n\n\tconst expected = await hmacSha256Hex(secret, `${timestamp}.${payload}`);\n\n\tif (!timingSafeEqual(provided, expected)) {\n\t\tthrow new WebhookSignatureError(\"Webhook signature mismatch\");\n\t}\n\n\treturn true;\n}\n\n/**\n * A verified webhook delivery: the parsed payload plus its envelope metadata.\n *\n * The payload body varies by `event`, so it is typed as `unknown` — narrow it\n * based on the `event` field.\n */\nexport interface WebhookDelivery {\n\t/**\n\t * The event type, from the `X-Webhook-Event` header. `undefined` if the\n\t * delivery carried no event header.\n\t */\n\tevent?: WebhookEventType;\n\t/** The delivery's request id (from `X-Webhook-Request-Id`). */\n\trequestId?: string;\n\t/** The delivery timestamp in unix seconds. */\n\ttimestamp: number;\n\t/** The parsed JSON payload. Narrow by `event`. */\n\tpayload: unknown;\n}\n\n/**\n * Options for {@link constructEvent}: everything {@link verifyWebhook} needs,\n * plus the delivery headers used to populate the envelope.\n */\nexport interface ConstructEventOptions extends VerifyWebhookOptions {\n\t/** The `X-Webhook-Event` header value. */\n\tevent?: string;\n\t/** The `X-Webhook-Request-Id` header value. */\n\trequestId?: string;\n}\n\n/**\n * Verify a webhook delivery and return the parsed event in one step.\n *\n * Verifies the signature (see {@link verifyWebhook}), then JSON-parses the raw\n * payload and returns it alongside the envelope metadata.\n *\n * @throws {WebhookSignatureError} if verification fails.\n */\nexport async function constructEvent(\n\toptions: ConstructEventOptions,\n): Promise<WebhookDelivery> {\n\t// verifyWebhook validates the signature and the timestamp, so by here\n\t// `options.timestamp` is known to be finite.\n\tawait verifyWebhook(options);\n\treturn {\n\t\tevent: options.event,\n\t\trequestId: options.requestId,\n\t\ttimestamp: Number(options.timestamp),\n\t\tpayload: JSON.parse(options.payload),\n\t};\n}\n","import {\n\tconstructEvent,\n\tverifyWebhook,\n\tWEBHOOK_HEADERS,\n\ttype WebhookDelivery,\n\tWebhookSignatureError,\n} from \"@/webhooks/verify.js\";\n\n/** Read a required header, rejecting (with its name) when it is absent. */\nfunction requireHeader(request: Request, name: string): string {\n\tconst value = request.headers.get(name);\n\tif (value === null) {\n\t\tthrow new WebhookSignatureError(`Missing ${name} header`);\n\t}\n\treturn value;\n}\n\n/**\n * Pull the signing headers off a delivery `Request`. The signature and\n * timestamp are required; a missing one is rejected here (rather than being\n * coerced to an empty string) so the error names the offending header.\n */\nfunction deliveryHeaders(request: Request): {\n\tsignature: string;\n\ttimestamp: string;\n\tevent?: string;\n\trequestId?: string;\n} {\n\treturn {\n\t\tsignature: requireHeader(request, WEBHOOK_HEADERS.signature),\n\t\ttimestamp: requireHeader(request, WEBHOOK_HEADERS.timestamp),\n\t\tevent: request.headers.get(WEBHOOK_HEADERS.event) ?? undefined,\n\t\trequestId: request.headers.get(WEBHOOK_HEADERS.requestId) ?? undefined,\n\t};\n}\n\n/** Options for the `Request`-based webhook helpers. */\nexport interface RequestVerifyOptions {\n\t/** The webhook's signing secret (`WebhookCreated.secret`). */\n\tsecret: string;\n\t/**\n\t * Replay tolerance in seconds; see `VerifyWebhookOptions.toleranceSeconds`.\n\t */\n\ttoleranceSeconds?: number;\n\t/** Current unix time in seconds, for the timestamp check (testing). */\n\tnow?: number;\n}\n\n/**\n * Verify a webhook delivery from a standard `Request` (Fetch API).\n *\n * Reads the raw body and the `X-Webhook-*` headers off the request — so it\n * works out of the box with web-standard frameworks (Hono, Next.js App Router,\n * Remix, SvelteKit, Deno, Bun, Cloudflare Workers). The request is cloned\n * before its body is read, so the caller can still consume the original.\n *\n * @returns `true` if the delivery is authentic.\n * @throws {WebhookSignatureError} if verification fails.\n */\nexport async function verifyRequest(\n\trequest: Request,\n\toptions: RequestVerifyOptions,\n): Promise<true> {\n\tconst { signature, timestamp } = deliveryHeaders(request);\n\tconst payload = await request.clone().text();\n\treturn verifyWebhook({\n\t\tsecret: options.secret,\n\t\tpayload,\n\t\tsignature,\n\t\ttimestamp,\n\t\ttoleranceSeconds: options.toleranceSeconds,\n\t\tnow: options.now,\n\t});\n}\n\n/**\n * Verify a webhook delivery from a standard `Request` and return the parsed\n * event in one step. See {@link verifyRequest} for framework compatibility.\n *\n * The request is cloned before its body is read, so the caller can still\n * consume the original.\n *\n * @throws {WebhookSignatureError} if verification fails.\n */\nexport async function constructEventFromRequest(\n\trequest: Request,\n\toptions: RequestVerifyOptions,\n): Promise<WebhookDelivery> {\n\tconst { signature, timestamp, event, requestId } = deliveryHeaders(request);\n\tconst payload = await request.clone().text();\n\treturn constructEvent({\n\t\tsecret: options.secret,\n\t\tpayload,\n\t\tsignature,\n\t\ttimestamp,\n\t\tevent,\n\t\trequestId,\n\t\ttoleranceSeconds: options.toleranceSeconds,\n\t\tnow: options.now,\n\t});\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nvisy/sdk",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "Official TypeScript SDK for Nvisy document processing platform",
5
5
  "type": "module",
6
6
  "private": false,
@@ -42,6 +42,10 @@
42
42
  "./datatypes": {
43
43
  "types": "./dist/datatypes/index.d.ts",
44
44
  "import": "./dist/datatypes/index.js"
45
+ },
46
+ "./webhooks": {
47
+ "types": "./dist/webhooks/index.d.ts",
48
+ "import": "./dist/webhooks/index.js"
45
49
  }
46
50
  },
47
51
  "files": [
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-BMoPfQi5.d.ts","names":[],"sources":["../src/services/account.ts","../src/services/activities.ts","../src/services/api-tokens.ts","../src/services/auth.ts","../src/services/connections.ts","../src/services/files.ts","../src/services/invites.ts","../src/services/members.ts","../src/services/notifications.ts","../src/services/pipelines.ts","../src/services/policies.ts","../src/services/runs.ts","../src/services/status.ts","../src/services/syncs.ts","../src/services/webhooks.ts","../src/services/workspaces.ts","../src/client.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-DmkKaDjI.js","names":[],"sources":["../src/config.ts","../src/errors.ts","../src/middleware/error.ts"],"sourcesContent":["/**\n * @fileoverview Configuration types and constants for the Nvisy SDK.\n *\n * This module provides configuration interfaces, default values, and environment\n * variable names used throughout the SDK.\n *\n * @module config\n */\n\n/**\n * Current SDK version.\n *\n * Used in the default user agent string and for version tracking.\n */\nexport const VERSION = \"0.3.0\";\n\n/**\n * Configuration options for creating a Nvisy client.\n *\n * The `apiToken` field is required for authentication. All other fields are optional\n * and will use sensible defaults when omitted.\n *\n * @example\n * ```typescript\n * const config: ClientConfig = {\n * apiToken: \"your-api-token\",\n * baseUrl: \"https://api.nvisy.com\",\n * headers: { \"X-Custom-Header\": \"value\" },\n * };\n * const client = new Client(config);\n * ```\n */\nexport interface ClientConfig {\n\t/**\n\t * API token for authentication.\n\t *\n\t * Tokens can be obtained from the Nvisy dashboard or via the auth endpoints.\n\t */\n\tapiToken: string;\n\n\t/**\n\t * Base URL for the Nvisy API.\n\t *\n\t * @default \"https://api.nvisy.com\"\n\t */\n\tbaseUrl?: string;\n\n\t/**\n\t * Custom headers to include with every request.\n\t *\n\t * These headers are merged with the default headers (Content-Type, User-Agent,\n\t * and Authorization). Custom headers take precedence over defaults if there\n\t * are conflicts.\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Custom user agent string to identify your application.\n\t *\n\t * @default \"@nvisy/sdk v.{version}\"\n\t */\n\tuserAgent?: string;\n\n\t/**\n\t * Enable logging for requests and responses.\n\t *\n\t * When enabled, logs request method, URL, status, and timing to console.\n\t *\n\t * @default false\n\t */\n\twithLogging?: boolean;\n}\n\n/**\n * Default configuration values used when options are not explicitly provided.\n */\nexport const DEFAULTS = {\n\t/**\n\t * Default base URL for the Nvisy API.\n\t */\n\tBASE_URL: \"https://api.nvisy.com\",\n\n\t/**\n\t * Default user agent string.\n\t */\n\tUSER_AGENT: `@nvisy/sdk v.${VERSION}`,\n} as const;\n","/**\n * @fileoverview Error types for the Nvisy SDK.\n *\n * This module defines the error hierarchy used throughout the SDK:\n * - {@link NvisyError} - Base error class for all SDK errors\n * - {@link NvisyApiError} - Errors returned by the Nvisy API (4xx/5xx responses)\n *\n * @module errors\n */\n\nimport type { ErrorResponse } from \"@/datatypes/index.js\";\n\n// Re-export ErrorResponse type for convenience\nexport type { ErrorResponse } from \"@/datatypes/index.js\";\n\n/**\n * Base error class for all Nvisy SDK errors.\n *\n * This class provides common functionality for all SDK errors.\n * It ensures proper error naming and stack traces.\n *\n * @example\n * ```typescript\n * try {\n * const client = new Client({ apiToken: \"\" });\n * } catch (error) {\n * if (error instanceof NvisyError) {\n * console.log(\"SDK error:\", error.message);\n * }\n * }\n * ```\n */\nexport class NvisyError extends Error {\n\t/**\n\t * The error class name.\n\t */\n\tpublic readonly name: string;\n\n\t/**\n\t * Creates a new NvisyError.\n\t *\n\t * @param message - The error message\n\t */\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = this.constructor.name;\n\t}\n}\n\n/**\n * Error thrown when the Nvisy API returns an error response.\n *\n * This error class wraps the API's {@link ErrorResponse} format and adds\n * the HTTP status code. It provides helper methods to categorize errors\n * and determine if they are retryable.\n *\n * @example\n * ```typescript\n * try {\n * await client.account.getAccount();\n * } catch (error) {\n * if (error instanceof NvisyApiError) {\n * console.log(`API Error: ${error.message}`);\n * console.log(`Status: ${error.statusCode}`);\n * if (error.isRetryable()) {\n * // Implement retry logic\n * }\n * }\n * }\n * ```\n */\nexport class NvisyApiError extends NvisyError implements ErrorResponse {\n\t/**\n\t * The error type identifier (e.g., \"ValidationError\", \"NotFoundError\").\n\t */\n\tpublic readonly name: string;\n\n\t/**\n\t * Human-readable error message safe for display to end users.\n\t */\n\tpublic readonly message: string;\n\n\t/**\n\t * The resource type that the error relates to (e.g., \"account\", \"project\").\n\t * May be undefined if the error is not resource-specific.\n\t */\n\tpublic readonly resource?: string;\n\n\t/**\n\t * A helpful suggestion for resolving the error.\n\t * May be undefined if no suggestion is available.\n\t */\n\tpublic readonly suggestion?: string;\n\n\t/**\n\t * Field-specific validation errors.\n\t * Present when the error is due to invalid input data.\n\t */\n\tpublic readonly validation?: ErrorResponse[\"validation\"];\n\n\t/**\n\t * HTTP status code of the response (e.g., 400, 404, 500).\n\t */\n\tpublic readonly statusCode: number;\n\n\t/**\n\t * Creates a new NvisyApiError from an API error response.\n\t *\n\t * @param response - The error response from the API\n\t * @param statusCode - The HTTP status code of the response\n\t */\n\tconstructor(response: ErrorResponse, statusCode: number) {\n\t\tsuper(response.message);\n\t\tthis.name = response.name;\n\t\tthis.message = response.message;\n\t\tthis.resource = response.resource;\n\t\tthis.suggestion = response.suggestion;\n\t\tthis.validation = response.validation;\n\t\tthis.statusCode = statusCode;\n\t}\n\n\t/**\n\t * Checks if this is a client error (4xx status code).\n\t *\n\t * Client errors indicate problems with the request itself, such as\n\t * invalid input, missing authentication, or accessing non-existent resources.\n\t *\n\t * @returns True if the status code is in the 4xx range\n\t */\n\tisClientError(): boolean {\n\t\treturn this.statusCode >= 400 && this.statusCode < 500;\n\t}\n\n\t/**\n\t * Checks if this is a server error (5xx status code).\n\t *\n\t * Server errors indicate problems on the API side. These are typically\n\t * transient and may succeed if retried.\n\t *\n\t * @returns True if the status code is in the 5xx range\n\t */\n\tisServerError(): boolean {\n\t\treturn this.statusCode >= 500;\n\t}\n\n\t/**\n\t * Determines if this error is safe to retry.\n\t *\n\t * An error is considered retryable if it's a server error (5xx),\n\t * a request timeout (408), or rate limiting (429).\n\t *\n\t * @returns True if the request may succeed on retry\n\t */\n\tisRetryable(): boolean {\n\t\treturn (\n\t\t\tthis.statusCode >= 500 || // Server errors\n\t\t\tthis.statusCode === 408 || // Request timeout\n\t\t\tthis.statusCode === 429 // Rate limited\n\t\t);\n\t}\n\n\t/**\n\t * Converts the error to a plain {@link ErrorResponse} object.\n\t *\n\t * Useful for serialization or logging.\n\t *\n\t * @returns A plain object representation of the error\n\t */\n\ttoJSON(): ErrorResponse {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tmessage: this.message,\n\t\t\tresource: this.resource,\n\t\t\tsuggestion: this.suggestion,\n\t\t\tvalidation: this.validation,\n\t\t};\n\t}\n}\n","import type { Middleware } from \"openapi-fetch\";\nimport type { ErrorResponse } from \"@/datatypes/index.js\";\nimport { NvisyApiError, NvisyError } from \"@/errors.js\";\n\n/**\n * Middleware that automatically throws NvisyApiError for error responses.\n * This replaces the need for manual checks in services.\n */\nexport const errorMiddleware: Middleware = {\n\tasync onResponse({ response }) {\n\t\tif (!response.ok) {\n\t\t\tconst error = (await response.clone().json()) as ErrorResponse;\n\t\t\tthrow new NvisyApiError(error, response.status);\n\t\t}\n\t\treturn response;\n\t},\n\n\tonError({ error }) {\n\t\t// Wrap fetch errors (network failures, CORS, etc.) in NvisyError\n\t\tif (error instanceof Error) {\n\t\t\tthrow new NvisyError(error.message);\n\t\t}\n\t\tthrow new NvisyError(\"An unknown network error occurred\");\n\t},\n};\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAa,UAAU;;;;AA8DvB,MAAa,WAAW;;;;CAIvB,UAAU;;;;CAKV,YAAY,gBAAgB;AAC7B;;;;;;;;;;;;;;;;;;;;;ACtDA,IAAa,aAAb,cAAgC,MAAM;;;;CAIrC,AAAgB;;;;;;CAOhB,YAAY,SAAiB;EAC5B,MAAM,OAAO;EACb,KAAK,OAAO,KAAK,YAAY;CAC9B;AACD;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAa,gBAAb,cAAmC,WAAoC;;;;CAItE,AAAgB;;;;CAKhB,AAAgB;;;;;CAMhB,AAAgB;;;;;CAMhB,AAAgB;;;;;CAMhB,AAAgB;;;;CAKhB,AAAgB;;;;;;;CAQhB,YAAY,UAAyB,YAAoB;EACxD,MAAM,SAAS,OAAO;EACtB,KAAK,OAAO,SAAS;EACrB,KAAK,UAAU,SAAS;EACxB,KAAK,WAAW,SAAS;EACzB,KAAK,aAAa,SAAS;EAC3B,KAAK,aAAa,SAAS;EAC3B,KAAK,aAAa;CACnB;;;;;;;;;CAUA,gBAAyB;EACxB,OAAO,KAAK,cAAc,OAAO,KAAK,aAAa;CACpD;;;;;;;;;CAUA,gBAAyB;EACxB,OAAO,KAAK,cAAc;CAC3B;;;;;;;;;CAUA,cAAuB;EACtB,OACC,KAAK,cAAc,OACnB,KAAK,eAAe,OACpB,KAAK,eAAe;CAEtB;;;;;;;;CASA,SAAwB;EACvB,OAAO;GACN,MAAM,KAAK;GACX,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,YAAY,KAAK;EAClB;CACD;AACD;;;;;;;;ACzKA,MAAa,kBAA8B;CAC1C,MAAM,WAAW,EAAE,YAAY;EAC9B,IAAI,CAAC,SAAS,IAEb,MAAM,IAAI,cAAc,MADH,SAAS,MAAM,CAAC,CAAC,KAAK,GACZ,SAAS,MAAM;EAE/C,OAAO;CACR;CAEA,QAAQ,EAAE,SAAS;EAElB,IAAI,iBAAiB,OACpB,MAAM,IAAI,WAAW,MAAM,OAAO;EAEnC,MAAM,IAAI,WAAW,mCAAmC;CACzD;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DVds_8ZR.d.ts","names":[],"sources":["../src/schema/api.d.ts","../src/datatypes/account.ts","../src/datatypes/activity.ts","../src/datatypes/api-token.ts","../src/datatypes/auth.ts","../src/datatypes/connection.ts","../src/datatypes/error.ts","../src/datatypes/file.ts","../src/datatypes/health.ts","../src/datatypes/invite.ts","../src/datatypes/member.ts","../src/datatypes/notification.ts","../src/datatypes/pagination.ts","../src/datatypes/pipeline.ts","../src/datatypes/policy.ts","../src/datatypes/run.ts","../src/datatypes/webhook.ts","../src/datatypes/workspace.ts"],"mappings":";;;;;UAKiB;EAChB;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;QACA;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;QACA;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;QACA;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC,UAAU;;QAEX;;MAED;MACA;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;QACA;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;QACA;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;QACA;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;QACA;;;;;;;;MAQD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;;;;;;MAQD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;;;;UAKA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;QAEf;;MAED;MACA;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;QAEf;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;QAEf;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;QAEf;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;;;;;UAMA;;UAEA,SAAS;;QAEV;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;QAEf;;;;;;;;;;;MAWD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;;UAEC;;UAEA,cAAc;;QAEf;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;UAEd;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,cAAc;;UAEd;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;UAEC,QAAQ;;UAER,OAAO;;UAEP,SAAS;;;;;UAKT;;UAEA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;QACC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;;;;;IASJ;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;QACC;UACC,oBAAoB;;;MAGtB;QACC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;UAEC;;UAEA,QAAQ;;UAER,OAAO;;UAEP,SAAS;;;;;UAKT;;UAEA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA,UAAU;;QAEX;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUt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EF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC,UAAU;;UAEV,WAAW;;UAEX;;;;;UAKA;;UAEA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;MAGD;QACC;UACC;;;MAGF;QACC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;UAEA;;UAEA,SAAS;;QAEV;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;;;;;;MAQD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;;;;;;;MAQD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;UAEA,SAAS;;QAEV;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;;;;;;;MAQD;QACC;UACC,oBAAoB;;;MAGtB;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA,OAAO;;QAER;;MAED;MACA;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA,OAAO;;QAER;;MAED;MACA;;;;;;;;;;;;;;;;;;;;;;QAsBC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA,OAAO;;QAER;;MAED;MACA;;;;;;;QAOC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;;UAEC;;QAED;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;QAED;;;;;;;;;MASD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;;;;;;;;;QASD;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;;UAEC;;UAEA;;QAED;;;;;;;MAOD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;QAItB;UACC;aACE;;UAEF;YACC;;;;QAIF;UACC;aACE;;UAEF;YACC;;;;;IAKJ;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;;;;;UAKC;;UAEA;;QAED;QACA;QACA;;MAED;MACA;;;;;;;;QAQC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;;;;;IAMD;MACC;QACC;QACA;QACA;QACA;;MAED;MACA;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;IAKxB;IACA;IACA;IACA;IACA;IACA;IACA;;EAED;IACC;MACC;MACA;MACA;MACA;;IAED;IACA;;;;;IAKA;MACC;QACC;QACA;QACA;QACA;;;MAGD;QACC;UACC,oBAAoB;;;MAGtB;;QAEC;UACC;aACE;;UAEF;YACC,oBAAoB;;;;;;;;;;QAUtB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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAgCa,mBAAmB;;;;WAIf;;;;;;EAOJ,YAAA;;;;;;;;;;;;;;;;;;;;;;;;cA4BA,sBAAsB,sBAAsB;;;;WAIxC;;;;WAKA;;;;;WAMA;;;;;WAMA;;;;;WAMA,aAAa;;;;WAKb;;;;;;;EAQJ,YAAA,UAAU,eAAe;;;;;;;;;EAkBrC;;;;;;;;;EAYA;;;;;;;;;EAYA;;;;;;;;EAeA,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"services-Cws6JV9E.js","names":["#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api"],"sources":["../src/services/account.ts","../src/services/activities.ts","../src/services/api-tokens.ts","../src/services/auth.ts","../src/services/connections.ts","../src/services/files.ts","../src/services/invites.ts","../src/services/members.ts","../src/services/notifications.ts","../src/services/pipelines.ts","../src/services/policies.ts","../src/services/runs.ts","../src/services/status.ts","../src/services/syncs.ts","../src/services/webhooks.ts","../src/services/workspaces.ts"],"sourcesContent":["import type { ApiClient } from \"@/client.js\";\nimport type {\n\tAccount as AccountData,\n\tPublicAccount,\n\tUpdateAccount,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling account operations\n */\nexport class Account {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Get the authenticated user's account details\n\t * @returns Promise that resolves with the account details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getAccount(): Promise<AccountData> {\n\t\tconst { data } = await this.#api.GET(\"/account/\");\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update the authenticated user's account details\n\t * @param updates - Account update request\n\t * @returns Promise that resolves with the updated account\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateAccount(updates: UpdateAccount): Promise<AccountData> {\n\t\tconst { data } = await this.#api.PATCH(\"/account/\", {\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete the authenticated user's account\n\t * @returns Promise that resolves when the account is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteAccount(): Promise<void> {\n\t\tawait this.#api.DELETE(\"/account/\");\n\t}\n\n\t/**\n\t * Get a public account profile by username\n\t * @param username - Account username\n\t * @returns Promise that resolves with the public account details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPublicAccount(username: string): Promise<PublicAccount> {\n\t\tconst { data } = await this.#api.GET(\"/accounts/{username}/\", {\n\t\t\tparams: { path: { username } },\n\t\t});\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { ActivityPage, CursorPagination } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace activity operations\n */\nexport class Activities {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List activities for a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of activities\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listActivities(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<ActivityPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/activities/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tApiToken,\n\tApiTokenPage,\n\tApiTokenWithJWT,\n\tCreateApiToken,\n\tCursorPagination,\n\tUpdateApiToken,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling API token operations\n */\nexport class ApiTokens {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all API tokens for the authenticated account\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of API tokens\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listApiTokens(query?: CursorPagination): Promise<ApiTokenPage> {\n\t\tconst { data } = await this.#api.GET(\"/api-tokens/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a specific API token by token ID\n\t * @param tokenId - The token identifier\n\t * @returns Promise that resolves with the API token details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getApiToken(tokenId: string): Promise<ApiToken> {\n\t\tconst { data } = await this.#api.GET(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new API token\n\t * @param token - Token creation request\n\t * @returns Promise that resolves with the created token (includes JWT, shown only once)\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createApiToken(token: CreateApiToken): Promise<ApiTokenWithJWT> {\n\t\tconst { data } = await this.#api.POST(\"/api-tokens/\", {\n\t\t\tbody: token,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing API token\n\t * @param tokenId - The token identifier\n\t * @param updates - Token update request\n\t * @returns Promise that resolves with the updated token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateApiToken(\n\t\ttokenId: string,\n\t\tupdates: UpdateApiToken,\n\t): Promise<ApiToken> {\n\t\tconst { data } = await this.#api.PATCH(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Revoke an API token\n\t * @param tokenId - The token identifier\n\t * @returns Promise that resolves when the token is revoked\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync revokeApiToken(tokenId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { AuthToken, Login, Signup } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling authentication operations\n */\nexport class Auth {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Login with email and password\n\t * @param credentials - Login credentials\n\t * @returns Promise that resolves with the auth response containing access token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync loginAccount(credentials: Login): Promise<AuthToken> {\n\t\tconst { data } = await this.#api.POST(\"/auth/login/\", {\n\t\t\tbody: credentials,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Sign up a new account\n\t * @param credentials - Signup details\n\t * @returns Promise that resolves with the auth response containing access token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync signupAccount(credentials: Signup): Promise<AuthToken> {\n\t\tconst { data } = await this.#api.POST(\"/auth/signup/\", {\n\t\t\tbody: credentials,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Logout and invalidate the current access token\n\t * @returns Promise that resolves when logout is complete\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync logoutAccount(): Promise<void> {\n\t\tawait this.#api.POST(\"/auth/logout/\");\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tConnection,\n\tConnectionPage,\n\tConnectionVerification,\n\tCreateConnection,\n\tCursorPagination,\n\tUpdateConnection,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling connection operations\n */\nexport class Connections {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List connections in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (provider, limit, after)\n\t * @returns Promise that resolves with a paginated list of connections\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listConnections(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { provider?: string[] },\n\t): Promise<ConnectionPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a connection in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param connection - Connection creation request\n\t * @returns Promise that resolves with the created connection\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createConnection(\n\t\tworkspaceSlug: string,\n\t\tconnection: CreateConnection,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: connection,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get connection details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves with the connection details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param updates - Connection update request\n\t * @returns Promise that resolves with the updated connection\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tupdates: UpdateConnection,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves when the connection is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Verify a connection's configuration and credentials\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves with the verification result\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync verifyConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<ConnectionVerification> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/verify/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tFile,\n\tFilePage,\n\tListFiles,\n\tUpdateFile,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling file operations\n */\nexport class Files {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Upload one or more files to a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param files - File or array of files to upload\n\t * @returns Promise that resolves with the uploaded file metadata\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync uploadFiles(\n\t\tworkspaceSlug: string,\n\t\tfiles: Blob | Blob[],\n\t): Promise<File[]> {\n\t\tconst formData = new FormData();\n\t\tconst fileArray = Array.isArray(files) ? files : [files];\n\n\t\tfor (const file of fileArray) {\n\t\t\tconst name = file instanceof File ? file.name : \"file\";\n\t\t\tformData.append(\"files\", file, name);\n\t\t}\n\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/files/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\t// Schema types multipart as unknown[], but openapi-fetch needs FormData.\n\t\t\t\tbody: formData as unknown as unknown[],\n\t\t\t\tbodySerializer: (formData) => formData,\n\t\t\t\t// Remove Content-Type so browser sets multipart/form-data with boundary.\n\t\t\t\theaders: { \"Content-Type\": null } as unknown as HeadersInit,\n\t\t\t},\n\t\t);\n\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List files in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (formats, search, limit, after)\n\t * @returns Promise that resolves with a paginated list of files\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listFiles(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListFiles & CursorPagination,\n\t): Promise<FilePage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/files/\", {\n\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get file metadata by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves with the file metadata\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getFile(workspaceSlug: string, fileId: string): Promise<File> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Download a file by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves with the file response\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync downloadFile(workspaceSlug: string, fileId: string): Promise<Response> {\n\t\tconst { response } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/content/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t\tparseAs: \"stream\",\n\t\t\t},\n\t\t);\n\t\treturn response;\n\t}\n\n\t/**\n\t * Update a file's metadata\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @param updates - File update request\n\t * @returns Promise that resolves with the updated file\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateFile(\n\t\tworkspaceSlug: string,\n\t\tfileId: string,\n\t\tupdates: UpdateFile,\n\t): Promise<File> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a file\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves when the file is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteFile(workspaceSlug: string, fileId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/files/{fileId}/\", {\n\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateInvite,\n\tCursorPagination,\n\tGenerateInviteCode,\n\tInviteCode,\n\tInvitePage,\n\tInvitePreview,\n\tInviteSent,\n\tListInvites,\n\tMember,\n\tReplyInvite,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace invitation operations\n */\nexport class Invites {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all invitations for a workspace\n\t * @param workspaceId - Workspace ID\n\t * @param query - Optional query parameters (role, sortBy, order, limit, after)\n\t * @returns Promise that resolves with a paginated list of invitations\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listInvites(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListInvites & CursorPagination,\n\t): Promise<InvitePage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Send an invitation to join a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param invite - Invitation request\n\t * @returns Promise that resolves with the sent invitation\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync sendInvite(\n\t\tworkspaceSlug: string,\n\t\tinvite: CreateInvite,\n\t): Promise<InviteSent> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: invite,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Cancel a pending invitation\n\t * @param workspaceSlug - Workspace slug\n\t * @param inviteId - Invite ID\n\t * @returns Promise that resolves when the invitation is canceled\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync cancelInvite(workspaceSlug: string, inviteId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/invites/{inviteId}/\", {\n\t\t\tparams: { path: { workspaceSlug, inviteId } },\n\t\t});\n\t}\n\n\t/**\n\t * Reply to an invitation (accept or decline)\n\t * @param workspaceSlug - Workspace slug\n\t * @param inviteId - Invite ID\n\t * @param reply - Reply request\n\t * @returns Promise that resolves with the updated invitation\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync replyToInvite(\n\t\tworkspaceSlug: string,\n\t\tinviteId: string,\n\t\treply: ReplyInvite,\n\t): Promise<Member> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/{inviteId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, inviteId } },\n\t\t\t\tbody: reply,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Generate a shareable invite code for a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param options - Invite code generation options\n\t * @returns Promise that resolves with the generated invite code\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync generateInviteCode(\n\t\tworkspaceSlug: string,\n\t\toptions: GenerateInviteCode,\n\t): Promise<InviteCode> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/code/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: options,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Reply to an invite code (accept or decline)\n\t * @param inviteCode - The invite code\n\t * @param reply - Optional reply request (defaults to accept if not provided)\n\t * @returns Promise that resolves with the member details if accepted, null if declined\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync replyToInviteCode(\n\t\tinviteCode: string,\n\t\treply?: ReplyInvite | null,\n\t): Promise<Member | null> {\n\t\tconst { data } = await this.#api.POST(\"/invites/code/{inviteCode}/\", {\n\t\t\tparams: { path: { inviteCode } },\n\t\t\tbody: reply ?? null,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Preview an invite code without joining\n\t * @param inviteCode - The invite code\n\t * @returns Promise that resolves with the invite preview details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync previewInvite(inviteCode: string): Promise<InvitePreview> {\n\t\tconst { data } = await this.#api.GET(\"/invites/code/{inviteCode}/\", {\n\t\t\tparams: { path: { inviteCode } },\n\t\t});\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tListMembers,\n\tMember,\n\tMemberPage,\n\tUpdateMember,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling member operations\n */\nexport class Members {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List members of a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (role, has2fa, sortBy, order, limit, after)\n\t * @returns Promise that resolves with a paginated list of members\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listMembers(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListMembers & CursorPagination,\n\t): Promise<MemberPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/members/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get member details by username\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @returns Promise that resolves with the member details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getMember(workspaceSlug: string, username: string): Promise<Member> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/members/{username}/\",\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpath: { workspaceSlug, username },\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a member's role\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @param updates - New role for the member\n\t * @returns Promise that resolves with the updated member\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateMember(\n\t\tworkspaceSlug: string,\n\t\tusername: string,\n\t\tupdates: UpdateMember,\n\t): Promise<Member> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/members/{username}/\",\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpath: { workspaceSlug, username },\n\t\t\t\t},\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Remove a member from a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @returns Promise that resolves when the member is removed\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync removeMember(workspaceSlug: string, username: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/members/{username}/\", {\n\t\t\tparams: { path: { workspaceSlug, username } },\n\t\t});\n\t}\n\n\t/**\n\t * Leave a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves when the member has left\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync leaveWorkspace(workspaceSlug: string): Promise<void> {\n\t\tawait this.#api.POST(\"/workspaces/{workspaceSlug}/members/leave/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tNotificationPage,\n\tUnreadStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling account notification operations\n */\nexport class Notifications {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List notifications for the authenticated account\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of notifications\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listNotifications(query?: CursorPagination): Promise<NotificationPage> {\n\t\tconst { data } = await this.#api.GET(\"/notifications/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get the unread notifications count for the authenticated account\n\t * @returns Promise that resolves with the unread status\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getUnreadNotificationsStatus(): Promise<UnreadStatus> {\n\t\tconst { data } = await this.#api.GET(\"/notifications/unread/\");\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreatePipeline,\n\tCursorPagination,\n\tPipeline,\n\tPipelineStatus,\n\tPipelineSummaryPage,\n\tUpdatePipeline,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling pipeline operations\n */\nexport class Pipelines {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List pipelines in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (search, status, limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline summaries\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPipelines(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { search?: string; status?: PipelineStatus },\n\t): Promise<PipelineSummaryPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a pipeline in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipeline - Pipeline creation request\n\t * @returns Promise that resolves with the created pipeline\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createPipeline(\n\t\tworkspaceSlug: string,\n\t\tpipeline: CreatePipeline,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: pipeline,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get pipeline details by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @returns Promise that resolves with the pipeline details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param updates - Pipeline update request\n\t * @returns Promise that resolves with the updated pipeline\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updatePipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\tupdates: UpdatePipeline,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @returns Promise that resolves when the pipeline is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deletePipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t},\n\t\t);\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreatePolicy,\n\tCursorPagination,\n\tPolicy,\n\tPolicyPage,\n\tUpdatePolicy,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling policy operations\n */\nexport class Policies {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List policies in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of policies\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPolicies(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<PolicyPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a policy in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param policy - Policy creation request\n\t * @returns Promise that resolves with the created policy\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createPolicy(\n\t\tworkspaceSlug: string,\n\t\tpolicy: CreatePolicy,\n\t): Promise<Policy> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: policy,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get policy details by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @returns Promise that resolves with the policy details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPolicy(workspaceSlug: string, policySlug: string): Promise<Policy> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a policy\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @param updates - Policy update request\n\t * @returns Promise that resolves with the updated policy\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updatePolicy(\n\t\tworkspaceSlug: string,\n\t\tpolicySlug: string,\n\t\tupdates: UpdatePolicy,\n\t): Promise<Policy> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a policy\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @returns Promise that resolves when the policy is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deletePolicy(workspaceSlug: string, policySlug: string): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t},\n\t\t);\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tAnalyzedDocument,\n\tCreatePipelineRun,\n\tCursorPagination,\n\tPipelineRun,\n\tPipelineRunPage,\n\tPipelineRunStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling pipeline run operations\n */\nexport class Runs {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all pipeline runs in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (status, limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline runs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listRuns(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { status?: PipelineRunStatus },\n\t): Promise<PipelineRunPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List runs for a specific pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline runs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPipelineRuns(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<PipelineRunPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Trigger a new run for a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param run - Pipeline run creation request\n\t * @returns Promise that resolves with the created pipeline run\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createRun(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\trun: CreatePipelineRun,\n\t): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t\tbody: run,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get pipeline run details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the pipeline run details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getRun(workspaceSlug: string, runId: string): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get the detections (analyzed document) for a pipeline run\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the analyzed document\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getDetections(\n\t\tworkspaceSlug: string,\n\t\trunId: string,\n\t): Promise<AnalyzedDocument> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/detections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Apply redactions to a pipeline run\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the updated pipeline run\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync redact(workspaceSlug: string, runId: string): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/redactions/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { Health } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling status and health check operations\n */\nexport class Status {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Check the health status of the API\n\t * @returns Promise that resolves with the API health status\n\t */\n\tasync checkHealth(): Promise<Health> {\n\t\tconst { data, error } = await this.#api.GET(\"/health/\", {\n\t\t\tparams: { path: { version: \"v1\" } },\n\t\t});\n\t\t// Health endpoint returns Health for both 200 and 503\n\t\treturn (data ?? error) as Health;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tConnectionSync,\n\tConnectionSyncPage,\n\tCursorPagination,\n\tSyncConnection,\n\tSyncStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling connection sync operations\n */\nexport class Syncs {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all syncs across a workspace's connections\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (provider, status, limit, after)\n\t * @returns Promise that resolves with a paginated list of connection syncs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWorkspaceSyncs(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { provider?: string[]; status?: SyncStatus },\n\t): Promise<ConnectionSyncPage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/syncs/\", {\n\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Start a sync for a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param sync - Sync request\n\t * @returns Promise that resolves with the started connection sync\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync startSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsync: SyncConnection,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/sync/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t\tbody: sync,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List syncs for a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of connection syncs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listSyncs(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tquery?: CursorPagination,\n\t): Promise<ConnectionSyncPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a connection sync by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param syncId - Sync ID\n\t * @returns Promise that resolves with the connection sync details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsyncId: string,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/{syncId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId, syncId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Cancel a running connection sync\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param syncId - Sync ID\n\t * @returns Promise that resolves with the canceled connection sync\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync cancelSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsyncId: string,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/{syncId}/cancel/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId, syncId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateWebhook,\n\tCursorPagination,\n\tTestWebhook,\n\tUpdateWebhook,\n\tWebhook,\n\tWebhookCreated,\n\tWebhookPage,\n\tWebhookResult,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling webhook operations\n */\nexport class Webhooks {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all webhooks in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of webhooks\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWebhooks(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<WebhookPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhook - Webhook creation request\n\t * @returns Promise that resolves with the created webhook (including secret)\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhook: CreateWebhook,\n\t): Promise<WebhookCreated> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: webhook,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a specific webhook by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @returns Promise that resolves with the webhook details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getWebhook(workspaceSlug: string, webhookId: string): Promise<Webhook> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @param updates - Webhook update request\n\t * @returns Promise that resolves with the updated webhook\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhookId: string,\n\t\tupdates: UpdateWebhook,\n\t): Promise<Webhook> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @returns Promise that resolves when the webhook is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteWebhook(workspaceSlug: string, webhookId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Test a webhook by sending a test payload\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @param options - Test webhook options\n\t * @returns Promise that resolves with the test result\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync testWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhookId: string,\n\t\toptions?: TestWebhook,\n\t): Promise<WebhookResult> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/test/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t\tbody: options ?? {},\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateWorkspace,\n\tCursorPagination,\n\tNotificationSettings,\n\tUpdateNotificationSettings,\n\tUpdateWorkspace,\n\tWorkspace,\n\tWorkspacePage,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace operations\n */\nexport class Workspaces {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all workspaces\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of workspaces\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWorkspaces(query?: CursorPagination): Promise<WorkspacePage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get workspace details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves with the workspace details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getWorkspace(workspaceSlug: string): Promise<Workspace> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new workspace\n\t * @param workspace - Workspace creation request\n\t * @returns Promise that resolves with the created workspace\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createWorkspace(workspace: CreateWorkspace): Promise<Workspace> {\n\t\tconst { data } = await this.#api.POST(\"/workspaces/\", {\n\t\t\tbody: workspace,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param updates - Workspace update request\n\t * @returns Promise that resolves with the updated workspace\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateWorkspace(\n\t\tworkspaceSlug: string,\n\t\tupdates: UpdateWorkspace,\n\t): Promise<Workspace> {\n\t\tconst { data } = await this.#api.PATCH(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves when the workspace is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteWorkspace(workspaceSlug: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t}\n\n\t/**\n\t * Get notification settings for the authenticated user in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves with the notification settings\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getNotificationSettings(\n\t\tworkspaceSlug: string,\n\t): Promise<NotificationSettings> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/notifications/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update notification settings for the authenticated user in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param settings - Notification settings update request\n\t * @returns Promise that resolves with the updated notification settings\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateNotificationSettings(\n\t\tworkspaceSlug: string,\n\t\tsettings: UpdateNotificationSettings,\n\t): Promise<NotificationSettings> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/notifications/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: settings,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n"],"mappings":";;;;AAUA,IAAa,UAAb,MAAqB;CACpB;CAEA,YAAY,KAAgB;EAC3B,KAAKA,OAAO;CACb;;;;;;CAOA,MAAM,aAAmC;EACxC,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,WAAW;EAChD,OAAO;CACR;;;;;;;CAQA,MAAM,cAAc,SAA8C;EACjE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAAM,aAAa,EACnD,MAAM,QACP,CAAC;EACD,OAAO;CACR;;;;;;CAOA,MAAM,gBAA+B;EACpC,MAAM,KAAKA,KAAK,OAAO,WAAW;CACnC;;;;;;;CAQA,MAAM,iBAAiB,UAA0C;EAChE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,yBAAyB,EAC7D,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAC9B,CAAC;EACD,OAAO;CACR;AACD;;;;;;;ACvDA,IAAa,aAAb,MAAwB;CACvB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,eACL,eACA,OACwB;EACxB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,2CACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;AACD;;;;;;;ACnBA,IAAa,YAAb,MAAuB;CACtB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;CAQA,MAAM,cAAc,OAAiD;EACpE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,gBAAgB,EACpD,QAAQ,EAAE,MAAM,EACjB,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,YAAY,SAAoC;EACrD,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,0BAA0B,EAC9D,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC7B,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,eAAe,OAAiD;EACrE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAAK,gBAAgB,EACrD,MAAM,MACP,CAAC;EACD,OAAO;CACR;;;;;;;;CASA,MAAM,eACL,SACA,SACoB;EACpB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAAM,0BAA0B;GAChE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;GAC5B,MAAM;EACP,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,eAAe,SAAgC;EACpD,MAAM,KAAKA,KAAK,OAAO,0BAA0B,EAChD,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC7B,CAAC;CACF;AACD;;;;;;;AClFA,IAAa,OAAb,MAAkB;CACjB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;CAQA,MAAM,aAAa,aAAwC;EAC1D,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAAK,gBAAgB,EACrD,MAAM,YACP,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,cAAc,aAAyC;EAC5D,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAAK,iBAAiB,EACtD,MAAM,YACP,CAAC;EACD,OAAO;CACR;;;;;;CAOA,MAAM,gBAA+B;EACpC,MAAM,KAAKA,KAAK,KAAK,eAAe;CACrC;AACD;;;;;;;AClCA,IAAa,cAAb,MAAyB;CACxB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,gBACL,eACA,OAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,4CACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,iBACL,eACA,YACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,4CACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,cACL,eACA,cACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,2DACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAa,EAAE,EACjD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,iBACL,eACA,cACA,SACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,2DACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAa,EAAE;GAChD,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,iBACL,eACA,cACgB;EAChB,MAAM,KAAKA,KAAK,OACf,2DACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAa,EAAE,EACjD,CACD;CACD;;;;;;;;CASA,MAAM,iBACL,eACA,cACkC;EAClC,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,kEACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAa,EAAE,EACjD,CACD;EACA,OAAO;CACR;AACD;;;;;;;AClIA,IAAa,QAAb,MAAmB;CAClB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,YACL,eACA,OACkB;EAClB,MAAM,WAAW,IAAI,SAAS;EAC9B,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;EAEvD,KAAK,MAAM,QAAQ,WAAW;GAC7B,MAAM,OAAO,gBAAgB,OAAO,KAAK,OAAO;GAChD,SAAS,OAAO,SAAS,MAAM,IAAI;EACpC;EAEA,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,sCACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAElC,MAAM;GACN,iBAAiB,aAAa;GAE9B,SAAS,EAAE,gBAAgB,KAAK;EACjC,CACD;EAEA,OAAO;CACR;;;;;;;;CASA,MAAM,UACL,eACA,OACoB;EACpB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,sCAAsC,EAC1E,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CAAC;EACD,OAAO;CACR;;;;;;;;CASA,MAAM,QAAQ,eAAuB,QAA+B;EACnE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,+CACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAO,EAAE,EAC3C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,aAAa,eAAuB,QAAmC;EAC5E,MAAM,EAAE,aAAa,MAAM,KAAKA,KAAK,IACpC,uDACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAO,EAAE;GAC1C,SAAS;EACV,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,WACL,eACA,QACA,SACgB;EAChB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,+CACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAO,EAAE;GAC1C,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,WAAW,eAAuB,QAA+B;EACtE,MAAM,KAAKA,KAAK,OAAO,+CAA+C,EACrE,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAO,EAAE,EAC3C,CAAC;CACF;AACD;;;;;;;AC3HA,IAAa,UAAb,MAAqB;CACpB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,YACL,eACA,OACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,wCACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,WACL,eACA,QACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,wCACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,aAAa,eAAuB,UAAiC;EAC1E,MAAM,KAAKA,KAAK,OAAO,mDAAmD,EACzE,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAS,EAAE,EAC7C,CAAC;CACF;;;;;;;;;CAUA,MAAM,cACL,eACA,UACA,OACkB;EAClB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,mDACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAS,EAAE;GAC5C,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,mBACL,eACA,SACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,6CACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,kBACL,YACA,OACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAAK,+BAA+B;GACpE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;GAC/B,MAAM,SAAS;EAChB,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,cAAc,YAA4C;EAC/D,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,+BAA+B,EACnE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAChC,CAAC;EACD,OAAO;CACR;AACD;;;;;;;AC5IA,IAAa,UAAb,MAAqB;CACpB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,YACL,eACA,OACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,wCACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,UAAU,eAAuB,UAAmC;EACzE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,mDACA,EACC,QAAQ,EACP,MAAM;GAAE;GAAe;EAAS,EACjC,EACD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,aACL,eACA,UACA,SACkB;EAClB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,mDACA;GACC,QAAQ,EACP,MAAM;IAAE;IAAe;GAAS,EACjC;GACA,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,aAAa,eAAuB,UAAiC;EAC1E,MAAM,KAAKA,KAAK,OAAO,mDAAmD,EACzE,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAS,EAAE,EAC7C,CAAC;CACF;;;;;;;CAQA,MAAM,eAAe,eAAsC;EAC1D,MAAM,KAAKA,KAAK,KAAK,8CAA8C,EAClE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EACnC,CAAC;CACF;AACD;;;;;;;ACjGA,IAAa,gBAAb,MAA2B;CAC1B;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;CAQA,MAAM,kBAAkB,OAAqD;EAC5E,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,mBAAmB,EACvD,QAAQ,EAAE,MAAM,EACjB,CAAC;EACD,OAAO;CACR;;;;;;CAOA,MAAM,+BAAsD;EAC3D,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,wBAAwB;EAC7D,OAAO;CACR;AACD;;;;;;;AC1BA,IAAa,YAAb,MAAuB;CACtB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,cACL,eACA,OAC+B;EAC/B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,0CACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,eACL,eACA,UACoB;EACpB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,0CACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,YACL,eACA,cACoB;EACpB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,yDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAa,EAAE,EACjD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,eACL,eACA,cACA,SACoB;EACpB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,yDACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAa,EAAE;GAChD,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,eACL,eACA,cACgB;EAChB,MAAM,KAAKA,KAAK,OACf,yDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAa,EAAE,EACjD,CACD;CACD;AACD;;;;;;;AC9GA,IAAa,WAAb,MAAsB;CACrB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,aACL,eACA,OACsB;EACtB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,yCACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,aACL,eACA,QACkB;EAClB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,yCACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,UAAU,eAAuB,YAAqC;EAC3E,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,sDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAW,EAAE,EAC/C,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,aACL,eACA,YACA,SACkB;EAClB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,sDACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAW,EAAE;GAC9C,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,aAAa,eAAuB,YAAmC;EAC5E,MAAM,KAAKA,KAAK,OACf,sDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAW,EAAE,EAC/C,CACD;CACD;AACD;;;;;;;ACtGA,IAAa,OAAb,MAAkB;CACjB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,SACL,eACA,OAC2B;EAC3B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,+CACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,iBACL,eACA,cACA,OAC2B;EAC3B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,8DACA,EACC,QAAQ;GAAE,MAAM;IAAE;IAAe;GAAa;GAAG;EAAM,EACxD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,UACL,eACA,cACA,KACuB;EACvB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,8DACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAa,EAAE;GAChD,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,OAAO,eAAuB,OAAqC;EACxE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,6CACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAM,EAAE,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,cACL,eACA,OAC4B;EAC5B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,wDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAM,EAAE,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,OAAO,eAAuB,OAAqC;EACxE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,wDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAM,EAAE,EAC1C,CACD;EACA,OAAO;CACR;AACD;;;;;;;ACpIA,IAAa,SAAb,MAAoB;CACnB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;CAMA,MAAM,cAA+B;EACpC,MAAM,EAAE,MAAM,UAAU,MAAM,KAAKA,KAAK,IAAI,YAAY,EACvD,QAAQ,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,EACnC,CAAC;EAED,OAAQ,QAAQ;CACjB;AACD;;;;;;;ACZA,IAAa,QAAb,MAAmB;CAClB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,mBACL,eACA,OAC8B;EAC9B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,sCAAsC,EAC1E,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CAAC;EACD,OAAO;CACR;;;;;;;;;CAUA,MAAM,UACL,eACA,cACA,MAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,gEACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAa,EAAE;GAChD,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,UACL,eACA,cACA,OAC8B;EAC9B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,iEACA,EACC,QAAQ;GAAE,MAAM;IAAE;IAAe;GAAa;GAAG;EAAM,EACxD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,QACL,eACA,cACA,QAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,0EACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;GAAc;EAAO,EAAE,EACzD,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,WACL,eACA,cACA,QAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,iFACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;GAAc;EAAO,EAAE,EACzD,CACD;EACA,OAAO;CACR;AACD;;;;;;;AC7GA,IAAa,WAAb,MAAsB;CACrB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;;CASA,MAAM,aACL,eACA,OACuB;EACvB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,yCACA,EACC,QAAQ;GAAE,MAAM,EAAE,cAAc;GAAG;EAAM,EAC1C,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,cACL,eACA,SAC0B;EAC1B,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,yCACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,WAAW,eAAuB,WAAqC;EAC5E,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,qDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAU,EAAE,EAC9C,CACD;EACA,OAAO;CACR;;;;;;;;;CAUA,MAAM,cACL,eACA,WACA,SACmB;EACnB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,qDACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAU,EAAE;GAC7C,MAAM;EACP,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,cAAc,eAAuB,WAAkC;EAC5E,MAAM,KAAKA,KAAK,OACf,qDACA,EACC,QAAQ,EAAE,MAAM;GAAE;GAAe;EAAU,EAAE,EAC9C,CACD;CACD;;;;;;;;;CAUA,MAAM,YACL,eACA,WACA,SACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAChC,0DACA;GACC,QAAQ,EAAE,MAAM;IAAE;IAAe;GAAU,EAAE;GAC7C,MAAM,WAAW,CAAC;EACnB,CACD;EACA,OAAO;CACR;AACD;;;;;;;AC/HA,IAAa,aAAb,MAAwB;CACvB;CAEA,YAAY,KAAgB;EAC3B,KAAKC,OAAO;CACb;;;;;;;CAQA,MAAM,eAAe,OAAkD;EACtE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,gBAAgB,EACpD,QAAQ,EAAE,MAAM,EACjB,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,aAAa,eAA2C;EAC7D,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAAI,gCAAgC,EACpE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EACnC,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,gBAAgB,WAAgD;EACrE,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,KAAK,gBAAgB,EACrD,MAAM,UACP,CAAC;EACD,OAAO;CACR;;;;;;;;CASA,MAAM,gBACL,eACA,SACqB;EACrB,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAAM,gCAAgC;GACtE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CAAC;EACD,OAAO;CACR;;;;;;;CAQA,MAAM,gBAAgB,eAAsC;EAC3D,MAAM,KAAKA,KAAK,OAAO,gCAAgC,EACtD,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EACnC,CAAC;CACF;;;;;;;CAQA,MAAM,wBACL,eACgC;EAChC,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,IAChC,8CACA,EACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EACnC,CACD;EACA,OAAO;CACR;;;;;;;;CASA,MAAM,2BACL,eACA,UACgC;EAChC,MAAM,EAAE,SAAS,MAAM,KAAKA,KAAK,MAChC,8CACA;GACC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;GAClC,MAAM;EACP,CACD;EACA,OAAO;CACR;AACD"}