@stablyai/playwright-test 2.1.3-rc.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var y = require('path');
4
- var url = require('url');
3
+ var qe = require('path');
4
+ var require$$7 = require('url');
5
5
  var test$1 = require('@playwright/test');
6
6
  var playwrightBase = require('@stablyai/playwright-base');
7
- var index = require('./index-Bm8kx_6L.cjs');
7
+ var index = require('./index-Cjfxwz2m.cjs');
8
8
  require('node:buffer');
9
9
  require('node:path');
10
10
  require('node:child_process');
@@ -19,10 +19,15 @@ require('stream');
19
19
  require('node:util');
20
20
  require('node:readline');
21
21
  require('node:stream');
22
- require('module');
23
- require('synckit');
24
22
  require('util');
25
- require('ws');
23
+ require('events');
24
+ require('https');
25
+ require('http');
26
+ require('net');
27
+ require('tls');
28
+ require('crypto');
29
+ require('zlib');
30
+ require('buffer');
26
31
  require('os');
27
32
 
28
33
  var jsonBodySerializer = {
@@ -844,7 +849,7 @@ var postInternalV1TestAccountGoogleAuthState = (options) => {
844
849
  };
845
850
 
846
851
  const getApiUrl = () => process.env.STABLY_API_URL ?? "https://api.stably.ai";
847
- const sdkVersion = "2.1.3-rc.2" ;
852
+ const sdkVersion = "2.1.3" ;
848
853
  const assertNonEmptyString = (value, fieldName) => {
849
854
  if (!value.trim()) {
850
855
  throw new Error(`Missing required field: ${fieldName}`);
@@ -966,10 +971,10 @@ async function authWithGoogle(options) {
966
971
  }
967
972
 
968
973
  function getDirname(importMetaUrl) {
969
- return y.dirname(url.fileURLToPath(importMetaUrl));
974
+ return qe.dirname(require$$7.fileURLToPath(importMetaUrl));
970
975
  }
971
976
  function getFilename(importMetaUrl) {
972
- return url.fileURLToPath(importMetaUrl);
977
+ return require$$7.fileURLToPath(importMetaUrl);
973
978
  }
974
979
  const test = test$1.test.extend({
975
980
  agent: async ({ context }, use) => {
@@ -1001,7 +1006,7 @@ Object.defineProperty(exports, "setApiKey", {
1001
1006
  enumerable: true,
1002
1007
  get: function () { return playwrightBase.setApiKey; }
1003
1008
  });
1004
- exports.stablyReporter = index.ut;
1009
+ exports.stablyReporter = index.Ta;
1005
1010
  exports.authWithGoogle = authWithGoogle;
1006
1011
  exports.defineConfig = defineConfig;
1007
1012
  exports.expect = expect;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/@stablyai-internal+api-client@0.1.6/node_modules/@stablyai-internal/api-client/dist/index.js","../src/auth-with-google.ts","../src/index.ts"],"sourcesContent":["export { STABLY_ORG_ID_HEADER } from './chunk-HMKCSECL.js';\n\n// src/generated/core/bodySerializer.gen.ts\nvar jsonBodySerializer = {\n bodySerializer: (body) => JSON.stringify(\n body,\n (_key, value) => typeof value === \"bigint\" ? value.toString() : value\n )\n};\n\n// src/generated/core/serverSentEvents.gen.ts\nvar createSseClient = ({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}) => {\n let lastEventId;\n const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));\n const createStream = async function* () {\n let retryDelay = sseDefaultRetryDelay ?? 3e3;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n while (true) {\n if (signal.aborted) break;\n attempt++;\n const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);\n if (lastEventId !== void 0) {\n headers.set(\"Last-Event-ID\", lastEventId);\n }\n try {\n const requestInit = {\n redirect: \"follow\",\n ...options,\n body: options.serializedBody,\n headers,\n signal\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n if (!response.ok)\n throw new Error(\n `SSE failed: ${response.status} ${response.statusText}`\n );\n if (!response.body) throw new Error(\"No body in SSE response\");\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n let buffer = \"\";\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n }\n };\n signal.addEventListener(\"abort\", abortHandler);\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n const chunks = buffer.split(\"\\n\\n\");\n buffer = chunks.pop() ?? \"\";\n for (const chunk of chunks) {\n const lines = chunk.split(\"\\n\");\n const dataLines = [];\n let eventName;\n for (const line of lines) {\n if (line.startsWith(\"data:\")) {\n dataLines.push(line.replace(/^data:\\s*/, \"\"));\n } else if (line.startsWith(\"event:\")) {\n eventName = line.replace(/^event:\\s*/, \"\");\n } else if (line.startsWith(\"id:\")) {\n lastEventId = line.replace(/^id:\\s*/, \"\");\n } else if (line.startsWith(\"retry:\")) {\n const parsed = Number.parseInt(\n line.replace(/^retry:\\s*/, \"\"),\n 10\n );\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n let data;\n let parsedJson = false;\n if (dataLines.length) {\n const rawData = dataLines.join(\"\\n\");\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay\n });\n if (dataLines.length) {\n yield data;\n }\n }\n }\n } finally {\n signal.removeEventListener(\"abort\", abortHandler);\n reader.releaseLock();\n }\n break;\n } catch (error) {\n onSseError?.(error);\n if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {\n break;\n }\n const backoff = Math.min(\n retryDelay * 2 ** (attempt - 1),\n sseMaxRetryDelay ?? 3e4\n );\n await sleep(backoff);\n }\n }\n };\n const stream = createStream();\n return { stream };\n};\n\n// src/generated/core/pathSerializer.gen.ts\nvar separatorArrayExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nvar separatorArrayNoExplode = (style) => {\n switch (style) {\n case \"form\":\n return \",\";\n case \"pipeDelimited\":\n return \"|\";\n case \"spaceDelimited\":\n return \"%20\";\n default:\n return \",\";\n }\n};\nvar separatorObjectExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nvar serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value\n}) => {\n if (!explode) {\n const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));\n switch (style) {\n case \"label\":\n return `.${joinedValues2}`;\n case \"matrix\":\n return `;${name}=${joinedValues2}`;\n case \"simple\":\n return joinedValues2;\n default:\n return `${name}=${joinedValues2}`;\n }\n }\n const separator = separatorArrayExplode(style);\n const joinedValues = value.map((v) => {\n if (style === \"label\" || style === \"simple\") {\n return allowReserved ? v : encodeURIComponent(v);\n }\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v\n });\n }).join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\nvar serializePrimitiveParam = ({\n allowReserved,\n name,\n value\n}) => {\n if (value === void 0 || value === null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n throw new Error(\n \"Deeply-nested arrays/objects aren\\u2019t supported. Provide your own `querySerializer()` to handle these.\"\n );\n }\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\nvar serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n if (style !== \"deepObject\" && !explode) {\n let values = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? v : encodeURIComponent(v)\n ];\n });\n const joinedValues2 = values.join(\",\");\n switch (style) {\n case \"form\":\n return `${name}=${joinedValues2}`;\n case \"label\":\n return `.${joinedValues2}`;\n case \"matrix\":\n return `;${name}=${joinedValues2}`;\n default:\n return joinedValues2;\n }\n }\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value).map(\n ([key, v]) => serializePrimitiveParam({\n allowReserved,\n name: style === \"deepObject\" ? `${name}[${key}]` : key,\n value: v\n })\n ).join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\n\n// src/generated/core/utils.gen.ts\nvar PATH_PARAM_RE = /\\{[^{}]+\\}/g;\nvar defaultPathSerializer = ({ path, url: _url }) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style = \"simple\";\n if (name.endsWith(\"*\")) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n if (name.startsWith(\".\")) {\n name = name.substring(1);\n style = \"label\";\n } else if (name.startsWith(\";\")) {\n name = name.substring(1);\n style = \"matrix\";\n }\n const value = path[name];\n if (value === void 0 || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value })\n );\n continue;\n }\n if (typeof value === \"object\") {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value,\n valueOnly: true\n })\n );\n continue;\n }\n if (style === \"matrix\") {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value\n })}`\n );\n continue;\n }\n const replaceValue = encodeURIComponent(\n style === \"label\" ? `.${value}` : value\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\nvar getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url\n}) => {\n const pathUrl = _url.startsWith(\"/\") ? _url : `/${_url}`;\n let url = (baseUrl ?? \"\") + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : \"\";\n if (search.startsWith(\"?\")) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\nfunction getValidRequestBody(options) {\n const hasBody = options.body !== void 0;\n const isSerializedBody = hasBody && options.bodySerializer;\n if (isSerializedBody) {\n if (\"serializedBody\" in options) {\n const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== \"\";\n return hasSerializedBody ? options.serializedBody : null;\n }\n return options.body !== \"\" ? options.body : null;\n }\n if (hasBody) {\n return options.body;\n }\n return void 0;\n}\n\n// src/generated/core/auth.gen.ts\nvar getAuthToken = async (auth, callback) => {\n const token = typeof callback === \"function\" ? await callback(auth) : callback;\n if (!token) {\n return;\n }\n if (auth.scheme === \"bearer\") {\n return `Bearer ${token}`;\n }\n if (auth.scheme === \"basic\") {\n return `Basic ${btoa(token)}`;\n }\n return token;\n};\n\n// src/generated/client/utils.gen.ts\nvar createQuerySerializer = ({\n parameters = {},\n ...args\n} = {}) => {\n const querySerializer = (queryParams) => {\n const search = [];\n if (queryParams && typeof queryParams === \"object\") {\n for (const name in queryParams) {\n const value = queryParams[name];\n if (value === void 0 || value === null) {\n continue;\n }\n const options = parameters[name] || args;\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: \"form\",\n value,\n ...options.array\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === \"object\") {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: \"deepObject\",\n value,\n ...options.object\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join(\"&\");\n };\n return querySerializer;\n};\nvar getParseAs = (contentType) => {\n if (!contentType) {\n return \"stream\";\n }\n const cleanContent = contentType.split(\";\")[0]?.trim();\n if (!cleanContent) {\n return;\n }\n if (cleanContent.startsWith(\"application/json\") || cleanContent.endsWith(\"+json\")) {\n return \"json\";\n }\n if (cleanContent === \"multipart/form-data\") {\n return \"formData\";\n }\n if ([\"application/\", \"audio/\", \"image/\", \"video/\"].some(\n (type) => cleanContent.startsWith(type)\n )) {\n return \"blob\";\n }\n if (cleanContent.startsWith(\"text/\")) {\n return \"text\";\n }\n return;\n};\nvar checkForExistence = (options, name) => {\n if (!name) {\n return false;\n }\n if (options.headers.has(name) || options.query?.[name] || options.headers.get(\"Cookie\")?.includes(`${name}=`)) {\n return true;\n }\n return false;\n};\nvar setAuthParams = async ({\n security,\n ...options\n}) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n const token = await getAuthToken(auth, options.auth);\n if (!token) {\n continue;\n }\n const name = auth.name ?? \"Authorization\";\n switch (auth.in) {\n case \"query\":\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case \"cookie\":\n options.headers.append(\"Cookie\", `${name}=${token}`);\n break;\n case \"header\":\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\nvar buildUrl = (options) => getUrl({\n baseUrl: options.baseUrl,\n path: options.path,\n query: options.query,\n querySerializer: typeof options.querySerializer === \"function\" ? options.querySerializer : createQuerySerializer(options.querySerializer),\n url: options.url\n});\nvar mergeConfigs = (a, b) => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith(\"/\")) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\nvar headersEntries = (headers) => {\n const entries = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\nvar mergeHeaders = (...headers) => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v);\n }\n } else if (value !== void 0) {\n mergedHeaders.set(\n key,\n typeof value === \"object\" ? JSON.stringify(value) : value\n );\n }\n }\n }\n return mergedHeaders;\n};\nvar Interceptors = class {\n fns = [];\n clear() {\n this.fns = [];\n }\n eject(id) {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n exists(id) {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n getInterceptorIndex(id) {\n if (typeof id === \"number\") {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n update(id, fn) {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n use(fn) {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n};\nvar createInterceptors = () => ({\n error: new Interceptors(),\n request: new Interceptors(),\n response: new Interceptors()\n});\nvar defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: \"form\"\n },\n object: {\n explode: true,\n style: \"deepObject\"\n }\n});\nvar defaultHeaders = {\n \"Content-Type\": \"application/json\"\n};\nvar createConfig = (override = {}) => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: \"auto\",\n querySerializer: defaultQuerySerializer,\n ...override\n});\n\n// src/generated/client/client.gen.ts\nvar createClient = (config = {}) => {\n let _config = mergeConfigs(createConfig(), config);\n const getConfig = () => ({ ..._config });\n const setConfig = (config2) => {\n _config = mergeConfigs(_config, config2);\n return getConfig();\n };\n const interceptors = createInterceptors();\n const beforeRequest = async (options) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: void 0\n };\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security\n });\n }\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n if (opts.body !== void 0 && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body);\n }\n if (opts.body === void 0 || opts.serializedBody === \"\") {\n opts.headers.delete(\"Content-Type\");\n }\n const url = buildUrl(opts);\n return { opts, url };\n };\n const request = async (options) => {\n const { opts, url } = await beforeRequest(options);\n const requestInit = {\n redirect: \"follow\",\n ...opts,\n body: getValidRequestBody(opts)\n };\n let request2 = new Request(url, requestInit);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request2 = await fn(request2, opts);\n }\n }\n const _fetch = opts.fetch;\n let response;\n try {\n response = await _fetch(request2);\n } catch (error2) {\n let finalError2 = error2;\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError2 = await fn(\n error2,\n void 0,\n request2,\n opts\n );\n }\n }\n finalError2 = finalError2 || {};\n if (opts.throwOnError) {\n throw finalError2;\n }\n return opts.responseStyle === \"data\" ? void 0 : {\n error: finalError2,\n request: request2,\n response: void 0\n };\n }\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request2, opts);\n }\n }\n const result = {\n request: request2,\n response\n };\n if (response.ok) {\n const parseAs = (opts.parseAs === \"auto\" ? getParseAs(response.headers.get(\"Content-Type\")) : opts.parseAs) ?? \"json\";\n if (response.status === 204 || response.headers.get(\"Content-Length\") === \"0\") {\n let emptyData;\n switch (parseAs) {\n case \"arrayBuffer\":\n case \"blob\":\n case \"text\":\n emptyData = await response[parseAs]();\n break;\n case \"formData\":\n emptyData = new FormData();\n break;\n case \"stream\":\n emptyData = response.body;\n break;\n case \"json\":\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === \"data\" ? emptyData : {\n data: emptyData,\n ...result\n };\n }\n let data;\n switch (parseAs) {\n case \"arrayBuffer\":\n case \"blob\":\n case \"formData\":\n case \"json\":\n case \"text\":\n data = await response[parseAs]();\n break;\n case \"stream\":\n return opts.responseStyle === \"data\" ? response.body : {\n data: response.body,\n ...result\n };\n }\n if (parseAs === \"json\") {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n return opts.responseStyle === \"data\" ? data : {\n data,\n ...result\n };\n }\n const textError = await response.text();\n let jsonError;\n try {\n jsonError = JSON.parse(textError);\n } catch {\n }\n const error = jsonError ?? textError;\n let finalError = error;\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(error, response, request2, opts);\n }\n }\n finalError = finalError || {};\n if (opts.throwOnError) {\n throw finalError;\n }\n return opts.responseStyle === \"data\" ? void 0 : {\n error: finalError,\n ...result\n };\n };\n const makeMethodFn = (method) => (options) => request({ ...options, method });\n const makeSseFn = (method) => async (options) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body,\n headers: opts.headers,\n method,\n onRequest: async (url2, init) => {\n let request2 = new Request(url2, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request2 = await fn(request2, opts);\n }\n }\n return request2;\n },\n url\n });\n };\n return {\n buildUrl,\n connect: makeMethodFn(\"CONNECT\"),\n delete: makeMethodFn(\"DELETE\"),\n get: makeMethodFn(\"GET\"),\n getConfig,\n head: makeMethodFn(\"HEAD\"),\n interceptors,\n options: makeMethodFn(\"OPTIONS\"),\n patch: makeMethodFn(\"PATCH\"),\n post: makeMethodFn(\"POST\"),\n put: makeMethodFn(\"PUT\"),\n request,\n setConfig,\n sse: {\n connect: makeSseFn(\"CONNECT\"),\n delete: makeSseFn(\"DELETE\"),\n get: makeSseFn(\"GET\"),\n head: makeSseFn(\"HEAD\"),\n options: makeSseFn(\"OPTIONS\"),\n patch: makeSseFn(\"PATCH\"),\n post: makeSseFn(\"POST\"),\n put: makeSseFn(\"PUT\"),\n trace: makeSseFn(\"TRACE\")\n },\n trace: makeMethodFn(\"TRACE\")\n };\n};\n\n// src/generated/client.gen.ts\nvar client = createClient(createConfig({\n baseUrl: \"https://api.stably.ai\"\n}));\n\n// src/generated/sdk.gen.ts\nvar postV1TestSuiteByTestSuiteIdRun = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuite/{testSuiteId}/run\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getV1TestSuiteRunByTestSuiteRunIdStatus = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/{testSuiteRunId}/status\",\n ...options\n });\n};\nvar getV1TestSuiteRunByTestSuiteRunIdResult = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/{testSuiteRunId}/result\",\n ...options\n });\n};\nvar postV1TestSuiteRunCancel = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/cancel\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postV1ProjectsByProjectIdRuns = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getV1ProjectsByProjectIdRunsByRunId = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs/{runId}\",\n ...options\n });\n};\nvar postV1ProjectsByProjectIdRunsCancel = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs/cancel\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postV1ProxyApiKey = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/proxy/api-key\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1Extract = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/extract\",\n ...options\n });\n};\nvar postInternalV2Extract = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/extract\",\n ...options\n });\n};\nvar postInternalV1Assert = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/assert\",\n ...options\n });\n};\nvar postInternalV2Assert = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/assert\",\n ...options\n });\n};\nvar postInternalV2Agent = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/agent\",\n ...options\n });\n};\nvar postInternalV3Agent = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v3/agent\",\n ...options\n });\n};\nvar postInternalV3GetAriaRefs = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v3/get-aria-refs\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CacheDelete = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cache/delete\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar patchInternalV1PlaywrightRunsByRunIdStatus = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/playwright/runs/{runId}/status\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1BillingBrowserMinutes = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/billing/browser-minutes\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1TestAccountGoogleAuthState = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/test-account/google-auth-state\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CliMe = (options) => {\n return (options?.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/me\",\n ...options\n });\n};\nvar getInternalV1CliOrgsByOrgIdProjects = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/orgs/{orgId}/projects\",\n ...options\n });\n};\nvar postInternalV1CliExchangeToken = (options) => {\n return (options.client ?? client).post({\n url: \"/internal/v1/cli/exchange-token\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliProjectsByProjectIdApiKey = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/projects/{projectId}/api-key\",\n ...options\n });\n};\nvar postInternalV1CliPromptsSystem = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/prompts/system\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliPromptsSubagents = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/prompts/subagents\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CliRunsByRunIdAutohealContext = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-context\",\n ...options\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealReport = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-report\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealStatus = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-status\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealDiffUploadUrl = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-diff/upload-url\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealTraceUploadUrl = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-trace/upload-url\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1GitLfsByOwnerByRepoObjectsBatch = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/batch\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1GitLfsByOwnerByRepoObjectsByOid = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}\",\n ...options\n });\n};\nvar postInternalV1GitLfsByOwnerByRepoObjectsByOidUpload = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}/upload\",\n ...options\n });\n};\nvar putInternalV1GitLfsByOwnerByRepoObjectsByOidUpload = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}/upload\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryDownloadUrls = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/download-urls\",\n ...options\n });\n};\nvar postInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryUploadUrls = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/upload-urls\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdRepoCacheDownloadUrl = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/repo-cache/download-url\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdRepoCacheUploadUrl = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/repo-cache/upload-url\",\n ...options\n });\n};\nvar postInternalV1CodegenAgentProjectsByProjectIdGithubToken = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/github-token\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CodegenAgentBrowserKernelsh = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar deleteInternalV1CodegenAgentBrowserKernelshBySessionId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh/{sessionId}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentBrowserKernelshBySessionIdHealth = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh/{sessionId}/health\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/initial-messages\",\n ...options\n });\n};\nvar patchInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/initial-messages\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentSessionsByAgentSessionIdV1MigrationBundle = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/v1-migration-bundle\",\n ...options\n });\n};\nvar patchInternalV1CodegenAgentSessionsByAgentSessionIdClaudeSessionId = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/claude-session-id\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar deleteInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryBySessionId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/{sessionId}\",\n ...options\n });\n};\nvar deleteInternalV1CodegenAgentTasksByTaskIdSessions = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/tasks/{taskId}/sessions\",\n ...options\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdTestSnapshot = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/test-snapshot\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar patchInternalV1CodegenAgentProjectsByProjectIdDeploymentAttempt = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/deployment/attempt\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdDeployment = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/deployment\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdSyncSchedulers = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/sync-schedulers\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1ProjectsByProjectIdProxyConfig = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/projects/{projectId}/proxy-config\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailAddress = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/address\",\n ...options\n });\n};\nvar deleteV1ProjectsByProjectIdEmailInboxesByAddressMessages = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailInboxesByAddressMessages = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages\",\n ...options\n });\n};\nvar deleteV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}\",\n ...options\n });\n};\nvar postV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageIdExtract = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}/extract\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getOpenapiJson = (options) => {\n return (options?.client ?? client).get({\n url: \"/openapi.json\",\n ...options\n });\n};\n\nexport { client, createClient, createConfig, deleteInternalV1CodegenAgentBrowserKernelshBySessionId, deleteInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryBySessionId, deleteInternalV1CodegenAgentTasksByTaskIdSessions, deleteV1ProjectsByProjectIdEmailInboxesByAddressMessages, deleteV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId, getInternalV1CliMe, getInternalV1CliOrgsByOrgIdProjects, getInternalV1CliRunsByRunIdAutohealContext, getInternalV1CodegenAgentBrowserKernelshBySessionIdHealth, getInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryDownloadUrls, getInternalV1CodegenAgentProjectsByProjectIdRepoCacheDownloadUrl, getInternalV1CodegenAgentProjectsByProjectIdRepoCacheUploadUrl, getInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages, getInternalV1CodegenAgentSessionsByAgentSessionIdV1MigrationBundle, getInternalV1GitLfsByOwnerByRepoObjectsByOid, getInternalV1ProjectsByProjectIdProxyConfig, getOpenapiJson, getV1ProjectsByProjectIdEmailAddress, getV1ProjectsByProjectIdEmailInboxesByAddressMessages, getV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId, getV1ProjectsByProjectIdRunsByRunId, getV1TestSuiteRunByTestSuiteRunIdResult, getV1TestSuiteRunByTestSuiteRunIdStatus, patchInternalV1CodegenAgentProjectsByProjectIdDeploymentAttempt, patchInternalV1CodegenAgentSessionsByAgentSessionIdClaudeSessionId, patchInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages, patchInternalV1PlaywrightRunsByRunIdStatus, postInternalV1Assert, postInternalV1BillingBrowserMinutes, postInternalV1CacheDelete, postInternalV1CliExchangeToken, postInternalV1CliProjectsByProjectIdApiKey, postInternalV1CliPromptsSubagents, postInternalV1CliPromptsSystem, postInternalV1CliRunsByRunIdAutohealDiffUploadUrl, postInternalV1CliRunsByRunIdAutohealReport, postInternalV1CliRunsByRunIdAutohealStatus, postInternalV1CliRunsByRunIdAutohealTraceUploadUrl, postInternalV1CodegenAgentBrowserKernelsh, postInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryUploadUrls, postInternalV1CodegenAgentProjectsByProjectIdGithubToken, postInternalV1Extract, postInternalV1GitLfsByOwnerByRepoObjectsBatch, postInternalV1GitLfsByOwnerByRepoObjectsByOidUpload, postInternalV1TestAccountGoogleAuthState, postInternalV2Agent, postInternalV2Assert, postInternalV2Extract, postInternalV3Agent, postInternalV3GetAriaRefs, postV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageIdExtract, postV1ProjectsByProjectIdRuns, postV1ProjectsByProjectIdRunsCancel, postV1ProxyApiKey, postV1TestSuiteByTestSuiteIdRun, postV1TestSuiteRunCancel, putInternalV1CodegenAgentProjectsByProjectIdDeployment, putInternalV1CodegenAgentProjectsByProjectIdSyncSchedulers, putInternalV1CodegenAgentProjectsByProjectIdTestSnapshot, putInternalV1GitLfsByOwnerByRepoObjectsByOidUpload };\n//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map","import type { BrowserContext } from \"@playwright/test\";\n\nimport {\n createClient,\n postInternalV1TestAccountGoogleAuthState,\n} from \"@stablyai-internal/api-client\";\nimport { requireApiKey } from \"@stablyai/playwright-base\";\n\ndeclare const __PACKAGE_VERSION__: string;\n\ntype PlaywrightCookie = Parameters<BrowserContext[\"addCookies\"]>[0][number];\n\ntype LocalStorageEntry = {\n name: string;\n value: string;\n};\n\ntype StorageOrigin = {\n localStorage: LocalStorageEntry[];\n origin: string;\n};\n\n/**\n * Playwright-compatible storage state.\n */\nexport type GoogleStorageState = {\n cookies: PlaywrightCookie[];\n origins: StorageOrigin[];\n};\n\n/**\n * Input for {@link authWithGoogle}.\n */\nexport type AuthWithGoogleOptions = {\n /**\n * Browser context where auth state should be applied.\n */\n context: BrowserContext;\n /**\n * Google account email.\n */\n email: string;\n /**\n * Google account password.\n */\n password: string;\n /**\n * TOTP seed/secret used to generate the Google 2FA code.\n */\n otpSecret: string;\n /**\n * Force a cache refresh server-side. Defaults to `false`.\n */\n forceRefresh?: boolean;\n /**\n * Optional API key override. Defaults to the configured Stably API key.\n */\n apiKey?: string;\n};\n\nconst getApiUrl = (): string =>\n process.env.STABLY_API_URL ?? \"https://api.stably.ai\";\n\nconst sdkVersion =\n typeof __PACKAGE_VERSION__ !== \"undefined\"\n ? __PACKAGE_VERSION__\n : (process.env.npm_package_version ?? \"local\");\n\nconst assertNonEmptyString = (value: string, fieldName: string): void => {\n if (!value.trim()) {\n throw new Error(`Missing required field: ${fieldName}`);\n }\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nconst parseCookie = (value: unknown): PlaywrightCookie => {\n if (!isRecord(value)) {\n throw new Error(\"Invalid Google storage state: cookie must be an object\");\n }\n\n const { domain } = value;\n const { name } = value;\n const { path } = value;\n const { sameSite } = value;\n const valueText = value.value;\n\n if (\n typeof domain !== \"string\" ||\n typeof name !== \"string\" ||\n typeof path !== \"string\" ||\n typeof valueText !== \"string\"\n ) {\n throw new Error(\n \"Invalid Google storage state: cookie is missing required fields\",\n );\n }\n\n return {\n ...(typeof value.expires === \"number\" ? { expires: value.expires } : {}),\n ...(typeof value.httpOnly === \"boolean\"\n ? { httpOnly: value.httpOnly }\n : {}),\n ...(typeof value.partitionKey === \"string\"\n ? { partitionKey: value.partitionKey }\n : {}),\n ...(typeof value.secure === \"boolean\" ? { secure: value.secure } : {}),\n ...(sameSite === \"Lax\" || sameSite === \"None\" || sameSite === \"Strict\"\n ? { sameSite }\n : {}),\n domain,\n name,\n path,\n value: valueText,\n };\n};\n\nconst parseLocalStorageEntry = (value: unknown): LocalStorageEntry => {\n if (!isRecord(value)) {\n throw new Error(\n \"Invalid Google storage state: localStorage entry must be an object\",\n );\n }\n\n const { name } = value;\n const storedValue = value.value;\n\n if (typeof name !== \"string\" || typeof storedValue !== \"string\") {\n throw new Error(\n \"Invalid Google storage state: localStorage entry must contain string name and value\",\n );\n }\n\n return { name, value: storedValue };\n};\n\nconst parseOrigin = (value: unknown): StorageOrigin => {\n if (!isRecord(value)) {\n throw new Error(\"Invalid Google storage state: origin must be an object\");\n }\n\n const { origin } = value;\n const rawLocalStorage = value.localStorage;\n\n if (typeof origin !== \"string\") {\n throw new Error(\"Invalid Google storage state: origin must be a string\");\n }\n\n if (!Array.isArray(rawLocalStorage)) {\n return { localStorage: [], origin };\n }\n\n return {\n localStorage: rawLocalStorage.map(parseLocalStorageEntry),\n origin,\n };\n};\n\nconst parseStorageState = (value: {\n cookies?: unknown[];\n origins?: unknown[];\n}): GoogleStorageState => ({\n cookies: Array.isArray(value.cookies) ? value.cookies.map(parseCookie) : [],\n origins: Array.isArray(value.origins) ? value.origins.map(parseOrigin) : [],\n});\n\nconst applyStorageStateToContext = async (\n context: BrowserContext,\n storageState: GoogleStorageState,\n): Promise<void> => {\n if (storageState.cookies.length > 0) {\n await context.addCookies(storageState.cookies);\n }\n\n for (const originState of storageState.origins) {\n if (originState.localStorage.length === 0) {\n continue;\n }\n\n const page = await context.newPage();\n try {\n await page.goto(originState.origin, { waitUntil: \"domcontentloaded\" });\n await page.evaluate((entries: LocalStorageEntry[]) => {\n for (const entry of entries) {\n window.localStorage.setItem(entry.name, entry.value);\n }\n }, originState.localStorage);\n } finally {\n await page.close();\n }\n }\n};\n\n/**\n * Signs in a Google test account and applies the authenticated session to a Playwright context.\n *\n * Use this when your test needs to start in an already-authenticated state without\n * manually driving the login UI. After this resolves, cookies and localStorage are\n * applied to the provided context and subsequent pages in that context can continue\n * as an authenticated user.\n *\n * @param options - Google credentials and target Playwright context.\n * @param options.context - Browser context to receive the authenticated session.\n * @param options.email - Google account email.\n * @param options.password - Google account password.\n * @param options.otpSecret - TOTP secret for 2FA. See https://docs.stably.ai/stably2/auth/google-otp-secret-helper.\n * @param options.forceRefresh - Optional flag to force regeneration of session state.\n * @param options.apiKey - Optional Stably API key override.\n *\n * @returns Resolves when auth state has been successfully applied to the context.\n *\n * @example\n * ```ts\n * import { test } from \"@stablyai/playwright-test\";\n *\n * test(\"opens Google settings as authenticated user\", async ({ context, page }) => {\n * await context.authWithGoogle({\n * email: \"qa@example.com\",\n * password: process.env.GOOGLE_TEST_PASSWORD!,\n * otpSecret: process.env.GOOGLE_TEST_OTP_SECRET!,\n * });\n *\n * await page.goto(\"https://myaccount.google.com\");\n * });\n * ```\n */\nexport async function authWithGoogle(\n options: AuthWithGoogleOptions,\n): Promise<void> {\n const apiKey = options.apiKey ?? requireApiKey();\n\n assertNonEmptyString(options.email, \"email\");\n assertNonEmptyString(options.password, \"password\");\n assertNonEmptyString(options.otpSecret, \"otpSecret\");\n\n const client = createClient({\n baseUrl: getApiUrl(),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"X-Client-Name\": \"stably-playwright-test\",\n \"X-Client-Version\": sdkVersion,\n \"X-Stably-SDK-Version\": sdkVersion,\n },\n });\n\n const response = await postInternalV1TestAccountGoogleAuthState({\n body: {\n email: options.email,\n forceRefresh: options.forceRefresh,\n otpSecret: options.otpSecret,\n password: options.password,\n },\n client,\n });\n\n if (response.error) {\n const errorMessage =\n \"error\" in response.error ? response.error.error : \"Unknown error\";\n throw new Error(`Failed to authenticate with Google: ${errorMessage}`);\n }\n\n const storageState = parseStorageState(response.data.storageState);\n await applyStorageStateToContext(options.context, storageState);\n}\n","import { dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\n\nimport type { BrowserContext } from \"@playwright/test\";\nimport {\n defineConfig as playwrightDefineConfig,\n expect as playwrightExpect,\n test as playwrightTest,\n} from \"@playwright/test\";\nimport \"@stablyai/playwright-base\";\n\nimport type { Agent } from \"@stablyai/playwright-base\";\nimport {\n augmentBrowser,\n augmentBrowserContext,\n augmentPage,\n stablyPlaywrightMatchers,\n} from \"@stablyai/playwright-base\";\n\nimport type { StablyNotificationConfig } from \"@stablyai/playwright-reporter\";\nimport {\n authWithGoogle,\n type AuthWithGoogleOptions,\n type GoogleStorageState,\n} from \"./auth-with-google\";\n\nexport { stablyReporter } from \"@stablyai/playwright-reporter\";\nexport type {\n StablyReporterOptions,\n ProjectNotificationConfig,\n NotificationResultPolicy,\n StablyEmailNotificationConfig,\n StablySlackNotificationConfig,\n StablyNotificationConfig,\n} from \"@stablyai/playwright-reporter\";\nexport { Agent, setApiKey } from \"@stablyai/playwright-base\";\nexport { authWithGoogle, type AuthWithGoogleOptions, type GoogleStorageState };\nexport type {\n AIModel,\n GetLocatorsByAIOptions,\n GetLocatorsByAIResult,\n ScreenshotPromptOptions,\n} from \"@stablyai/playwright-base\";\n\n/**\n * Get the directory name from an import.meta.url.\n * This is the ESM equivalent of __dirname.\n *\n * @example\n * ```ts\n * import { getDirname } from '@stablyai/playwright-test';\n * const __dirname = getDirname(import.meta.url);\n *\n * // Use in tests for file paths\n * await page.setInputFiles('input', path.join(__dirname, 'fixtures', 'file.pdf'));\n * ```\n */\nexport function getDirname(importMetaUrl: string): string {\n return dirname(fileURLToPath(importMetaUrl));\n}\n\n/**\n * Get the filename from an import.meta.url.\n * This is the ESM equivalent of __filename.\n *\n * @example\n * ```ts\n * import { getFilename } from '@stablyai/playwright-test';\n * const __filename = getFilename(import.meta.url);\n * ```\n */\nexport function getFilename(importMetaUrl: string): string {\n return fileURLToPath(importMetaUrl);\n}\n\nexport const test: typeof playwrightTest = playwrightTest.extend<{\n agent: Agent;\n}>({\n agent: async (\n { context }: { context: BrowserContext },\n use: (agent: Agent) => Promise<void>,\n ) => {\n // Create a default agent from the default context\n const agent = context.newAgent();\n await use(agent);\n },\n browser: async ({ browser }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await use(augmentBrowser(browser as any) as any);\n },\n context: async ({ context }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion -- context augmentation requires type widening\n const augmentedContext = augmentBrowserContext(context as any) as any;\n if (!(\"authWithGoogle\" in augmentedContext)) {\n augmentedContext.authWithGoogle = (\n options: Omit<AuthWithGoogleOptions, \"context\">,\n ) => authWithGoogle({ context: augmentedContext, ...options });\n }\n\n await use(augmentedContext);\n },\n page: async ({ page }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await use(augmentPage(page as any) as any);\n },\n});\n\nexport const expect = playwrightExpect.extend(stablyPlaywrightMatchers);\n\nexport * from \"@playwright/test\";\n\nexport type StablyProjectConfig = {\n notifications?: StablyNotificationConfig;\n};\n\n/**\n * Stably-enhanced defineConfig with typed support for stably notification configuration in projects.\n * The `stably` property on projects is available via module augmentation of `@playwright/test`.\n *\n * @example\n * ```ts\n * import { defineConfig, stablyReporter } from \"@stablyai/playwright-test\";\n *\n * export default defineConfig({\n * reporter: [stablyReporter({ apiKey: \"...\" })],\n * projects: [\n * {\n * name: \"smoke\",\n * stably: {\n * notifications: {\n * slack: { channelName: \"#alerts\", notifyOnResult: \"failures-only\" },\n * },\n * },\n * },\n * ],\n * });\n * ```\n */\nexport const defineConfig = playwrightDefineConfig;\n\ndeclare module \"@playwright/test\" {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface LocatorAssertions {\n /**\n * Asserts that the locator satisfies a natural language condition using AI vision.\n *\n * Takes a screenshot of the locator and uses AI to verify whether the specified condition is met.\n *\n * @param condition - A natural language description of what should be true about the locator\n * @param options - Optional screenshot options (e.g., timeout)\n *\n * @example\n * ```typescript\n * await expect(page.locator('.button')).aiAssert('The button is disabled and grayed out');\n * ```\n */\n aiAssert(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n\n /**\n * @deprecated Use `aiAssert` instead. This method will be removed in a future version.\n */\n toMatchScreenshotPrompt(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface PageAssertions {\n /**\n * Asserts that the page satisfies a natural language condition using AI vision.\n *\n * Takes a screenshot of the page and uses AI to verify whether the specified condition is met.\n *\n * @param condition - A natural language description of what should be true about the page\n * @param options - Optional screenshot options (e.g., fullPage, timeout)\n *\n * @example\n * ```typescript\n * await expect(page).aiAssert('The page shows a success message after form submission');\n * ```\n */\n aiAssert(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n\n /**\n * @deprecated Use `aiAssert` instead. This method will be removed in a future version.\n */\n toMatchScreenshotPrompt(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n }\n\n // Add agent fixture to test args\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface PlaywrightTestArgs {\n agent: Agent;\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface BrowserContext {\n /**\n * Generates and applies Google auth state to this context.\n *\n * Calls Stably's Google auth-state endpoint and proactively sets cookies and\n * localStorage values on this context.\n */\n authWithGoogle(\n options: Omit<AuthWithGoogleOptions, \"context\">,\n ): Promise<void>;\n }\n\n // Add stably config to project configuration\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Project {\n stably?: StablyProjectConfig;\n }\n}\n"],"names":["requireApiKey","dirname","fileURLToPath","playwrightTest","augmentBrowser","augmentBrowserContext","augmentPage","playwrightExpect","stablyPlaywrightMatchers","playwrightDefineConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,kBAAA,GAAqB;AAAA,EACvB,cAAA,EAAgB,CAAC,IAAA,KAAS,IAAA,CAAK,SAAA;AAAA,IAC7B,IAAA;AAAA,IACA,CAAC,MAAM,KAAA,KAAU,OAAO,UAAU,QAAA,GAAW,KAAA,CAAM,UAAS,GAAI;AAAA;AAEpE,CAAA;AAGA,IAAI,kBAAkB,CAAC;AAAA,EACrB,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,IAAI,WAAA;AACJ,EAAA,MAAM,KAAA,GAAQ,UAAA,KAAe,CAAC,EAAA,KAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA,CAAA;AACrF,EAAA,MAAM,eAAe,mBAAmB;AACtC,IAAA,IAAI,aAAa,oBAAA,IAAwB,GAAA;AACzC,IAAA,IAAI,OAAA,GAAU,CAAA;AACd,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,IAAI,iBAAgB,CAAE,MAAA;AACvD,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,IAAI,OAAO,OAAA,EAAS;AACpB,MAAA,OAAA,EAAA;AACA,MAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,YAAmB,OAAA,GAAU,QAAQ,OAAA,GAAU,IAAI,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AAClG,MAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,QAAA,OAAA,CAAQ,GAAA,CAAI,iBAAiB,WAAW,CAAA;AAAA,MAC1C;AACA,MAAA,IAAI;AACF,QAAA,MAAM,WAAA,GAAc;AAAA,UAClB,QAAA,EAAU,QAAA;AAAA,UACV,GAAG,OAAA;AAAA,UACH,MAAM,OAAA,CAAQ,cAAA;AAAA,UACd,OAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,IAAI,OAAA,GAAU,IAAI,OAAA,CAAQ,GAAA,EAAK,WAAW,CAAA;AAC1C,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,OAAA,GAAU,MAAM,SAAA,CAAU,GAAA,EAAK,WAAW,CAAA;AAAA,QAC5C;AACA,QAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,KAAA,IAAS,UAAA,CAAW,KAAA;AAC3C,QAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,OAAO,CAAA;AACrC,QAAA,IAAI,CAAC,QAAA,CAAS,EAAA;AACZ,UAAA,MAAM,IAAI,KAAA;AAAA,YACR,CAAA,YAAA,EAAe,QAAA,CAAS,MAAM,CAAA,CAAA,EAAI,SAAS,UAAU,CAAA;AAAA,WACvD;AACF,QAAA,IAAI,CAAC,QAAA,CAAS,IAAA,EAAM,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAC7D,QAAA,MAAM,MAAA,GAAS,SAAS,IAAA,CAAK,WAAA,CAAY,IAAI,iBAAA,EAAmB,EAAE,SAAA,EAAU;AAC5E,QAAA,IAAI,MAAA,GAAS,EAAA;AACb,QAAA,MAAM,eAAe,MAAM;AACzB,UAAA,IAAI;AACF,YAAA,MAAA,CAAO,MAAA,EAAO;AAAA,UAChB,CAAA,CAAA,MAAQ;AAAA,UACR;AAAA,QACF,CAAA;AACA,QAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,YAAY,CAAA;AAC7C,QAAA,IAAI;AACF,UAAA,OAAO,IAAA,EAAM;AACX,YAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,MAAM,OAAO,IAAA,EAAK;AAC1C,YAAA,IAAI,IAAA,EAAM;AACV,YAAA,MAAA,IAAU,KAAA;AACV,YAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA;AAClC,YAAA,MAAA,GAAS,MAAA,CAAO,KAAI,IAAK,EAAA;AACzB,YAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,cAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AAC9B,cAAA,MAAM,YAAY,EAAC;AACnB,cAAA,IAAI,SAAA;AACJ,cAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,gBAAA,IAAI,IAAA,CAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AAC5B,kBAAA,SAAA,CAAU,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAC,CAAA;AAAA,gBAC9C,CAAA,MAAA,IAAW,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,EAAG;AACpC,kBAAA,SAAA,GAAY,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA;AAAA,gBAC3C,CAAA,MAAA,IAAW,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA,EAAG;AACjC,kBAAA,WAAA,GAAc,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,EAAE,CAAA;AAAA,gBAC1C,CAAA,MAAA,IAAW,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,EAAG;AACpC,kBAAA,MAAM,SAAS,MAAA,CAAO,QAAA;AAAA,oBACpB,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA;AAAA,oBAC7B;AAAA,mBACF;AACA,kBAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AACzB,oBAAA,UAAA,GAAa,MAAA;AAAA,kBACf;AAAA,gBACF;AAAA,cACF;AACA,cAAA,IAAI,IAAA;AACJ,cAAA,IAAI,UAAA,GAAa,KAAA;AACjB,cAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,gBAAA,MAAM,OAAA,GAAU,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACnC,gBAAA,IAAI;AACF,kBAAA,IAAA,GAAO,IAAA,CAAK,MAAM,OAAO,CAAA;AACzB,kBAAA,UAAA,GAAa,IAAA;AAAA,gBACf,CAAA,CAAA,MAAQ;AACN,kBAAA,IAAA,GAAO,OAAA;AAAA,gBACT;AAAA,cACF;AACA,cAAA,IAAI,UAAA,EAAY;AACd,gBAAA,IAAI,iBAAA,EAAmB;AACrB,kBAAA,MAAM,kBAAkB,IAAI,CAAA;AAAA,gBAC9B;AACA,gBAAA,IAAI,mBAAA,EAAqB;AACvB,kBAAA,IAAA,GAAO,MAAM,oBAAoB,IAAI,CAAA;AAAA,gBACvC;AAAA,cACF;AACA,cAAA,UAAA,GAAa;AAAA,gBACX,IAAA;AAAA,gBACA,KAAA,EAAO,SAAA;AAAA,gBACP,EAAA,EAAI,WAAA;AAAA,gBACJ,KAAA,EAAO;AAAA,eACR,CAAA;AACD,cAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,gBAAA,MAAM,IAAA;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAA,SAAE;AACA,UAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,YAAY,CAAA;AAChD,UAAA,MAAA,CAAO,WAAA,EAAY;AAAA,QACrB;AACA,QAAA;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,UAAA,GAAa,KAAK,CAAA;AAClB,QAAA,IAAI,mBAAA,KAAwB,MAAA,IAAU,OAAA,IAAW,mBAAA,EAAqB;AACpE,UAAA;AAAA,QACF;AACA,QAAA,MAAM,UAAU,IAAA,CAAK,GAAA;AAAA,UACnB,UAAA,GAAa,MAAM,OAAA,GAAU,CAAA,CAAA;AAAA,UAC7B,gBAAA,IAAoB;AAAA,SACtB;AACA,QAAA,MAAM,MAAM,OAAO,CAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,MAAM,SAAS,YAAA,EAAa;AAC5B,EAAA,OAAO,EAAE,MAAA,EAAO;AAClB,CAAA;AAGA,IAAI,qBAAA,GAAwB,CAAC,KAAA,KAAU;AACrC,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,OAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT;AACE,MAAA,OAAO,GAAA;AAAA;AAEb,CAAA;AACA,IAAI,uBAAA,GAA0B,CAAC,KAAA,KAAU;AACvC,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,MAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,eAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,gBAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT;AACE,MAAA,OAAO,GAAA;AAAA;AAEb,CAAA;AACA,IAAI,sBAAA,GAAyB,CAAC,KAAA,KAAU;AACtC,EAAA,QAAQ,KAAA;AAAO,IACb,KAAK,OAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,GAAA;AAAA,IACT;AACE,MAAA,OAAO,GAAA;AAAA;AAEb,CAAA;AACA,IAAI,sBAAsB,CAAC;AAAA,EACzB,aAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,aAAA,GAAA,CAAiB,aAAA,GAAgB,KAAA,GAAQ,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,kBAAA,CAAmB,CAAC,CAAC,CAAA,EAAG,IAAA,CAAK,uBAAA,CAAwB,KAAK,CAAC,CAAA;AAC3H,IAAA,QAAQ,KAAA;AAAO,MACb,KAAK,OAAA;AACH,QAAA,OAAO,IAAI,aAAa,CAAA,CAAA;AAAA,MAC1B,KAAK,QAAA;AACH,QAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA,MAClC,KAAK,QAAA;AACH,QAAA,OAAO,aAAA;AAAA,MACT;AACE,QAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA;AACnC,EACF;AACA,EAAA,MAAM,SAAA,GAAY,sBAAsB,KAAK,CAAA;AAC7C,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AACpC,IAAA,IAAI,KAAA,KAAU,OAAA,IAAW,KAAA,KAAU,QAAA,EAAU;AAC3C,MAAA,OAAO,aAAA,GAAgB,CAAA,GAAI,kBAAA,CAAmB,CAAC,CAAA;AAAA,IACjD;AACA,IAAA,OAAO,uBAAA,CAAwB;AAAA,MAC7B,aAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,EACH,CAAC,CAAA,CAAE,IAAA,CAAK,SAAS,CAAA;AACjB,EAAA,OAAO,KAAA,KAAU,OAAA,IAAW,KAAA,KAAU,QAAA,GAAW,YAAY,YAAA,GAAe,YAAA;AAC9E,CAAA;AACA,IAAI,0BAA0B,CAAC;AAAA,EAC7B,aAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,IAAA,EAAM;AACtC,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,gBAAgB,KAAA,GAAQ,kBAAA,CAAmB,KAAK,CAAC,CAAA,CAAA;AACrE,CAAA;AACA,IAAI,uBAAuB,CAAC;AAAA,EAC1B,aAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,SAAA,GAAY,MAAM,WAAA,EAAY,GAAI,GAAG,IAAI,CAAA,CAAA,EAAI,KAAA,CAAM,WAAA,EAAa,CAAA,CAAA;AAAA,EACzE;AACA,EAAA,IAAI,KAAA,KAAU,YAAA,IAAgB,CAAC,OAAA,EAAS;AACtC,IAAA,IAAI,SAAS,EAAC;AACd,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,CAAC,CAAA,KAAM;AAC1C,MAAA,MAAA,GAAS;AAAA,QACP,GAAG,MAAA;AAAA,QACH,GAAA;AAAA,QACA,aAAA,GAAgB,CAAA,GAAI,kBAAA,CAAmB,CAAC;AAAA,OAC1C;AAAA,IACF,CAAC,CAAA;AACD,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AACrC,IAAA,QAAQ,KAAA;AAAO,MACb,KAAK,MAAA;AACH,QAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA,MACjC,KAAK,OAAA;AACH,QAAA,OAAO,IAAI,aAAa,CAAA,CAAA;AAAA,MAC1B,KAAK,QAAA;AACH,QAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA,MAClC;AACE,QAAA,OAAO,aAAA;AAAA;AACX,EACF;AACA,EAAA,MAAM,SAAA,GAAY,uBAAuB,KAAK,CAAA;AAC9C,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,GAAA;AAAA,IACzC,CAAC,CAAC,GAAA,EAAK,CAAC,MAAM,uBAAA,CAAwB;AAAA,MACpC,aAAA;AAAA,MACA,MAAM,KAAA,KAAU,YAAA,GAAe,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA,GAAM,GAAA;AAAA,MACnD,KAAA,EAAO;AAAA,KACR;AAAA,GACH,CAAE,KAAK,SAAS,CAAA;AAChB,EAAA,OAAO,KAAA,KAAU,OAAA,IAAW,KAAA,KAAU,QAAA,GAAW,YAAY,YAAA,GAAe,YAAA;AAC9E,CAAA;AAGA,IAAI,aAAA,GAAgB,aAAA;AACpB,IAAI,wBAAwB,CAAC,EAAE,IAAA,EAAM,GAAA,EAAK,MAAK,KAAM;AACnD,EAAA,IAAI,GAAA,GAAM,IAAA;AACV,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,aAAa,CAAA;AACxC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,OAAO,KAAA,CAAM,SAAA,CAAU,CAAA,EAAG,KAAA,CAAM,SAAS,CAAC,CAAA;AAC9C,MAAA,IAAI,KAAA,GAAQ,QAAA;AACZ,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EAAG;AACtB,QAAA,OAAA,GAAU,IAAA;AACV,QAAA,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,CAAA,EAAG,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,MAC1C;AACA,MAAA,IAAI,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACxB,QAAA,IAAA,GAAO,IAAA,CAAK,UAAU,CAAC,CAAA;AACvB,QAAA,KAAA,GAAQ,OAAA;AAAA,MACV,CAAA,MAAA,IAAW,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AAC/B,QAAA,IAAA,GAAO,IAAA,CAAK,UAAU,CAAC,CAAA;AACvB,QAAA,KAAA,GAAQ,QAAA;AAAA,MACV;AACA,MAAA,MAAM,KAAA,GAAQ,KAAK,IAAI,CAAA;AACvB,MAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,IAAA,EAAM;AACtC,QAAA;AAAA,MACF;AACA,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,QAAA,GAAA,GAAM,GAAA,CAAI,OAAA;AAAA,UACR,KAAA;AAAA,UACA,oBAAoB,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,OAAO;AAAA,SACrD;AACA,QAAA;AAAA,MACF;AACA,MAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,QAAA,GAAA,GAAM,GAAA,CAAI,OAAA;AAAA,UACR,KAAA;AAAA,UACA,oBAAA,CAAqB;AAAA,YACnB,OAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,KAAA;AAAA,YACA,SAAA,EAAW;AAAA,WACZ;AAAA,SACH;AACA,QAAA;AAAA,MACF;AACA,MAAA,IAAI,UAAU,QAAA,EAAU;AACtB,QAAA,GAAA,GAAM,GAAA,CAAI,OAAA;AAAA,UACR,KAAA;AAAA,UACA,IAAI,uBAAA,CAAwB;AAAA,YAC1B,IAAA;AAAA,YACA;AAAA,WACD,CAAC,CAAA;AAAA,SACJ;AACA,QAAA;AAAA,MACF;AACA,MAAA,MAAM,YAAA,GAAe,kBAAA;AAAA,QACnB,KAAA,KAAU,OAAA,GAAU,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,GAAK;AAAA,OACpC;AACA,MAAA,GAAA,GAAM,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,YAAY,CAAA;AAAA,IACvC;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT,CAAA;AACA,IAAI,SAAS,CAAC;AAAA,EACZ,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,eAAA;AAAA,EACA,GAAA,EAAK;AACP,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AACtD,EAAA,IAAI,GAAA,GAAA,CAAO,WAAW,EAAA,IAAM,OAAA;AAC5B,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,GAAA,GAAM,qBAAA,CAAsB,EAAE,IAAA,EAAM,GAAA,EAAK,CAAA;AAAA,EAC3C;AACA,EAAA,IAAI,MAAA,GAAS,KAAA,GAAQ,eAAA,CAAgB,KAAK,CAAA,GAAI,EAAA;AAC9C,EAAA,IAAI,MAAA,CAAO,UAAA,CAAW,GAAG,CAAA,EAAG;AAC1B,IAAA,MAAA,GAAS,MAAA,CAAO,UAAU,CAAC,CAAA;AAAA,EAC7B;AACA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,GAAA,IAAO,IAAI,MAAM,CAAA,CAAA;AAAA,EACnB;AACA,EAAA,OAAO,GAAA;AACT,CAAA;AACA,SAAS,oBAAoB,OAAA,EAAS;AACpC,EAAA,MAAM,OAAA,GAAU,QAAQ,IAAA,KAAS,MAAA;AACjC,EAAA,MAAM,gBAAA,GAAmB,WAAW,OAAA,CAAQ,cAAA;AAC5C,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,IAAI,oBAAoB,OAAA,EAAS;AAC/B,MAAA,MAAM,iBAAA,GAAoB,OAAA,CAAQ,cAAA,KAAmB,MAAA,IAAU,QAAQ,cAAA,KAAmB,EAAA;AAC1F,MAAA,OAAO,iBAAA,GAAoB,QAAQ,cAAA,GAAiB,IAAA;AAAA,IACtD;AACA,IAAA,OAAO,OAAA,CAAQ,IAAA,KAAS,EAAA,GAAK,OAAA,CAAQ,IAAA,GAAO,IAAA;AAAA,EAC9C;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,OAAA,CAAQ,IAAA;AAAA,EACjB;AACA,EAAA,OAAO,MAAA;AACT;AAGA,IAAI,YAAA,GAAe,OAAO,IAAA,EAAM,QAAA,KAAa;AAC3C,EAAA,MAAM,QAAQ,OAAO,QAAA,KAAa,aAAa,MAAM,QAAA,CAAS,IAAI,CAAA,GAAI,QAAA;AACtE,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA;AAAA,EACF;AACA,EAAA,IAAI,IAAA,CAAK,WAAW,QAAA,EAAU;AAC5B,IAAA,OAAO,UAAU,KAAK,CAAA,CAAA;AAAA,EACxB;AACA,EAAA,IAAI,IAAA,CAAK,WAAW,OAAA,EAAS;AAC3B,IAAA,OAAO,CAAA,MAAA,EAAS,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,KAAA;AACT,CAAA;AAGA,IAAI,wBAAwB,CAAC;AAAA,EAC3B,aAAa,EAAC;AAAA,EACd,GAAG;AACL,CAAA,GAAI,EAAC,KAAM;AACT,EAAA,MAAM,eAAA,GAAkB,CAAC,WAAA,KAAgB;AACvC,IAAA,MAAM,SAAS,EAAC;AAChB,IAAA,IAAI,WAAA,IAAe,OAAO,WAAA,KAAgB,QAAA,EAAU;AAClD,MAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,QAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,QAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,IAAA,EAAM;AACtC,UAAA;AAAA,QACF;AACA,QAAA,MAAM,OAAA,GAAU,UAAA,CAAW,IAAI,CAAA,IAAK,IAAA;AACpC,QAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,UAAA,MAAM,kBAAkB,mBAAA,CAAoB;AAAA,YAC1C,eAAe,OAAA,CAAQ,aAAA;AAAA,YACvB,OAAA,EAAS,IAAA;AAAA,YACT,IAAA;AAAA,YACA,KAAA,EAAO,MAAA;AAAA,YACP,KAAA;AAAA,YACA,GAAG,OAAA,CAAQ;AAAA,WACZ,CAAA;AACD,UAAA,IAAI,eAAA,EAAiB,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA;AAAA,QAClD,CAAA,MAAA,IAAW,OAAO,KAAA,KAAU,QAAA,EAAU;AACpC,UAAA,MAAM,mBAAmB,oBAAA,CAAqB;AAAA,YAC5C,eAAe,OAAA,CAAQ,aAAA;AAAA,YACvB,OAAA,EAAS,IAAA;AAAA,YACT,IAAA;AAAA,YACA,KAAA,EAAO,YAAA;AAAA,YACP,KAAA;AAAA,YACA,GAAG,OAAA,CAAQ;AAAA,WACZ,CAAA;AACD,UAAA,IAAI,gBAAA,EAAkB,MAAA,CAAO,IAAA,CAAK,gBAAgB,CAAA;AAAA,QACpD,CAAA,MAAO;AACL,UAAA,MAAM,sBAAsB,uBAAA,CAAwB;AAAA,YAClD,eAAe,OAAA,CAAQ,aAAA;AAAA,YACvB,IAAA;AAAA,YACA;AAAA,WACD,CAAA;AACD,UAAA,IAAI,mBAAA,EAAqB,MAAA,CAAO,IAAA,CAAK,mBAAmB,CAAA;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,EACxB,CAAA;AACA,EAAA,OAAO,eAAA;AACT,CAAA;AACA,IAAI,UAAA,GAAa,CAAC,WAAA,KAAgB;AAChC,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,MAAM,eAAe,WAAA,CAAY,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,GAAG,IAAA,EAAK;AACrD,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,aAAa,UAAA,CAAW,kBAAkB,KAAK,YAAA,CAAa,QAAA,CAAS,OAAO,CAAA,EAAG;AACjF,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,iBAAiB,qBAAA,EAAuB;AAC1C,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAC,cAAA,EAAgB,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA,CAAE,IAAA;AAAA,IACjD,CAAC,IAAA,KAAS,YAAA,CAAa,UAAA,CAAW,IAAI;AAAA,GACxC,EAAG;AACD,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,YAAA,CAAa,UAAA,CAAW,OAAO,CAAA,EAAG;AACpC,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA;AACF,CAAA;AACA,IAAI,iBAAA,GAAoB,CAAC,OAAA,EAAS,IAAA,KAAS;AACzC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,QAAQ,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA,IAAK,OAAA,CAAQ,QAAQ,IAAI,CAAA,IAAK,OAAA,CAAQ,OAAA,CAAQ,IAAI,QAAQ,CAAA,EAAG,SAAS,CAAA,EAAG,IAAI,GAAG,CAAA,EAAG;AAC7G,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA;AACT,CAAA;AACA,IAAI,gBAAgB,OAAO;AAAA,EACzB,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,KAAA,MAAW,QAAQ,QAAA,EAAU;AAC3B,IAAA,IAAI,iBAAA,CAAkB,OAAA,EAAS,IAAA,CAAK,IAAI,CAAA,EAAG;AACzC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,CAAa,IAAA,EAAM,QAAQ,IAAI,CAAA;AACnD,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA;AAAA,IACF;AACA,IAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,eAAA;AAC1B,IAAA,QAAQ,KAAK,EAAA;AAAI,MACf,KAAK,OAAA;AACH,QAAA,IAAI,CAAC,QAAQ,KAAA,EAAO;AAClB,UAAA,OAAA,CAAQ,QAAQ,EAAC;AAAA,QACnB;AACA,QAAA,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA,GAAI,KAAA;AACtB,QAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,OAAA,CAAQ,QAAQ,MAAA,CAAO,QAAA,EAAU,GAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AACnD,QAAA;AAAA,MACF,KAAK,QAAA;AAAA,MACL;AACE,QAAA,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,KAAK,CAAA;AAC/B,QAAA;AAAA;AACJ,EACF;AACF,CAAA;AACA,IAAI,QAAA,GAAW,CAAC,OAAA,KAAY,MAAA,CAAO;AAAA,EACjC,SAAS,OAAA,CAAQ,OAAA;AAAA,EACjB,MAAM,OAAA,CAAQ,IAAA;AAAA,EACd,OAAO,OAAA,CAAQ,KAAA;AAAA,EACf,eAAA,EAAiB,OAAO,OAAA,CAAQ,eAAA,KAAoB,aAAa,OAAA,CAAQ,eAAA,GAAkB,qBAAA,CAAsB,OAAA,CAAQ,eAAe,CAAA;AAAA,EACxI,KAAK,OAAA,CAAQ;AACf,CAAC,CAAA;AACD,IAAI,YAAA,GAAe,CAAC,CAAA,EAAG,CAAA,KAAM;AAC3B,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAC5B,EAAA,IAAI,MAAA,CAAO,OAAA,EAAS,QAAA,CAAS,GAAG,CAAA,EAAG;AACjC,IAAA,MAAA,CAAO,OAAA,GAAU,OAAO,OAAA,CAAQ,SAAA,CAAU,GAAG,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,EACxE;AACA,EAAA,MAAA,CAAO,OAAA,GAAU,YAAA,CAAa,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AAClD,EAAA,OAAO,MAAA;AACT,CAAA;AACA,IAAI,cAAA,GAAiB,CAAC,OAAA,KAAY;AAChC,EAAA,MAAM,UAAU,EAAC;AACjB,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAC9B,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA;AAAA,EAC3B,CAAC,CAAA;AACD,EAAA,OAAO,OAAA;AACT,CAAA;AACA,IAAI,YAAA,GAAe,IAAI,OAAA,KAAY;AACjC,EAAA,MAAM,aAAA,GAAgB,IAAI,OAAA,EAAQ;AAClC,EAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,kBAAkB,OAAA,GAAU,cAAA,CAAe,MAAM,CAAA,GAAI,MAAA,CAAO,QAAQ,MAAM,CAAA;AAC3F,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,CAAA,IAAK,QAAA,EAAU;AACnC,MAAA,IAAI,UAAU,IAAA,EAAM;AAClB,QAAA,aAAA,CAAc,OAAO,GAAG,CAAA;AAAA,MAC1B,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC/B,QAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,UAAA,aAAA,CAAc,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QAC7B;AAAA,MACF,CAAA,MAAA,IAAW,UAAU,MAAA,EAAQ;AAC3B,QAAA,aAAA,CAAc,GAAA;AAAA,UACZ,GAAA;AAAA,UACA,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI;AAAA,SACtD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,aAAA;AACT,CAAA;AACA,IAAI,eAAe,MAAM;AAAA,EACvB,MAAM,EAAC;AAAA,EACP,KAAA,GAAQ;AACN,IAAA,IAAA,CAAK,MAAM,EAAC;AAAA,EACd;AAAA,EACA,MAAM,EAAA,EAAI;AACR,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,mBAAA,CAAoB,EAAE,CAAA;AACzC,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACnB,MAAA,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,IAAA;AAAA,IACpB;AAAA,EACF;AAAA,EACA,OAAO,EAAA,EAAI;AACT,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,mBAAA,CAAoB,EAAE,CAAA;AACzC,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EAChC;AAAA,EACA,oBAAoB,EAAA,EAAI;AACtB,IAAA,IAAI,OAAO,OAAO,QAAA,EAAU;AAC1B,MAAA,OAAO,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,GAAI,EAAA,GAAK,EAAA;AAAA,IAC7B;AACA,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC5B;AAAA,EACA,MAAA,CAAO,IAAI,EAAA,EAAI;AACb,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,mBAAA,CAAoB,EAAE,CAAA;AACzC,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACnB,MAAA,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,EAAA;AAClB,MAAA,OAAO,EAAA;AAAA,IACT;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAAA,EACA,IAAI,EAAA,EAAI;AACN,IAAA,IAAA,CAAK,GAAA,CAAI,KAAK,EAAE,CAAA;AAChB,IAAA,OAAO,IAAA,CAAK,IAAI,MAAA,GAAS,CAAA;AAAA,EAC3B;AACF,CAAA;AACA,IAAI,qBAAqB,OAAO;AAAA,EAC9B,KAAA,EAAO,IAAI,YAAA,EAAa;AAAA,EACxB,OAAA,EAAS,IAAI,YAAA,EAAa;AAAA,EAC1B,QAAA,EAAU,IAAI,YAAA;AAChB,CAAA,CAAA;AACA,IAAI,yBAAyB,qBAAA,CAAsB;AAAA,EACjD,aAAA,EAAe,KAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,IAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AACD,IAAI,cAAA,GAAiB;AAAA,EACnB,cAAA,EAAgB;AAClB,CAAA;AACA,IAAI,YAAA,GAAe,CAAC,QAAA,GAAW,EAAC,MAAO;AAAA,EACrC,GAAG,kBAAA;AAAA,EACH,OAAA,EAAS,cAAA;AAAA,EACT,OAAA,EAAS,MAAA;AAAA,EACT,eAAA,EAAiB,sBAAA;AAAA,EACjB,GAAG;AACL,CAAA,CAAA;AAGA,IAAI,YAAA,GAAe,CAAC,MAAA,GAAS,EAAC,KAAM;AAClC,EAAA,IAAI,OAAA,GAAU,YAAA,CAAa,YAAA,EAAa,EAAG,MAAM,CAAA;AACjD,EAAA,MAAM,SAAA,GAAY,OAAO,EAAE,GAAG,OAAA,EAAQ,CAAA;AACtC,EAAA,MAAM,SAAA,GAAY,CAAC,OAAA,KAAY;AAC7B,IAAA,OAAA,GAAU,YAAA,CAAa,SAAS,OAAO,CAAA;AACvC,IAAA,OAAO,SAAA,EAAU;AAAA,EACnB,CAAA;AACA,EAAA,MAAM,eAAe,kBAAA,EAAmB;AACxC,EAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,KAAY;AACvC,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,GAAG,OAAA;AAAA,MACH,GAAG,OAAA;AAAA,MACH,KAAA,EAAO,OAAA,CAAQ,KAAA,IAAS,OAAA,CAAQ,SAAS,UAAA,CAAW,KAAA;AAAA,MACpD,OAAA,EAAS,YAAA,CAAa,OAAA,CAAQ,OAAA,EAAS,QAAQ,OAAO,CAAA;AAAA,MACtD,cAAA,EAAgB;AAAA,KAClB;AACA,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,MAAM,aAAA,CAAc;AAAA,QAClB,GAAG,IAAA;AAAA,QACH,UAAU,IAAA,CAAK;AAAA,OAChB,CAAA;AAAA,IACH;AACA,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA,MAAM,IAAA,CAAK,iBAAiB,IAAI,CAAA;AAAA,IAClC;AACA,IAAA,IAAI,IAAA,CAAK,IAAA,KAAS,MAAA,IAAU,IAAA,CAAK,cAAA,EAAgB;AAC/C,MAAA,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAAA,IACrD;AACA,IAAA,IAAI,IAAA,CAAK,IAAA,KAAS,MAAA,IAAU,IAAA,CAAK,mBAAmB,EAAA,EAAI;AACtD,MAAA,IAAA,CAAK,OAAA,CAAQ,OAAO,cAAc,CAAA;AAAA,IACpC;AACA,IAAA,MAAM,GAAA,GAAM,SAAS,IAAI,CAAA;AACzB,IAAA,OAAO,EAAE,MAAM,GAAA,EAAI;AAAA,EACrB,CAAA;AACA,EAAA,MAAM,OAAA,GAAU,OAAO,OAAA,KAAY;AACjC,IAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAI,GAAI,MAAM,cAAc,OAAO,CAAA;AACjD,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,QAAA,EAAU,QAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACH,IAAA,EAAM,oBAAoB,IAAI;AAAA,KAChC;AACA,IAAA,IAAI,QAAA,GAAW,IAAI,OAAA,CAAQ,GAAA,EAAK,WAAW,CAAA;AAC3C,IAAA,KAAA,MAAW,EAAA,IAAM,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK;AACzC,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,QAAA,GAAW,MAAM,EAAA,CAAG,QAAA,EAAU,IAAI,CAAA;AAAA,MACpC;AAAA,IACF;AACA,IAAA,MAAM,SAAS,IAAA,CAAK,KAAA;AACpB,IAAA,IAAI,QAAA;AACJ,IAAA,IAAI;AACF,MAAA,QAAA,GAAW,MAAM,OAAO,QAAQ,CAAA;AAAA,IAClC,SAAS,MAAA,EAAQ;AACf,MAAA,IAAI,WAAA,GAAc,MAAA;AAClB,MAAA,KAAA,MAAW,EAAA,IAAM,YAAA,CAAa,KAAA,CAAM,GAAA,EAAK;AACvC,QAAA,IAAI,EAAA,EAAI;AACN,UAAA,WAAA,GAAc,MAAM,EAAA;AAAA,YAClB,MAAA;AAAA,YACA,MAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF;AAAA,MACF;AACA,MAAA,WAAA,GAAc,eAAe,EAAC;AAC9B,MAAA,IAAI,KAAK,YAAA,EAAc;AACrB,QAAA,MAAM,WAAA;AAAA,MACR;AACA,MAAA,OAAO,IAAA,CAAK,aAAA,KAAkB,MAAA,GAAS,MAAA,GAAS;AAAA,QAC9C,KAAA,EAAO,WAAA;AAAA,QACP,OAAA,EAAS,QAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,IACF;AACA,IAAA,KAAA,MAAW,EAAA,IAAM,YAAA,CAAa,QAAA,CAAS,GAAA,EAAK;AAC1C,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,QAAA,GAAW,MAAM,EAAA,CAAG,QAAA,EAAU,QAAA,EAAU,IAAI,CAAA;AAAA,MAC9C;AAAA,IACF;AACA,IAAA,MAAM,MAAA,GAAS;AAAA,MACb,OAAA,EAAS,QAAA;AAAA,MACT;AAAA,KACF;AACA,IAAA,IAAI,SAAS,EAAA,EAAI;AACf,MAAA,MAAM,OAAA,GAAA,CAAW,IAAA,CAAK,OAAA,KAAY,MAAA,GAAS,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAC,CAAA,GAAI,IAAA,CAAK,OAAA,KAAY,MAAA;AAC/G,MAAA,IAAI,QAAA,CAAS,WAAW,GAAA,IAAO,QAAA,CAAS,QAAQ,GAAA,CAAI,gBAAgB,MAAM,GAAA,EAAK;AAC7E,QAAA,IAAI,SAAA;AACJ,QAAA,QAAQ,OAAA;AAAS,UACf,KAAK,aAAA;AAAA,UACL,KAAK,MAAA;AAAA,UACL,KAAK,MAAA;AACH,YAAA,SAAA,GAAY,MAAM,QAAA,CAAS,OAAO,CAAA,EAAE;AACpC,YAAA;AAAA,UACF,KAAK,UAAA;AACH,YAAA,SAAA,GAAY,IAAI,QAAA,EAAS;AACzB,YAAA;AAAA,UACF,KAAK,QAAA;AACH,YAAA,SAAA,GAAY,QAAA,CAAS,IAAA;AACrB,YAAA;AAAA,UACF,KAAK,MAAA;AAAA,UACL;AACE,YAAA,SAAA,GAAY,EAAC;AACb,YAAA;AAAA;AAEJ,QAAA,OAAO,IAAA,CAAK,aAAA,KAAkB,MAAA,GAAS,SAAA,GAAY;AAAA,UACjD,IAAA,EAAM,SAAA;AAAA,UACN,GAAG;AAAA,SACL;AAAA,MACF;AACA,MAAA,IAAI,IAAA;AACJ,MAAA,QAAQ,OAAA;AAAS,QACf,KAAK,aAAA;AAAA,QACL,KAAK,MAAA;AAAA,QACL,KAAK,UAAA;AAAA,QACL,KAAK,MAAA;AAAA,QACL,KAAK,MAAA;AACH,UAAA,IAAA,GAAO,MAAM,QAAA,CAAS,OAAO,CAAA,EAAE;AAC/B,UAAA;AAAA,QACF,KAAK,QAAA;AACH,UAAA,OAAO,IAAA,CAAK,aAAA,KAAkB,MAAA,GAAS,QAAA,CAAS,IAAA,GAAO;AAAA,YACrD,MAAM,QAAA,CAAS,IAAA;AAAA,YACf,GAAG;AAAA,WACL;AAAA;AAEJ,MAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,QAAA,IAAI,KAAK,iBAAA,EAAmB;AAC1B,UAAA,MAAM,IAAA,CAAK,kBAAkB,IAAI,CAAA;AAAA,QACnC;AACA,QAAA,IAAI,KAAK,mBAAA,EAAqB;AAC5B,UAAA,IAAA,GAAO,MAAM,IAAA,CAAK,mBAAA,CAAoB,IAAI,CAAA;AAAA,QAC5C;AAAA,MACF;AACA,MAAA,OAAO,IAAA,CAAK,aAAA,KAAkB,MAAA,GAAS,IAAA,GAAO;AAAA,QAC5C,IAAA;AAAA,QACA,GAAG;AAAA,OACL;AAAA,IACF;AACA,IAAA,MAAM,SAAA,GAAY,MAAM,QAAA,CAAS,IAAA,EAAK;AACtC,IAAA,IAAI,SAAA;AACJ,IAAA,IAAI;AACF,MAAA,SAAA,GAAY,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,IAClC,CAAA,CAAA,MAAQ;AAAA,IACR;AACA,IAAA,MAAM,QAAQ,SAAA,IAAa,SAAA;AAC3B,IAAA,IAAI,UAAA,GAAa,KAAA;AACjB,IAAA,KAAA,MAAW,EAAA,IAAM,YAAA,CAAa,KAAA,CAAM,GAAA,EAAK;AACvC,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,UAAA,GAAa,MAAM,EAAA,CAAG,KAAA,EAAO,QAAA,EAAU,UAAU,IAAI,CAAA;AAAA,MACvD;AAAA,IACF;AACA,IAAA,UAAA,GAAa,cAAc,EAAC;AAC5B,IAAA,IAAI,KAAK,YAAA,EAAc;AACrB,MAAA,MAAM,UAAA;AAAA,IACR;AACA,IAAA,OAAO,IAAA,CAAK,aAAA,KAAkB,MAAA,GAAS,MAAA,GAAS;AAAA,MAC9C,KAAA,EAAO,UAAA;AAAA,MACP,GAAG;AAAA,KACL;AAAA,EACF,CAAA;AACA,EAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAW,CAAC,OAAA,KAAY,QAAQ,EAAE,GAAG,OAAA,EAAS,MAAA,EAAQ,CAAA;AAC5E,EAAA,MAAM,SAAA,GAAY,CAAC,MAAA,KAAW,OAAO,OAAA,KAAY;AAC/C,IAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAI,GAAI,MAAM,cAAc,OAAO,CAAA;AACjD,IAAA,OAAO,eAAA,CAAgB;AAAA,MACrB,GAAG,IAAA;AAAA,MACH,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,MAAA;AAAA,MACA,SAAA,EAAW,OAAO,IAAA,EAAM,IAAA,KAAS;AAC/B,QAAA,IAAI,QAAA,GAAW,IAAI,OAAA,CAAQ,IAAA,EAAM,IAAI,CAAA;AACrC,QAAA,KAAA,MAAW,EAAA,IAAM,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK;AACzC,UAAA,IAAI,EAAA,EAAI;AACN,YAAA,QAAA,GAAW,MAAM,EAAA,CAAG,QAAA,EAAU,IAAI,CAAA;AAAA,UACpC;AAAA,QACF;AACA,QAAA,OAAO,QAAA;AAAA,MACT,CAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AACA,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,OAAA,EAAS,aAAa,SAAS,CAAA;AAAA,IAC/B,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAAA,IAC7B,GAAA,EAAK,aAAa,KAAK,CAAA;AAAA,IACvB,SAAA;AAAA,IACA,IAAA,EAAM,aAAa,MAAM,CAAA;AAAA,IACzB,YAAA;AAAA,IACA,OAAA,EAAS,aAAa,SAAS,CAAA;AAAA,IAC/B,KAAA,EAAO,aAAa,OAAO,CAAA;AAAA,IAC3B,IAAA,EAAM,aAAa,MAAM,CAAA;AAAA,IACzB,GAAA,EAAK,aAAa,KAAK,CAAA;AAAA,IACvB,OAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA,EAAK;AAAA,MACH,OAAA,EAAS,UAAU,SAAS,CAAA;AAAA,MAC5B,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,MAC1B,GAAA,EAAK,UAAU,KAAK,CAAA;AAAA,MACpB,IAAA,EAAM,UAAU,MAAM,CAAA;AAAA,MACtB,OAAA,EAAS,UAAU,SAAS,CAAA;AAAA,MAC5B,KAAA,EAAO,UAAU,OAAO,CAAA;AAAA,MACxB,IAAA,EAAM,UAAU,MAAM,CAAA;AAAA,MACtB,GAAA,EAAK,UAAU,KAAK,CAAA;AAAA,MACpB,KAAA,EAAO,UAAU,OAAO;AAAA,KAC1B;AAAA,IACA,KAAA,EAAO,aAAa,OAAO;AAAA,GAC7B;AACF,CAAA;AAGA,IAAI,MAAA,GAAS,aAAa,YAAA,CAAa;AAAA,EACrC,OAAA,EAAS;AACX,CAAC,CAAC,CAAA;AA+PF,IAAI,wCAAA,GAA2C,CAAC,OAAA,KAAY;AAC1D,EAAA,OAAA,CAAQ,OAAA,CAAQ,MAAA,IAAU,MAAA,EAAQ,IAAA,CAAK;AAAA,IACrC,QAAA,EAAU;AAAA,MACR;AAAA,QACE,MAAA,EAAQ,QAAA;AAAA,QACR,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,GAAA,EAAK,6CAAA;AAAA,IACL,GAAG,OAAA;AAAA,IACH,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAG,OAAA,CAAQ;AAAA;AACb,GACD,CAAA;AACH,CAAA;;ACngCA,MAAM,SAAA,GAAY,MAChB,OAAA,CAAQ,GAAA,CAAI,cAAA,IAAkB,uBAAA;AAEhC,MAAM,UAAA,GAEA,YAAA,CACoC;AAE1C,MAAM,oBAAA,GAAuB,CAAC,KAAA,EAAe,SAAA,KAA4B;AACvE,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,EAAK,EAAG;AACjB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,SAAS,CAAA,CAAE,CAAA;AAAA,EACxD;AACF,CAAA;AAEA,MAAM,WAAW,CAAC,KAAA,KAChB,OAAO,KAAA,KAAU,YAAY,KAAA,KAAU,IAAA;AAEzC,MAAM,WAAA,GAAc,CAAC,KAAA,KAAqC;AACxD,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,CAAA,EAAG;AACpB,IAAA,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAAA,EAC1E;AAEA,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AACnB,EAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,EAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,EAAA,MAAM,EAAE,UAAS,GAAI,KAAA;AACrB,EAAA,MAAM,YAAY,KAAA,CAAM,KAAA;AAExB,EAAA,IACE,OAAO,MAAA,KAAW,QAAA,IAClB,OAAO,IAAA,KAAS,QAAA,IAChB,OAAO,IAAA,KAAS,QAAA,IAChB,OAAO,SAAA,KAAc,QAAA,EACrB;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,GAAI,OAAO,KAAA,CAAM,OAAA,KAAY,QAAA,GAAW,EAAE,OAAA,EAAS,KAAA,CAAM,OAAA,EAAQ,GAAI,EAAC;AAAA,IACtE,GAAI,OAAO,KAAA,CAAM,QAAA,KAAa,SAAA,GAC1B,EAAE,QAAA,EAAU,KAAA,CAAM,QAAA,EAAS,GAC3B,EAAC;AAAA,IACL,GAAI,OAAO,KAAA,CAAM,YAAA,KAAiB,QAAA,GAC9B,EAAE,YAAA,EAAc,KAAA,CAAM,YAAA,EAAa,GACnC,EAAC;AAAA,IACL,GAAI,OAAO,KAAA,CAAM,MAAA,KAAW,SAAA,GAAY,EAAE,MAAA,EAAQ,KAAA,CAAM,MAAA,EAAO,GAAI,EAAC;AAAA,IACpE,GAAI,QAAA,KAAa,KAAA,IAAS,QAAA,KAAa,MAAA,IAAU,aAAa,QAAA,GAC1D,EAAE,QAAA,EAAS,GACX,EAAC;AAAA,IACL,MAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AACF,CAAA;AAEA,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAAsC;AACpE,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,CAAA,EAAG;AACpB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,EAAA,MAAM,cAAc,KAAA,CAAM,KAAA;AAE1B,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,gBAAgB,QAAA,EAAU;AAC/D,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,WAAA,EAAY;AACpC,CAAA;AAEA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAkC;AACrD,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,CAAA,EAAG;AACpB,IAAA,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAAA,EAC1E;AAEA,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AACnB,EAAA,MAAM,kBAAkB,KAAA,CAAM,YAAA;AAE9B,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACzE;AAEA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,eAAe,CAAA,EAAG;AACnC,IAAA,OAAO,EAAE,YAAA,EAAc,EAAC,EAAG,MAAA,EAAO;AAAA,EACpC;AAEA,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,eAAA,CAAgB,GAAA,CAAI,sBAAsB,CAAA;AAAA,IACxD;AAAA,GACF;AACF,CAAA;AAEA,MAAM,iBAAA,GAAoB,CAAC,KAAA,MAGA;AAAA,EACzB,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA,GAAI,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA,GAAI,EAAC;AAAA,EAC1E,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA,GAAI,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA,GAAI;AAC3E,CAAA,CAAA;AAEA,MAAM,0BAAA,GAA6B,OACjC,OAAA,EACA,YAAA,KACkB;AAClB,EAAA,IAAI,YAAA,CAAa,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACnC,IAAA,MAAM,OAAA,CAAQ,UAAA,CAAW,YAAA,CAAa,OAAO,CAAA;AAAA,EAC/C;AAEA,EAAA,KAAA,MAAW,WAAA,IAAe,aAAa,OAAA,EAAS;AAC9C,IAAA,IAAI,WAAA,CAAY,YAAA,CAAa,MAAA,KAAW,CAAA,EAAG;AACzC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,OAAA,EAAQ;AACnC,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,IAAA,CAAK,WAAA,CAAY,QAAQ,EAAE,SAAA,EAAW,oBAAoB,CAAA;AACrE,MAAA,MAAM,IAAA,CAAK,QAAA,CAAS,CAAC,OAAA,KAAiC;AACpD,QAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,UAAA,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,KAAA,CAAM,IAAA,EAAM,MAAM,KAAK,CAAA;AAAA,QACrD;AAAA,MACF,CAAA,EAAG,YAAY,YAAY,CAAA;AAAA,IAC7B,CAAA,SAAE;AACA,MAAA,MAAM,KAAK,KAAA,EAAM;AAAA,IACnB;AAAA,EACF;AACF,CAAA;AAmCA,eAAsB,eACpB,OAAA,EACe;AACf,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAUA,4BAAA,EAAc;AAE/C,EAAA,oBAAA,CAAqB,OAAA,CAAQ,OAAO,OAAO,CAAA;AAC3C,EAAA,oBAAA,CAAqB,OAAA,CAAQ,UAAU,UAAU,CAAA;AACjD,EAAA,oBAAA,CAAqB,OAAA,CAAQ,WAAW,WAAW,CAAA;AAEnD,EAAA,MAAM,SAAS,YAAA,CAAa;AAAA,IAC1B,SAAS,SAAA,EAAU;AAAA,IACnB,OAAA,EAAS;AAAA,MACP,aAAA,EAAe,UAAU,MAAM,CAAA,CAAA;AAAA,MAC/B,eAAA,EAAiB,wBAAA;AAAA,MACjB,kBAAA,EAAoB,UAAA;AAAA,MACpB,sBAAA,EAAwB;AAAA;AAC1B,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,wCAAA,CAAyC;AAAA,IAC9D,IAAA,EAAM;AAAA,MACJ,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,cAAc,OAAA,CAAQ,YAAA;AAAA,MACtB,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,UAAU,OAAA,CAAQ;AAAA,KACpB;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,MAAM,eACJ,OAAA,IAAW,QAAA,CAAS,KAAA,GAAQ,QAAA,CAAS,MAAM,KAAA,GAAQ,eAAA;AACrD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oCAAA,EAAuC,YAAY,CAAA,CAAE,CAAA;AAAA,EACvE;AAEA,EAAA,MAAM,YAAA,GAAe,iBAAA,CAAkB,QAAA,CAAS,IAAA,CAAK,YAAY,CAAA;AACjE,EAAA,MAAM,0BAAA,CAA2B,OAAA,CAAQ,OAAA,EAAS,YAAY,CAAA;AAChE;;AC/MO,SAAS,WAAW,aAAA,EAA+B;AACxD,EAAA,OAAOC,SAAA,CAAQC,iBAAA,CAAc,aAAa,CAAC,CAAA;AAC7C;AAYO,SAAS,YAAY,aAAA,EAA+B;AACzD,EAAA,OAAOA,kBAAc,aAAa,CAAA;AACpC;AAEO,MAAM,IAAA,GAA8BC,YAAe,MAAA,CAEvD;AAAA,EACD,KAAA,EAAO,OACL,EAAE,OAAA,IACF,GAAA,KACG;AAEH,IAAA,MAAM,KAAA,GAAQ,QAAQ,QAAA,EAAS;AAC/B,IAAA,MAAM,IAAI,KAAK,CAAA;AAAA,EACjB,CAAA;AAAA,EACA,OAAA,EAAS,OAAO,EAAE,OAAA,IAAW,GAAA,KAAQ;AAEnC,IAAA,MAAM,GAAA,CAAIC,6BAAA,CAAe,OAAc,CAAQ,CAAA;AAAA,EACjD,CAAA;AAAA,EACA,OAAA,EAAS,OAAO,EAAE,OAAA,IAAW,GAAA,KAAQ;AAEnC,IAAA,MAAM,gBAAA,GAAmBC,qCAAsB,OAAc,CAAA;AAC7D,IAAA,IAAI,EAAE,oBAAoB,gBAAA,CAAA,EAAmB;AAC3C,MAAA,gBAAA,CAAiB,cAAA,GAAiB,CAChC,OAAA,KACG,cAAA,CAAe,EAAE,OAAA,EAAS,gBAAA,EAAkB,GAAG,OAAA,EAAS,CAAA;AAAA,IAC/D;AAEA,IAAA,MAAM,IAAI,gBAAgB,CAAA;AAAA,EAC5B,CAAA;AAAA,EACA,IAAA,EAAM,OAAO,EAAE,IAAA,IAAQ,GAAA,KAAQ;AAE7B,IAAA,MAAM,GAAA,CAAIC,0BAAA,CAAY,IAAW,CAAQ,CAAA;AAAA,EAC3C;AACF,CAAC;AAEM,MAAM,MAAA,GAASC,aAAA,CAAiB,MAAA,CAAOC,uCAAwB;AA+B/D,MAAM,YAAA,GAAeC;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../node_modules/.pnpm/@stablyai-internal+api-client@0.1.6/node_modules/@stablyai-internal/api-client/dist/index.js","../src/auth-with-google.ts","../src/index.ts"],"sourcesContent":["export { STABLY_ORG_ID_HEADER } from './chunk-HMKCSECL.js';\n\n// src/generated/core/bodySerializer.gen.ts\nvar jsonBodySerializer = {\n bodySerializer: (body) => JSON.stringify(\n body,\n (_key, value) => typeof value === \"bigint\" ? value.toString() : value\n )\n};\n\n// src/generated/core/serverSentEvents.gen.ts\nvar createSseClient = ({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}) => {\n let lastEventId;\n const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));\n const createStream = async function* () {\n let retryDelay = sseDefaultRetryDelay ?? 3e3;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n while (true) {\n if (signal.aborted) break;\n attempt++;\n const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);\n if (lastEventId !== void 0) {\n headers.set(\"Last-Event-ID\", lastEventId);\n }\n try {\n const requestInit = {\n redirect: \"follow\",\n ...options,\n body: options.serializedBody,\n headers,\n signal\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n if (!response.ok)\n throw new Error(\n `SSE failed: ${response.status} ${response.statusText}`\n );\n if (!response.body) throw new Error(\"No body in SSE response\");\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n let buffer = \"\";\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n }\n };\n signal.addEventListener(\"abort\", abortHandler);\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n const chunks = buffer.split(\"\\n\\n\");\n buffer = chunks.pop() ?? \"\";\n for (const chunk of chunks) {\n const lines = chunk.split(\"\\n\");\n const dataLines = [];\n let eventName;\n for (const line of lines) {\n if (line.startsWith(\"data:\")) {\n dataLines.push(line.replace(/^data:\\s*/, \"\"));\n } else if (line.startsWith(\"event:\")) {\n eventName = line.replace(/^event:\\s*/, \"\");\n } else if (line.startsWith(\"id:\")) {\n lastEventId = line.replace(/^id:\\s*/, \"\");\n } else if (line.startsWith(\"retry:\")) {\n const parsed = Number.parseInt(\n line.replace(/^retry:\\s*/, \"\"),\n 10\n );\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n let data;\n let parsedJson = false;\n if (dataLines.length) {\n const rawData = dataLines.join(\"\\n\");\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay\n });\n if (dataLines.length) {\n yield data;\n }\n }\n }\n } finally {\n signal.removeEventListener(\"abort\", abortHandler);\n reader.releaseLock();\n }\n break;\n } catch (error) {\n onSseError?.(error);\n if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {\n break;\n }\n const backoff = Math.min(\n retryDelay * 2 ** (attempt - 1),\n sseMaxRetryDelay ?? 3e4\n );\n await sleep(backoff);\n }\n }\n };\n const stream = createStream();\n return { stream };\n};\n\n// src/generated/core/pathSerializer.gen.ts\nvar separatorArrayExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nvar separatorArrayNoExplode = (style) => {\n switch (style) {\n case \"form\":\n return \",\";\n case \"pipeDelimited\":\n return \"|\";\n case \"spaceDelimited\":\n return \"%20\";\n default:\n return \",\";\n }\n};\nvar separatorObjectExplode = (style) => {\n switch (style) {\n case \"label\":\n return \".\";\n case \"matrix\":\n return \";\";\n case \"simple\":\n return \",\";\n default:\n return \"&\";\n }\n};\nvar serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value\n}) => {\n if (!explode) {\n const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));\n switch (style) {\n case \"label\":\n return `.${joinedValues2}`;\n case \"matrix\":\n return `;${name}=${joinedValues2}`;\n case \"simple\":\n return joinedValues2;\n default:\n return `${name}=${joinedValues2}`;\n }\n }\n const separator = separatorArrayExplode(style);\n const joinedValues = value.map((v) => {\n if (style === \"label\" || style === \"simple\") {\n return allowReserved ? v : encodeURIComponent(v);\n }\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v\n });\n }).join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\nvar serializePrimitiveParam = ({\n allowReserved,\n name,\n value\n}) => {\n if (value === void 0 || value === null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n throw new Error(\n \"Deeply-nested arrays/objects aren\\u2019t supported. Provide your own `querySerializer()` to handle these.\"\n );\n }\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\nvar serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n if (style !== \"deepObject\" && !explode) {\n let values = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? v : encodeURIComponent(v)\n ];\n });\n const joinedValues2 = values.join(\",\");\n switch (style) {\n case \"form\":\n return `${name}=${joinedValues2}`;\n case \"label\":\n return `.${joinedValues2}`;\n case \"matrix\":\n return `;${name}=${joinedValues2}`;\n default:\n return joinedValues2;\n }\n }\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value).map(\n ([key, v]) => serializePrimitiveParam({\n allowReserved,\n name: style === \"deepObject\" ? `${name}[${key}]` : key,\n value: v\n })\n ).join(separator);\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues;\n};\n\n// src/generated/core/utils.gen.ts\nvar PATH_PARAM_RE = /\\{[^{}]+\\}/g;\nvar defaultPathSerializer = ({ path, url: _url }) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style = \"simple\";\n if (name.endsWith(\"*\")) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n if (name.startsWith(\".\")) {\n name = name.substring(1);\n style = \"label\";\n } else if (name.startsWith(\";\")) {\n name = name.substring(1);\n style = \"matrix\";\n }\n const value = path[name];\n if (value === void 0 || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value })\n );\n continue;\n }\n if (typeof value === \"object\") {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value,\n valueOnly: true\n })\n );\n continue;\n }\n if (style === \"matrix\") {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value\n })}`\n );\n continue;\n }\n const replaceValue = encodeURIComponent(\n style === \"label\" ? `.${value}` : value\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\nvar getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url\n}) => {\n const pathUrl = _url.startsWith(\"/\") ? _url : `/${_url}`;\n let url = (baseUrl ?? \"\") + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : \"\";\n if (search.startsWith(\"?\")) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\nfunction getValidRequestBody(options) {\n const hasBody = options.body !== void 0;\n const isSerializedBody = hasBody && options.bodySerializer;\n if (isSerializedBody) {\n if (\"serializedBody\" in options) {\n const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== \"\";\n return hasSerializedBody ? options.serializedBody : null;\n }\n return options.body !== \"\" ? options.body : null;\n }\n if (hasBody) {\n return options.body;\n }\n return void 0;\n}\n\n// src/generated/core/auth.gen.ts\nvar getAuthToken = async (auth, callback) => {\n const token = typeof callback === \"function\" ? await callback(auth) : callback;\n if (!token) {\n return;\n }\n if (auth.scheme === \"bearer\") {\n return `Bearer ${token}`;\n }\n if (auth.scheme === \"basic\") {\n return `Basic ${btoa(token)}`;\n }\n return token;\n};\n\n// src/generated/client/utils.gen.ts\nvar createQuerySerializer = ({\n parameters = {},\n ...args\n} = {}) => {\n const querySerializer = (queryParams) => {\n const search = [];\n if (queryParams && typeof queryParams === \"object\") {\n for (const name in queryParams) {\n const value = queryParams[name];\n if (value === void 0 || value === null) {\n continue;\n }\n const options = parameters[name] || args;\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: \"form\",\n value,\n ...options.array\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === \"object\") {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: \"deepObject\",\n value,\n ...options.object\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join(\"&\");\n };\n return querySerializer;\n};\nvar getParseAs = (contentType) => {\n if (!contentType) {\n return \"stream\";\n }\n const cleanContent = contentType.split(\";\")[0]?.trim();\n if (!cleanContent) {\n return;\n }\n if (cleanContent.startsWith(\"application/json\") || cleanContent.endsWith(\"+json\")) {\n return \"json\";\n }\n if (cleanContent === \"multipart/form-data\") {\n return \"formData\";\n }\n if ([\"application/\", \"audio/\", \"image/\", \"video/\"].some(\n (type) => cleanContent.startsWith(type)\n )) {\n return \"blob\";\n }\n if (cleanContent.startsWith(\"text/\")) {\n return \"text\";\n }\n return;\n};\nvar checkForExistence = (options, name) => {\n if (!name) {\n return false;\n }\n if (options.headers.has(name) || options.query?.[name] || options.headers.get(\"Cookie\")?.includes(`${name}=`)) {\n return true;\n }\n return false;\n};\nvar setAuthParams = async ({\n security,\n ...options\n}) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n const token = await getAuthToken(auth, options.auth);\n if (!token) {\n continue;\n }\n const name = auth.name ?? \"Authorization\";\n switch (auth.in) {\n case \"query\":\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case \"cookie\":\n options.headers.append(\"Cookie\", `${name}=${token}`);\n break;\n case \"header\":\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\nvar buildUrl = (options) => getUrl({\n baseUrl: options.baseUrl,\n path: options.path,\n query: options.query,\n querySerializer: typeof options.querySerializer === \"function\" ? options.querySerializer : createQuerySerializer(options.querySerializer),\n url: options.url\n});\nvar mergeConfigs = (a, b) => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith(\"/\")) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\nvar headersEntries = (headers) => {\n const entries = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\nvar mergeHeaders = (...headers) => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v);\n }\n } else if (value !== void 0) {\n mergedHeaders.set(\n key,\n typeof value === \"object\" ? JSON.stringify(value) : value\n );\n }\n }\n }\n return mergedHeaders;\n};\nvar Interceptors = class {\n fns = [];\n clear() {\n this.fns = [];\n }\n eject(id) {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n exists(id) {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n getInterceptorIndex(id) {\n if (typeof id === \"number\") {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n update(id, fn) {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n use(fn) {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n};\nvar createInterceptors = () => ({\n error: new Interceptors(),\n request: new Interceptors(),\n response: new Interceptors()\n});\nvar defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: \"form\"\n },\n object: {\n explode: true,\n style: \"deepObject\"\n }\n});\nvar defaultHeaders = {\n \"Content-Type\": \"application/json\"\n};\nvar createConfig = (override = {}) => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: \"auto\",\n querySerializer: defaultQuerySerializer,\n ...override\n});\n\n// src/generated/client/client.gen.ts\nvar createClient = (config = {}) => {\n let _config = mergeConfigs(createConfig(), config);\n const getConfig = () => ({ ..._config });\n const setConfig = (config2) => {\n _config = mergeConfigs(_config, config2);\n return getConfig();\n };\n const interceptors = createInterceptors();\n const beforeRequest = async (options) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: void 0\n };\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security\n });\n }\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n if (opts.body !== void 0 && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body);\n }\n if (opts.body === void 0 || opts.serializedBody === \"\") {\n opts.headers.delete(\"Content-Type\");\n }\n const url = buildUrl(opts);\n return { opts, url };\n };\n const request = async (options) => {\n const { opts, url } = await beforeRequest(options);\n const requestInit = {\n redirect: \"follow\",\n ...opts,\n body: getValidRequestBody(opts)\n };\n let request2 = new Request(url, requestInit);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request2 = await fn(request2, opts);\n }\n }\n const _fetch = opts.fetch;\n let response;\n try {\n response = await _fetch(request2);\n } catch (error2) {\n let finalError2 = error2;\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError2 = await fn(\n error2,\n void 0,\n request2,\n opts\n );\n }\n }\n finalError2 = finalError2 || {};\n if (opts.throwOnError) {\n throw finalError2;\n }\n return opts.responseStyle === \"data\" ? void 0 : {\n error: finalError2,\n request: request2,\n response: void 0\n };\n }\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request2, opts);\n }\n }\n const result = {\n request: request2,\n response\n };\n if (response.ok) {\n const parseAs = (opts.parseAs === \"auto\" ? getParseAs(response.headers.get(\"Content-Type\")) : opts.parseAs) ?? \"json\";\n if (response.status === 204 || response.headers.get(\"Content-Length\") === \"0\") {\n let emptyData;\n switch (parseAs) {\n case \"arrayBuffer\":\n case \"blob\":\n case \"text\":\n emptyData = await response[parseAs]();\n break;\n case \"formData\":\n emptyData = new FormData();\n break;\n case \"stream\":\n emptyData = response.body;\n break;\n case \"json\":\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === \"data\" ? emptyData : {\n data: emptyData,\n ...result\n };\n }\n let data;\n switch (parseAs) {\n case \"arrayBuffer\":\n case \"blob\":\n case \"formData\":\n case \"json\":\n case \"text\":\n data = await response[parseAs]();\n break;\n case \"stream\":\n return opts.responseStyle === \"data\" ? response.body : {\n data: response.body,\n ...result\n };\n }\n if (parseAs === \"json\") {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n return opts.responseStyle === \"data\" ? data : {\n data,\n ...result\n };\n }\n const textError = await response.text();\n let jsonError;\n try {\n jsonError = JSON.parse(textError);\n } catch {\n }\n const error = jsonError ?? textError;\n let finalError = error;\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(error, response, request2, opts);\n }\n }\n finalError = finalError || {};\n if (opts.throwOnError) {\n throw finalError;\n }\n return opts.responseStyle === \"data\" ? void 0 : {\n error: finalError,\n ...result\n };\n };\n const makeMethodFn = (method) => (options) => request({ ...options, method });\n const makeSseFn = (method) => async (options) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body,\n headers: opts.headers,\n method,\n onRequest: async (url2, init) => {\n let request2 = new Request(url2, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request2 = await fn(request2, opts);\n }\n }\n return request2;\n },\n url\n });\n };\n return {\n buildUrl,\n connect: makeMethodFn(\"CONNECT\"),\n delete: makeMethodFn(\"DELETE\"),\n get: makeMethodFn(\"GET\"),\n getConfig,\n head: makeMethodFn(\"HEAD\"),\n interceptors,\n options: makeMethodFn(\"OPTIONS\"),\n patch: makeMethodFn(\"PATCH\"),\n post: makeMethodFn(\"POST\"),\n put: makeMethodFn(\"PUT\"),\n request,\n setConfig,\n sse: {\n connect: makeSseFn(\"CONNECT\"),\n delete: makeSseFn(\"DELETE\"),\n get: makeSseFn(\"GET\"),\n head: makeSseFn(\"HEAD\"),\n options: makeSseFn(\"OPTIONS\"),\n patch: makeSseFn(\"PATCH\"),\n post: makeSseFn(\"POST\"),\n put: makeSseFn(\"PUT\"),\n trace: makeSseFn(\"TRACE\")\n },\n trace: makeMethodFn(\"TRACE\")\n };\n};\n\n// src/generated/client.gen.ts\nvar client = createClient(createConfig({\n baseUrl: \"https://api.stably.ai\"\n}));\n\n// src/generated/sdk.gen.ts\nvar postV1TestSuiteByTestSuiteIdRun = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuite/{testSuiteId}/run\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getV1TestSuiteRunByTestSuiteRunIdStatus = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/{testSuiteRunId}/status\",\n ...options\n });\n};\nvar getV1TestSuiteRunByTestSuiteRunIdResult = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/{testSuiteRunId}/result\",\n ...options\n });\n};\nvar postV1TestSuiteRunCancel = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/testSuiteRun/cancel\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postV1ProjectsByProjectIdRuns = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getV1ProjectsByProjectIdRunsByRunId = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs/{runId}\",\n ...options\n });\n};\nvar postV1ProjectsByProjectIdRunsCancel = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/runs/cancel\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postV1ProxyApiKey = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/proxy/api-key\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1Extract = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/extract\",\n ...options\n });\n};\nvar postInternalV2Extract = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/extract\",\n ...options\n });\n};\nvar postInternalV1Assert = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/assert\",\n ...options\n });\n};\nvar postInternalV2Assert = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/assert\",\n ...options\n });\n};\nvar postInternalV2Agent = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v2/agent\",\n ...options\n });\n};\nvar postInternalV3Agent = (options) => {\n return (options?.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v3/agent\",\n ...options\n });\n};\nvar postInternalV3GetAriaRefs = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v3/get-aria-refs\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CacheDelete = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cache/delete\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar patchInternalV1PlaywrightRunsByRunIdStatus = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/playwright/runs/{runId}/status\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1BillingBrowserMinutes = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/billing/browser-minutes\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1TestAccountGoogleAuthState = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/test-account/google-auth-state\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CliMe = (options) => {\n return (options?.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/me\",\n ...options\n });\n};\nvar getInternalV1CliOrgsByOrgIdProjects = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/orgs/{orgId}/projects\",\n ...options\n });\n};\nvar postInternalV1CliExchangeToken = (options) => {\n return (options.client ?? client).post({\n url: \"/internal/v1/cli/exchange-token\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliProjectsByProjectIdApiKey = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/projects/{projectId}/api-key\",\n ...options\n });\n};\nvar postInternalV1CliPromptsSystem = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/prompts/system\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliPromptsSubagents = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/prompts/subagents\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CliRunsByRunIdAutohealContext = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-context\",\n ...options\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealReport = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-report\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealStatus = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-status\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealDiffUploadUrl = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-diff/upload-url\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CliRunsByRunIdAutohealTraceUploadUrl = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/cli/runs/{runId}/autoheal-trace/upload-url\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1GitLfsByOwnerByRepoObjectsBatch = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/batch\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1GitLfsByOwnerByRepoObjectsByOid = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}\",\n ...options\n });\n};\nvar postInternalV1GitLfsByOwnerByRepoObjectsByOidUpload = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}/upload\",\n ...options\n });\n};\nvar putInternalV1GitLfsByOwnerByRepoObjectsByOidUpload = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/git-lfs/{owner}/{repo}/objects/{oid}/upload\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryDownloadUrls = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/download-urls\",\n ...options\n });\n};\nvar postInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryUploadUrls = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/upload-urls\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdRepoCacheDownloadUrl = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/repo-cache/download-url\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentProjectsByProjectIdRepoCacheUploadUrl = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/repo-cache/upload-url\",\n ...options\n });\n};\nvar postInternalV1CodegenAgentProjectsByProjectIdGithubToken = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/github-token\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar postInternalV1CodegenAgentBrowserKernelsh = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar deleteInternalV1CodegenAgentBrowserKernelshBySessionId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh/{sessionId}\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentBrowserKernelshBySessionIdHealth = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/browser/kernelsh/{sessionId}/health\",\n ...options\n });\n};\nvar getInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/initial-messages\",\n ...options\n });\n};\nvar patchInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/initial-messages\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1CodegenAgentSessionsByAgentSessionIdV1MigrationBundle = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/v1-migration-bundle\",\n ...options\n });\n};\nvar patchInternalV1CodegenAgentSessionsByAgentSessionIdClaudeSessionId = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/sessions/{agentSessionId}/claude-session-id\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar deleteInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryBySessionId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/claude-history/{sessionId}\",\n ...options\n });\n};\nvar deleteInternalV1CodegenAgentTasksByTaskIdSessions = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/tasks/{taskId}/sessions\",\n ...options\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdTestSnapshot = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/test-snapshot\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar patchInternalV1CodegenAgentProjectsByProjectIdDeploymentAttempt = (options) => {\n return (options.client ?? client).patch({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/deployment/attempt\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdDeployment = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/deployment\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar putInternalV1CodegenAgentProjectsByProjectIdSyncSchedulers = (options) => {\n return (options.client ?? client).put({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/codegen-agent/projects/{projectId}/sync-schedulers\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getInternalV1ProjectsByProjectIdProxyConfig = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/internal/v1/projects/{projectId}/proxy-config\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailAddress = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/address\",\n ...options\n });\n};\nvar deleteV1ProjectsByProjectIdEmailInboxesByAddressMessages = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailInboxesByAddressMessages = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages\",\n ...options\n });\n};\nvar deleteV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId = (options) => {\n return (options.client ?? client).delete({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}\",\n ...options\n });\n};\nvar getV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId = (options) => {\n return (options.client ?? client).get({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}\",\n ...options\n });\n};\nvar postV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageIdExtract = (options) => {\n return (options.client ?? client).post({\n security: [\n {\n scheme: \"bearer\",\n type: \"http\"\n }\n ],\n url: \"/v1/projects/{projectId}/email/inboxes/{address}/messages/{messageId}/extract\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options.headers\n }\n });\n};\nvar getOpenapiJson = (options) => {\n return (options?.client ?? client).get({\n url: \"/openapi.json\",\n ...options\n });\n};\n\nexport { client, createClient, createConfig, deleteInternalV1CodegenAgentBrowserKernelshBySessionId, deleteInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryBySessionId, deleteInternalV1CodegenAgentTasksByTaskIdSessions, deleteV1ProjectsByProjectIdEmailInboxesByAddressMessages, deleteV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId, getInternalV1CliMe, getInternalV1CliOrgsByOrgIdProjects, getInternalV1CliRunsByRunIdAutohealContext, getInternalV1CodegenAgentBrowserKernelshBySessionIdHealth, getInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryDownloadUrls, getInternalV1CodegenAgentProjectsByProjectIdRepoCacheDownloadUrl, getInternalV1CodegenAgentProjectsByProjectIdRepoCacheUploadUrl, getInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages, getInternalV1CodegenAgentSessionsByAgentSessionIdV1MigrationBundle, getInternalV1GitLfsByOwnerByRepoObjectsByOid, getInternalV1ProjectsByProjectIdProxyConfig, getOpenapiJson, getV1ProjectsByProjectIdEmailAddress, getV1ProjectsByProjectIdEmailInboxesByAddressMessages, getV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageId, getV1ProjectsByProjectIdRunsByRunId, getV1TestSuiteRunByTestSuiteRunIdResult, getV1TestSuiteRunByTestSuiteRunIdStatus, patchInternalV1CodegenAgentProjectsByProjectIdDeploymentAttempt, patchInternalV1CodegenAgentSessionsByAgentSessionIdClaudeSessionId, patchInternalV1CodegenAgentSessionsByAgentSessionIdInitialMessages, patchInternalV1PlaywrightRunsByRunIdStatus, postInternalV1Assert, postInternalV1BillingBrowserMinutes, postInternalV1CacheDelete, postInternalV1CliExchangeToken, postInternalV1CliProjectsByProjectIdApiKey, postInternalV1CliPromptsSubagents, postInternalV1CliPromptsSystem, postInternalV1CliRunsByRunIdAutohealDiffUploadUrl, postInternalV1CliRunsByRunIdAutohealReport, postInternalV1CliRunsByRunIdAutohealStatus, postInternalV1CliRunsByRunIdAutohealTraceUploadUrl, postInternalV1CodegenAgentBrowserKernelsh, postInternalV1CodegenAgentProjectsByProjectIdClaudeHistoryUploadUrls, postInternalV1CodegenAgentProjectsByProjectIdGithubToken, postInternalV1Extract, postInternalV1GitLfsByOwnerByRepoObjectsBatch, postInternalV1GitLfsByOwnerByRepoObjectsByOidUpload, postInternalV1TestAccountGoogleAuthState, postInternalV2Agent, postInternalV2Assert, postInternalV2Extract, postInternalV3Agent, postInternalV3GetAriaRefs, postV1ProjectsByProjectIdEmailInboxesByAddressMessagesByMessageIdExtract, postV1ProjectsByProjectIdRuns, postV1ProjectsByProjectIdRunsCancel, postV1ProxyApiKey, postV1TestSuiteByTestSuiteIdRun, postV1TestSuiteRunCancel, putInternalV1CodegenAgentProjectsByProjectIdDeployment, putInternalV1CodegenAgentProjectsByProjectIdSyncSchedulers, putInternalV1CodegenAgentProjectsByProjectIdTestSnapshot, putInternalV1GitLfsByOwnerByRepoObjectsByOidUpload };\n//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map","import type { BrowserContext } from \"@playwright/test\";\n\nimport {\n createClient,\n postInternalV1TestAccountGoogleAuthState,\n} from \"@stablyai-internal/api-client\";\nimport { requireApiKey } from \"@stablyai/playwright-base\";\n\ndeclare const __PACKAGE_VERSION__: string;\n\ntype PlaywrightCookie = Parameters<BrowserContext[\"addCookies\"]>[0][number];\n\ntype LocalStorageEntry = {\n name: string;\n value: string;\n};\n\ntype StorageOrigin = {\n localStorage: LocalStorageEntry[];\n origin: string;\n};\n\n/**\n * Playwright-compatible storage state.\n */\nexport type GoogleStorageState = {\n cookies: PlaywrightCookie[];\n origins: StorageOrigin[];\n};\n\n/**\n * Input for {@link authWithGoogle}.\n */\nexport type AuthWithGoogleOptions = {\n /**\n * Browser context where auth state should be applied.\n */\n context: BrowserContext;\n /**\n * Google account email.\n */\n email: string;\n /**\n * Google account password.\n */\n password: string;\n /**\n * TOTP seed/secret used to generate the Google 2FA code.\n */\n otpSecret: string;\n /**\n * Force a cache refresh server-side. Defaults to `false`.\n */\n forceRefresh?: boolean;\n /**\n * Optional API key override. Defaults to the configured Stably API key.\n */\n apiKey?: string;\n};\n\nconst getApiUrl = (): string =>\n process.env.STABLY_API_URL ?? \"https://api.stably.ai\";\n\nconst sdkVersion =\n typeof __PACKAGE_VERSION__ !== \"undefined\"\n ? __PACKAGE_VERSION__\n : (process.env.npm_package_version ?? \"local\");\n\nconst assertNonEmptyString = (value: string, fieldName: string): void => {\n if (!value.trim()) {\n throw new Error(`Missing required field: ${fieldName}`);\n }\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nconst parseCookie = (value: unknown): PlaywrightCookie => {\n if (!isRecord(value)) {\n throw new Error(\"Invalid Google storage state: cookie must be an object\");\n }\n\n const { domain } = value;\n const { name } = value;\n const { path } = value;\n const { sameSite } = value;\n const valueText = value.value;\n\n if (\n typeof domain !== \"string\" ||\n typeof name !== \"string\" ||\n typeof path !== \"string\" ||\n typeof valueText !== \"string\"\n ) {\n throw new Error(\n \"Invalid Google storage state: cookie is missing required fields\",\n );\n }\n\n return {\n ...(typeof value.expires === \"number\" ? { expires: value.expires } : {}),\n ...(typeof value.httpOnly === \"boolean\"\n ? { httpOnly: value.httpOnly }\n : {}),\n ...(typeof value.partitionKey === \"string\"\n ? { partitionKey: value.partitionKey }\n : {}),\n ...(typeof value.secure === \"boolean\" ? { secure: value.secure } : {}),\n ...(sameSite === \"Lax\" || sameSite === \"None\" || sameSite === \"Strict\"\n ? { sameSite }\n : {}),\n domain,\n name,\n path,\n value: valueText,\n };\n};\n\nconst parseLocalStorageEntry = (value: unknown): LocalStorageEntry => {\n if (!isRecord(value)) {\n throw new Error(\n \"Invalid Google storage state: localStorage entry must be an object\",\n );\n }\n\n const { name } = value;\n const storedValue = value.value;\n\n if (typeof name !== \"string\" || typeof storedValue !== \"string\") {\n throw new Error(\n \"Invalid Google storage state: localStorage entry must contain string name and value\",\n );\n }\n\n return { name, value: storedValue };\n};\n\nconst parseOrigin = (value: unknown): StorageOrigin => {\n if (!isRecord(value)) {\n throw new Error(\"Invalid Google storage state: origin must be an object\");\n }\n\n const { origin } = value;\n const rawLocalStorage = value.localStorage;\n\n if (typeof origin !== \"string\") {\n throw new Error(\"Invalid Google storage state: origin must be a string\");\n }\n\n if (!Array.isArray(rawLocalStorage)) {\n return { localStorage: [], origin };\n }\n\n return {\n localStorage: rawLocalStorage.map(parseLocalStorageEntry),\n origin,\n };\n};\n\nconst parseStorageState = (value: {\n cookies?: unknown[];\n origins?: unknown[];\n}): GoogleStorageState => ({\n cookies: Array.isArray(value.cookies) ? value.cookies.map(parseCookie) : [],\n origins: Array.isArray(value.origins) ? value.origins.map(parseOrigin) : [],\n});\n\nconst applyStorageStateToContext = async (\n context: BrowserContext,\n storageState: GoogleStorageState,\n): Promise<void> => {\n if (storageState.cookies.length > 0) {\n await context.addCookies(storageState.cookies);\n }\n\n for (const originState of storageState.origins) {\n if (originState.localStorage.length === 0) {\n continue;\n }\n\n const page = await context.newPage();\n try {\n await page.goto(originState.origin, { waitUntil: \"domcontentloaded\" });\n await page.evaluate((entries: LocalStorageEntry[]) => {\n for (const entry of entries) {\n window.localStorage.setItem(entry.name, entry.value);\n }\n }, originState.localStorage);\n } finally {\n await page.close();\n }\n }\n};\n\n/**\n * Signs in a Google test account and applies the authenticated session to a Playwright context.\n *\n * Use this when your test needs to start in an already-authenticated state without\n * manually driving the login UI. After this resolves, cookies and localStorage are\n * applied to the provided context and subsequent pages in that context can continue\n * as an authenticated user.\n *\n * @param options - Google credentials and target Playwright context.\n * @param options.context - Browser context to receive the authenticated session.\n * @param options.email - Google account email.\n * @param options.password - Google account password.\n * @param options.otpSecret - TOTP secret for 2FA. See https://docs.stably.ai/stably2/auth/google-otp-secret-helper.\n * @param options.forceRefresh - Optional flag to force regeneration of session state.\n * @param options.apiKey - Optional Stably API key override.\n *\n * @returns Resolves when auth state has been successfully applied to the context.\n *\n * @example\n * ```ts\n * import { test } from \"@stablyai/playwright-test\";\n *\n * test(\"opens Google settings as authenticated user\", async ({ context, page }) => {\n * await context.authWithGoogle({\n * email: \"qa@example.com\",\n * password: process.env.GOOGLE_TEST_PASSWORD!,\n * otpSecret: process.env.GOOGLE_TEST_OTP_SECRET!,\n * });\n *\n * await page.goto(\"https://myaccount.google.com\");\n * });\n * ```\n */\nexport async function authWithGoogle(\n options: AuthWithGoogleOptions,\n): Promise<void> {\n const apiKey = options.apiKey ?? requireApiKey();\n\n assertNonEmptyString(options.email, \"email\");\n assertNonEmptyString(options.password, \"password\");\n assertNonEmptyString(options.otpSecret, \"otpSecret\");\n\n const client = createClient({\n baseUrl: getApiUrl(),\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"X-Client-Name\": \"stably-playwright-test\",\n \"X-Client-Version\": sdkVersion,\n \"X-Stably-SDK-Version\": sdkVersion,\n },\n });\n\n const response = await postInternalV1TestAccountGoogleAuthState({\n body: {\n email: options.email,\n forceRefresh: options.forceRefresh,\n otpSecret: options.otpSecret,\n password: options.password,\n },\n client,\n });\n\n if (response.error) {\n const errorMessage =\n \"error\" in response.error ? response.error.error : \"Unknown error\";\n throw new Error(`Failed to authenticate with Google: ${errorMessage}`);\n }\n\n const storageState = parseStorageState(response.data.storageState);\n await applyStorageStateToContext(options.context, storageState);\n}\n","import { dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\n\nimport type { BrowserContext } from \"@playwright/test\";\nimport {\n defineConfig as playwrightDefineConfig,\n expect as playwrightExpect,\n test as playwrightTest,\n} from \"@playwright/test\";\nimport \"@stablyai/playwright-base\";\n\nimport type { Agent } from \"@stablyai/playwright-base\";\nimport {\n augmentBrowser,\n augmentBrowserContext,\n augmentPage,\n stablyPlaywrightMatchers,\n} from \"@stablyai/playwright-base\";\n\nimport type { StablyNotificationConfig } from \"@stablyai/playwright-reporter\";\nimport {\n authWithGoogle,\n type AuthWithGoogleOptions,\n type GoogleStorageState,\n} from \"./auth-with-google\";\n\nexport { stablyReporter } from \"@stablyai/playwright-reporter\";\nexport type {\n StablyReporterOptions,\n ProjectNotificationConfig,\n NotificationResultPolicy,\n StablyEmailNotificationConfig,\n StablySlackNotificationConfig,\n StablyNotificationConfig,\n} from \"@stablyai/playwright-reporter\";\nexport { Agent, setApiKey } from \"@stablyai/playwright-base\";\nexport { authWithGoogle, type AuthWithGoogleOptions, type GoogleStorageState };\nexport type {\n AIModel,\n GetLocatorsByAIOptions,\n GetLocatorsByAIResult,\n ScreenshotPromptOptions,\n} from \"@stablyai/playwright-base\";\n\n/**\n * Get the directory name from an import.meta.url.\n * This is the ESM equivalent of __dirname.\n *\n * @example\n * ```ts\n * import { getDirname } from '@stablyai/playwright-test';\n * const __dirname = getDirname(import.meta.url);\n *\n * // Use in tests for file paths\n * await page.setInputFiles('input', path.join(__dirname, 'fixtures', 'file.pdf'));\n * ```\n */\nexport function getDirname(importMetaUrl: string): string {\n return dirname(fileURLToPath(importMetaUrl));\n}\n\n/**\n * Get the filename from an import.meta.url.\n * This is the ESM equivalent of __filename.\n *\n * @example\n * ```ts\n * import { getFilename } from '@stablyai/playwright-test';\n * const __filename = getFilename(import.meta.url);\n * ```\n */\nexport function getFilename(importMetaUrl: string): string {\n return fileURLToPath(importMetaUrl);\n}\n\nexport const test: typeof playwrightTest = playwrightTest.extend<{\n agent: Agent;\n}>({\n agent: async (\n { context }: { context: BrowserContext },\n use: (agent: Agent) => Promise<void>,\n ) => {\n // Create a default agent from the default context\n const agent = context.newAgent();\n await use(agent);\n },\n browser: async ({ browser }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await use(augmentBrowser(browser as any) as any);\n },\n context: async ({ context }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion -- context augmentation requires type widening\n const augmentedContext = augmentBrowserContext(context as any) as any;\n if (!(\"authWithGoogle\" in augmentedContext)) {\n augmentedContext.authWithGoogle = (\n options: Omit<AuthWithGoogleOptions, \"context\">,\n ) => authWithGoogle({ context: augmentedContext, ...options });\n }\n\n await use(augmentedContext);\n },\n page: async ({ page }, use) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await use(augmentPage(page as any) as any);\n },\n});\n\nexport const expect = playwrightExpect.extend(stablyPlaywrightMatchers);\n\nexport * from \"@playwright/test\";\n\nexport type StablyProjectConfig = {\n notifications?: StablyNotificationConfig;\n};\n\n/**\n * Stably-enhanced defineConfig with typed support for stably notification configuration in projects.\n * The `stably` property on projects is available via module augmentation of `@playwright/test`.\n *\n * @example\n * ```ts\n * import { defineConfig, stablyReporter } from \"@stablyai/playwright-test\";\n *\n * export default defineConfig({\n * reporter: [stablyReporter({ apiKey: \"...\" })],\n * projects: [\n * {\n * name: \"smoke\",\n * stably: {\n * notifications: {\n * slack: { channelName: \"#alerts\", notifyOnResult: \"failures-only\" },\n * },\n * },\n * },\n * ],\n * });\n * ```\n */\nexport const defineConfig = playwrightDefineConfig;\n\ndeclare module \"@playwright/test\" {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface LocatorAssertions {\n /**\n * Asserts that the locator satisfies a natural language condition using AI vision.\n *\n * Takes a screenshot of the locator and uses AI to verify whether the specified condition is met.\n *\n * @param condition - A natural language description of what should be true about the locator\n * @param options - Optional screenshot options (e.g., timeout)\n *\n * @example\n * ```typescript\n * await expect(page.locator('.button')).aiAssert('The button is disabled and grayed out');\n * ```\n */\n aiAssert(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n\n /**\n * @deprecated Use `aiAssert` instead. This method will be removed in a future version.\n */\n toMatchScreenshotPrompt(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface PageAssertions {\n /**\n * Asserts that the page satisfies a natural language condition using AI vision.\n *\n * Takes a screenshot of the page and uses AI to verify whether the specified condition is met.\n *\n * @param condition - A natural language description of what should be true about the page\n * @param options - Optional screenshot options (e.g., fullPage, timeout)\n *\n * @example\n * ```typescript\n * await expect(page).aiAssert('The page shows a success message after form submission');\n * ```\n */\n aiAssert(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n\n /**\n * @deprecated Use `aiAssert` instead. This method will be removed in a future version.\n */\n toMatchScreenshotPrompt(\n condition: string,\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n options?: import(\"@stablyai/playwright-base\").ScreenshotPromptOptions,\n ): Promise<void>;\n }\n\n // Add agent fixture to test args\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface PlaywrightTestArgs {\n agent: Agent;\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface BrowserContext {\n /**\n * Generates and applies Google auth state to this context.\n *\n * Calls Stably's Google auth-state endpoint and proactively sets cookies and\n * localStorage values on this context.\n */\n authWithGoogle(\n options: Omit<AuthWithGoogleOptions, \"context\">,\n ): Promise<void>;\n }\n\n // Add stably config to project configuration\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Project {\n stably?: StablyProjectConfig;\n }\n}\n"],"names":["requireApiKey","dirname","fileURLToPath","playwrightTest","augmentBrowser","augmentBrowserContext","augmentPage","playwrightExpect","stablyPlaywrightMatchers","playwrightDefineConfig"],"mappings":"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","x_google_ignoreList":[0]}
@@ -45537,8 +45537,6 @@ type StablyReporterOptions = {
45537
45537
  };
45538
45538
  declare class StablyReporter implements Reporter {
45539
45539
  private readonly wsClient;
45540
- private readonly apiKey;
45541
- private readonly projectId;
45542
45540
  private readonly pendingOperations;
45543
45541
  private readonly pendingUploads;
45544
45542
  private testSuiteRunId;
@@ -45581,4 +45579,4 @@ declare function stablyReporter(options?: StablyReporterOptions): [string, any];
45581
45579
 
45582
45580
  export { StablyReporter as d, stablyReporter as s };
45583
45581
  export type { NotificationResultPolicy as N, ProjectNotificationConfig as P, StablyNotificationConfig as S, StablyEmailNotificationConfig as a, StablyReporterOptions as b, StablySlackNotificationConfig as c };
45584
- //# sourceMappingURL=index.d-Be6DvZw5.d.cts.map
45582
+ //# sourceMappingURL=index.d-BjGuH5NO.d.cts.map