@elementor/angie-sdk 1.0.2 → 1.0.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/README.md CHANGED
@@ -15,6 +15,7 @@ This SDK enables you to create custom MCP servers that Angie can discover and us
15
15
  - [Supported MCP Features](#supported-mcp-features)
16
16
  - [Installation](#installation)
17
17
  - [Quick Start](#quick-start)
18
+ - [Triggering Angie with Prompts](#triggering-angie-with-prompts)
18
19
  - [MCP Server Example](#mcp-server-example)
19
20
  - [Registering Tools](#registering-tools)
20
21
  - [Handling Tool Calls](#handling-tool-calls)
@@ -146,6 +147,57 @@ await sdk.registerServer({
146
147
 
147
148
  ---
148
149
 
150
+ ## Triggering Angie with Prompts
151
+
152
+ The SDK can also trigger Angie with custom prompts - useful for help buttons or deep linking.
153
+
154
+ ```typescript
155
+ import { AngieMcpSdk } from '@elementor/angie-sdk';
156
+
157
+ // Register your MCP server and trigger Angie
158
+ const server = createSeoMcpServer();
159
+ const sdk = new AngieMcpSdk();
160
+ await sdk.registerServer({
161
+ name: 'my-seo-server',
162
+ version: '1.0.0',
163
+ description: 'SEO tools for Angie',
164
+ server,
165
+ });
166
+
167
+ // Trigger Angie with a prompt
168
+ await sdk.triggerAngie({
169
+ prompt: 'Help me optimize this page for SEO',
170
+ context: { pageType: 'product', source: 'my-plugin' },
171
+ options: {
172
+ timeout: 30000, // Optional: 30 seconds timeout (default: 30000)
173
+
174
+ }
175
+ });
176
+
177
+ // Or simplified version
178
+ await sdk.triggerAngie({
179
+ prompt: 'Help me create a contact page'
180
+ });
181
+ ```
182
+
183
+ **Options:**
184
+ - `timeout`: How long to wait for Angie response (milliseconds)
185
+ - `priority`: Request priority level
186
+ - `context`: Additional data to help Angie understand the request
187
+
188
+ ### Hash Parameter Method
189
+
190
+ ```javascript
191
+ // Trigger via URL hash - perfect for deep linking
192
+ window.location.hash = 'angie-prompt=' + encodeURIComponent('Help me create a contact page');
193
+
194
+ // Or visit URLs like: https://yoursite.com/wp-admin/edit.php#angie-prompt=Help%20me%20optimize%20SEO
195
+ ```
196
+
197
+ **Note:** Always call `await sdk.waitForReady()` before triggering Angie.
198
+
199
+ ---
200
+
149
201
  ## MCP Server Example
150
202
 
151
203
  A typical project structure:
@@ -332,8 +384,24 @@ If you have questions or need help, open an issue or contact the Elementor team!
332
384
  3. Test REST API endpoints independently
333
385
  4. Ensure proper nonce and permission setup
334
386
 
387
+ ### Dev Mode for Enhanced Debugging
388
+
389
+ Angie includes a Dev Mode feature that displays tool execution progress and details directly in the chat interface, making it easier to debug your MCP server integrations and understand how Angie interacts with your tools.
390
+
391
+ **To enable Dev Mode:**
392
+ 1. Open Angie in WordPress
393
+ 2. Click on the User Profile icon
394
+ 3. Navigate to Tools
395
+ 4. Toggle "Dev Mode" on
396
+
397
+ **What Dev Mode shows:**
398
+ When enabled, Angie will display in the chat:
399
+ - Tool execution history for each user request
400
+ - Tool call status (pending, in progress, completed, failed)
401
+ - Tool input and output
402
+
335
403
  ---
336
404
 
337
405
  ## License
338
406
 
339
- MIT
407
+ MIT
@@ -0,0 +1,5 @@
1
+ export declare const setAngieIframeRef: (iframe: HTMLIFrameElement | null) => void;
2
+ export declare const getAngieIframe: () => HTMLIFrameElement | null;
3
+ export declare const angieIframeExists: () => boolean;
4
+ export declare const getAngieIframeOrigin: () => string | null;
5
+ export declare const postMessageToAngieIframe: (message: Record<string, unknown>, targetOrigin?: string) => boolean;
@@ -1,4 +1,9 @@
1
- import { AngieLocalServerConfig, AngieRemoteServerConfig, AngieServerConfig, ServerRegistration } from './types';
1
+ import { AngieLocalServerConfig, AngieRemoteServerConfig, AngieServerConfig, ServerRegistration, AngieTriggerRequest, AngieTriggerResponse } from './types';
2
+ export type AngieMcpSdkOptions = {
3
+ origin?: string;
4
+ uiTheme?: string;
5
+ isRTL?: boolean;
6
+ };
2
7
  export declare class AngieMcpSdk {
3
8
  private angieDetector;
4
9
  private registrationQueue;
@@ -6,19 +11,31 @@ export declare class AngieMcpSdk {
6
11
  private isInitialized;
7
12
  private instanceId;
8
13
  constructor();
14
+ loadSidebar(options?: AngieMcpSdkOptions): Promise<void>;
9
15
  private setupReRegistrationHandler;
10
16
  private setupAngieReadyHandler;
11
17
  private handleAngieReady;
12
18
  private processRegistration;
13
19
  registerLocalServer(config: AngieLocalServerConfig): Promise<void>;
14
20
  registerRemoteServer(config: AngieRemoteServerConfig): Promise<void>;
21
+ private isLocalServerConfig;
22
+ private isRemoteServerConfig;
15
23
  registerServer(config: AngieServerConfig): Promise<void>;
16
24
  getRegistrations(): ServerRegistration[];
17
25
  getPendingRegistrations(): ServerRegistration[];
18
26
  isAngieReady(): boolean;
19
27
  isReady(): boolean;
20
28
  waitForReady(): Promise<void>;
29
+ /**
30
+ * Triggers Angie with a specified prompt and optional context
31
+ * @param request - The trigger request containing prompt and optional context
32
+ * @returns Promise resolving to Angie's response
33
+ */
34
+ triggerAngie(request: AngieTriggerRequest): Promise<AngieTriggerResponse>;
21
35
  destroy(): void;
22
36
  private setupServerInitHandler;
23
37
  private handleServerInitRequest;
38
+ private generateRequestId;
39
+ private handlePromptHash;
40
+ private setupPromptHashDetection;
24
41
  }
@@ -0,0 +1,6 @@
1
+ export type AppState = {
2
+ open: boolean;
3
+ iframe: HTMLIFrameElement | null;
4
+ iframeUrlObject: URL | null;
5
+ };
6
+ export declare const appState: AppState;
@@ -0,0 +1,27 @@
1
+ declare global {
2
+ interface Window {
3
+ angieConfig?: {
4
+ version: string;
5
+ };
6
+ }
7
+ }
8
+ export declare enum MessageEventType {
9
+ SDK_ANGIE_ALL_SERVERS_REGISTERED = "sdk-angie-all-servers-registered",
10
+ SDK_ANGIE_READY_PING = "sdk-angie-ready-ping",
11
+ SDK_REQUEST_CLIENT_CREATION = "sdk-request-client-creation",
12
+ SDK_TRIGGER_ANGIE = "sdk-trigger-angie",
13
+ SDK_TRIGGER_ANGIE_RESPONSE = "sdk-trigger-angie-response",
14
+ ANGIE_SIDEBAR_RESIZED = "angie-sidebar-resized",
15
+ ANGIE_SIDEBAR_TOGGLED = "angie-sidebar-toggled",
16
+ ANGIE_CHAT_TOGGLE = "angie-chat-toggle",
17
+ ANGIE_STUDIO_TOGGLE = "angie-studio-toggle",
18
+ ANGIE_NAVIGATE_TO_URL = "angie/navigate-to-url",
19
+ ANGIE_PAGE_RELOAD = "angie/page-reload"
20
+ }
21
+ type OpenIframeProps = {
22
+ origin?: string;
23
+ uiTheme: string;
24
+ isRTL: boolean;
25
+ };
26
+ export declare const openIframe: (props: OpenIframeProps) => Promise<void>;
27
+ export {};
package/dist/index.d.ts CHANGED
@@ -2,4 +2,8 @@ export { AngieMcpSdk } from './angie-mcp-sdk';
2
2
  export { AngieDetector } from './angie-detector';
3
3
  export { RegistrationQueue } from './registration-queue';
4
4
  export { ClientManager } from './client-manager';
5
+ export { ANGIE_SIDEBAR_STATE_OPEN, applyWidth, getAngieSidebarSavedState, initAngieSidebar, initializeResize, loadState, loadWidth, saveWidth, type AngieSidebarState, } from './sidebar';
6
+ export { waitForDocumentReady, toggleAngieSidebar } from './utils';
7
+ export { navigateAngieIframe } from './navigation-utils';
8
+ export { getAngieIframe } from './angie-iframe-utils';
5
9
  export * from './types';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var e,t,s,n,a,r,i;(function(e){e.POST_MESSAGE="postMessage"})(e||(e={})),function(e){e.POST_MESSAGE="postMessage"}(t||(t={})),function(e){e.STREAMABLE_HTTP="streamableHttp",e.SSE="sse"}(s||(s={})),function(e){e.LOCAL="local",e.REMOTE="remote"}(n||(n={})),function(e){e.SDK_ANGIE_READY_PING="sdk-angie-ready-ping",e.SDK_ANGIE_REFRESH_PING="sdk-angie-refresh-ping",e.SDK_REQUEST_CLIENT_CREATION="sdk-request-client-creation",e.SDK_REQUEST_INIT_SERVER="sdk-request-init-server"}(a||(a={}));class o{isAngieReady=!1;readyPromise;readyResolve;constructor(){if(this.readyPromise=new Promise(e=>{this.readyResolve=e}),"undefined"==typeof window)return;let e=0;const t=()=>{if(this.isAngieReady||e>=500)return void(!this.isAngieReady&&e>=500&&this.handleDetectionTimeout());const s=new MessageChannel;s.port1.onmessage=e=>{this.handleAngieReady(e.data),s.port1.close(),s.port2.close()};const n={type:a.SDK_ANGIE_READY_PING,timestamp:Date.now()};window.postMessage(n,window.location.origin,[s.port2]),e++,setTimeout(t,500)};t()}handleAngieReady(e){this.isAngieReady=!0;const t={isReady:!0,version:e.version,capabilities:e.capabilities};this.readyResolve&&this.readyResolve(t)}handleDetectionTimeout(){this.readyResolve&&this.readyResolve({isReady:!1}),console.warn("AngieMcpSdk: AngieDetector: Detection timeout - Angie may not be available")}isReady(){return this.isAngieReady}async waitForReady(){return this.readyPromise}}class d{queue=[];isProcessing=!1;add(e){const t={id:this.generateId(e),config:e,timestamp:Date.now(),status:"pending"};return this.queue.push(t),console.log(`RegistrationQueue: Added server "${e.name}" to queue`),t}getAll(){return[...this.queue]}getPending(){return this.queue.filter(e=>"pending"===e.status)}updateStatus(e,t,s){const n=this.queue.find(t=>t.id===e);n&&(n.status=t,s?n.error=s:"pending"!==t&&"registered"!==t||delete n.error,console.log(`RegistrationQueue: Updated server ${e} status to ${t}`))}async processQueue(e){if(this.isProcessing)return void console.log("RegistrationQueue: Already processing queue");this.isProcessing=!0;const t=this.getPending();console.log(`RegistrationQueue: Processing ${t.length} pending registrations`);try{for(const s of t)try{await e(s),this.updateStatus(s.id,"registered")}catch(e){const t=e instanceof Error?e.message:String(e);this.updateStatus(s.id,"failed",t),console.error(`RegistrationQueue: Failed to process registration ${s.id}:`,t)}}finally{this.isProcessing=!1}}clear(){this.queue=[],console.log("RegistrationQueue: Cleared all registrations")}resetAllToPending(){if(this.isProcessing)return console.log("RegistrationQueue: Cannot reset to pending - processing in progress"),!1;const e=this.queue.filter(e=>"registered"===e.status).length,t=this.queue.filter(e=>"failed"===e.status).length;return this.queue.forEach(e=>{"pending"!==e.status&&(e.status="pending",delete e.error)}),console.log(`RegistrationQueue: Reset ${e+t} registrations to pending`),!0}remove(e){const t=this.queue.findIndex(t=>t.id===e);return-1!==t&&(this.queue.splice(t,1),console.log(`RegistrationQueue: Removed registration ${e}`),!0)}generateId(e){return`reg_${e.name}_${e.version}_${Date.now()}`}}class c{async requestClientCreation(e){const{config:s}=e,n={serverId:e.id,serverName:s.name,serverVersion:s.version,description:s.description,transport:s.transport||t.POST_MESSAGE,capabilities:s.capabilities,instanceId:e.instanceId};return"type"in s&&"remote"===s.type&&(n.remote={url:s.url}),new Promise((e,t)=>{const s=new MessageChannel,r=setTimeout(()=>{t(new Error("Client creation request timed out after 15000ms"))},15e3);s.port1.onmessage=t=>{clearTimeout(r),e(t.data)};const i={type:a.SDK_REQUEST_CLIENT_CREATION,payload:n,timestamp:Date.now()};window.postMessage(i,window.location.origin,[s.port2])})}}!function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const s of e)t[s]=s;return t},e.getValidEnumValues=t=>{const s=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),n={};for(const e of s)n[e]=t[e];return e.objectValues(n)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.push(s);return t},e.find=(e,t)=>{for(const s of e)if(t(s))return s},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(r||(r={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(i||(i={}));const u=r.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),l=e=>{switch(typeof e){case"undefined":return u.undefined;case"string":return u.string;case"number":return Number.isNaN(e)?u.nan:u.number;case"boolean":return u.boolean;case"function":return u.function;case"bigint":return u.bigint;case"symbol":return u.symbol;case"object":return Array.isArray(e)?u.array:null===e?u.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?u.promise:"undefined"!=typeof Map&&e instanceof Map?u.map:"undefined"!=typeof Set&&e instanceof Set?u.set:"undefined"!=typeof Date&&e instanceof Date?u.date:u.object;default:return u.unknown}},h=r.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class p extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},s={_errors:[]},n=e=>{for(const a of e.issues)if("invalid_union"===a.code)a.unionErrors.map(n);else if("invalid_return_type"===a.code)n(a.returnTypeError);else if("invalid_arguments"===a.code)n(a.argumentsError);else if(0===a.path.length)s._errors.push(t(a));else{let e=s,n=0;for(;n<a.path.length;){const s=a.path[n];n===a.path.length-1?(e[s]=e[s]||{_errors:[]},e[s]._errors.push(t(a))):e[s]=e[s]||{_errors:[]},e=e[s],n++}}};return n(this),s}static assert(e){if(!(e instanceof p))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,r.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},s=[];for(const n of this.issues)if(n.path.length>0){const s=n.path[0];t[s]=t[s]||[],t[s].push(e(n))}else s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}p.create=e=>new p(e);const m=(e,t)=>{let s;switch(e.code){case h.invalid_type:s=e.received===u.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case h.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(e.expected,r.jsonStringifyReplacer)}`;break;case h.unrecognized_keys:s=`Unrecognized key(s) in object: ${r.joinValues(e.keys,", ")}`;break;case h.invalid_union:s="Invalid input";break;case h.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${r.joinValues(e.options)}`;break;case h.invalid_enum_value:s=`Invalid enum value. Expected ${r.joinValues(e.options)}, received '${e.received}'`;break;case h.invalid_arguments:s="Invalid function arguments";break;case h.invalid_return_type:s="Invalid function return type";break;case h.invalid_date:s="Invalid date";break;case h.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(s=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(s=`${s} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?s=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?s=`Invalid input: must end with "${e.validation.endsWith}"`:r.assertNever(e.validation):s="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case h.too_small:s="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case h.too_big:s="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case h.custom:s="Invalid input";break;case h.invalid_intersection_types:s="Intersection results could not be merged";break;case h.not_multiple_of:s=`Number must be a multiple of ${e.multipleOf}`;break;case h.not_finite:s="Number must be finite";break;default:s=t.defaultError,r.assertNever(e)}return{message:s}};let g=m;var f;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(f||(f={}));function y(e,t){const s=g,n=(e=>{const{data:t,path:s,errorMaps:n,issueData:a}=e,r=[...s,...a.path||[]],i={...a,path:r};if(void 0!==a.message)return{...a,path:r,message:a.message};let o="";const d=n.filter(e=>!!e).slice().reverse();for(const e of d)o=e(i,{data:t,defaultError:o}).message;return{...a,path:r,message:o}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,s,s===m?void 0:m].filter(e=>!!e)});e.common.issues.push(n)}class _{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const n of t){if("aborted"===n.status)return v;"dirty"===n.status&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const e of t){const t=await e.key,n=await e.value;s.push({key:t,value:n})}return _.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const n of t){const{key:t,value:a}=n;if("aborted"===t.status)return v;if("aborted"===a.status)return v;"dirty"===t.status&&e.dirty(),"dirty"===a.status&&e.dirty(),"__proto__"===t.value||void 0===a.value&&!n.alwaysSet||(s[t.value]=a.value)}return{status:e.value,value:s}}}const v=Object.freeze({status:"aborted"}),x=e=>({status:"dirty",value:e}),k=e=>({status:"valid",value:e}),b=e=>"aborted"===e.status,w=e=>"dirty"===e.status,S=e=>"valid"===e.status,I=e=>"undefined"!=typeof Promise&&e instanceof Promise;class A{constructor(e,t,s,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const T=(e,t)=>{if(S(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new p(e.common.issues);return this._error=t,this._error}}};function R(e){if(!e)return{};const{errorMap:t,invalid_type_error:s,required_error:n,description:a}=e;if(t&&(s||n))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:a}:{errorMap:(t,a)=>{const{message:r}=e;return"invalid_enum_value"===t.code?{message:r??a.defaultError}:void 0===a.data?{message:r??n??a.defaultError}:"invalid_type"!==t.code?{message:a.defaultError}:{message:r??s??a.defaultError}},description:a}}class C{get description(){return this._def.description}_getType(e){return l(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:l(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new _,ctx:{common:e.parent.common,data:e.data,parsedType:l(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(I(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){const s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:l(e)},n=this._parseSync({data:e,path:s.path,parent:s});return T(s,n)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:l(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:t});return S(s)?{value:s.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>S(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:l(e)},n=this._parse({data:e,path:s.path,parent:s}),a=await(I(n)?n:Promise.resolve(n));return T(s,a)}refine(e,t){const s=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,n)=>{const a=e(t),r=()=>n.addIssue({code:h.custom,...s(t)});return"undefined"!=typeof Promise&&a instanceof Promise?a.then(e=>!!e||(r(),!1)):!!a||(r(),!1)})}refinement(e,t){return this._refinement((s,n)=>!!e(s)||(n.addIssue("function"==typeof t?t(s,n):t),!1))}_refinement(e){return new Ee({schema:this,typeName:qe.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Oe.create(this,this._def)}nullable(){return Ze.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return he.create(this)}promise(){return Ce.create(this,this._def)}or(e){return ge.create([this,e],this._def)}and(e){return ve.create(this,e,this._def)}transform(e){return new Ee({...R(this._def),schema:this,typeName:qe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $e({...R(this._def),innerType:this,defaultValue:t,typeName:qe.ZodDefault})}brand(){return new Pe({typeName:qe.ZodBranded,type:this,...R(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Ne({...R(this._def),innerType:this,catchValue:t,typeName:qe.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Me.create(this,e)}readonly(){return De.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const E=/^c[^\s-]{8,}$/i,O=/^[0-9a-z]+$/,Z=/^[0-9A-HJKMNP-TV-Z]{26}$/i,$=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,N=/^[a-z0-9_-]{21}$/i,j=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,P=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,M=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let D;const q=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,F=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,L=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,z=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,V=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,K=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,U="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Q=new RegExp(`^${U}$`);function B(e){let t="[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function W(e){return new RegExp(`^${B(e)}$`)}function H(e){let t=`${U}T${B(e)}`;const s=[];return s.push(e.local?"Z?":"Z"),e.offset&&s.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${s.join("|")})`,new RegExp(`^${t}$`)}function G(e,t){return!("v4"!==t&&t||!q.test(e))||!("v6"!==t&&t||!L.test(e))}function J(e,t){if(!j.test(e))return!1;try{const[s]=e.split(".");if(!s)return!1;const n=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),a=JSON.parse(atob(n));return!("object"!=typeof a||null===a||"typ"in a&&"JWT"!==a?.typ||!a.alg||t&&a.alg!==t)}catch{return!1}}function Y(e,t){return!("v4"!==t&&t||!F.test(e))||!("v6"!==t&&t||!z.test(e))}class X extends C{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==u.string){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.string,received:t.parsedType}),v}const t=new _;let s;for(const n of this._def.checks)if("min"===n.kind)e.data.length<n.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:h.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if("max"===n.kind)e.data.length>n.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:h.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if("length"===n.kind){const a=e.data.length>n.value,r=e.data.length<n.value;(a||r)&&(s=this._getOrReturnCtx(e,s),a?y(s,{code:h.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):r&&y(s,{code:h.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),t.dirty())}else if("email"===n.kind)M.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"email",code:h.invalid_string,message:n.message}),t.dirty());else if("emoji"===n.kind)D||(D=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),D.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"emoji",code:h.invalid_string,message:n.message}),t.dirty());else if("uuid"===n.kind)$.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"uuid",code:h.invalid_string,message:n.message}),t.dirty());else if("nanoid"===n.kind)N.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"nanoid",code:h.invalid_string,message:n.message}),t.dirty());else if("cuid"===n.kind)E.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cuid",code:h.invalid_string,message:n.message}),t.dirty());else if("cuid2"===n.kind)O.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cuid2",code:h.invalid_string,message:n.message}),t.dirty());else if("ulid"===n.kind)Z.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"ulid",code:h.invalid_string,message:n.message}),t.dirty());else if("url"===n.kind)try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),y(s,{validation:"url",code:h.invalid_string,message:n.message}),t.dirty()}else"regex"===n.kind?(n.regex.lastIndex=0,n.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"regex",code:h.invalid_string,message:n.message}),t.dirty())):"trim"===n.kind?e.data=e.data.trim():"includes"===n.kind?e.data.includes(n.value,n.position)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),t.dirty()):"toLowerCase"===n.kind?e.data=e.data.toLowerCase():"toUpperCase"===n.kind?e.data=e.data.toUpperCase():"startsWith"===n.kind?e.data.startsWith(n.value)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:{startsWith:n.value},message:n.message}),t.dirty()):"endsWith"===n.kind?e.data.endsWith(n.value)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:{endsWith:n.value},message:n.message}),t.dirty()):"datetime"===n.kind?H(n).test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:"datetime",message:n.message}),t.dirty()):"date"===n.kind?Q.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:"date",message:n.message}),t.dirty()):"time"===n.kind?W(n).test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{code:h.invalid_string,validation:"time",message:n.message}),t.dirty()):"duration"===n.kind?P.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"duration",code:h.invalid_string,message:n.message}),t.dirty()):"ip"===n.kind?G(e.data,n.version)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"ip",code:h.invalid_string,message:n.message}),t.dirty()):"jwt"===n.kind?J(e.data,n.alg)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"jwt",code:h.invalid_string,message:n.message}),t.dirty()):"cidr"===n.kind?Y(e.data,n.version)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"cidr",code:h.invalid_string,message:n.message}),t.dirty()):"base64"===n.kind?V.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"base64",code:h.invalid_string,message:n.message}),t.dirty()):"base64url"===n.kind?K.test(e.data)||(s=this._getOrReturnCtx(e,s),y(s,{validation:"base64url",code:h.invalid_string,message:n.message}),t.dirty()):r.assertNever(n);return{status:t.value,value:e.data}}_regex(e,t,s){return this.refinement(t=>e.test(t),{validation:t,code:h.invalid_string,...f.errToObj(s)})}_addCheck(e){return new X({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...f.errToObj(e)})}url(e){return this._addCheck({kind:"url",...f.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...f.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...f.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...f.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...f.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...f.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...f.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...f.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...f.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...f.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...f.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...f.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...f.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...f.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...f.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...f.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...f.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...f.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...f.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...f.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...f.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...f.errToObj(t)})}nonempty(e){return this.min(1,f.errToObj(e))}trim(){return new X({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new X({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new X({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function ee(e,t){const s=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,a=s>n?s:n;return Number.parseInt(e.toFixed(a).replace(".",""))%Number.parseInt(t.toFixed(a).replace(".",""))/10**a}X.create=e=>new X({checks:[],typeName:qe.ZodString,coerce:e?.coerce??!1,...R(e)});class te extends C{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==u.number){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.number,received:t.parsedType}),v}let t;const s=new _;for(const n of this._def.checks)"int"===n.kind?r.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),y(t,{code:h.invalid_type,expected:"integer",received:"float",message:n.message}),s.dirty()):"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):"multipleOf"===n.kind?0!==ee(e.data,n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):"finite"===n.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),y(t,{code:h.not_finite,message:n.message}),s.dirty()):r.assertNever(n);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,f.toString(t))}gt(e,t){return this.setLimit("min",e,!1,f.toString(t))}lte(e,t){return this.setLimit("max",e,!0,f.toString(t))}lt(e,t){return this.setLimit("max",e,!1,f.toString(t))}setLimit(e,t,s,n){return new te({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:f.toString(n)}]})}_addCheck(e){return new te({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:f.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:f.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:f.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:f.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:f.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:f.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:f.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:f.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:f.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&r.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if("finite"===s.kind||"int"===s.kind||"multipleOf"===s.kind)return!0;"min"===s.kind?(null===t||s.value>t)&&(t=s.value):"max"===s.kind&&(null===e||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}}te.create=e=>new te({checks:[],typeName:qe.ZodNumber,coerce:e?.coerce||!1,...R(e)});class se extends C{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==u.bigint)return this._getInvalidInput(e);let t;const s=new _;for(const n of this._def.checks)"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):"multipleOf"===n.kind?e.data%n.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),y(t,{code:h.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):r.assertNever(n);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.bigint,received:t.parsedType}),v}gte(e,t){return this.setLimit("min",e,!0,f.toString(t))}gt(e,t){return this.setLimit("min",e,!1,f.toString(t))}lte(e,t){return this.setLimit("max",e,!0,f.toString(t))}lt(e,t){return this.setLimit("max",e,!1,f.toString(t))}setLimit(e,t,s,n){return new se({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:f.toString(n)}]})}_addCheck(e){return new se({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:f.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:f.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:f.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:f.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:f.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}se.create=e=>new se({checks:[],typeName:qe.ZodBigInt,coerce:e?.coerce??!1,...R(e)});class ne extends C{_parse(e){if(this._def.coerce&&(e.data=Boolean(e.data)),this._getType(e)!==u.boolean){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.boolean,received:t.parsedType}),v}return k(e.data)}}ne.create=e=>new ne({typeName:qe.ZodBoolean,coerce:e?.coerce||!1,...R(e)});class ae extends C{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==u.date){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.date,received:t.parsedType}),v}if(Number.isNaN(e.data.getTime()))return y(this._getOrReturnCtx(e),{code:h.invalid_date}),v;const t=new _;let s;for(const n of this._def.checks)"min"===n.kind?e.data.getTime()<n.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:h.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),t.dirty()):"max"===n.kind?e.data.getTime()>n.value&&(s=this._getOrReturnCtx(e,s),y(s,{code:h.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),t.dirty()):r.assertNever(n);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new ae({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:f.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:f.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}ae.create=e=>new ae({checks:[],coerce:e?.coerce||!1,typeName:qe.ZodDate,...R(e)});class re extends C{_parse(e){if(this._getType(e)!==u.symbol){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.symbol,received:t.parsedType}),v}return k(e.data)}}re.create=e=>new re({typeName:qe.ZodSymbol,...R(e)});class ie extends C{_parse(e){if(this._getType(e)!==u.undefined){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.undefined,received:t.parsedType}),v}return k(e.data)}}ie.create=e=>new ie({typeName:qe.ZodUndefined,...R(e)});class oe extends C{_parse(e){if(this._getType(e)!==u.null){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.null,received:t.parsedType}),v}return k(e.data)}}oe.create=e=>new oe({typeName:qe.ZodNull,...R(e)});class de extends C{constructor(){super(...arguments),this._any=!0}_parse(e){return k(e.data)}}de.create=e=>new de({typeName:qe.ZodAny,...R(e)});class ce extends C{constructor(){super(...arguments),this._unknown=!0}_parse(e){return k(e.data)}}ce.create=e=>new ce({typeName:qe.ZodUnknown,...R(e)});class ue extends C{_parse(e){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.never,received:t.parsedType}),v}}ue.create=e=>new ue({typeName:qe.ZodNever,...R(e)});class le extends C{_parse(e){if(this._getType(e)!==u.undefined){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.void,received:t.parsedType}),v}return k(e.data)}}le.create=e=>new le({typeName:qe.ZodVoid,...R(e)});class he extends C{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==u.array)return y(t,{code:h.invalid_type,expected:u.array,received:t.parsedType}),v;if(null!==n.exactLength){const e=t.data.length>n.exactLength.value,a=t.data.length<n.exactLength.value;(e||a)&&(y(t,{code:e?h.too_big:h.too_small,minimum:a?n.exactLength.value:void 0,maximum:e?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),s.dirty())}if(null!==n.minLength&&t.data.length<n.minLength.value&&(y(t,{code:h.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),s.dirty()),null!==n.maxLength&&t.data.length>n.maxLength.value&&(y(t,{code:h.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((e,s)=>n.type._parseAsync(new A(t,e,t.path,s)))).then(e=>_.mergeArray(s,e));const a=[...t.data].map((e,s)=>n.type._parseSync(new A(t,e,t.path,s)));return _.mergeArray(s,a)}get element(){return this._def.type}min(e,t){return new he({...this._def,minLength:{value:e,message:f.toString(t)}})}max(e,t){return new he({...this._def,maxLength:{value:e,message:f.toString(t)}})}length(e,t){return new he({...this._def,exactLength:{value:e,message:f.toString(t)}})}nonempty(e){return this.min(1,e)}}function pe(e){if(e instanceof me){const t={};for(const s in e.shape){const n=e.shape[s];t[s]=Oe.create(pe(n))}return new me({...e._def,shape:()=>t})}return e instanceof he?new he({...e._def,type:pe(e.element)}):e instanceof Oe?Oe.create(pe(e.unwrap())):e instanceof Ze?Ze.create(pe(e.unwrap())):e instanceof xe?xe.create(e.items.map(e=>pe(e))):e}he.create=(e,t)=>new he({type:e,minLength:null,maxLength:null,exactLength:null,typeName:qe.ZodArray,...R(t)});class me extends C{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=r.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==u.object){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.object,received:t.parsedType}),v}const{status:t,ctx:s}=this._processInputParams(e),{shape:n,keys:a}=this._getCached(),r=[];if(!(this._def.catchall instanceof ue&&"strip"===this._def.unknownKeys))for(const e in s.data)a.includes(e)||r.push(e);const i=[];for(const e of a){const t=n[e],a=s.data[e];i.push({key:{status:"valid",value:e},value:t._parse(new A(s,a,s.path,e)),alwaysSet:e in s.data})}if(this._def.catchall instanceof ue){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)i.push({key:{status:"valid",value:e},value:{status:"valid",value:s.data[e]}});else if("strict"===e)r.length>0&&(y(s,{code:h.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const n=s.data[t];i.push({key:{status:"valid",value:t},value:e._parse(new A(s,n,s.path,t)),alwaysSet:t in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of i){const s=await t.key,n=await t.value;e.push({key:s,value:n,alwaysSet:t.alwaysSet})}return e}).then(e=>_.mergeObjectSync(t,e)):_.mergeObjectSync(t,i)}get shape(){return this._def.shape()}strict(e){return f.errToObj,new me({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,s)=>{const n=this._def.errorMap?.(t,s).message??s.defaultError;return"unrecognized_keys"===t.code?{message:f.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new me({...this._def,unknownKeys:"strip"})}passthrough(){return new me({...this._def,unknownKeys:"passthrough"})}extend(e){return new me({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new me({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:qe.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new me({...this._def,catchall:e})}pick(e){const t={};for(const s of r.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new me({...this._def,shape:()=>t})}omit(e){const t={};for(const s of r.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new me({...this._def,shape:()=>t})}deepPartial(){return pe(this)}partial(e){const t={};for(const s of r.objectKeys(this.shape)){const n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}return new me({...this._def,shape:()=>t})}required(e){const t={};for(const s of r.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let e=this.shape[s];for(;e instanceof Oe;)e=e._def.innerType;t[s]=e}return new me({...this._def,shape:()=>t})}keyof(){return Ae(r.objectKeys(this.shape))}}me.create=(e,t)=>new me({shape:()=>e,unknownKeys:"strip",catchall:ue.create(),typeName:qe.ZodObject,...R(t)}),me.strictCreate=(e,t)=>new me({shape:()=>e,unknownKeys:"strict",catchall:ue.create(),typeName:qe.ZodObject,...R(t)}),me.lazycreate=(e,t)=>new me({shape:e,unknownKeys:"strip",catchall:ue.create(),typeName:qe.ZodObject,...R(t)});class ge extends C{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;if(t.common.async)return Promise.all(s.map(async e=>{const s={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:s}),ctx:s}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const s of e)if("dirty"===s.result.status)return t.common.issues.push(...s.ctx.common.issues),s.result;const s=e.map(e=>new p(e.ctx.common.issues));return y(t,{code:h.invalid_union,unionErrors:s}),v});{let e;const n=[];for(const a of s){const s={...t,common:{...t.common,issues:[]},parent:null},r=a._parseSync({data:t.data,path:t.path,parent:s});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:s}),s.common.issues.length&&n.push(s.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const a=n.map(e=>new p(e));return y(t,{code:h.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}}ge.create=(e,t)=>new ge({options:e,typeName:qe.ZodUnion,...R(t)});const fe=e=>e instanceof Se?fe(e.schema):e instanceof Ee?fe(e.innerType()):e instanceof Ie?[e.value]:e instanceof Te?e.options:e instanceof Re?r.objectValues(e.enum):e instanceof $e?fe(e._def.innerType):e instanceof ie?[void 0]:e instanceof oe?[null]:e instanceof Oe?[void 0,...fe(e.unwrap())]:e instanceof Ze?[null,...fe(e.unwrap())]:e instanceof Pe||e instanceof De?fe(e.unwrap()):e instanceof Ne?fe(e._def.innerType):[];class ye extends C{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.object)return y(t,{code:h.invalid_type,expected:u.object,received:t.parsedType}),v;const s=this.discriminator,n=t.data[s],a=this.optionsMap.get(n);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):(y(t,{code:h.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){const n=new Map;for(const s of t){const t=fe(s.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of t){if(n.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);n.set(a,s)}}return new ye({typeName:qe.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...R(s)})}}function _e(e,t){const s=l(e),n=l(t);if(e===t)return{valid:!0,data:e};if(s===u.object&&n===u.object){const s=r.objectKeys(t),n=r.objectKeys(e).filter(e=>-1!==s.indexOf(e)),a={...e,...t};for(const s of n){const n=_e(e[s],t[s]);if(!n.valid)return{valid:!1};a[s]=n.data}return{valid:!0,data:a}}if(s===u.array&&n===u.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let n=0;n<e.length;n++){const a=_e(e[n],t[n]);if(!a.valid)return{valid:!1};s.push(a.data)}return{valid:!0,data:s}}return s===u.date&&n===u.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}class ve extends C{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=(e,n)=>{if(b(e)||b(n))return v;const a=_e(e.value,n.value);return a.valid?((w(e)||w(n))&&t.dirty(),{status:t.value,value:a.data}):(y(s,{code:h.invalid_intersection_types}),v)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([e,t])=>n(e,t)):n(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}ve.create=(e,t,s)=>new ve({left:e,right:t,typeName:qe.ZodIntersection,...R(s)});class xe extends C{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==u.array)return y(s,{code:h.invalid_type,expected:u.array,received:s.parsedType}),v;if(s.data.length<this._def.items.length)return y(s,{code:h.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&s.data.length>this._def.items.length&&(y(s,{code:h.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const n=[...s.data].map((e,t)=>{const n=this._def.items[t]||this._def.rest;return n?n._parse(new A(s,e,s.path,t)):null}).filter(e=>!!e);return s.common.async?Promise.all(n).then(e=>_.mergeArray(t,e)):_.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new xe({...this._def,rest:e})}}xe.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xe({items:e,typeName:qe.ZodTuple,rest:null,...R(t)})};class ke extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==u.object)return y(s,{code:h.invalid_type,expected:u.object,received:s.parsedType}),v;const n=[],a=this._def.keyType,r=this._def.valueType;for(const e in s.data)n.push({key:a._parse(new A(s,e,s.path,e)),value:r._parse(new A(s,s.data[e],s.path,e)),alwaysSet:e in s.data});return s.common.async?_.mergeObjectAsync(t,n):_.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,s){return new ke(t instanceof C?{keyType:e,valueType:t,typeName:qe.ZodRecord,...R(s)}:{keyType:X.create(),valueType:e,typeName:qe.ZodRecord,...R(t)})}}class be extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==u.map)return y(s,{code:h.invalid_type,expected:u.map,received:s.parsedType}),v;const n=this._def.keyType,a=this._def.valueType,r=[...s.data.entries()].map(([e,t],r)=>({key:n._parse(new A(s,e,s.path,[r,"key"])),value:a._parse(new A(s,t,s.path,[r,"value"]))}));if(s.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const s of r){const n=await s.key,a=await s.value;if("aborted"===n.status||"aborted"===a.status)return v;"dirty"!==n.status&&"dirty"!==a.status||t.dirty(),e.set(n.value,a.value)}return{status:t.value,value:e}})}{const e=new Map;for(const s of r){const n=s.key,a=s.value;if("aborted"===n.status||"aborted"===a.status)return v;"dirty"!==n.status&&"dirty"!==a.status||t.dirty(),e.set(n.value,a.value)}return{status:t.value,value:e}}}}be.create=(e,t,s)=>new be({valueType:t,keyType:e,typeName:qe.ZodMap,...R(s)});class we extends C{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==u.set)return y(s,{code:h.invalid_type,expected:u.set,received:s.parsedType}),v;const n=this._def;null!==n.minSize&&s.data.size<n.minSize.value&&(y(s,{code:h.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),null!==n.maxSize&&s.data.size>n.maxSize.value&&(y(s,{code:h.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());const a=this._def.valueType;function r(e){const s=new Set;for(const n of e){if("aborted"===n.status)return v;"dirty"===n.status&&t.dirty(),s.add(n.value)}return{status:t.value,value:s}}const i=[...s.data.values()].map((e,t)=>a._parse(new A(s,e,s.path,t)));return s.common.async?Promise.all(i).then(e=>r(e)):r(i)}min(e,t){return new we({...this._def,minSize:{value:e,message:f.toString(t)}})}max(e,t){return new we({...this._def,maxSize:{value:e,message:f.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}we.create=(e,t)=>new we({valueType:e,minSize:null,maxSize:null,typeName:qe.ZodSet,...R(t)});class Se extends C{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Se.create=(e,t)=>new Se({getter:e,typeName:qe.ZodLazy,...R(t)});class Ie extends C{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return y(t,{received:t.data,code:h.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:e.data}}get value(){return this._def.value}}function Ae(e,t){return new Te({values:e,typeName:qe.ZodEnum,...R(t)})}Ie.create=(e,t)=>new Ie({value:e,typeName:qe.ZodLiteral,...R(t)});class Te extends C{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),s=this._def.values;return y(t,{expected:r.joinValues(s),received:t.parsedType,code:h.invalid_type}),v}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),s=this._def.values;return y(t,{received:t.data,code:h.invalid_enum_value,options:s}),v}return k(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Te.create(e,{...this._def,...t})}exclude(e,t=this._def){return Te.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Te.create=Ae;class Re extends C{_parse(e){const t=r.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==u.string&&s.parsedType!==u.number){const e=r.objectValues(t);return y(s,{expected:r.joinValues(e),received:s.parsedType,code:h.invalid_type}),v}if(this._cache||(this._cache=new Set(r.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=r.objectValues(t);return y(s,{received:s.data,code:h.invalid_enum_value,options:e}),v}return k(e.data)}get enum(){return this._def.values}}Re.create=(e,t)=>new Re({values:e,typeName:qe.ZodNativeEnum,...R(t)});class Ce extends C{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.promise&&!1===t.common.async)return y(t,{code:h.invalid_type,expected:u.promise,received:t.parsedType}),v;const s=t.parsedType===u.promise?t.data:Promise.resolve(t.data);return k(s.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Ce.create=(e,t)=>new Ce({type:e,typeName:qe.ZodPromise,...R(t)});class Ee extends C{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===qe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,a={addIssue:e=>{y(s,e),e.fatal?t.abort():t.dirty()},get path(){return s.path}};if(a.addIssue=a.addIssue.bind(a),"preprocess"===n.type){const e=n.transform(s.data,a);if(s.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return v;const n=await this._def.schema._parseAsync({data:e,path:s.path,parent:s});return"aborted"===n.status?v:"dirty"===n.status||"dirty"===t.value?x(n.value):n});{if("aborted"===t.value)return v;const n=this._def.schema._parseSync({data:e,path:s.path,parent:s});return"aborted"===n.status?v:"dirty"===n.status||"dirty"===t.value?x(n.value):n}}if("refinement"===n.type){const e=e=>{const t=n.refinement(e,a);if(s.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===s.common.async){const n=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return"aborted"===n.status?v:("dirty"===n.status&&t.dirty(),e(n.value),{status:t.value,value:n.value})}return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(s=>"aborted"===s.status?v:("dirty"===s.status&&t.dirty(),e(s.value).then(()=>({status:t.value,value:s.value}))))}if("transform"===n.type){if(!1===s.common.async){const e=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!S(e))return v;const r=n.transform(e.value,a);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(e=>S(e)?Promise.resolve(n.transform(e.value,a)).then(e=>({status:t.value,value:e})):v)}r.assertNever(n)}}Ee.create=(e,t,s)=>new Ee({schema:e,typeName:qe.ZodEffects,effect:t,...R(s)}),Ee.createWithPreprocess=(e,t,s)=>new Ee({schema:t,effect:{type:"preprocess",transform:e},typeName:qe.ZodEffects,...R(s)});class Oe extends C{_parse(e){return this._getType(e)===u.undefined?k(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Oe.create=(e,t)=>new Oe({innerType:e,typeName:qe.ZodOptional,...R(t)});class Ze extends C{_parse(e){return this._getType(e)===u.null?k(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Ze.create=(e,t)=>new Ze({innerType:e,typeName:qe.ZodNullable,...R(t)});class $e extends C{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===u.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$e.create=(e,t)=>new $e({innerType:e,typeName:qe.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...R(t)});class Ne extends C{_parse(e){const{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return I(n)?n.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new p(s.common.issues)},input:s.data})})):{status:"valid",value:"valid"===n.status?n.value:this._def.catchValue({get error(){return new p(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}Ne.create=(e,t)=>new Ne({innerType:e,typeName:qe.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...R(t)});class je extends C{_parse(e){if(this._getType(e)!==u.nan){const t=this._getOrReturnCtx(e);return y(t,{code:h.invalid_type,expected:u.nan,received:t.parsedType}),v}return{status:"valid",value:e.data}}}je.create=e=>new je({typeName:qe.ZodNaN,...R(e)}),Symbol("zod_brand");class Pe extends C{_parse(e){const{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}class Me extends C{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const e=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return"aborted"===e.status?v:"dirty"===e.status?(t.dirty(),x(e.value)):this._def.out._parseAsync({data:e.value,path:s.path,parent:s})})();{const e=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return"aborted"===e.status?v:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:s.path,parent:s})}}static create(e,t){return new Me({in:e,out:t,typeName:qe.ZodPipeline})}}class De extends C{_parse(e){const t=this._def.innerType._parse(e),s=e=>(S(e)&&(e.value=Object.freeze(e.value)),e);return I(t)?t.then(e=>s(e)):s(t)}unwrap(){return this._def.innerType}}var qe;De.create=(e,t)=>new De({innerType:e,typeName:qe.ZodReadonly,...R(t)}),me.lazycreate,function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(qe||(qe={}));const Fe=X.create,Le=te.create,ze=(je.create,se.create,ne.create),Ve=(ae.create,re.create,ie.create,oe.create,de.create,ce.create),Ke=(ue.create,le.create,he.create),Ue=me.create,Qe=(me.strictCreate,ge.create),Be=ye.create,We=(ve.create,xe.create,ke.create),He=(be.create,we.create,Se.create,Ie.create),Ge=Te.create,Je=(Re.create,Ce.create,Ee.create,Oe.create),Ye=(Ze.create,Ee.createWithPreprocess,Me.create,"2.0"),Xe=Qe([Fe(),Le().int()]),et=Fe(),tt=Ue({progressToken:Je(Xe)}).passthrough(),st=Ue({_meta:Je(tt)}).passthrough(),nt=Ue({method:Fe(),params:Je(st)}),at=Ue({_meta:Je(Ue({}).passthrough())}).passthrough(),rt=Ue({method:Fe(),params:Je(at)}),it=Ue({_meta:Je(Ue({}).passthrough())}).passthrough(),ot=Qe([Fe(),Le().int()]),dt=Ue({jsonrpc:He(Ye),id:ot}).merge(nt).strict(),ct=Ue({jsonrpc:He(Ye)}).merge(rt).strict(),ut=Ue({jsonrpc:He(Ye),id:ot,result:it}).strict();var lt;!function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError"}(lt||(lt={}));const ht=Qe([dt,ct,ut,Ue({jsonrpc:He(Ye),id:ot,error:Ue({code:Le().int(),message:Fe(),data:Je(Ve())})}).strict()]),pt=it.strict(),mt=rt.extend({method:He("notifications/cancelled"),params:at.extend({requestId:ot,reason:Fe().optional()})}),gt=Ue({name:Fe(),title:Je(Fe())}).passthrough(),ft=gt.extend({version:Fe()}),yt=Ue({experimental:Je(Ue({}).passthrough()),sampling:Je(Ue({}).passthrough()),elicitation:Je(Ue({}).passthrough()),roots:Je(Ue({listChanged:Je(ze())}).passthrough())}).passthrough(),_t=nt.extend({method:He("initialize"),params:st.extend({protocolVersion:Fe(),capabilities:yt,clientInfo:ft})}),vt=Ue({experimental:Je(Ue({}).passthrough()),logging:Je(Ue({}).passthrough()),completions:Je(Ue({}).passthrough()),prompts:Je(Ue({listChanged:Je(ze())}).passthrough()),resources:Je(Ue({subscribe:Je(ze()),listChanged:Je(ze())}).passthrough()),tools:Je(Ue({listChanged:Je(ze())}).passthrough())}).passthrough(),xt=it.extend({protocolVersion:Fe(),capabilities:vt,serverInfo:ft,instructions:Je(Fe())}),kt=rt.extend({method:He("notifications/initialized")}),bt=nt.extend({method:He("ping")}),wt=Ue({progress:Le(),total:Je(Le()),message:Je(Fe())}).passthrough(),St=rt.extend({method:He("notifications/progress"),params:at.merge(wt).extend({progressToken:Xe})}),It=nt.extend({params:st.extend({cursor:Je(et)}).optional()}),At=it.extend({nextCursor:Je(et)}),Tt=Ue({uri:Fe(),mimeType:Je(Fe()),_meta:Je(Ue({}).passthrough())}).passthrough(),Rt=Tt.extend({text:Fe()}),Ct=Fe().refine(e=>{try{return atob(e),!0}catch(e){return!1}},{message:"Invalid Base64 string"}),Et=Tt.extend({blob:Ct}),Ot=gt.extend({uri:Fe(),description:Je(Fe()),mimeType:Je(Fe()),_meta:Je(Ue({}).passthrough())}),Zt=gt.extend({uriTemplate:Fe(),description:Je(Fe()),mimeType:Je(Fe()),_meta:Je(Ue({}).passthrough())}),$t=It.extend({method:He("resources/list")}),Nt=At.extend({resources:Ke(Ot)}),jt=It.extend({method:He("resources/templates/list")}),Pt=At.extend({resourceTemplates:Ke(Zt)}),Mt=nt.extend({method:He("resources/read"),params:st.extend({uri:Fe()})}),Dt=it.extend({contents:Ke(Qe([Rt,Et]))}),qt=rt.extend({method:He("notifications/resources/list_changed")}),Ft=nt.extend({method:He("resources/subscribe"),params:st.extend({uri:Fe()})}),Lt=nt.extend({method:He("resources/unsubscribe"),params:st.extend({uri:Fe()})}),zt=rt.extend({method:He("notifications/resources/updated"),params:at.extend({uri:Fe()})}),Vt=Ue({name:Fe(),description:Je(Fe()),required:Je(ze())}).passthrough(),Kt=gt.extend({description:Je(Fe()),arguments:Je(Ke(Vt)),_meta:Je(Ue({}).passthrough())}),Ut=It.extend({method:He("prompts/list")}),Qt=At.extend({prompts:Ke(Kt)}),Bt=nt.extend({method:He("prompts/get"),params:st.extend({name:Fe(),arguments:Je(We(Fe()))})}),Wt=Ue({type:He("text"),text:Fe(),_meta:Je(Ue({}).passthrough())}).passthrough(),Ht=Ue({type:He("image"),data:Ct,mimeType:Fe(),_meta:Je(Ue({}).passthrough())}).passthrough(),Gt=Ue({type:He("audio"),data:Ct,mimeType:Fe(),_meta:Je(Ue({}).passthrough())}).passthrough(),Jt=Ue({type:He("resource"),resource:Qe([Rt,Et]),_meta:Je(Ue({}).passthrough())}).passthrough(),Yt=Qe([Wt,Ht,Gt,Ot.extend({type:He("resource_link")}),Jt]),Xt=Ue({role:Ge(["user","assistant"]),content:Yt}).passthrough(),es=it.extend({description:Je(Fe()),messages:Ke(Xt)}),ts=rt.extend({method:He("notifications/prompts/list_changed")}),ss=Ue({title:Je(Fe()),readOnlyHint:Je(ze()),destructiveHint:Je(ze()),idempotentHint:Je(ze()),openWorldHint:Je(ze())}).passthrough(),ns=gt.extend({description:Je(Fe()),inputSchema:Ue({type:He("object"),properties:Je(Ue({}).passthrough()),required:Je(Ke(Fe()))}).passthrough(),outputSchema:Je(Ue({type:He("object"),properties:Je(Ue({}).passthrough()),required:Je(Ke(Fe()))}).passthrough()),annotations:Je(ss),_meta:Je(Ue({}).passthrough())}),as=It.extend({method:He("tools/list")}),rs=At.extend({tools:Ke(ns)}),is=it.extend({content:Ke(Yt).default([]),structuredContent:Ue({}).passthrough().optional(),isError:Je(ze())}),os=(is.or(it.extend({toolResult:Ve()})),nt.extend({method:He("tools/call"),params:st.extend({name:Fe(),arguments:Je(We(Ve()))})})),ds=rt.extend({method:He("notifications/tools/list_changed")}),cs=Ge(["debug","info","notice","warning","error","critical","alert","emergency"]),us=nt.extend({method:He("logging/setLevel"),params:st.extend({level:cs})}),ls=rt.extend({method:He("notifications/message"),params:at.extend({level:cs,logger:Je(Fe()),data:Ve()})}),hs=Ue({name:Fe().optional()}).passthrough(),ps=Ue({hints:Je(Ke(hs)),costPriority:Je(Le().min(0).max(1)),speedPriority:Je(Le().min(0).max(1)),intelligencePriority:Je(Le().min(0).max(1))}).passthrough(),ms=Ue({role:Ge(["user","assistant"]),content:Qe([Wt,Ht,Gt])}).passthrough(),gs=nt.extend({method:He("sampling/createMessage"),params:st.extend({messages:Ke(ms),systemPrompt:Je(Fe()),includeContext:Je(Ge(["none","thisServer","allServers"])),temperature:Je(Le()),maxTokens:Le().int(),stopSequences:Je(Ke(Fe())),metadata:Je(Ue({}).passthrough()),modelPreferences:Je(ps)})}),fs=it.extend({model:Fe(),stopReason:Je(Ge(["endTurn","stopSequence","maxTokens"]).or(Fe())),role:Ge(["user","assistant"]),content:Be("type",[Wt,Ht,Gt])}),ys=Qe([Ue({type:He("boolean"),title:Je(Fe()),description:Je(Fe()),default:Je(ze())}).passthrough(),Ue({type:He("string"),title:Je(Fe()),description:Je(Fe()),minLength:Je(Le()),maxLength:Je(Le()),format:Je(Ge(["email","uri","date","date-time"]))}).passthrough(),Ue({type:Ge(["number","integer"]),title:Je(Fe()),description:Je(Fe()),minimum:Je(Le()),maximum:Je(Le())}).passthrough(),Ue({type:He("string"),title:Je(Fe()),description:Je(Fe()),enum:Ke(Fe()),enumNames:Je(Ke(Fe()))}).passthrough()]),_s=nt.extend({method:He("elicitation/create"),params:st.extend({message:Fe(),requestedSchema:Ue({type:He("object"),properties:We(Fe(),ys),required:Je(Ke(Fe()))}).passthrough()})}),vs=it.extend({action:Ge(["accept","decline","cancel"]),content:Je(We(Fe(),Ve()))}),xs=Ue({type:He("ref/resource"),uri:Fe()}).passthrough(),ks=Ue({type:He("ref/prompt"),name:Fe()}).passthrough(),bs=nt.extend({method:He("completion/complete"),params:st.extend({ref:Qe([ks,xs]),argument:Ue({name:Fe(),value:Fe()}).passthrough(),context:Je(Ue({arguments:Je(We(Fe(),Fe()))}))})}),ws=it.extend({completion:Ue({values:Ke(Fe()).max(100),total:Je(Le().int()),hasMore:Je(ze())}).passthrough()}),Ss=Ue({uri:Fe().startsWith("file://"),name:Je(Fe()),_meta:Je(Ue({}).passthrough())}).passthrough(),Is=nt.extend({method:He("roots/list")}),As=it.extend({roots:Ke(Ss)}),Ts=rt.extend({method:He("notifications/roots/list_changed")});Qe([bt,_t,bs,us,Bt,Ut,$t,jt,Mt,Ft,Lt,os,as]),Qe([mt,St,kt,Ts]),Qe([pt,fs,vs,As]),Qe([bt,gs,_s,Is]),Qe([mt,St,ls,zt,qt,ds,ts]),Qe([pt,xt,ws,es,Qt,Nt,Pt,Dt,is,rs]),Error;class Rs{sessionId;onmessage;onerror;onclose;_port;_started=!1;_closed=!1;constructor(e,t){if(!e)throw new Error("MessagePort is required");this._port=e,this.sessionId=t||this.generateId(),this._port.onmessage=e=>{try{const t=ht.parse(e.data);this.onmessage?.(t)}catch(e){const t=new Error(`Failed to parse message: ${e}`);this.onerror?.(t)}},this._port.onmessageerror=e=>{const t=new Error(`MessagePort error: ${JSON.stringify(e)}`);this.onerror?.(t)}}static generateSessionId(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,10)}`}async start(){if(this._started)throw new Error("BrowserContextTransport already started! If using Client or Server class, note that connect() calls start() automatically.");if(this._closed)throw new Error("Cannot start a closed BrowserContextTransport");this._started=!0,this._port.start()}async send(e){if(this._closed)throw new Error("Cannot send on a closed BrowserContextTransport");return new Promise((t,s)=>{try{this._port.postMessage(e),t()}catch(e){const t=e instanceof Error?e:new Error(String(e));this.onerror?.(t),s(t)}})}async close(){this._closed||(this._closed=!0,this._port.close(),this.onclose?.())}generateId(){return Rs.generateSessionId()}}class Cs{angieDetector;registrationQueue;clientManager;isInitialized=!1;instanceId;constructor(){this.instanceId=Math.random().toString(36).substring(2,8),console.log(`AngieMcpSdk: Constructor called - initializing SDK (Instance: ${this.instanceId})`),this.angieDetector=new o,this.registrationQueue=new d,this.clientManager=new c,console.log(`AngieMcpSdk: Setting up event handlers (Instance: ${this.instanceId})`),this.setupAngieReadyHandler(),this.setupServerInitHandler(),this.setupReRegistrationHandler(),console.log(`AngieMcpSdk: SDK initialization complete (Instance: ${this.instanceId})`)}setupReRegistrationHandler(){window.addEventListener("message",e=>{if(e.data?.type===a.SDK_ANGIE_REFRESH_PING)if(console.log(`AngieMcpSdk: Angie refresh ping received (Instance: ${this.instanceId})`),this.registrationQueue.resetAllToPending()){const e=this.registrationQueue.getPending().length;console.log(`AngieMcpSdk: Successfully reset ${e} registrations, processing queue (Instance: ${this.instanceId})`),this.handleAngieReady()}else console.log(`AngieMcpSdk: Skipping queue reset - processing already in progress (Instance: ${this.instanceId})`)})}setupAngieReadyHandler(){this.angieDetector.waitForReady().then(e=>{e.isReady?this.handleAngieReady():console.warn("AngieMcpSdk: Angie not detected - servers will remain queued")}).catch(e=>{console.error("AngieMcpSdk: Error waiting for Angie:",e)})}async handleAngieReady(){console.log(`AngieMcpSdk: Angie is ready, processing queued registrations (Instance: ${this.instanceId})`);try{await this.registrationQueue.processQueue(async e=>{console.log(`AngieMcpSdk: processQueue callback called for "${e.config.name}" (Instance: ${this.instanceId})`),await this.processRegistration(e)}),this.isInitialized=!0,console.log(`AngieMcpSdk: Initialization complete (Instance: ${this.instanceId})`)}catch(e){console.error(`AngieMcpSdk: Error processing registration queue (Instance: ${this.instanceId}):`,e)}}async processRegistration(e){console.log(`AngieMcpSdk: Processing registration for server "${e.config.name}" (ID: ${e.id}) (Instance: ${this.instanceId})`);try{console.log(`AngieMcpSdk: Calling clientManager.requestClientCreation for "${e.config.name}" (Instance: ${this.instanceId})`);const t={...e,instanceId:this.instanceId};await this.clientManager.requestClientCreation(t),console.log(`AngieMcpSdk: Successfully registered server "${e.config.name}" (Instance: ${this.instanceId})`)}catch(t){throw console.error(`AngieMcpSdk: Failed to register server "${e.config.name}" (Instance: ${this.instanceId}):`,t),t}}registerLocalServer(e){return e.type=n.LOCAL,e.transport=t.POST_MESSAGE,this.registerServer(e)}registerRemoteServer(e){return e.type=n.REMOTE,this.registerServer(e)}async registerServer(e){if(!e.type)return console.warn("AngieMcpSdk: for a local server, please use registerLocalServer instead of registerServer"),void this.registerLocalServer(e);if(console.log(`AngieMcpSdk: registerServer called for "${e.name}" (Instance: ${this.instanceId})`),!e.name)throw new Error("Server name is required");if(!e.description)throw new Error("Server description is required");if("type"in e&&"local"===e.type&&!e.server||!("type"in e)&&!e.server)throw new Error("Server instance is required");console.log(`AngieMcpSdk: Registering server "${e.name}" (Instance: ${this.instanceId})`);const t=this.registrationQueue.add(e);if(console.log(`AngieMcpSdk: Added registration to queue: ${t.id} (Instance: ${this.instanceId})`),this.angieDetector.isReady())try{await this.processRegistration(t),this.registrationQueue.updateStatus(t.id,"registered"),console.log(`AngieMcpSdk: Server "${e.name}" registered successfully (Instance: ${this.instanceId})`)}catch(e){const s=e instanceof Error?e.message:String(e);throw this.registrationQueue.updateStatus(t.id,"failed",s),e}else console.log(`AngieMcpSdk: Server "${e.name}" queued until Angie is ready (Instance: ${this.instanceId})`)}getRegistrations(){return this.registrationQueue.getAll()}getPendingRegistrations(){return this.registrationQueue.getPending()}isAngieReady(){return this.angieDetector.isReady()}isReady(){return this.isInitialized}async waitForReady(){if(!(await this.angieDetector.waitForReady()).isReady)throw new Error("Angie is not available");for(;!this.isInitialized;)await new Promise(e=>setTimeout(e,100))}destroy(){this.registrationQueue.clear(),console.log(`AngieMcpSdk: SDK destroyed (Instance: ${this.instanceId})`)}setupServerInitHandler(){window.addEventListener("message",e=>{e.data?.type===a.SDK_REQUEST_INIT_SERVER&&(console.log(`AngieMcpSdk: Server init request received (Instance: ${this.instanceId})`),this.handleServerInitRequest(e))})}handleServerInitRequest(e){const{clientId:t,serverId:s,instanceId:n}=e.data.payload||{};if(t&&s)if(console.log(`AngieMcpSdk: Server init request received - Request instanceId: ${n}, This instanceId: ${this.instanceId} (Instance: ${this.instanceId})`),n&&n!==this.instanceId)console.log(`AngieMcpSdk: Ignoring server init request for different instance. Request instanceId: ${n}, this instanceId: ${this.instanceId}`);else{console.log(`AngieMcpSdk: Handling server init request for clientId: ${t}, serverId: ${s} (Instance: ${this.instanceId})`);try{const t=this.registrationQueue.getAll().find(e=>e.id===s);if(!t)return void console.error(`AngieMcpSdk: No registration found for serverId: ${s} (Instance: ${this.instanceId})`);if("type"in t.config&&"remote"===t.config.type)return void console.log(`AngieMcpSdk: Remote server registration detected; skipping local connect (Instance: ${this.instanceId})`);const n=e.ports[0];if(!n)return void console.error(`AngieMcpSdk: No port provided in server init request (Instance: ${this.instanceId})`);const a=t.config.server,r=new Rs(n);a.connect(r),console.log(`AngieMcpSdk: Server "${t.config.name}" initialized successfully (Instance: ${this.instanceId})`)}catch(e){console.error(`AngieMcpSdk: Error initializing server for clientId ${t} (Instance: ${this.instanceId}):`,e)}}else console.error(`AngieMcpSdk: Invalid server init request - missing clientId or serverId (Instance: ${this.instanceId})`)}}export{o as AngieDetector,t as AngieLocalServerTransport,e as AngieMCPTransport,Cs as AngieMcpSdk,s as AngieRemoteServerTransport,n as AngieServerType,c as ClientManager,a as MessageEventType,d as RegistrationQueue};
1
+ var e,t,n,s,a,i,r,o,d;(function(e){e.POST_MESSAGE="postMessage"})(e||(e={})),function(e){e.POST_MESSAGE="postMessage"}(t||(t={})),function(e){e.STREAMABLE_HTTP="streamableHttp",e.SSE="sse"}(n||(n={})),function(e){e.LOCAL="local",e.REMOTE="remote"}(s||(s={})),function(e){e.SDK_ANGIE_READY_PING="sdk-angie-ready-ping",e.SDK_ANGIE_REFRESH_PING="sdk-angie-refresh-ping",e.SDK_REQUEST_CLIENT_CREATION="sdk-request-client-creation",e.SDK_REQUEST_INIT_SERVER="sdk-request-init-server",e.SDK_TRIGGER_ANGIE="sdk-trigger-angie",e.SDK_TRIGGER_ANGIE_RESPONSE="sdk-trigger-angie-response"}(a||(a={})),function(e){e.SET="ANGIE_SET_LOCALSTORAGE",e.GET="ANGIE_GET_LOCALSTORAGE"}(i||(i={})),function(e){e.RESET_HASH="reset-hash",e.HOST_READY="host/ready",e.ANGIE_LOADED="angie/loaded",e.ANGIE_READY="angie/ready"}(r||(r={}));class c{isAngieReady=!1;readyPromise;readyResolve;constructor(){if(this.readyPromise=new Promise(e=>{this.readyResolve=e}),"undefined"==typeof window)return;let e=0;const t=()=>{if(this.isAngieReady||e>=500)return void(!this.isAngieReady&&e>=500&&this.handleDetectionTimeout());const n=new MessageChannel;n.port1.onmessage=e=>{this.handleAngieReady(e.data),n.port1.close(),n.port2.close()};const s={type:a.SDK_ANGIE_READY_PING,timestamp:Date.now()};window.postMessage(s,window.location.origin,[n.port2]),e++,setTimeout(t,500)};t()}handleAngieReady(e){this.isAngieReady=!0;const t={isReady:!0,version:e.version,capabilities:e.capabilities};this.readyResolve&&this.readyResolve(t)}handleDetectionTimeout(){this.readyResolve&&this.readyResolve({isReady:!1}),console.warn("AngieMcpSdk: AngieDetector: Detection timeout - Angie may not be available")}isReady(){return this.isAngieReady}async waitForReady(){return this.readyPromise}}class u{queue=[];isProcessing=!1;add(e){const t={id:this.generateId(e),config:e,timestamp:Date.now(),status:"pending"};return this.queue.push(t),console.log(`RegistrationQueue: Added server "${e.name}" to queue`),t}getAll(){return[...this.queue]}getPending(){return this.queue.filter(e=>"pending"===e.status)}updateStatus(e,t,n){const s=this.queue.find(t=>t.id===e);s&&(s.status=t,n?s.error=n:"pending"!==t&&"registered"!==t||delete s.error,console.log(`RegistrationQueue: Updated server ${e} status to ${t}`))}async processQueue(e){if(this.isProcessing)return void console.log("RegistrationQueue: Already processing queue");this.isProcessing=!0;const t=this.getPending();console.log(`RegistrationQueue: Processing ${t.length} pending registrations`);try{for(const n of t)try{await e(n),this.updateStatus(n.id,"registered")}catch(e){const t=e instanceof Error?e.message:String(e);this.updateStatus(n.id,"failed",t),console.error(`RegistrationQueue: Failed to process registration ${n.id}:`,t)}}finally{this.isProcessing=!1}}clear(){this.queue=[],console.log("RegistrationQueue: Cleared all registrations")}resetAllToPending(){if(this.isProcessing)return console.log("RegistrationQueue: Cannot reset to pending - processing in progress"),!1;const e=this.queue.filter(e=>"registered"===e.status).length,t=this.queue.filter(e=>"failed"===e.status).length;return this.queue.forEach(e=>{"pending"!==e.status&&(e.status="pending",delete e.error)}),console.log(`RegistrationQueue: Reset ${e+t} registrations to pending`),!0}remove(e){const t=this.queue.findIndex(t=>t.id===e);return-1!==t&&(this.queue.splice(t,1),console.log(`RegistrationQueue: Removed registration ${e}`),!0)}generateId(e){return`reg_${e.name}_${e.version}_${Date.now()}`}}class l{async requestClientCreation(e){const{config:n}=e,s={serverId:e.id,serverName:n.name,serverVersion:n.version,description:n.description,transport:n.transport||t.POST_MESSAGE,capabilities:n.capabilities,instanceId:e.instanceId};return"type"in n&&"remote"===n.type&&(s.remote={url:n.url}),new Promise((e,t)=>{const n=new MessageChannel,i=setTimeout(()=>{t(new Error("Client creation request timed out after 15000ms"))},15e3);n.port1.onmessage=t=>{clearTimeout(i),e(t.data)};const r={type:a.SDK_REQUEST_CLIENT_CREATION,payload:s,timestamp:Date.now()};window.postMessage(r,window.location.origin,[n.port2])})}}!function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),s={};for(const e of n)s[e]=t[e];return e.objectValues(s)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(o||(o={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(d||(d={}));const h=o.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),p=e=>{switch(typeof e){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(e)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":return Array.isArray(e)?h.array:null===e?h.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?h.promise:"undefined"!=typeof Map&&e instanceof Map?h.map:"undefined"!=typeof Set&&e instanceof Set?h.set:"undefined"!=typeof Date&&e instanceof Date?h.date:h.object;default:return h.unknown}},g=o.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class m extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},s=e=>{for(const a of e.issues)if("invalid_union"===a.code)a.unionErrors.map(s);else if("invalid_return_type"===a.code)s(a.returnTypeError);else if("invalid_arguments"===a.code)s(a.argumentsError);else if(0===a.path.length)n._errors.push(t(a));else{let e=n,s=0;for(;s<a.path.length;){const n=a.path[s];s===a.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(a))):e[n]=e[n]||{_errors:[]},e=e[n],s++}}};return s(this),n}static assert(e){if(!(e instanceof m))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,o.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const s of this.issues)if(s.path.length>0){const n=s.path[0];t[n]=t[n]||[],t[n].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}m.create=e=>new m(e);const f=(e,t)=>{let n;switch(e.code){case g.invalid_type:n=e.received===h.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,o.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${o.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${o.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${o.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:o.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case g.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case g.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,o.assertNever(e)}return{message:n}};let y=f;var _;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(_||(_={}));function v(e,t){const n=y,s=(e=>{const{data:t,path:n,errorMaps:s,issueData:a}=e,i=[...n,...a.path||[]],r={...a,path:i};if(void 0!==a.message)return{...a,path:i,message:a.message};let o="";const d=s.filter(e=>!!e).slice().reverse();for(const e of d)o=e(r,{data:t,defaultError:o}).message;return{...a,path:i,message:o}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===f?void 0:f].filter(e=>!!e)});e.common.issues.push(s)}class w{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if("aborted"===s.status)return b;"dirty"===s.status&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,s=await e.value;n.push({key:t,value:s})}return w.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:t,value:a}=s;if("aborted"===t.status)return b;if("aborted"===a.status)return b;"dirty"===t.status&&e.dirty(),"dirty"===a.status&&e.dirty(),"__proto__"===t.value||void 0===a.value&&!s.alwaysSet||(n[t.value]=a.value)}return{status:e.value,value:n}}}const b=Object.freeze({status:"aborted"}),x=e=>({status:"dirty",value:e}),k=e=>({status:"valid",value:e}),S=e=>"aborted"===e.status,I=e=>"dirty"===e.status,A=e=>"valid"===e.status,E=e=>"undefined"!=typeof Promise&&e instanceof Promise;class T{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const R=(e,t)=>{if(A(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new m(e.common.issues);return this._error=t,this._error}}};function O(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:s,description:a}=e;if(t&&(n||s))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:a}:{errorMap:(t,a)=>{const{message:i}=e;return"invalid_enum_value"===t.code?{message:i??a.defaultError}:void 0===a.data?{message:i??s??a.defaultError}:"invalid_type"!==t.code?{message:a.defaultError}:{message:i??n??a.defaultError}},description:a}}class C{get description(){return this._def.description}_getType(e){return p(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:p(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new w,ctx:{common:e.parent.common,data:e.data,parsedType:p(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(E(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:p(e)},s=this._parseSync({data:e,path:n.path,parent:n});return R(n,s)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:p(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return A(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>A(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:p(e)},s=this._parse({data:e,path:n.path,parent:n}),a=await(E(s)?s:Promise.resolve(s));return R(n,a)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,s)=>{const a=e(t),i=()=>s.addIssue({code:g.custom,...n(t)});return"undefined"!=typeof Promise&&a instanceof Promise?a.then(e=>!!e||(i(),!1)):!!a||(i(),!1)})}refinement(e,t){return this._refinement((n,s)=>!!e(n)||(s.addIssue("function"==typeof t?t(n,s):t),!1))}_refinement(e){return new Ne({schema:this,typeName:Ue.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Pe.create(this,this._def)}nullable(){return $e.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ge.create(this)}promise(){return Ce.create(this,this._def)}or(e){return ye.create([this,e],this._def)}and(e){return be.create(this,e,this._def)}transform(e){return new Ne({...O(this._def),schema:this,typeName:Ue.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new Le({...O(this._def),innerType:this,defaultValue:t,typeName:Ue.ZodDefault})}brand(){return new De({typeName:Ue.ZodBranded,type:this,...O(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Ze({...O(this._def),innerType:this,catchValue:t,typeName:Ue.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return je.create(this,e)}readonly(){return Ge.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const N=/^c[^\s-]{8,}$/i,P=/^[0-9a-z]+$/,$=/^[0-9A-HJKMNP-TV-Z]{26}$/i,L=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Z=/^[a-z0-9_-]{21}$/i,M=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,D=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,j=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let G;const U=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,q=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,F=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,z=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,K=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,V=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",H=new RegExp(`^${B}$`);function W(e){let t="[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function Q(e){return new RegExp(`^${W(e)}$`)}function Y(e){let t=`${B}T${W(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function X(e,t){return!("v4"!==t&&t||!U.test(e))||!("v6"!==t&&t||!F.test(e))}function J(e,t){if(!M.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const s=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(s));return!("object"!=typeof a||null===a||"typ"in a&&"JWT"!==a?.typ||!a.alg||t&&a.alg!==t)}catch{return!1}}function ee(e,t){return!("v4"!==t&&t||!q.test(e))||!("v6"!==t&&t||!z.test(e))}class te extends C{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==h.string){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.string,received:t.parsedType}),b}const t=new w;let n;for(const s of this._def.checks)if("min"===s.kind)e.data.length<s.value&&(n=this._getOrReturnCtx(e,n),v(n,{code:g.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),t.dirty());else if("max"===s.kind)e.data.length>s.value&&(n=this._getOrReturnCtx(e,n),v(n,{code:g.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),t.dirty());else if("length"===s.kind){const a=e.data.length>s.value,i=e.data.length<s.value;(a||i)&&(n=this._getOrReturnCtx(e,n),a?v(n,{code:g.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):i&&v(n,{code:g.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),t.dirty())}else if("email"===s.kind)j.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"email",code:g.invalid_string,message:s.message}),t.dirty());else if("emoji"===s.kind)G||(G=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),G.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"emoji",code:g.invalid_string,message:s.message}),t.dirty());else if("uuid"===s.kind)L.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"uuid",code:g.invalid_string,message:s.message}),t.dirty());else if("nanoid"===s.kind)Z.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"nanoid",code:g.invalid_string,message:s.message}),t.dirty());else if("cuid"===s.kind)N.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"cuid",code:g.invalid_string,message:s.message}),t.dirty());else if("cuid2"===s.kind)P.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"cuid2",code:g.invalid_string,message:s.message}),t.dirty());else if("ulid"===s.kind)$.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"ulid",code:g.invalid_string,message:s.message}),t.dirty());else if("url"===s.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),v(n,{validation:"url",code:g.invalid_string,message:s.message}),t.dirty()}else"regex"===s.kind?(s.regex.lastIndex=0,s.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"regex",code:g.invalid_string,message:s.message}),t.dirty())):"trim"===s.kind?e.data=e.data.trim():"includes"===s.kind?e.data.includes(s.value,s.position)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),t.dirty()):"toLowerCase"===s.kind?e.data=e.data.toLowerCase():"toUpperCase"===s.kind?e.data=e.data.toUpperCase():"startsWith"===s.kind?e.data.startsWith(s.value)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:{startsWith:s.value},message:s.message}),t.dirty()):"endsWith"===s.kind?e.data.endsWith(s.value)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:{endsWith:s.value},message:s.message}),t.dirty()):"datetime"===s.kind?Y(s).test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:"datetime",message:s.message}),t.dirty()):"date"===s.kind?H.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:"date",message:s.message}),t.dirty()):"time"===s.kind?Q(s).test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{code:g.invalid_string,validation:"time",message:s.message}),t.dirty()):"duration"===s.kind?D.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"duration",code:g.invalid_string,message:s.message}),t.dirty()):"ip"===s.kind?X(e.data,s.version)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"ip",code:g.invalid_string,message:s.message}),t.dirty()):"jwt"===s.kind?J(e.data,s.alg)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"jwt",code:g.invalid_string,message:s.message}),t.dirty()):"cidr"===s.kind?ee(e.data,s.version)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"cidr",code:g.invalid_string,message:s.message}),t.dirty()):"base64"===s.kind?K.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"base64",code:g.invalid_string,message:s.message}),t.dirty()):"base64url"===s.kind?V.test(e.data)||(n=this._getOrReturnCtx(e,n),v(n,{validation:"base64url",code:g.invalid_string,message:s.message}),t.dirty()):o.assertNever(s);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:g.invalid_string,..._.errToObj(n)})}_addCheck(e){return new te({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",..._.errToObj(e)})}url(e){return this._addCheck({kind:"url",..._.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",..._.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",..._.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",..._.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",..._.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",..._.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",..._.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",..._.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",..._.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",..._.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",..._.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",..._.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,..._.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,..._.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",..._.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,..._.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,..._.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,..._.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,..._.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,..._.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,..._.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,..._.errToObj(t)})}nonempty(e){return this.min(1,_.errToObj(e))}trim(){return new te({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new te({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new te({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function ne(e,t){const n=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,a=n>s?n:s;return Number.parseInt(e.toFixed(a).replace(".",""))%Number.parseInt(t.toFixed(a).replace(".",""))/10**a}te.create=e=>new te({checks:[],typeName:Ue.ZodString,coerce:e?.coerce??!1,...O(e)});class se extends C{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==h.number){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.number,received:t.parsedType}),b}let t;const n=new w;for(const s of this._def.checks)"int"===s.kind?o.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),v(t,{code:g.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):"min"===s.kind?(s.inclusive?e.data<s.value:e.data<=s.value)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):"max"===s.kind?(s.inclusive?e.data>s.value:e.data>=s.value)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):"multipleOf"===s.kind?0!==ne(e.data,s.value)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):"finite"===s.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),v(t,{code:g.not_finite,message:s.message}),n.dirty()):o.assertNever(s);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,_.toString(t))}gt(e,t){return this.setLimit("min",e,!1,_.toString(t))}lte(e,t){return this.setLimit("max",e,!0,_.toString(t))}lt(e,t){return this.setLimit("max",e,!1,_.toString(t))}setLimit(e,t,n,s){return new se({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:_.toString(s)}]})}_addCheck(e){return new se({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:_.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:_.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:_.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:_.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:_.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:_.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:_.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:_.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:_.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&o.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}se.create=e=>new se({checks:[],typeName:Ue.ZodNumber,coerce:e?.coerce||!1,...O(e)});class ae extends C{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==h.bigint)return this._getInvalidInput(e);let t;const n=new w;for(const s of this._def.checks)"min"===s.kind?(s.inclusive?e.data<s.value:e.data<=s.value)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):"max"===s.kind?(s.inclusive?e.data>s.value:e.data>=s.value)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):"multipleOf"===s.kind?e.data%s.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),v(t,{code:g.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):o.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.bigint,received:t.parsedType}),b}gte(e,t){return this.setLimit("min",e,!0,_.toString(t))}gt(e,t){return this.setLimit("min",e,!1,_.toString(t))}lte(e,t){return this.setLimit("max",e,!0,_.toString(t))}lt(e,t){return this.setLimit("max",e,!1,_.toString(t))}setLimit(e,t,n,s){return new ae({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:_.toString(s)}]})}_addCheck(e){return new ae({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:_.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:_.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:_.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:_.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:_.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}ae.create=e=>new ae({checks:[],typeName:Ue.ZodBigInt,coerce:e?.coerce??!1,...O(e)});class ie extends C{_parse(e){if(this._def.coerce&&(e.data=Boolean(e.data)),this._getType(e)!==h.boolean){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.boolean,received:t.parsedType}),b}return k(e.data)}}ie.create=e=>new ie({typeName:Ue.ZodBoolean,coerce:e?.coerce||!1,...O(e)});class re extends C{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==h.date){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.date,received:t.parsedType}),b}if(Number.isNaN(e.data.getTime()))return v(this._getOrReturnCtx(e),{code:g.invalid_date}),b;const t=new w;let n;for(const s of this._def.checks)"min"===s.kind?e.data.getTime()<s.value&&(n=this._getOrReturnCtx(e,n),v(n,{code:g.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),t.dirty()):"max"===s.kind?e.data.getTime()>s.value&&(n=this._getOrReturnCtx(e,n),v(n,{code:g.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),t.dirty()):o.assertNever(s);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new re({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:_.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:_.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}re.create=e=>new re({checks:[],coerce:e?.coerce||!1,typeName:Ue.ZodDate,...O(e)});class oe extends C{_parse(e){if(this._getType(e)!==h.symbol){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.symbol,received:t.parsedType}),b}return k(e.data)}}oe.create=e=>new oe({typeName:Ue.ZodSymbol,...O(e)});class de extends C{_parse(e){if(this._getType(e)!==h.undefined){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.undefined,received:t.parsedType}),b}return k(e.data)}}de.create=e=>new de({typeName:Ue.ZodUndefined,...O(e)});class ce extends C{_parse(e){if(this._getType(e)!==h.null){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.null,received:t.parsedType}),b}return k(e.data)}}ce.create=e=>new ce({typeName:Ue.ZodNull,...O(e)});class ue extends C{constructor(){super(...arguments),this._any=!0}_parse(e){return k(e.data)}}ue.create=e=>new ue({typeName:Ue.ZodAny,...O(e)});class le extends C{constructor(){super(...arguments),this._unknown=!0}_parse(e){return k(e.data)}}le.create=e=>new le({typeName:Ue.ZodUnknown,...O(e)});class he extends C{_parse(e){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.never,received:t.parsedType}),b}}he.create=e=>new he({typeName:Ue.ZodNever,...O(e)});class pe extends C{_parse(e){if(this._getType(e)!==h.undefined){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.void,received:t.parsedType}),b}return k(e.data)}}pe.create=e=>new pe({typeName:Ue.ZodVoid,...O(e)});class ge extends C{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==h.array)return v(t,{code:g.invalid_type,expected:h.array,received:t.parsedType}),b;if(null!==s.exactLength){const e=t.data.length>s.exactLength.value,a=t.data.length<s.exactLength.value;(e||a)&&(v(t,{code:e?g.too_big:g.too_small,minimum:a?s.exactLength.value:void 0,maximum:e?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(null!==s.minLength&&t.data.length<s.minLength.value&&(v(t,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),null!==s.maxLength&&t.data.length>s.maxLength.value&&(v(t,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>s.type._parseAsync(new T(t,e,t.path,n)))).then(e=>w.mergeArray(n,e));const a=[...t.data].map((e,n)=>s.type._parseSync(new T(t,e,t.path,n)));return w.mergeArray(n,a)}get element(){return this._def.type}min(e,t){return new ge({...this._def,minLength:{value:e,message:_.toString(t)}})}max(e,t){return new ge({...this._def,maxLength:{value:e,message:_.toString(t)}})}length(e,t){return new ge({...this._def,exactLength:{value:e,message:_.toString(t)}})}nonempty(e){return this.min(1,e)}}function me(e){if(e instanceof fe){const t={};for(const n in e.shape){const s=e.shape[n];t[n]=Pe.create(me(s))}return new fe({...e._def,shape:()=>t})}return e instanceof ge?new ge({...e._def,type:me(e.element)}):e instanceof Pe?Pe.create(me(e.unwrap())):e instanceof $e?$e.create(me(e.unwrap())):e instanceof xe?xe.create(e.items.map(e=>me(e))):e}ge.create=(e,t)=>new ge({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Ue.ZodArray,...O(t)});class fe extends C{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=o.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==h.object){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.object,received:t.parsedType}),b}const{status:t,ctx:n}=this._processInputParams(e),{shape:s,keys:a}=this._getCached(),i=[];if(!(this._def.catchall instanceof he&&"strip"===this._def.unknownKeys))for(const e in n.data)a.includes(e)||i.push(e);const r=[];for(const e of a){const t=s[e],a=n.data[e];r.push({key:{status:"valid",value:e},value:t._parse(new T(n,a,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof he){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of i)r.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)i.length>0&&(v(n,{code:g.unrecognized_keys,keys:i}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of i){const s=n.data[t];r.push({key:{status:"valid",value:t},value:e._parse(new T(n,s,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of r){const n=await t.key,s=await t.value;e.push({key:n,value:s,alwaysSet:t.alwaysSet})}return e}).then(e=>w.mergeObjectSync(t,e)):w.mergeObjectSync(t,r)}get shape(){return this._def.shape()}strict(e){return _.errToObj,new fe({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{const s=this._def.errorMap?.(t,n).message??n.defaultError;return"unrecognized_keys"===t.code?{message:_.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new fe({...this._def,unknownKeys:"strip"})}passthrough(){return new fe({...this._def,unknownKeys:"passthrough"})}extend(e){return new fe({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new fe({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Ue.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new fe({...this._def,catchall:e})}pick(e){const t={};for(const n of o.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new fe({...this._def,shape:()=>t})}omit(e){const t={};for(const n of o.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new fe({...this._def,shape:()=>t})}deepPartial(){return me(this)}partial(e){const t={};for(const n of o.objectKeys(this.shape)){const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}return new fe({...this._def,shape:()=>t})}required(e){const t={};for(const n of o.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Pe;)e=e._def.innerType;t[n]=e}return new fe({...this._def,shape:()=>t})}keyof(){return Te(o.objectKeys(this.shape))}}fe.create=(e,t)=>new fe({shape:()=>e,unknownKeys:"strip",catchall:he.create(),typeName:Ue.ZodObject,...O(t)}),fe.strictCreate=(e,t)=>new fe({shape:()=>e,unknownKeys:"strict",catchall:he.create(),typeName:Ue.ZodObject,...O(t)}),fe.lazycreate=(e,t)=>new fe({shape:e,unknownKeys:"strip",catchall:he.create(),typeName:Ue.ZodObject,...O(t)});class ye extends C{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map(e=>new m(e.ctx.common.issues));return v(t,{code:g.invalid_union,unionErrors:n}),b});{let e;const s=[];for(const a of n){const n={...t,common:{...t.common,issues:[]},parent:null},i=a._parseSync({data:t.data,path:t.path,parent:n});if("valid"===i.status)return i;"dirty"!==i.status||e||(e={result:i,ctx:n}),n.common.issues.length&&s.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const a=s.map(e=>new m(e));return v(t,{code:g.invalid_union,unionErrors:a}),b}}get options(){return this._def.options}}ye.create=(e,t)=>new ye({options:e,typeName:Ue.ZodUnion,...O(t)});const _e=e=>e instanceof Ae?_e(e.schema):e instanceof Ne?_e(e.innerType()):e instanceof Ee?[e.value]:e instanceof Re?e.options:e instanceof Oe?o.objectValues(e.enum):e instanceof Le?_e(e._def.innerType):e instanceof de?[void 0]:e instanceof ce?[null]:e instanceof Pe?[void 0,..._e(e.unwrap())]:e instanceof $e?[null,..._e(e.unwrap())]:e instanceof De||e instanceof Ge?_e(e.unwrap()):e instanceof Ze?_e(e._def.innerType):[];class ve extends C{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==h.object)return v(t,{code:g.invalid_type,expected:h.object,received:t.parsedType}),b;const n=this.discriminator,s=t.data[n],a=this.optionsMap.get(s);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):(v(t,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),b)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const s=new Map;for(const n of t){const t=_e(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of t){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,n)}}return new ve({typeName:Ue.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...O(n)})}}function we(e,t){const n=p(e),s=p(t);if(e===t)return{valid:!0,data:e};if(n===h.object&&s===h.object){const n=o.objectKeys(t),s=o.objectKeys(e).filter(e=>-1!==n.indexOf(e)),a={...e,...t};for(const n of s){const s=we(e[n],t[n]);if(!s.valid)return{valid:!1};a[n]=s.data}return{valid:!0,data:a}}if(n===h.array&&s===h.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let s=0;s<e.length;s++){const a=we(e[s],t[s]);if(!a.valid)return{valid:!1};n.push(a.data)}return{valid:!0,data:n}}return n===h.date&&s===h.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}class be extends C{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=(e,s)=>{if(S(e)||S(s))return b;const a=we(e.value,s.value);return a.valid?((I(e)||I(s))&&t.dirty(),{status:t.value,value:a.data}):(v(n,{code:g.invalid_intersection_types}),b)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>s(e,t)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}be.create=(e,t,n)=>new be({left:e,right:t,typeName:Ue.ZodIntersection,...O(n)});class xe extends C{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==h.array)return v(n,{code:g.invalid_type,expected:h.array,received:n.parsedType}),b;if(n.data.length<this._def.items.length)return v(n,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),b;!this._def.rest&&n.data.length>this._def.items.length&&(v(n,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const s=[...n.data].map((e,t)=>{const s=this._def.items[t]||this._def.rest;return s?s._parse(new T(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(s).then(e=>w.mergeArray(t,e)):w.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new xe({...this._def,rest:e})}}xe.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xe({items:e,typeName:Ue.ZodTuple,rest:null,...O(t)})};class ke extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==h.object)return v(n,{code:g.invalid_type,expected:h.object,received:n.parsedType}),b;const s=[],a=this._def.keyType,i=this._def.valueType;for(const e in n.data)s.push({key:a._parse(new T(n,e,n.path,e)),value:i._parse(new T(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?w.mergeObjectAsync(t,s):w.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return new ke(t instanceof C?{keyType:e,valueType:t,typeName:Ue.ZodRecord,...O(n)}:{keyType:te.create(),valueType:e,typeName:Ue.ZodRecord,...O(t)})}}class Se extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==h.map)return v(n,{code:g.invalid_type,expected:h.map,received:n.parsedType}),b;const s=this._def.keyType,a=this._def.valueType,i=[...n.data.entries()].map(([e,t],i)=>({key:s._parse(new T(n,e,n.path,[i,"key"])),value:a._parse(new T(n,t,n.path,[i,"value"]))}));if(n.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const n of i){const s=await n.key,a=await n.value;if("aborted"===s.status||"aborted"===a.status)return b;"dirty"!==s.status&&"dirty"!==a.status||t.dirty(),e.set(s.value,a.value)}return{status:t.value,value:e}})}{const e=new Map;for(const n of i){const s=n.key,a=n.value;if("aborted"===s.status||"aborted"===a.status)return b;"dirty"!==s.status&&"dirty"!==a.status||t.dirty(),e.set(s.value,a.value)}return{status:t.value,value:e}}}}Se.create=(e,t,n)=>new Se({valueType:t,keyType:e,typeName:Ue.ZodMap,...O(n)});class Ie extends C{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==h.set)return v(n,{code:g.invalid_type,expected:h.set,received:n.parsedType}),b;const s=this._def;null!==s.minSize&&n.data.size<s.minSize.value&&(v(n,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),t.dirty()),null!==s.maxSize&&n.data.size>s.maxSize.value&&(v(n,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const a=this._def.valueType;function i(e){const n=new Set;for(const s of e){if("aborted"===s.status)return b;"dirty"===s.status&&t.dirty(),n.add(s.value)}return{status:t.value,value:n}}const r=[...n.data.values()].map((e,t)=>a._parse(new T(n,e,n.path,t)));return n.common.async?Promise.all(r).then(e=>i(e)):i(r)}min(e,t){return new Ie({...this._def,minSize:{value:e,message:_.toString(t)}})}max(e,t){return new Ie({...this._def,maxSize:{value:e,message:_.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}Ie.create=(e,t)=>new Ie({valueType:e,minSize:null,maxSize:null,typeName:Ue.ZodSet,...O(t)});class Ae extends C{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}Ae.create=(e,t)=>new Ae({getter:e,typeName:Ue.ZodLazy,...O(t)});class Ee extends C{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return v(t,{received:t.data,code:g.invalid_literal,expected:this._def.value}),b}return{status:"valid",value:e.data}}get value(){return this._def.value}}function Te(e,t){return new Re({values:e,typeName:Ue.ZodEnum,...O(t)})}Ee.create=(e,t)=>new Ee({value:e,typeName:Ue.ZodLiteral,...O(t)});class Re extends C{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return v(t,{expected:o.joinValues(n),received:t.parsedType,code:g.invalid_type}),b}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return v(t,{received:t.data,code:g.invalid_enum_value,options:n}),b}return k(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Re.create(e,{...this._def,...t})}exclude(e,t=this._def){return Re.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Re.create=Te;class Oe extends C{_parse(e){const t=o.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==h.string&&n.parsedType!==h.number){const e=o.objectValues(t);return v(n,{expected:o.joinValues(e),received:n.parsedType,code:g.invalid_type}),b}if(this._cache||(this._cache=new Set(o.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=o.objectValues(t);return v(n,{received:n.data,code:g.invalid_enum_value,options:e}),b}return k(e.data)}get enum(){return this._def.values}}Oe.create=(e,t)=>new Oe({values:e,typeName:Ue.ZodNativeEnum,...O(t)});class Ce extends C{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==h.promise&&!1===t.common.async)return v(t,{code:g.invalid_type,expected:h.promise,received:t.parsedType}),b;const n=t.parsedType===h.promise?t.data:Promise.resolve(t.data);return k(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Ce.create=(e,t)=>new Ce({type:e,typeName:Ue.ZodPromise,...O(t)});class Ne extends C{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Ue.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,a={addIssue:e=>{v(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),"preprocess"===s.type){const e=s.transform(n.data,a);if(n.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return b;const s=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===s.status?b:"dirty"===s.status||"dirty"===t.value?x(s.value):s});{if("aborted"===t.value)return b;const s=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===s.status?b:"dirty"===s.status||"dirty"===t.value?x(s.value):s}}if("refinement"===s.type){const e=e=>{const t=s.refinement(e,a);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===s.status?b:("dirty"===s.status&&t.dirty(),e(s.value),{status:t.value,value:s.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>"aborted"===n.status?b:("dirty"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if("transform"===s.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!A(e))return b;const i=s.transform(e.value,a);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:i}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>A(e)?Promise.resolve(s.transform(e.value,a)).then(e=>({status:t.value,value:e})):b)}o.assertNever(s)}}Ne.create=(e,t,n)=>new Ne({schema:e,typeName:Ue.ZodEffects,effect:t,...O(n)}),Ne.createWithPreprocess=(e,t,n)=>new Ne({schema:t,effect:{type:"preprocess",transform:e},typeName:Ue.ZodEffects,...O(n)});class Pe extends C{_parse(e){return this._getType(e)===h.undefined?k(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Pe.create=(e,t)=>new Pe({innerType:e,typeName:Ue.ZodOptional,...O(t)});class $e extends C{_parse(e){return this._getType(e)===h.null?k(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}$e.create=(e,t)=>new $e({innerType:e,typeName:Ue.ZodNullable,...O(t)});class Le extends C{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===h.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Le.create=(e,t)=>new Le({innerType:e,typeName:Ue.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...O(t)});class Ze extends C{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return E(s)?s.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new m(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===s.status?s.value:this._def.catchValue({get error(){return new m(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Ze.create=(e,t)=>new Ze({innerType:e,typeName:Ue.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...O(t)});class Me extends C{_parse(e){if(this._getType(e)!==h.nan){const t=this._getOrReturnCtx(e);return v(t,{code:g.invalid_type,expected:h.nan,received:t.parsedType}),b}return{status:"valid",value:e.data}}}Me.create=e=>new Me({typeName:Ue.ZodNaN,...O(e)}),Symbol("zod_brand");class De extends C{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class je extends C{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?b:"dirty"===e.status?(t.dirty(),x(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?b:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new je({in:e,out:t,typeName:Ue.ZodPipeline})}}class Ge extends C{_parse(e){const t=this._def.innerType._parse(e),n=e=>(A(e)&&(e.value=Object.freeze(e.value)),e);return E(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}var Ue;Ge.create=(e,t)=>new Ge({innerType:e,typeName:Ue.ZodReadonly,...O(t)}),fe.lazycreate,function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Ue||(Ue={}));const qe=te.create,Fe=se.create,ze=(Me.create,ae.create,ie.create),Ke=(re.create,oe.create,de.create,ce.create,ue.create,le.create),Ve=(he.create,pe.create,ge.create),Be=fe.create,He=(fe.strictCreate,ye.create),We=ve.create,Qe=(be.create,xe.create,ke.create),Ye=(Se.create,Ie.create,Ae.create,Ee.create),Xe=Re.create,Je=(Oe.create,Ce.create,Ne.create,Pe.create),et=($e.create,Ne.createWithPreprocess,je.create,"2.0"),tt=He([qe(),Fe().int()]),nt=qe(),st=Be({progressToken:Je(tt)}).passthrough(),at=Be({_meta:Je(st)}).passthrough(),it=Be({method:qe(),params:Je(at)}),rt=Be({_meta:Je(Be({}).passthrough())}).passthrough(),ot=Be({method:qe(),params:Je(rt)}),dt=Be({_meta:Je(Be({}).passthrough())}).passthrough(),ct=He([qe(),Fe().int()]),ut=Be({jsonrpc:Ye(et),id:ct}).merge(it).strict(),lt=Be({jsonrpc:Ye(et)}).merge(ot).strict(),ht=Be({jsonrpc:Ye(et),id:ct,result:dt}).strict();var pt;!function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError"}(pt||(pt={}));const gt=He([ut,lt,ht,Be({jsonrpc:Ye(et),id:ct,error:Be({code:Fe().int(),message:qe(),data:Je(Ke())})}).strict()]),mt=dt.strict(),ft=ot.extend({method:Ye("notifications/cancelled"),params:rt.extend({requestId:ct,reason:qe().optional()})}),yt=Be({name:qe(),title:Je(qe())}).passthrough(),_t=yt.extend({version:qe()}),vt=Be({experimental:Je(Be({}).passthrough()),sampling:Je(Be({}).passthrough()),elicitation:Je(Be({}).passthrough()),roots:Je(Be({listChanged:Je(ze())}).passthrough())}).passthrough(),wt=it.extend({method:Ye("initialize"),params:at.extend({protocolVersion:qe(),capabilities:vt,clientInfo:_t})}),bt=Be({experimental:Je(Be({}).passthrough()),logging:Je(Be({}).passthrough()),completions:Je(Be({}).passthrough()),prompts:Je(Be({listChanged:Je(ze())}).passthrough()),resources:Je(Be({subscribe:Je(ze()),listChanged:Je(ze())}).passthrough()),tools:Je(Be({listChanged:Je(ze())}).passthrough())}).passthrough(),xt=dt.extend({protocolVersion:qe(),capabilities:bt,serverInfo:_t,instructions:Je(qe())}),kt=ot.extend({method:Ye("notifications/initialized")}),St=it.extend({method:Ye("ping")}),It=Be({progress:Fe(),total:Je(Fe()),message:Je(qe())}).passthrough(),At=ot.extend({method:Ye("notifications/progress"),params:rt.merge(It).extend({progressToken:tt})}),Et=it.extend({params:at.extend({cursor:Je(nt)}).optional()}),Tt=dt.extend({nextCursor:Je(nt)}),Rt=Be({uri:qe(),mimeType:Je(qe()),_meta:Je(Be({}).passthrough())}).passthrough(),Ot=Rt.extend({text:qe()}),Ct=qe().refine(e=>{try{return atob(e),!0}catch(e){return!1}},{message:"Invalid Base64 string"}),Nt=Rt.extend({blob:Ct}),Pt=yt.extend({uri:qe(),description:Je(qe()),mimeType:Je(qe()),_meta:Je(Be({}).passthrough())}),$t=yt.extend({uriTemplate:qe(),description:Je(qe()),mimeType:Je(qe()),_meta:Je(Be({}).passthrough())}),Lt=Et.extend({method:Ye("resources/list")}),Zt=Tt.extend({resources:Ve(Pt)}),Mt=Et.extend({method:Ye("resources/templates/list")}),Dt=Tt.extend({resourceTemplates:Ve($t)}),jt=it.extend({method:Ye("resources/read"),params:at.extend({uri:qe()})}),Gt=dt.extend({contents:Ve(He([Ot,Nt]))}),Ut=ot.extend({method:Ye("notifications/resources/list_changed")}),qt=it.extend({method:Ye("resources/subscribe"),params:at.extend({uri:qe()})}),Ft=it.extend({method:Ye("resources/unsubscribe"),params:at.extend({uri:qe()})}),zt=ot.extend({method:Ye("notifications/resources/updated"),params:rt.extend({uri:qe()})}),Kt=Be({name:qe(),description:Je(qe()),required:Je(ze())}).passthrough(),Vt=yt.extend({description:Je(qe()),arguments:Je(Ve(Kt)),_meta:Je(Be({}).passthrough())}),Bt=Et.extend({method:Ye("prompts/list")}),Ht=Tt.extend({prompts:Ve(Vt)}),Wt=it.extend({method:Ye("prompts/get"),params:at.extend({name:qe(),arguments:Je(Qe(qe()))})}),Qt=Be({type:Ye("text"),text:qe(),_meta:Je(Be({}).passthrough())}).passthrough(),Yt=Be({type:Ye("image"),data:Ct,mimeType:qe(),_meta:Je(Be({}).passthrough())}).passthrough(),Xt=Be({type:Ye("audio"),data:Ct,mimeType:qe(),_meta:Je(Be({}).passthrough())}).passthrough(),Jt=Be({type:Ye("resource"),resource:He([Ot,Nt]),_meta:Je(Be({}).passthrough())}).passthrough(),en=He([Qt,Yt,Xt,Pt.extend({type:Ye("resource_link")}),Jt]),tn=Be({role:Xe(["user","assistant"]),content:en}).passthrough(),nn=dt.extend({description:Je(qe()),messages:Ve(tn)}),sn=ot.extend({method:Ye("notifications/prompts/list_changed")}),an=Be({title:Je(qe()),readOnlyHint:Je(ze()),destructiveHint:Je(ze()),idempotentHint:Je(ze()),openWorldHint:Je(ze())}).passthrough(),rn=yt.extend({description:Je(qe()),inputSchema:Be({type:Ye("object"),properties:Je(Be({}).passthrough()),required:Je(Ve(qe()))}).passthrough(),outputSchema:Je(Be({type:Ye("object"),properties:Je(Be({}).passthrough()),required:Je(Ve(qe()))}).passthrough()),annotations:Je(an),_meta:Je(Be({}).passthrough())}),on=Et.extend({method:Ye("tools/list")}),dn=Tt.extend({tools:Ve(rn)}),cn=dt.extend({content:Ve(en).default([]),structuredContent:Be({}).passthrough().optional(),isError:Je(ze())}),un=(cn.or(dt.extend({toolResult:Ke()})),it.extend({method:Ye("tools/call"),params:at.extend({name:qe(),arguments:Je(Qe(Ke()))})})),ln=ot.extend({method:Ye("notifications/tools/list_changed")}),hn=Xe(["debug","info","notice","warning","error","critical","alert","emergency"]),pn=it.extend({method:Ye("logging/setLevel"),params:at.extend({level:hn})}),gn=ot.extend({method:Ye("notifications/message"),params:rt.extend({level:hn,logger:Je(qe()),data:Ke()})}),mn=Be({name:qe().optional()}).passthrough(),fn=Be({hints:Je(Ve(mn)),costPriority:Je(Fe().min(0).max(1)),speedPriority:Je(Fe().min(0).max(1)),intelligencePriority:Je(Fe().min(0).max(1))}).passthrough(),yn=Be({role:Xe(["user","assistant"]),content:He([Qt,Yt,Xt])}).passthrough(),_n=it.extend({method:Ye("sampling/createMessage"),params:at.extend({messages:Ve(yn),systemPrompt:Je(qe()),includeContext:Je(Xe(["none","thisServer","allServers"])),temperature:Je(Fe()),maxTokens:Fe().int(),stopSequences:Je(Ve(qe())),metadata:Je(Be({}).passthrough()),modelPreferences:Je(fn)})}),vn=dt.extend({model:qe(),stopReason:Je(Xe(["endTurn","stopSequence","maxTokens"]).or(qe())),role:Xe(["user","assistant"]),content:We("type",[Qt,Yt,Xt])}),wn=He([Be({type:Ye("boolean"),title:Je(qe()),description:Je(qe()),default:Je(ze())}).passthrough(),Be({type:Ye("string"),title:Je(qe()),description:Je(qe()),minLength:Je(Fe()),maxLength:Je(Fe()),format:Je(Xe(["email","uri","date","date-time"]))}).passthrough(),Be({type:Xe(["number","integer"]),title:Je(qe()),description:Je(qe()),minimum:Je(Fe()),maximum:Je(Fe())}).passthrough(),Be({type:Ye("string"),title:Je(qe()),description:Je(qe()),enum:Ve(qe()),enumNames:Je(Ve(qe()))}).passthrough()]),bn=it.extend({method:Ye("elicitation/create"),params:at.extend({message:qe(),requestedSchema:Be({type:Ye("object"),properties:Qe(qe(),wn),required:Je(Ve(qe()))}).passthrough()})}),xn=dt.extend({action:Xe(["accept","decline","cancel"]),content:Je(Qe(qe(),Ke()))}),kn=Be({type:Ye("ref/resource"),uri:qe()}).passthrough(),Sn=Be({type:Ye("ref/prompt"),name:qe()}).passthrough(),In=it.extend({method:Ye("completion/complete"),params:at.extend({ref:He([Sn,kn]),argument:Be({name:qe(),value:qe()}).passthrough(),context:Je(Be({arguments:Je(Qe(qe(),qe()))}))})}),An=dt.extend({completion:Be({values:Ve(qe()).max(100),total:Je(Fe().int()),hasMore:Je(ze())}).passthrough()}),En=Be({uri:qe().startsWith("file://"),name:Je(qe()),_meta:Je(Be({}).passthrough())}).passthrough(),Tn=it.extend({method:Ye("roots/list")}),Rn=dt.extend({roots:Ve(En)}),On=ot.extend({method:Ye("notifications/roots/list_changed")});He([St,wt,In,pn,Wt,Bt,Lt,Mt,jt,qt,Ft,un,on]),He([ft,At,kt,On]),He([mt,vn,xn,Rn]),He([St,_n,bn,Tn]),He([ft,At,gn,zt,Ut,ln,sn]),He([mt,xt,An,nn,Ht,Zt,Dt,Gt,cn,dn]),Error;class Cn{sessionId;onmessage;onerror;onclose;_port;_started=!1;_closed=!1;constructor(e,t){if(!e)throw new Error("MessagePort is required");this._port=e,this.sessionId=t||this.generateId(),this._port.onmessage=e=>{try{const t=gt.parse(e.data);this.onmessage?.(t)}catch(e){const t=new Error(`Failed to parse message: ${e}`);this.onerror?.(t)}},this._port.onmessageerror=e=>{const t=new Error(`MessagePort error: ${JSON.stringify(e)}`);this.onerror?.(t)}}static generateSessionId(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,10)}`}async start(){if(this._started)throw new Error("BrowserContextTransport already started! If using Client or Server class, note that connect() calls start() automatically.");if(this._closed)throw new Error("Cannot start a closed BrowserContextTransport");this._started=!0,this._port.start()}async send(e){if(this._closed)throw new Error("Cannot send on a closed BrowserContextTransport");return new Promise((t,n)=>{try{this._port.postMessage(e),t()}catch(e){const t=e instanceof Error?e:new Error(String(e));this.onerror?.(t),n(t)}})}async close(){this._closed||(this._closed=!0,this._port.close(),this.onclose?.())}generateId(){return Cn.generateSessionId()}}let Nn=null;const Pn=()=>(Nn&&document.contains(Nn)||(Nn=document.querySelector('iframe[src*="angie/"]')),Nn),$n=(e,t)=>{console.log("postMessageToAngieIframe",e,t);const n=Pn();if(!n?.contentWindow)return!1;const s=t||(()=>{const e=Pn();if(!e)return null;try{return new URL(e.src).origin}catch(e){return console.error("Error parsing iframe URL:",e),null}})();return s?(n.contentWindow.postMessage(e,s),!0):(console.error("Could not determine target origin for Angie iframe"),!1)};let Ln=!1;const Zn="open",Mn="closed";function Dn(){if("undefined"==typeof window)return 370;try{const e=window.localStorage.getItem("angie_sidebar_width");if(e){const t=parseInt(e,10);if(t>=350&&t<=590)return t}}catch(e){console.warn("localStorage not available")}return 370}function jn(){return"undefined"==typeof window?null:localStorage.getItem("angie_sidebar_state")}function Gn(e){try{localStorage.setItem("angie_sidebar_width",e.toString())}catch(e){console.warn("localStorage not available")}}function Un(e){document.documentElement.style.setProperty("--angie-sidebar-width",`${e}px`)}function qn(){!function(){const e=new URLSearchParams(window.location.search);return e.has("start-oauth")||e.has("oauth_code")||e.has("oauth_state")||e.has("oauth_error")}()?Fn(jn()||Zn):function(){Fn(Mn);try{localStorage.setItem("angie_sidebar_state",Mn)}catch(e){console.warn("localStorage not available")}}()}function Fn(e){"undefined"!=typeof window&&window.toggleAngieSidebar&&window.toggleAngieSidebar(e===Zn,!0)}function zn(){const e=document.getElementById("angie-sidebar-container");if(!e)return;let t=!1,n=0,s=0;e.addEventListener("mousedown",a=>{const i=e.getBoundingClientRect();("rtl"===document.documentElement.dir?a.clientX<=i.left+4:a.clientX>=i.right-4)&&(t=!0,n=a.clientX,s=i.width,e.classList.add("angie-resizing"),document.body.style.cursor="ew-resize",document.body.style.userSelect="none",a.preventDefault(),a.stopPropagation())}),document.addEventListener("mousemove",e=>{if(!t)return;let a;a="rtl"===document.documentElement.dir?n-e.clientX:e.clientX-n,Un(Math.max(350,Math.min(590,s+a))),e.preventDefault(),e.stopPropagation()}),document.addEventListener("mouseup",n=>{if(t){t=!1,e.classList.remove("angie-resizing"),document.body.style.cursor="",document.body.style.userSelect="";const a=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--angie-sidebar-width"),10);Gn(a),$n({type:es.ANGIE_SIDEBAR_RESIZED,payload:{initialWidth:s,width:a}}),n.preventDefault(),n.stopPropagation()}}),Un(Dn())}function Kn(e){!function(){if("undefined"==typeof document||Ln)return;const e="angie-sidebar-styles";if(document.getElementById(e))return void(Ln=!0);const t=document.createElement("style");t.id=e,t.textContent="/* Angie Sidebar - CSS Variables */\n:root {\n --angie-sidebar-z-index: 1200; /* below MUI popups, elementor popups and media library modal */\n --angie-sidebar-width: 330px;\n --angie-sidebar-transition: margin 0.3s ease-in-out, transform 0.3s ease-in-out;\n /* Direction-aware transform values for sidebar positioning */\n --angie-sidebar-hide-transform: translateX(-100%); /* LTR: hide to the left */\n --angie-sidebar-show-transform: translateX(0);\n}\n\n/* RTL-specific transform values */\n[dir=\"rtl\"] {\n --angie-sidebar-hide-transform: translateX(100%); /* RTL: hide to the right */\n}\n\n/* Respect user's motion preferences */\n@media (prefers-reduced-motion: reduce) {\n :root {\n --angie-sidebar-transition: none;\n }\n}\n\n/* Apply transitions only when user is actively toggling */\nbody.angie-sidebar-transitioning {\n transition: var(--angie-sidebar-transition) !important;\n}\n\nbody.angie-sidebar-transitioning #angie-sidebar-container {\n transition: var(--angie-sidebar-transition) !important;\n}\n\n/* LTR Layout (default) - Push content to the right */\n@media (min-width: 768px) {\n body.angie-sidebar-active {\n padding-inline-start: var(--angie-sidebar-width) !important;\n }\n\n body.angie-sidebar-active #angie-body-top-padding {\n width: 100%;\n height: 8px;\n }\n\n /* Push WordPress Admin Bar - LTR */\n body.angie-sidebar-active #wpadminbar {\n inset-inline-start: var(--angie-sidebar-width) !important;\n inset-inline-end: 8px !important;\n width: calc(100% - 8px - var(--angie-sidebar-width)) !important;\n margin-top: 8px;\n }\n\n /* Sidebar container - LTR */\n #angie-sidebar-container {\n position: fixed;\n top: 0;\n inset-inline-start: 0;\n width: var(--angie-sidebar-width);\n height: 100vh;\n z-index: var(--angie-sidebar-z-index) !important; /* below elementor popups and media library modal */\n background: #FCFCFC;\n transform: var(--angie-sidebar-hide-transform);\n outline: none;\n overflow: hidden;\n /* No default transition - only when transitioning */\n }\n\n /* Resize handle */\n #angie-sidebar-container::after {\n content: '';\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n width: 4px;\n height: 100%;\n cursor: ew-resize;\n background: transparent;\n z-index: 1000001;\n }\n\n /* Pink border during resize */\n #angie-sidebar-container.angie-resizing {\n border-inline-end-color: #ff69b4 !important;\n border-inline-end-width: 2px !important;\n }\n\n /* Disable iframe pointer events during resize */\n #angie-sidebar-container.angie-resizing iframe#angie-iframe {\n pointer-events: none !important;\n }\n}\n\n/* Active states */\nbody.angie-sidebar-active #angie-sidebar-container {\n transform: var(--angie-sidebar-show-transform);\n}\n\n/* Studio mode - sidebar takes full width */\n@media (min-width: 768px) {\n html.angie-studio-active body.angie-sidebar-active #angie-sidebar-container {\n width: 100%;\n }\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n #angie-sidebar-container {\n border-color: #000;\n box-shadow: none;\n }\n}\n\n/* Screen reader only class */\n.angie-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Plugin conflict resolution */\nbody.angie-sidebar-active {\n /* Reset common conflicting styles */\n box-sizing: border-box !important;\n position: relative !important;\n}\n\n#angie-sidebar-toggle {\n z-index: 99999 !important;\n}\n";const n=document.head||document.getElementsByTagName("head")[0];n.insertBefore(t,n.firstChild),Ln=!0}(),"undefined"!=typeof window&&(window.toggleAngieSidebar=function(e){return function(t,n){const s=document.body,a=document.getElementById("angie-sidebar-container");if(!a)return void console.warn("Angie Sidebar: Required elements not found!");const i=s.classList.contains("angie-sidebar-active"),r=void 0!==t?t:!i;n||(s.classList.add("angie-sidebar-transitioning"),setTimeout(function(){s.classList.remove("angie-sidebar-transitioning")},300)),r?s.classList.add("angie-sidebar-active"):s.classList.remove("angie-sidebar-active"),r&&setTimeout(function(){$n({type:"focusInput"})},n?0:300),e&&e(r,a,n),function(e){try{localStorage.setItem("angie_sidebar_state",e)}catch(e){console.warn("localStorage not available")}}(r?Zn:Mn);const o=new CustomEvent("angieSidebarToggle",{detail:{isOpen:r,sidebar:a,skipTransition:n}});document.dispatchEvent(o),$n({type:es.ANGIE_SIDEBAR_TOGGLED,payload:{state:r?"opened":"closed"}})}}(e),window.addEventListener("message",function(e){if(e.data&&"toggleAngieSidebar"===e.data.type){const{force:t,skipTransition:n}=e.data.payload||{};window.toggleAngieSidebar&&window.toggleAngieSidebar(t,n)}}))}const Vn=(e,t)=>{const n=document.getElementById("angie-sidebar-container");n&&n.setAttribute("aria-hidden",t?"false":"true"),t?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1")},Bn=(e,t)=>{e.postMessage({status:"success",payload:t})},Hn=(e,t)=>{e.postMessage({status:"error",payload:t})},Wn=()=>new Promise(e=>{"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e(null)});var Qn;(Qn||(Qn={})).POST_MESSAGE="postMessage";const Yn={open:!1,iframe:null,iframeUrlObject:null};function Xn(){const e=new URL(window.location.href);e.searchParams.set("start-oauth","1"),console.log("OAuth: Redirecting to wp-admin with OAuth:",e.toString()),window.location.href=e.toString()}const Jn=()=>{window.addEventListener("message",e=>{if(e.origin===Yn.iframeUrlObject?.origin)switch(e.data.type){case"OAUTH_GET_CODE_AND_STATE":(e=>{const t=new URLSearchParams(window.location.search),n=t.get("oauth_code"),s=t.get("oauth_state");if(n&&s)Bn(e,{code:n,state:s});else{const a=t.get("oauth_error");if(a){Hn(e,{message:a,code:n||null,state:s||null});const t=new URL(window.location.href);t.searchParams.delete("oauth_error"),history.replaceState({},"",t.toString())}else Bn(e,{message:"No OAuth error found"})}})(e.ports[0]);break;case"OAUTH_GET_TOP_URL":console.log("OAuth: Iframe requested top window URL via MessageChannel"),Bn(e.ports[0],{topUrl:window.location.href});break;case"OAUTH_REDIRECT_TOP_WINDOW":console.log("OAuth: Iframe requested top window redirect to:",e.data.payload.url),window.location.href=e.data.payload.url;break;case"OAUTH_UPDATE_URL":console.log("OAuth: Iframe requested URL update to:",e.data.payload.url),function(e,t){if(!history?.replaceState)return console.warn("history.replaceState not supported in this browser"),void Hn(t,{message:"URL update not supported in this browser"});try{const n=window.location.href;history.replaceState({},"",e),function(e,t){const n=new URL(t),s=new URL(e),a=n.searchParams,i=s.searchParams,r=["oauth_code","oauth_state","start-oauth"];return r.some(e=>i?.has(e))&&!r.some(e=>a?.has(e))}(n,e)&&function(){console.log("OAuth parameters cleaned, opening sidebar");try{localStorage.setItem("angie_sidebar_state","open")}catch(e){console.warn("localStorage not available")}setTimeout(()=>{window.toggleAngieSidebar(!0)},500)}(),Bn(t,{message:"URL updated successfully"})}catch(e){console.warn("Failed to update URL via history.replaceState:",e),Hn(t,{message:"URL update failed: "+(e instanceof Error?e.message:"Unknown error")})}}(e.data.payload.url,e.ports[0]);break;case"ANGIE_REDIRECT_TO_WP_ADMIN_WITH_OAUTH":Xn();break;case"ANGIE_REDIRECT_TO_AUTH_ORIGIN_LOGOUT":try{Xn()}catch(e){console.error("OAuth: Auth origin logout fallback failed:",e),window.location.reload()}}})};var es;!function(e){e.SDK_ANGIE_ALL_SERVERS_REGISTERED="sdk-angie-all-servers-registered",e.SDK_ANGIE_READY_PING="sdk-angie-ready-ping",e.SDK_REQUEST_CLIENT_CREATION="sdk-request-client-creation",e.SDK_TRIGGER_ANGIE="sdk-trigger-angie",e.SDK_TRIGGER_ANGIE_RESPONSE="sdk-trigger-angie-response",e.ANGIE_SIDEBAR_RESIZED="angie-sidebar-resized",e.ANGIE_SIDEBAR_TOGGLED="angie-sidebar-toggled",e.ANGIE_CHAT_TOGGLE="angie-chat-toggle",e.ANGIE_STUDIO_TOGGLE="angie-studio-toggle",e.ANGIE_NAVIGATE_TO_URL="angie/navigate-to-url",e.ANGIE_PAGE_RELOAD="angie/page-reload"}(es||(es={}));class ts{angieDetector;registrationQueue;clientManager;isInitialized=!1;instanceId;constructor(){this.instanceId=Math.random().toString(36).substring(2,8),console.log(`AngieMcpSdk: Constructor called - initializing SDK (Instance: ${this.instanceId})`),this.angieDetector=new c,this.registrationQueue=new u,this.clientManager=new l,console.log(`AngieMcpSdk: Setting up event handlers (Instance: ${this.instanceId})`),this.setupAngieReadyHandler(),this.setupServerInitHandler(),this.setupReRegistrationHandler(),console.log(`AngieMcpSdk: SDK initialization complete (Instance: ${this.instanceId})`)}async loadSidebar(e){Kn(),await(async e=>{if(window.screen.availWidth<=768)return void console.log("Angie: Mobile detected, skipping iframe injection");let t=document.getElementById("angie-sidebar-container");if(!t){const e=performance.now();if(console.log("⏱️ Waiting for sidebar container..."),await new Promise(e=>{let n=0;const s=setInterval(()=>{t=document.getElementById("angie-sidebar-container"),n++,(t||n>20)&&(clearInterval(s),t&&e())},100);setTimeout(()=>{if(clearInterval(s),t)return void e();const n=new MutationObserver(()=>{t=document.getElementById("angie-sidebar-container"),t&&(n.disconnect(),e())});n.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>{n.disconnect(),e()},8e3)},2e3)}),console.log(`⏱️ Sidebar container detection took: ${(performance.now()-e).toFixed(2)}ms`),!t)return void console.error("Angie: Sidebar container not found")}const{iframe:n,iframeUrlObject:s}=await(async e=>{const t=e.origin,n=new URL(e.path,t),s=n.pathname.slice(1).replace(/\//,"--")+"-"+Math.random().toString(36).substring(7);return new Promise(a=>{const i=new URL(t);i.pathname=n.pathname;const o=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";if(i.searchParams.append("colorScheme",e.uiTheme||o||"light"),i.searchParams.append("sdkVersion",e.sdkVersion),i.searchParams.append("instanceId",s),i.searchParams.append("origin",window.location.origin),e.isRTL&&i.searchParams.append("isRTL",e.isRTL?"true":"false"),"localhost"===window.location.hostname&&window.location.search.includes("debug_error")){const e=new URLSearchParams(window.location.search).get("debug_error");e&&i.searchParams.append("debug_error",e)}n.searchParams.forEach((e,t)=>{i.searchParams.set(t,e)}),i.searchParams.set("ver",(new Date).getTime().toString());const d=e.parent||document,c=d.createElement("iframe"),u={"background-color":"transparent","color-scheme":"normal",...e.css};window.addEventListener("message",async e=>{if(e.origin===i.origin)switch(e.data.type){case r.ANGIE_READY:a({iframe:c,iframeUrlObject:i});break;case r.ANGIE_LOADED:c.contentWindow?.postMessage({type:r.HOST_READY,instanceId:s},i.origin)}}),c.setAttribute("src",i.href),c.id="angie-iframe",c.setAttribute("frameborder","0"),c.setAttribute("scrolling","no"),c.setAttribute("style",Object.entries(u).map(([e,t])=>`${e}: ${t}`).join("; ")),c.setAttribute("allow","clipboard-write; clipboard-read"),e.insertCallback?e.insertCallback(c):d.body.appendChild(c)})})({origin:e.origin||"https://angie.elementor.com",path:"angie/wp-admin",insertCallback:e=>{console.log("Injecting Angie iframe into sidebar container"),e.setAttribute("title","Angie AI Assistant"),e.setAttribute("role","application"),e.setAttribute("aria-label","Angie AI Assistant Interface");const n=document.getElementById("angie-sidebar-loading");n&&(n.textContent=""),t?.appendChild(e),Vn(e,!0),e.addEventListener("load",()=>{e.focus()})},css:{width:"100%",height:"100%",border:"none",outline:"none"},uiTheme:e.uiTheme,isRTL:e.isRTL,sdkVersion:"1.0.3"});Yn.iframe=n,Yn.iframeUrlObject=s,window.addEventListener("message",e=>{if(e.origin===Yn.iframeUrlObject?.origin)switch(e.data.type){case i.SET:window.localStorage.setItem(e.data.key,e.data.value);break;case i.GET:const t=e.ports[0],n=window.localStorage.getItem(e.data.key);t.postMessage({value:n})}}),(e=>{window.addEventListener("message",async t=>{const n=t.origin===window.location.origin,s=t.origin===e.iframeUrlObject?.origin;if(n||s)switch(t?.data?.type){case es.SDK_ANGIE_ALL_SERVERS_REGISTERED:break;case es.SDK_ANGIE_READY_PING:const n=t.ports[0];console.log("Angie is ready",t),Bn(n,{message:"Angie is ready"});break;case es.SDK_REQUEST_CLIENT_CREATION:const s=t.data.payload;try{const n=t.ports[0],a=new MessageChannel;a.port1.onmessage=e=>{n.postMessage({success:!0,data:e.data})};const i={type:es.SDK_REQUEST_CLIENT_CREATION,payload:{success:!0,...s,clientId:`dynamic-client-${s.serverName}-${s.serverVersion}-${Date.now()}`,requestId:t.data.payload.requestId},timestamp:Date.now()};if(!e.iframe)throw new Error("Iframe not found");e.iframe.contentWindow?.postMessage(i,e.iframeUrlObject?.origin||"",[a.port2])}catch(e){console.error(`AngieMcpSdk:Failed to create client for SDK server "${s.serverName}":`,e)}break;case es.SDK_TRIGGER_ANGIE:console.log("SDK Trigger Angie received",t.data);try{const{requestId:n,prompt:s,context:a}=t.data.payload;if(!e.iframe)throw new Error("Iframe not found");e.iframe.contentWindow?.postMessage({type:es.SDK_TRIGGER_ANGIE,payload:{requestId:n,prompt:s,context:a}},e.iframeUrlObject?.origin||""),window.postMessage({type:es.SDK_TRIGGER_ANGIE_RESPONSE,payload:{success:!0,requestId:n,response:"Angie triggered successfully"}},window.location.origin)}catch(e){console.error("Failed to trigger Angie:",e),window.postMessage({type:es.SDK_TRIGGER_ANGIE_RESPONSE,payload:{success:!1,requestId:t.data.payload?.requestId,error:e instanceof Error?e.message:"Unknown error"}},window.location.origin)}}})})(Yn),Jn(),window.addEventListener("message",async t=>{if([window.location.origin,e.origin||"https://angie.elementor.com"].includes(t.origin))if(t?.data?.type===es.ANGIE_CHAT_TOGGLE)Yn.open=t.data.open,Yn.iframe&&Vn(Yn.iframe,Yn.open);else if(t?.data?.type===es.ANGIE_STUDIO_TOGGLE){const e=t.data.isStudioOpen;if(!Yn.iframe)return;if(e)document.documentElement.classList.add("angie-studio-active");else{const e=Dn();document.documentElement.style.setProperty("--angie-sidebar-width",`${e}px`),document.documentElement.classList.remove("angie-studio-active")}}else if(t?.data?.type===es.ANGIE_NAVIGATE_TO_URL){const{url:e=""}=t.data;if(!((e,t=[])=>{const n=0===t.length&&"undefined"!=typeof window?[window.location.origin]:t;if(!e.startsWith("http"))return!1;try{const t=new URL(e);return n.includes(t.origin)}catch{return!1}})(e))throw new Error("Angie: Invalid URL - navigation blocked for security reasons");window.location.assign(e)}else t?.data?.type===es.ANGIE_PAGE_RELOAD?(console.log("Angie requested page reload - database operations completed"),window.location.reload()):t?.data?.type===r.RESET_HASH&&(window.location.hash="",Bn(t.ports[0],{message:"Hash reset successfully"}))})})({origin:e?.origin||"https://angie.elementor.com",uiTheme:e?.uiTheme||"light",isRTL:e?.isRTL||!1,...e}),this.setupPromptHashDetection()}setupReRegistrationHandler(){window.addEventListener("message",e=>{if(e.data?.type===a.SDK_ANGIE_REFRESH_PING)if(console.log(`AngieMcpSdk: Angie refresh ping received (Instance: ${this.instanceId})`),this.registrationQueue.resetAllToPending()){const e=this.registrationQueue.getPending().length;console.log(`AngieMcpSdk: Successfully reset ${e} registrations, processing queue (Instance: ${this.instanceId})`),this.handleAngieReady()}else console.log(`AngieMcpSdk: Skipping queue reset - processing already in progress (Instance: ${this.instanceId})`)})}setupAngieReadyHandler(){this.angieDetector.waitForReady().then(e=>{e.isReady?this.handleAngieReady():console.warn("AngieMcpSdk: Angie not detected - servers will remain queued")}).catch(e=>{console.error("AngieMcpSdk: Error waiting for Angie:",e)})}async handleAngieReady(){console.log(`AngieMcpSdk: Angie is ready, processing queued registrations (Instance: ${this.instanceId})`);try{await this.registrationQueue.processQueue(async e=>{console.log(`AngieMcpSdk: processQueue callback called for "${e.config.name}" (Instance: ${this.instanceId})`),await this.processRegistration(e)}),this.isInitialized=!0,console.log(`AngieMcpSdk: Initialization complete (Instance: ${this.instanceId})`)}catch(e){console.error(`AngieMcpSdk: Error processing registration queue (Instance: ${this.instanceId}):`,e)}}async processRegistration(e){console.log(`AngieMcpSdk: Processing registration for server "${e.config.name}" (ID: ${e.id}) (Instance: ${this.instanceId})`);try{console.log(`AngieMcpSdk: Calling clientManager.requestClientCreation for "${e.config.name}" (Instance: ${this.instanceId})`);const t={...e,instanceId:this.instanceId};await this.clientManager.requestClientCreation(t),console.log(`AngieMcpSdk: Successfully registered server "${e.config.name}" (Instance: ${this.instanceId})`)}catch(t){throw console.error(`AngieMcpSdk: Failed to register server "${e.config.name}" (Instance: ${this.instanceId}):`,t),t}}registerLocalServer(e){return e.type=s.LOCAL,e.transport=t.POST_MESSAGE,this.registerServer(e)}registerRemoteServer(e){return e.type=s.REMOTE,this.registerServer(e)}isLocalServerConfig(e){return e.type===s.LOCAL||!e.type&&"server"in e}isRemoteServerConfig(e){return e.type===s.REMOTE&&"url"in e}async registerServer(e){if(!e.type)return console.warn("AngieMcpSdk: for a local server, please use registerLocalServer instead of registerServer"),void this.registerLocalServer(e);if(console.log(`AngieMcpSdk: registerServer called for "${e.name}" (Instance: ${this.instanceId})`),!e.name)throw new Error("Server name is required");if(!e.description)throw new Error("Server description is required");if(this.isLocalServerConfig(e)&&!e.server)throw new Error("Server instance is required for local servers");console.log(`AngieMcpSdk: Registering server "${e.name}" (Instance: ${this.instanceId})`);const t=this.registrationQueue.add(e);if(console.log(`AngieMcpSdk: Added registration to queue: ${t.id} (Instance: ${this.instanceId})`),this.angieDetector.isReady())try{await this.processRegistration(t),this.registrationQueue.updateStatus(t.id,"registered"),console.log(`AngieMcpSdk: Server "${e.name}" registered successfully (Instance: ${this.instanceId})`)}catch(e){const n=e instanceof Error?e.message:String(e);throw this.registrationQueue.updateStatus(t.id,"failed",n),e}else console.log(`AngieMcpSdk: Server "${e.name}" queued until Angie is ready (Instance: ${this.instanceId})`)}getRegistrations(){return this.registrationQueue.getAll()}getPendingRegistrations(){return this.registrationQueue.getPending()}isAngieReady(){return this.angieDetector.isReady()}isReady(){return this.isInitialized}async waitForReady(){if(!(await this.angieDetector.waitForReady()).isReady)throw new Error("Angie is not available");for(;!this.isInitialized;)await new Promise(e=>setTimeout(e,100))}async triggerAngie(e){if(!this.isAngieReady())throw new Error("Angie is not ready. Please wait for Angie to be available before triggering.");const t=this.generateRequestId(),n=e.options?.timeout||3e4;return new Promise((s,i)=>{const r=setTimeout(()=>{i(new Error("Angie trigger request timed out"))},n),o=e=>{e.data?.type===a.SDK_TRIGGER_ANGIE_RESPONSE&&e.data?.payload?.requestId===t&&(clearTimeout(r),window.removeEventListener("message",o),s(e.data.payload))};window.addEventListener("message",o);const d={type:a.SDK_TRIGGER_ANGIE,payload:{requestId:t,prompt:e.prompt,options:e.options,context:{pageUrl:window.location.href,pageTitle:document.title,...e.context}},timestamp:Date.now()};console.log(`AngieMcpSdk: Triggering Angie with prompt (Request ID: ${t}, Instance: ${this.instanceId})`),window.postMessage(d,window.location.origin)})}destroy(){this.registrationQueue.clear(),console.log(`AngieMcpSdk: SDK destroyed (Instance: ${this.instanceId})`)}setupServerInitHandler(){window.addEventListener("message",e=>{e.data?.type===a.SDK_REQUEST_INIT_SERVER&&(console.log(`AngieMcpSdk: Server init request received (Instance: ${this.instanceId})`),this.handleServerInitRequest(e))})}handleServerInitRequest(e){const{clientId:t,serverId:n,instanceId:s}=e.data.payload||{};if(t&&n)if(console.log(`AngieMcpSdk: Server init request received - Request instanceId: ${s}, This instanceId: ${this.instanceId} (Instance: ${this.instanceId})`),s&&s!==this.instanceId)console.log(`AngieMcpSdk: Ignoring server init request for different instance. Request instanceId: ${s}, this instanceId: ${this.instanceId}`);else{console.log(`AngieMcpSdk: Handling server init request for clientId: ${t}, serverId: ${n} (Instance: ${this.instanceId})`);try{const t=this.registrationQueue.getAll().find(e=>e.id===n);if(!t)return void console.error(`AngieMcpSdk: No registration found for serverId: ${n} (Instance: ${this.instanceId})`);if("type"in t.config&&"remote"===t.config.type)return void console.log(`AngieMcpSdk: Remote server registration detected; skipping local connect (Instance: ${this.instanceId})`);const s=e.ports[0];if(!s)return void console.error(`AngieMcpSdk: No port provided in server init request (Instance: ${this.instanceId})`);const a=t.config.server,i=new Cn(s);a.connect(i),console.log(`AngieMcpSdk: Server "${t.config.name}" initialized successfully (Instance: ${this.instanceId})`)}catch(e){console.error(`AngieMcpSdk: Error initializing server for clientId ${t} (Instance: ${this.instanceId}):`,e)}}else console.error(`AngieMcpSdk: Invalid server init request - missing clientId or serverId (Instance: ${this.instanceId})`)}generateRequestId(){return`${this.instanceId}-${Date.now()}-${Math.random().toString(36).substring(2,8)}`}async handlePromptHash(){const e=window.location.hash;if(e.startsWith("#angie-prompt="))try{const t=e.replace("#angie-prompt=",""),n=decodeURIComponent(t);if(!n)return void console.warn("AngieMcpSdk: Empty prompt detected in hash");console.log("AngieMcpSdk: Detected prompt in hash:",n),await this.waitForReady();const s=await this.triggerAngie({prompt:n,context:{source:"hash-parameter",pageUrl:window.location.href,timestamp:(new Date).toISOString()}});console.log("AngieMcpSdk: Triggered successfully from hash:",s),window.location.hash=""}catch(e){console.error("AngieMcpSdk: Failed to trigger from hash:",e)}}setupPromptHashDetection(){this.handlePromptHash(),window.addEventListener("hashchange",()=>this.handlePromptHash())}}const ns=(e,t)=>{if(Pn()){t.isOpen&&window.toggleAngieSidebar&&window.toggleAngieSidebar(!0);const n=$n({type:"angie-route-navigation",path:e,payload:t});return n||console.error("Failed to post navigation message to Angie iframe"),n}return console.error("Angie iframe not found"),!1};export{Zn as ANGIE_SIDEBAR_STATE_OPEN,c as AngieDetector,t as AngieLocalServerTransport,e as AngieMCPTransport,ts as AngieMcpSdk,n as AngieRemoteServerTransport,s as AngieServerType,l as ClientManager,r as HostEventType,i as HostLocalStorageEventType,a as MessageEventType,u as RegistrationQueue,Un as applyWidth,Pn as getAngieIframe,jn as getAngieSidebarSavedState,Kn as initAngieSidebar,zn as initializeResize,qn as loadState,Dn as loadWidth,ns as navigateAngieIframe,Gn as saveWidth,Vn as toggleAngieSidebar,Wn as waitForDocumentReady};
@@ -0,0 +1 @@
1
+ export declare const addLocalStorageListener: () => void;
@@ -0,0 +1,6 @@
1
+ export declare const navigateAngieIframe: (path: string, payload: {
2
+ isStudioOpen: boolean;
3
+ isOpen: boolean;
4
+ source: string;
5
+ isInnerPage?: boolean;
6
+ }) => boolean;
@@ -0,0 +1,15 @@
1
+ declare global {
2
+ interface Window {
3
+ toggleAngieSidebar: (force?: boolean, skipTransition?: boolean) => void;
4
+ }
5
+ }
6
+ export declare const OAUTH_MESSAGE_TYPES: {
7
+ readonly OAUTH_GET_CODE_AND_STATE: "OAUTH_GET_CODE_AND_STATE";
8
+ readonly OAUTH_GET_TOP_URL: "OAUTH_GET_TOP_URL";
9
+ readonly OAUTH_REDIRECT_TOP_WINDOW: "OAUTH_REDIRECT_TOP_WINDOW";
10
+ readonly OAUTH_UPDATE_URL: "OAUTH_UPDATE_URL";
11
+ readonly ANGIE_REDIRECT_TO_WP_ADMIN_WITH_OAUTH: "ANGIE_REDIRECT_TO_WP_ADMIN_WITH_OAUTH";
12
+ readonly ANGIE_REDIRECT_TO_AUTH_ORIGIN_LOGOUT: "ANGIE_REDIRECT_TO_AUTH_ORIGIN_LOGOUT";
13
+ };
14
+ export declare const getOAuthCodeAndState: (port: MessagePort) => void;
15
+ export declare const listenToOAuthFromIframe: () => void;
@@ -0,0 +1,18 @@
1
+ type OpenSaaSPageInput = {
2
+ origin: string;
3
+ path: string;
4
+ parent?: Document;
5
+ insertCallback?: (iframe: HTMLIFrameElement) => void;
6
+ css: {
7
+ [key: string]: string | number;
8
+ };
9
+ uiTheme?: string;
10
+ isRTL?: boolean;
11
+ sdkVersion: string;
12
+ };
13
+ type OpenSaaSPageOutput = {
14
+ iframe: HTMLIFrameElement;
15
+ iframeUrlObject: URL;
16
+ };
17
+ export declare const openSaaSPage: (props: OpenSaaSPageInput) => Promise<OpenSaaSPageOutput>;
18
+ export {};
package/dist/sdk.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
2
+ import { AppState } from './config';
3
+ export declare enum AngieMCPTransport {
4
+ POST_MESSAGE = "postMessage"
5
+ }
6
+ export interface ClientCreationRequest {
7
+ serverId: string;
8
+ serverName: string;
9
+ description: string;
10
+ serverVersion: string;
11
+ transport: AngieMCPTransport;
12
+ capabilities?: ServerCapabilities;
13
+ }
14
+ export declare const listenToSDK: (appState: AppState) => void;
@@ -0,0 +1,27 @@
1
+ export declare const ANGIE_SIDEBAR_STATE_OPEN = "open";
2
+ export declare const ANGIE_SIDEBAR_STATE_CLOSED = "closed";
3
+ export type AngieSidebarState = typeof ANGIE_SIDEBAR_STATE_OPEN | typeof ANGIE_SIDEBAR_STATE_CLOSED;
4
+ export type AngieSidebarToggleEventData = {
5
+ isOpen: boolean;
6
+ sidebar: HTMLElement;
7
+ skipTransition?: boolean;
8
+ };
9
+ export declare function loadWidth(): number;
10
+ export declare function getAngieSidebarSavedState(): AngieSidebarState | null;
11
+ export declare function handleFocus(isOpen: boolean, delay: number): void;
12
+ export declare function saveState(state: string): void;
13
+ export declare function saveWidth(width: number): void;
14
+ export declare function applyWidth(width: number): void;
15
+ export declare function isInOAuthFlow(): boolean;
16
+ export declare function forceSidebarClosedDuringOAuth(): void;
17
+ export declare function loadState(): void;
18
+ export declare function applyState(state: AngieSidebarState): void;
19
+ export declare function initializeResize(): void;
20
+ export declare function createToggleSidebarFunction(onToggle?: (isOpen: boolean, sidebar: HTMLElement, skipTransition?: boolean) => void): (force?: boolean, skipTransition?: boolean) => void;
21
+ export declare function setupMessageListener(): void;
22
+ export declare function initAngieSidebar(onToggle?: (isOpen: boolean, sidebar: HTMLElement, skipTransition?: boolean) => void): void;
23
+ declare global {
24
+ interface Window {
25
+ toggleAngieSidebar: (force?: boolean, skipTransition?: boolean) => void;
26
+ }
27
+ }
package/dist/types.d.ts CHANGED
@@ -45,9 +45,9 @@ export interface AngieDetectionResult {
45
45
  version?: string;
46
46
  capabilities?: string[];
47
47
  }
48
- export interface AngieMessage {
48
+ export interface AngieMessage<T = unknown> {
49
49
  type: string;
50
- payload: any;
50
+ payload: T;
51
51
  origin?: string;
52
52
  timestamp: number;
53
53
  }
@@ -68,9 +68,36 @@ export interface ClientCreationResponse {
68
68
  clientId?: string;
69
69
  error?: string;
70
70
  }
71
+ export interface AngieTriggerRequest {
72
+ prompt?: string;
73
+ context: {
74
+ source?: string;
75
+ } & Record<string, any>;
76
+ options?: {
77
+ timeout?: number;
78
+ };
79
+ }
80
+ export interface AngieTriggerResponse {
81
+ success: boolean;
82
+ response?: string;
83
+ error?: string;
84
+ requestId: string;
85
+ }
71
86
  export declare enum MessageEventType {
72
87
  SDK_ANGIE_READY_PING = "sdk-angie-ready-ping",
73
88
  SDK_ANGIE_REFRESH_PING = "sdk-angie-refresh-ping",
74
89
  SDK_REQUEST_CLIENT_CREATION = "sdk-request-client-creation",
75
- SDK_REQUEST_INIT_SERVER = "sdk-request-init-server"
90
+ SDK_REQUEST_INIT_SERVER = "sdk-request-init-server",
91
+ SDK_TRIGGER_ANGIE = "sdk-trigger-angie",
92
+ SDK_TRIGGER_ANGIE_RESPONSE = "sdk-trigger-angie-response"
93
+ }
94
+ export declare enum HostLocalStorageEventType {
95
+ SET = "ANGIE_SET_LOCALSTORAGE",
96
+ GET = "ANGIE_GET_LOCALSTORAGE"
97
+ }
98
+ export declare enum HostEventType {
99
+ RESET_HASH = "reset-hash",
100
+ HOST_READY = "host/ready",
101
+ ANGIE_LOADED = "angie/loaded",
102
+ ANGIE_READY = "angie/ready"
76
103
  }
@@ -0,0 +1,6 @@
1
+ export declare const toggleAngieSidebar: (iframe: HTMLIFrameElement, isOpen: boolean) => void;
2
+ export declare const isMobile: () => boolean;
3
+ export declare const sendSuccessMessage: (port: MessagePort, payload?: unknown) => void;
4
+ export declare const sendErrorMessage: (port: MessagePort, error: unknown) => void;
5
+ export declare const waitForDocumentReady: () => Promise<unknown>;
6
+ export declare const isSafeUrl: (url: string, trustedOrigins?: string[]) => boolean;
@@ -0,0 +1 @@
1
+ export declare const ANGIE_SDK_VERSION: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/angie-sdk",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "TypeScript SDK for Angie AI assistant",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,7 +11,9 @@
11
11
  "build:bundle": "webpack --mode=production",
12
12
  "build:watch": "npm run build:types && webpack --mode=production --watch",
13
13
  "dev": "tsc --watch",
14
- "test": "jest"
14
+ "test": "jest",
15
+ "lint": "eslint src/**/*.ts",
16
+ "lint:fix": "eslint src/**/*.ts --fix"
15
17
  },
16
18
  "keywords": [
17
19
  "mcp",
@@ -35,6 +37,7 @@
35
37
  "eslint": "^8.56.0",
36
38
  "jest": "^29.7.0",
37
39
  "jest-environment-jsdom": "^30.0.0",
40
+ "raw-loader": "^4.0.2",
38
41
  "ts-jest": "^29.3.2",
39
42
  "ts-loader": "^9.5.1",
40
43
  "ts-node": "^10.9.2",
@@ -48,6 +51,6 @@
48
51
  ],
49
52
  "repository": {
50
53
  "type": "git",
51
- "url": "git+https://github.com/elementor/angie-sdk.git"
54
+ "url": "https://github.com/elementor/angie-sdk.git"
52
55
  }
53
56
  }