@telemetryos/sdk 1.12.0 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @telemetryos/sdk
2
2
 
3
+ ## 1.13.1
4
+
5
+ ### Patch Changes
6
+
7
+ - - **SDK client refactor:** Removed `applicationName` from the client and `configure()` API (still accepted for backwards compatibility). The SDK now resolves `applicationSpecifier` from URL search params first with subdomain fallback, validates it as a 40-char hex hash, and adds `deviceId` from URL params. Store scoping updated accordingly. Fixed a listener leak when calling `configure()` multiple times.
8
+ - **Template assets moved to `public/`:** SDK template assets (logo, thumbnail) moved from `assets/` to `public/assets/` so Vite includes them in the build output automatically. Dev server updated to resolve from `public/` first.
9
+ - **Documentation updates for v1.13.0:** Added docs for web mount point, Navigation API, `tos claude-code` command, `vite-react-typescript-web` template, `playlist.getDuration()`, `SettingsMediaSelect` component, and custom logo support. Fixed scope availability, store scope guidance for web mount points, and various inconsistencies.
10
+
11
+ - Updated dependencies
12
+ - @telemetryos/root-sdk@1.13.1
13
+
14
+ ## 1.13.0
15
+
16
+ ### Minor Changes
17
+
18
+ - ### New Features
19
+ - **Web mount point support** — Applications can now define a third UI surface (`/web`) alongside Render and Settings, enabling web-portal-style interfaces with full navigation control via a postMessage bridge.
20
+ - **`playlist.getDuration()`** — New async method returns the playlist-configured page duration in seconds.
21
+ - **Custom logo support** — Projects can specify a `logoPath` in `telemetry.config.json` for branding in the dev host.
22
+ - **`tos claude-code` command** — New CLI command to apply or update Claude Code skills and settings in existing projects.
23
+ - **Web project template** — New `vite-react-typescript-web` template scaffolds a project with all three mount points pre-configured.
24
+
25
+ ### Bug Fixes
26
+ - Fixed SDK client not properly validating bridge message responses.
27
+ - Fixed canvas not resizing when the sidebar toggles or window resizes after a manual drag-resize.
28
+ - Fixed `isLoading` usage and `useEffect` dependency arrays in Claude Code skill examples.
29
+ - Fixed stale active tab when the tabs array changes in the dev host.
30
+
31
+ ### Infrastructure
32
+ - Renamed `generate-application` to `create-project`; extracted shared template utilities.
33
+ - Added unit tests for Navigation, Currency, and Weather classes.
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies
38
+ - @telemetryos/root-sdk@1.13.0
39
+
3
40
  ## 1.12.0
4
41
 
5
42
  ### Minor Changes
package/README.md CHANGED
@@ -25,13 +25,45 @@ Your standard application will be embedded as an iframe within the Freeform Edit
25
25
 
26
26
  Standard applications define mount points in their `telemetry.config.json` file:
27
27
 
28
- - `settings` - The configuration interface that appears in the Freeform Editor's sidebar when your application is selected. This runs in the [administration UI][admin-ui] where customers configure your app.
29
28
  - `render` - The actual content that displays on devices and in the Freeform Editor's canvas. This is what end users see.
29
+ - `settings` - The configuration interface that appears in the Freeform Editor's sidebar when your application is selected. This runs in the [administration UI][admin-ui] where customers configure your app.
30
+ - `web` - *(Optional)* A browser-accessible management interface for back-office staff. Accessible via the Studio UI, this mount point lets managers update application data (prices, descriptions, stock) without touching device displays.
30
31
 
31
32
  And optionally a worker script:
32
33
 
33
34
  - `background` - A worker that runs continuously in the background, even when your application is not currently visible in the playlist rotation.
34
35
 
36
+ ### The Web Mount Point
37
+
38
+ The web mount point gives your application a "second screen" — a browser-based interface designed for people who manage the data behind the display, not the display itself.
39
+
40
+ **Example**: A QSR restaurant deploys a menu board application:
41
+ - **Render** (`/render`) — the digital menu displayed behind the registers and on self-order kiosks for customers
42
+ - **Settings** (`/settings`) — configures the menu layout, theme, and branding in the Freeform Editor
43
+ - **Web** (`/menu-board`) — the restaurant manager updates prices, item descriptions, and stock availability from their desk via any browser
44
+
45
+ The web view shares the same SDK APIs but only has access to `application`-scoped and `shared(namespace)`-scoped stores (e.g. menu items shared across all surfaces). The `device` scope is only available in `render` (it requires a physical device context). The `instance` scope is available in both `render` and `settings` but not in `web`.
46
+
47
+ > **Scope name mapping**: The conceptual scopes map to Storage API methods as follows: `application` → `store().global`, `instance` → `store().local`, `device` → `store().deviceLocal`, `shared(namespace)` → `store().shared`.
48
+
49
+ ```json
50
+ {
51
+ "name": "menu-board",
52
+ "useSpaRouting": true,
53
+ "mountPoints": {
54
+ "render": "/render",
55
+ "settings": "/settings",
56
+ "web": "/menu-board"
57
+ }
58
+ }
59
+ ```
60
+
61
+ To scaffold a new project with all three mount points pre-configured:
62
+
63
+ ```bash
64
+ tos init --template vite-react-typescript-web
65
+ ```
66
+
35
67
  ### Integration with Freeform Editor
36
68
 
37
69
  Since your application runs within the Freeform Editor, you get additional capabilities:
@@ -179,6 +211,52 @@ const user = await users().getCurrent();
179
211
  const userId = user.id;
180
212
  ```
181
213
 
214
+ ### Weather API
215
+
216
+ Access weather data including current conditions, forecasts, and alerts. Weather data is sourced from WeatherBit and uses city IDs for location lookup.
217
+
218
+ ```javascript
219
+ import { weather } from '@telemetryos/sdk';
220
+
221
+ // Search for cities to get a cityId
222
+ const cities = await weather().getCities({ search: 'New York', countryCode: 'US' });
223
+ const cityId = cities[0].cityId;
224
+
225
+ // Get current weather conditions
226
+ const conditions = await weather().getConditions({ cityId });
227
+ console.log(`${conditions.temperatureC}°C / ${conditions.temperatureF}°F`);
228
+
229
+ // Get daily forecast (up to 16 days)
230
+ const daily = await weather().getDailyForecast({ cityId, days: 7 });
231
+
232
+ // Get hourly forecast (up to 120 hours)
233
+ const hourly = await weather().getHourlyForecast({ cityId, hours: 24 });
234
+
235
+ // Get weather alerts
236
+ const alerts = await weather().getAlerts({ cityId });
237
+ ```
238
+
239
+ All weather responses include dual units (Celsius/Fahrenheit, kph/mph, etc.) and support an optional `language` parameter for localized descriptions.
240
+
241
+ ### Currency API
242
+
243
+ Access currency exchange rates and symbols:
244
+
245
+ ```javascript
246
+ import { currency } from '@telemetryos/sdk';
247
+
248
+ // Get all available currency symbols
249
+ const symbols = await currency().getSymbols();
250
+ // { "USD": "United States Dollar", "EUR": "Euro", ... }
251
+
252
+ // Get exchange rates for a base currency
253
+ const rates = await currency().getRates({
254
+ base: 'USD',
255
+ symbols: 'EUR,GBP,JPY'
256
+ });
257
+ // { "EUR": 0.92, "GBP": 0.79, "JPY": 149.50 }
258
+ ```
259
+
182
260
  ### Playlist Control
183
261
 
184
262
  Control the Freeform Editor's playlist state, allowing your application to navigate through playlist pages and modify timing:
@@ -189,13 +267,41 @@ import { playlist } from '@telemetryos/sdk';
189
267
  // Move to the next page in the playlist
190
268
  await playlist().nextPage();
191
269
 
192
- // Move to the previous page in the playlist
270
+ // Move to the previous page in the playlist
193
271
  await playlist().previousPage();
194
272
 
195
- // Set the duration for the current page (in seconds)
273
+ // Set page duration (seconds) - new timer starts from the moment of this call
196
274
  await playlist().setDuration(30);
275
+
276
+ // Get predefined page duration from playlist (seconds, 0 if undefined)
277
+ // Returns the original page.duration as configured, not remaining time
278
+ const { duration } = await playlist().getDuration();
197
279
  ```
198
280
 
281
+ ### Media Selection Component
282
+
283
+ The SDK provides a React component for selecting media from the platform's media library in settings views:
284
+
285
+ ```javascript
286
+ import { useState } from 'react';
287
+ import { SettingsMediaSelect } from '@telemetryos/sdk/react';
288
+
289
+ function MySettings() {
290
+ const [image, setImage] = useState(null);
291
+
292
+ return (
293
+ <SettingsMediaSelect
294
+ value={image}
295
+ onChange={setImage}
296
+ accept={['image/png', 'image/jpeg']}
297
+ placeholder="Select a background image..."
298
+ />
299
+ );
300
+ }
301
+ ```
302
+
303
+ When clicked, it opens a full-screen media picker in the host window where users can browse folders, view media, upload new files, and select an item.
304
+
199
305
  ### Content Overrides
200
306
 
201
307
  Manage content overrides within the Freeform Editor to temporarily display specific content:
@@ -299,9 +405,12 @@ Your application must include a `telemetry.config.json` file at the root level:
299
405
  "version": "1.0.0",
300
406
  "displayName": "My Application",
301
407
  "description": "A TelemetryOS application that does amazing things",
408
+ "logoPath": "assets/logo.svg",
409
+ "useSpaRouting": true,
302
410
  "mountPoints": {
303
411
  "render": "/render",
304
- "settings": "/settings"
412
+ "settings": "/settings",
413
+ "web": "/my-application"
305
414
  },
306
415
  "backgroundWorkers": {
307
416
  "background": "workers/background.js"
@@ -316,9 +425,11 @@ Your application must include a `telemetry.config.json` file at the root level:
316
425
  This configuration:
317
426
 
318
427
  1. Defines your application name and metadata
319
- 2. Specifies mount points for different application contexts
320
- 3. Configures background workers
321
- 4. Sets up containers if needed
428
+ 2. Specifies mount points for different application contexts (render, settings, and optionally web)
429
+ 3. Sets `useSpaRouting` to enable client-side routing across mount points
430
+ 4. Specifies a `logoPath` for branding in the dev host (must be in your build output)
431
+ 5. Configures background workers
432
+ 6. Sets up containers if needed
322
433
 
323
434
  ## Best Practices
324
435
 
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var b;(function(a){a.assertEqual=n=>{};function e(n){}a.assertIs=e;function t(n){throw new Error}a.assertNever=t,a.arrayToEnum=n=>{const r={};for(const i of n)r[i]=i;return r},a.getValidEnumValues=n=>{const r=a.objectKeys(n).filter(o=>typeof n[n[o]]!="number"),i={};for(const o of r)i[o]=n[o];return a.objectValues(i)},a.objectValues=n=>a.objectKeys(n).map(function(r){return n[r]}),a.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{const r=[];for(const i in n)Object.prototype.hasOwnProperty.call(n,i)&&r.push(i);return r},a.find=(n,r)=>{for(const i of n)if(r(i))return i},a.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function s(n,r=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(r)}a.joinValues=s,a.jsonStringifyReplacer=(n,r)=>typeof r=="bigint"?r.toString():r})(b||(b={}));var ye;(function(a){a.mergeShapes=(e,t)=>({...e,...t})})(ye||(ye={}));const l=b.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A=a=>{switch(typeof a){case"undefined":return l.undefined;case"string":return l.string;case"number":return Number.isNaN(a)?l.nan:l.number;case"boolean":return l.boolean;case"function":return l.function;case"bigint":return l.bigint;case"symbol":return l.symbol;case"object":return Array.isArray(a)?l.array:a===null?l.null:a.then&&typeof a.then=="function"&&a.catch&&typeof a.catch=="function"?l.promise:typeof Map<"u"&&a instanceof Map?l.map:typeof Set<"u"&&a instanceof Set?l.set:typeof Date<"u"&&a instanceof Date?l.date:l.object;default:return l.unknown}},u=b.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 Z extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};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(r){return r.message},s={_errors:[]},n=r=>{for(const i of r.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let o=s,c=0;for(;c<i.path.length;){const h=i.path[c];c===i.path.length-1?(o[h]=o[h]||{_errors:[]},o[h]._errors.push(t(i))):o[h]=o[h]||{_errors:[]},o=o[h],c++}}};return n(this),s}static assert(e){if(!(e instanceof Z))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,b.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},s=[];for(const n of this.issues)if(n.path.length>0){const r=n.path[0];t[r]=t[r]||[],t[r].push(e(n))}else s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}Z.create=a=>new Z(a);const ae=(a,e)=>{let t;switch(a.code){case u.invalid_type:a.received===l.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case u.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,b.jsonStringifyReplacer)}`;break;case u.unrecognized_keys:t=`Unrecognized key(s) in object: ${b.joinValues(a.keys,", ")}`;break;case u.invalid_union:t="Invalid input";break;case u.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${b.joinValues(a.options)}`;break;case u.invalid_enum_value:t=`Invalid enum value. Expected ${b.joinValues(a.options)}, received '${a.received}'`;break;case u.invalid_arguments:t="Invalid function arguments";break;case u.invalid_return_type:t="Invalid function return type";break;case u.invalid_date:t="Invalid date";break;case u.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:b.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case u.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case u.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case u.custom:t="Invalid input";break;case u.invalid_intersection_types:t="Intersection results could not be merged";break;case u.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case u.not_finite:t="Number must be finite";break;default:t=e.defaultError,b.assertNever(a)}return{message:t}};let Je=ae;function Qe(){return Je}const Ge=a=>{const{data:e,path:t,errorMaps:s,issueData:n}=a,r=[...t,...n.path||[]],i={...n,path:r};if(n.message!==void 0)return{...n,path:r,message:n.message};let o="";const c=s.filter(h=>!!h).slice().reverse();for(const h of c)o=h(i,{data:e,defaultError:o}).message;return{...n,path:r,message:o}};function d(a,e){const t=Qe(),s=Ge({issueData:e,data:a.data,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,t,t===ae?void 0:ae].filter(n=>!!n)});a.common.issues.push(s)}let N=class $e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const n of t){if(n.status==="aborted")return g;n.status==="dirty"&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const n of t){const r=await n.key,i=await n.value;s.push({key:r,value:i})}return $e.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const n of t){const{key:r,value:i}=n;if(r.status==="aborted"||i.status==="aborted")return g;r.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),r.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(s[r.value]=i.value)}return{status:e.value,value:s}}};const g=Object.freeze({status:"aborted"}),re=a=>({status:"dirty",value:a}),x=a=>({status:"valid",value:a}),_e=a=>a.status==="aborted",ve=a=>a.status==="dirty",L=a=>a.status==="valid",Y=a=>typeof Promise<"u"&&a instanceof Promise;var p;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(p||(p={}));let $=class{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 be=(a,e)=>{if(L(e))return{success:!0,data:e.value};if(!a.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 Z(a.common.issues);return this._error=t,this._error}}};function _(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:n}=a;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(r,i)=>{const{message:o}=a;return r.code==="invalid_enum_value"?{message:o??i.defaultError}:typeof i.data>"u"?{message:o??s??i.defaultError}:r.code!=="invalid_type"?{message:i.defaultError}:{message:o??t??i.defaultError}},description:n}}let v=class{get description(){return this._def.description}_getType(e){return A(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:A(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new N,ctx:{common:e.parent.common,data:e.data,parsedType:A(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Y(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==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)},n=this._parseSync({data:e,path:s.path,parent:s});return be(s,n)}"~validate"(e){var t,s;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)};if(!this["~standard"].async)try{const r=this._parseSync({data:e,path:[],parent:n});return L(r)?{value:r.value}:{issues:n.common.issues}}catch(r){(s=(t=r==null?void 0:r.message)==null?void 0:t.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>L(r)?{value:r.value}:{issues:n.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==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)},n=this._parse({data:e,path:s.path,parent:s}),r=await(Y(n)?n:Promise.resolve(n));return be(s,r)}refine(e,t){const s=n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t;return this._refinement((n,r)=>{const i=e(n),o=()=>r.addIssue({code:u.custom,...s(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,t){return this._refinement((s,n)=>e(s)?!0:(n.addIssue(typeof t=="function"?t(s,n):t),!1))}_refinement(e){return new D({schema:this,typeName:m.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:t=>this["~validate"](t)}}optional(){return E.create(this,this._def)}nullable(){return V.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return T.create(this)}promise(){return te.create(this,this._def)}or(e){return X.create([this,e],this._def)}and(e){return ee.create(this,e,this._def)}transform(e){return new D({..._(this._def),schema:this,typeName:m.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new le({..._(this._def),innerType:this,defaultValue:t,typeName:m.ZodDefault})}brand(){return new bt({typeName:m.ZodBranded,type:this,..._(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new he({..._(this._def),innerType:this,catchValue:t,typeName:m.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return me.create(this,e)}readonly(){return pe.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Ye=/^c[^\s-]{8,}$/i,Xe=/^[0-9a-z]+$/,et=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tt=/^[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,st=/^[a-z0-9_-]{21}$/i,nt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,at=/^[-+]?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)?)??$/,rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,it="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ne;const ot=/^(?:(?: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])$/,ct=/^(?:(?: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])$/,ut=/^(([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]))$/,dt=/^(([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])$/,lt=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ht=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,je="((\\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])))",pt=new RegExp(`^${je}$`);function Pe(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function ft(a){return new RegExp(`^${Pe(a)}$`)}function mt(a){let e=`${je}T${Pe(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function gt(a,e){return!!((e==="v4"||!e)&&ot.test(a)||(e==="v6"||!e)&&ut.test(a))}function yt(a,e){if(!nt.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return!(typeof n!="object"||n===null||"typ"in n&&(n==null?void 0:n.typ)!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function _t(a,e){return!!((e==="v4"||!e)&&ct.test(a)||(e==="v6"||!e)&&dt.test(a))}class I extends v{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==l.string){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:l.string,received:n.parsedType}),g}const t=new N;let s;for(const n of this._def.checks)if(n.kind==="min")e.data.length<n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if(n.kind==="max")e.data.length>n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if(n.kind==="length"){const r=e.data.length>n.value,i=e.data.length<n.value;(r||i)&&(s=this._getOrReturnCtx(e,s),r?d(s,{code:u.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):i&&d(s,{code:u.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),t.dirty())}else if(n.kind==="email")rt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"email",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="emoji")ne||(ne=new RegExp(it,"u")),ne.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"emoji",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="uuid")tt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"uuid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="nanoid")st.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"nanoid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="cuid")Ye.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="cuid2")Xe.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid2",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="ulid")et.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ulid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),d(s,{validation:"url",code:u.invalid_string,message:n.message}),t.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"regex",code:u.invalid_string,message:n.message}),t.dirty())):n.kind==="trim"?e.data=e.data.trim():n.kind==="includes"?e.data.includes(n.value,n.position)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),t.dirty()):n.kind==="toLowerCase"?e.data=e.data.toLowerCase():n.kind==="toUpperCase"?e.data=e.data.toUpperCase():n.kind==="startsWith"?e.data.startsWith(n.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{startsWith:n.value},message:n.message}),t.dirty()):n.kind==="endsWith"?e.data.endsWith(n.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{endsWith:n.value},message:n.message}),t.dirty()):n.kind==="datetime"?mt(n).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"datetime",message:n.message}),t.dirty()):n.kind==="date"?pt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"date",message:n.message}),t.dirty()):n.kind==="time"?ft(n).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"time",message:n.message}),t.dirty()):n.kind==="duration"?at.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"duration",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="ip"?gt(e.data,n.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ip",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="jwt"?yt(e.data,n.alg)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"jwt",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="cidr"?_t(e.data,n.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cidr",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="base64"?lt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="base64url"?ht.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64url",code:u.invalid_string,message:n.message}),t.dirty()):b.assertNever(n);return{status:t.value,value:e.data}}_regex(e,t,s){return this.refinement(n=>e.test(n),{validation:t,code:u.invalid_string,...p.errToObj(s)})}_addCheck(e){return new I({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...p.errToObj(e)})}url(e){return this._addCheck({kind:"url",...p.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...p.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...p.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...p.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...p.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...p.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...p.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...p.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...p.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...p.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...p.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...p.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...p.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...p.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...p.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...p.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...p.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...p.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...p.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...p.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...p.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...p.errToObj(t)})}nonempty(e){return this.min(1,p.errToObj(e))}trim(){return new I({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new I({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new I({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}I.create=a=>new I({checks:[],typeName:m.ZodString,coerce:(a==null?void 0:a.coerce)??!1,..._(a)});function vt(a,e){const t=(a.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,r=Number.parseInt(a.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return r%i/10**n}let we=class ie extends v{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)!==l.number){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:l.number,received:n.parsedType}),g}let t;const s=new N;for(const n of this._def.checks)n.kind==="int"?b.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),d(t,{code:u.invalid_type,expected:"integer",received:"float",message:n.message}),s.dirty()):n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):n.kind==="multipleOf"?vt(e.data,n.value)!==0&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_finite,message:n.message}),s.dirty()):b.assertNever(n);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,s,n){return new ie({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:p.toString(n)}]})}_addCheck(e){return new ie({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:p.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:p.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&b.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}};we.create=a=>new we({checks:[],typeName:m.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,..._(a)});class W extends v{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)!==l.bigint)return this._getInvalidInput(e);let t;const s=new N;for(const n of this._def.checks)n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):b.assertNever(n);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.bigint,received:t.parsedType}),g}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,s,n){return new W({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:p.toString(n)}]})}_addCheck(e){return new W({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}W.create=a=>new W({checks:[],typeName:m.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,..._(a)});class ke extends v{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==l.boolean){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.boolean,received:t.parsedType}),g}return x(e.data)}}ke.create=a=>new ke({typeName:m.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,..._(a)});let xe=class Fe extends v{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==l.date){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:l.date,received:n.parsedType}),g}if(Number.isNaN(e.data.getTime())){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_date}),g}const t=new N;let s;for(const n of this._def.checks)n.kind==="min"?e.data.getTime()<n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),t.dirty()):n.kind==="max"?e.data.getTime()>n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),t.dirty()):b.assertNever(n);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Fe({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:p.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:p.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};xe.create=a=>new xe({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:m.ZodDate,..._(a)});class Se extends v{_parse(e){if(this._getType(e)!==l.symbol){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.symbol,received:t.parsedType}),g}return x(e.data)}}Se.create=a=>new Se({typeName:m.ZodSymbol,..._(a)});class Ce extends v{_parse(e){if(this._getType(e)!==l.undefined){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.undefined,received:t.parsedType}),g}return x(e.data)}}Ce.create=a=>new Ce({typeName:m.ZodUndefined,..._(a)});class Ne extends v{_parse(e){if(this._getType(e)!==l.null){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.null,received:t.parsedType}),g}return x(e.data)}}Ne.create=a=>new Ne({typeName:m.ZodNull,..._(a)});class oe extends v{constructor(){super(...arguments),this._any=!0}_parse(e){return x(e.data)}}oe.create=a=>new oe({typeName:m.ZodAny,..._(a)});class Te extends v{constructor(){super(...arguments),this._unknown=!0}_parse(e){return x(e.data)}}Te.create=a=>new Te({typeName:m.ZodUnknown,..._(a)});let j=class extends v{_parse(e){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.never,received:t.parsedType}),g}};j.create=a=>new j({typeName:m.ZodNever,..._(a)});class Ze extends v{_parse(e){if(this._getType(e)!==l.undefined){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.void,received:t.parsedType}),g}return x(e.data)}}Ze.create=a=>new Ze({typeName:m.ZodVoid,..._(a)});class T extends v{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==l.array)return d(t,{code:u.invalid_type,expected:l.array,received:t.parsedType}),g;if(n.exactLength!==null){const i=t.data.length>n.exactLength.value,o=t.data.length<n.exactLength.value;(i||o)&&(d(t,{code:i?u.too_big:u.too_small,minimum:o?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),s.dirty())}if(n.minLength!==null&&t.data.length<n.minLength.value&&(d(t,{code:u.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),s.dirty()),n.maxLength!==null&&t.data.length>n.maxLength.value&&(d(t,{code:u.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((i,o)=>n.type._parseAsync(new $(t,i,t.path,o)))).then(i=>N.mergeArray(s,i));const r=[...t.data].map((i,o)=>n.type._parseSync(new $(t,i,t.path,o)));return N.mergeArray(s,r)}get element(){return this._def.type}min(e,t){return new T({...this._def,minLength:{value:e,message:p.toString(t)}})}max(e,t){return new T({...this._def,maxLength:{value:e,message:p.toString(t)}})}length(e,t){return new T({...this._def,exactLength:{value:e,message:p.toString(t)}})}nonempty(e){return this.min(1,e)}}T.create=(a,e)=>new T({type:a,minLength:null,maxLength:null,exactLength:null,typeName:m.ZodArray,..._(e)});function M(a){if(a instanceof O){const e={};for(const t in a.shape){const s=a.shape[t];e[t]=E.create(M(s))}return new O({...a._def,shape:()=>e})}else return a instanceof T?new T({...a._def,type:M(a.element)}):a instanceof E?E.create(M(a.unwrap())):a instanceof V?V.create(M(a.unwrap())):a instanceof q?q.create(a.items.map(e=>M(e))):a}let O=class C extends v{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=b.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==l.object){const c=this._getOrReturnCtx(e);return d(c,{code:u.invalid_type,expected:l.object,received:c.parsedType}),g}const{status:t,ctx:s}=this._processInputParams(e),{shape:n,keys:r}=this._getCached(),i=[];if(!(this._def.catchall instanceof j&&this._def.unknownKeys==="strip"))for(const c in s.data)r.includes(c)||i.push(c);const o=[];for(const c of r){const h=n[c],y=s.data[c];o.push({key:{status:"valid",value:c},value:h._parse(new $(s,y,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof j){const c=this._def.unknownKeys;if(c==="passthrough")for(const h of i)o.push({key:{status:"valid",value:h},value:{status:"valid",value:s.data[h]}});else if(c==="strict")i.length>0&&(d(s,{code:u.unrecognized_keys,keys:i}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const h of i){const y=s.data[h];o.push({key:{status:"valid",value:h},value:c._parse(new $(s,y,s.path,h)),alwaysSet:h in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const c=[];for(const h of o){const y=await h.key,w=await h.value;c.push({key:y,value:w,alwaysSet:h.alwaysSet})}return c}).then(c=>N.mergeObjectSync(t,c)):N.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return p.errToObj,new C({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{var n,r;const i=((r=(n=this._def).errorMap)==null?void 0:r.call(n,t,s).message)??s.defaultError;return t.code==="unrecognized_keys"?{message:p.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new C({...this._def,unknownKeys:"strip"})}passthrough(){return new C({...this._def,unknownKeys:"passthrough"})}extend(e){return new C({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new C({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:m.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new C({...this._def,catchall:e})}pick(e){const t={};for(const s of b.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new C({...this._def,shape:()=>t})}omit(e){const t={};for(const s of b.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new C({...this._def,shape:()=>t})}deepPartial(){return M(this)}partial(e){const t={};for(const s of b.objectKeys(this.shape)){const n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}return new C({...this._def,shape:()=>t})}required(e){const t={};for(const s of b.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof E;)n=n._def.innerType;t[s]=n}return new C({...this._def,shape:()=>t})}keyof(){return Re(b.objectKeys(this.shape))}};O.create=(a,e)=>new O({shape:()=>a,unknownKeys:"strip",catchall:j.create(),typeName:m.ZodObject,..._(e)});O.strictCreate=(a,e)=>new O({shape:()=>a,unknownKeys:"strict",catchall:j.create(),typeName:m.ZodObject,..._(e)});O.lazycreate=(a,e)=>new O({shape:a,unknownKeys:"strip",catchall:j.create(),typeName:m.ZodObject,..._(e)});let X=class extends v{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function n(r){for(const o of r)if(o.result.status==="valid")return o.result;for(const o of r)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const i=r.map(o=>new Z(o.ctx.common.issues));return d(t,{code:u.invalid_union,unionErrors:i}),g}if(t.common.async)return Promise.all(s.map(async r=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await r._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(n);{let r;const i=[];for(const c of s){const h={...t,common:{...t.common,issues:[]},parent:null},y=c._parseSync({data:t.data,path:t.path,parent:h});if(y.status==="valid")return y;y.status==="dirty"&&!r&&(r={result:y,ctx:h}),h.common.issues.length&&i.push(h.common.issues)}if(r)return t.common.issues.push(...r.ctx.common.issues),r.result;const o=i.map(c=>new Z(c));return d(t,{code:u.invalid_union,unionErrors:o}),g}}get options(){return this._def.options}};X.create=(a,e)=>new X({options:a,typeName:m.ZodUnion,..._(e)});function ce(a,e){const t=A(a),s=A(e);if(a===e)return{valid:!0,data:a};if(t===l.object&&s===l.object){const n=b.objectKeys(e),r=b.objectKeys(a).filter(o=>n.indexOf(o)!==-1),i={...a,...e};for(const o of r){const c=ce(a[o],e[o]);if(!c.valid)return{valid:!1};i[o]=c.data}return{valid:!0,data:i}}else if(t===l.array&&s===l.array){if(a.length!==e.length)return{valid:!1};const n=[];for(let r=0;r<a.length;r++){const i=a[r],o=e[r],c=ce(i,o);if(!c.valid)return{valid:!1};n.push(c.data)}return{valid:!0,data:n}}else return t===l.date&&s===l.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}let ee=class extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=(r,i)=>{if(_e(r)||_e(i))return g;const o=ce(r.value,i.value);return o.valid?((ve(r)||ve(i))&&t.dirty(),{status:t.value,value:o.data}):(d(s,{code:u.invalid_intersection_types}),g)};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(([r,i])=>n(r,i)):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}))}};ee.create=(a,e,t)=>new ee({left:a,right:e,typeName:m.ZodIntersection,..._(t)});class q extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==l.array)return d(s,{code:u.invalid_type,expected:l.array,received:s.parsedType}),g;if(s.data.length<this._def.items.length)return d(s,{code:u.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),g;!this._def.rest&&s.data.length>this._def.items.length&&(d(s,{code:u.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const n=[...s.data].map((r,i)=>{const o=this._def.items[i]||this._def.rest;return o?o._parse(new $(s,r,s.path,i)):null}).filter(r=>!!r);return s.common.async?Promise.all(n).then(r=>N.mergeArray(t,r)):N.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new q({...this._def,rest:e})}}q.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new q({items:a,typeName:m.ZodTuple,rest:null,..._(e)})};class Oe extends v{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!==l.map)return d(s,{code:u.invalid_type,expected:l.map,received:s.parsedType}),g;const n=this._def.keyType,r=this._def.valueType,i=[...s.data.entries()].map(([o,c],h)=>({key:n._parse(new $(s,o,s.path,[h,"key"])),value:r._parse(new $(s,c,s.path,[h,"value"]))}));if(s.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const c of i){const h=await c.key,y=await c.value;if(h.status==="aborted"||y.status==="aborted")return g;(h.status==="dirty"||y.status==="dirty")&&t.dirty(),o.set(h.value,y.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const c of i){const h=c.key,y=c.value;if(h.status==="aborted"||y.status==="aborted")return g;(h.status==="dirty"||y.status==="dirty")&&t.dirty(),o.set(h.value,y.value)}return{status:t.value,value:o}}}}Oe.create=(a,e,t)=>new Oe({valueType:e,keyType:a,typeName:m.ZodMap,..._(t)});class J extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==l.set)return d(s,{code:u.invalid_type,expected:l.set,received:s.parsedType}),g;const n=this._def;n.minSize!==null&&s.data.size<n.minSize.value&&(d(s,{code:u.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),n.maxSize!==null&&s.data.size>n.maxSize.value&&(d(s,{code:u.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());const r=this._def.valueType;function i(c){const h=new Set;for(const y of c){if(y.status==="aborted")return g;y.status==="dirty"&&t.dirty(),h.add(y.value)}return{status:t.value,value:h}}const o=[...s.data.values()].map((c,h)=>r._parse(new $(s,c,s.path,h)));return s.common.async?Promise.all(o).then(c=>i(c)):i(o)}min(e,t){return new J({...this._def,minSize:{value:e,message:p.toString(t)}})}max(e,t){return new J({...this._def,maxSize:{value:e,message:p.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}J.create=(a,e)=>new J({valueType:a,minSize:null,maxSize:null,typeName:m.ZodSet,..._(e)});class Ae extends v{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=(a,e)=>new Ae({getter:a,typeName:m.ZodLazy,..._(e)});let ue=class extends v{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return d(t,{received:t.data,code:u.invalid_literal,expected:this._def.value}),g}return{status:"valid",value:e.data}}get value(){return this._def.value}};ue.create=(a,e)=>new ue({value:a,typeName:m.ZodLiteral,..._(e)});function Re(a,e){return new fe({values:a,typeName:m.ZodEnum,..._(e)})}let fe=class de extends v{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return d(t,{expected:b.joinValues(s),received:t.parsedType,code:u.invalid_type}),g}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 d(t,{received:t.data,code:u.invalid_enum_value,options:s}),g}return x(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 de.create(e,{...this._def,...t})}exclude(e,t=this._def){return de.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};fe.create=Re;class Ie extends v{_parse(e){const t=b.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==l.string&&s.parsedType!==l.number){const n=b.objectValues(t);return d(s,{expected:b.joinValues(n),received:s.parsedType,code:u.invalid_type}),g}if(this._cache||(this._cache=new Set(b.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const n=b.objectValues(t);return d(s,{received:s.data,code:u.invalid_enum_value,options:n}),g}return x(e.data)}get enum(){return this._def.values}}Ie.create=(a,e)=>new Ie({values:a,typeName:m.ZodNativeEnum,..._(e)});let te=class extends v{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==l.promise&&t.common.async===!1)return d(t,{code:u.invalid_type,expected:l.promise,received:t.parsedType}),g;const s=t.parsedType===l.promise?t.data:Promise.resolve(t.data);return x(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}};te.create=(a,e)=>new te({type:a,typeName:m.ZodPromise,..._(e)});let D=class extends v{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===m.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,r={addIssue:i=>{d(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(r.addIssue=r.addIssue.bind(r),n.type==="preprocess"){const i=n.transform(s.data,r);if(s.common.async)return Promise.resolve(i).then(async o=>{if(t.value==="aborted")return g;const c=await this._def.schema._parseAsync({data:o,path:s.path,parent:s});return c.status==="aborted"?g:c.status==="dirty"||t.value==="dirty"?re(c.value):c});{if(t.value==="aborted")return g;const o=this._def.schema._parseSync({data:i,path:s.path,parent:s});return o.status==="aborted"?g:o.status==="dirty"||t.value==="dirty"?re(o.value):o}}if(n.type==="refinement"){const i=o=>{const c=n.refinement(o,r);if(s.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(s.common.async===!1){const o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?g:(o.status==="dirty"&&t.dirty(),i(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>o.status==="aborted"?g:(o.status==="dirty"&&t.dirty(),i(o.value).then(()=>({status:t.value,value:o.value}))))}if(n.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!L(i))return g;const o=n.transform(i.value,r);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>L(i)?Promise.resolve(n.transform(i.value,r)).then(o=>({status:t.value,value:o})):g);b.assertNever(n)}};D.create=(a,e,t)=>new D({schema:a,typeName:m.ZodEffects,effect:e,..._(t)});D.createWithPreprocess=(a,e,t)=>new D({schema:e,effect:{type:"preprocess",transform:a},typeName:m.ZodEffects,..._(t)});let E=class extends v{_parse(e){return this._getType(e)===l.undefined?x(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};E.create=(a,e)=>new E({innerType:a,typeName:m.ZodOptional,..._(e)});let V=class extends v{_parse(e){return this._getType(e)===l.null?x(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};V.create=(a,e)=>new V({innerType:a,typeName:m.ZodNullable,..._(e)});let le=class extends v{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===l.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};le.create=(a,e)=>new le({innerType:a,typeName:m.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,..._(e)});class he extends v{_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 Y(n)?n.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new Z(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Z(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}he.create=(a,e)=>new he({innerType:a,typeName:m.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,..._(e)});class Ee extends v{_parse(e){if(this._getType(e)!==l.nan){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:l.nan,received:t.parsedType}),g}return{status:"valid",value:e.data}}}Ee.create=a=>new Ee({typeName:m.ZodNaN,..._(a)});class bt extends v{_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 v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?g:n.status==="dirty"?(t.dirty(),re(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{const n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?g:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new me({in:e,out:t,typeName:m.ZodPipeline})}}class pe extends v{_parse(e){const t=this._def.innerType._parse(e),s=n=>(L(n)&&(n.value=Object.freeze(n.value)),n);return Y(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}}pe.create=(a,e)=>new pe({innerType:a,typeName:m.ZodReadonly,..._(e)});var m;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(m||(m={}));const wt=I.create,kt=oe.create;j.create;T.create;const xt=O.create;X.create;ee.create;q.create;const St=ue.create;fe.create;te.create;E.create;V.create;const Ct="1.12.0",Nt={version:Ct};class qe{constructor(e){this._client=e}async getCurrent(){const e=await this._client.request("accounts.getCurrent",{});if(!e.success)throw new Error("Failed to fetch current account");return e.account}}class Me{constructor(e){this._client=e}async getAllByMountPoint(e){return(await this._client.request("applications.getAllByMountPoint",{mountPoint:e})).applications}async getByName(e){return(await this._client.request("applications.getByName",{name:e})).application}async setDependencies(e){return await this._client.request("applications.setDependencies",{applicationSpecifiers:e},{timeout:0})}bind(e,t){if(this._client._messageInterceptors.has(e))throw new Error(`Interceptor already bound for message ${e}`);this._client._messageInterceptors.set(e,t)}}class Le{constructor(e){this._client=e}async getInformation(){const e=await this._client.request("devices.getInformation",{});if(!e.success)throw new Error("Failed to get device information");return e.deviceInformation}async getCapabilities(){const e=await this._client.request("devices.getCapabilities",{});if(!e.success)throw new Error("Failed to get device capabilities");return e.capabilities}}class De{constructor(e){this._client=e}async getColorScheme(){return(await this._client.request("environment.getColorScheme",{})).colorScheme}async subscribeColorScheme(e){return(await this._client.subscribe("environment.subscribeColorScheme",{},e)).success}async unsubscribeColorScheme(e){return(await this._client.unsubscribe("environment.unsubscribeColorScheme",{},e)).success}}class Ve{constructor(e){this._client=e}async getAllFolders(){return(await this._client.request("mediaFolders.getAll",{})).folders}async getAllByFolderId(e){return(await this._client.request("media.getAllByFolderId",{folderId:e})).contents}async getAllByTag(e){return(await this._client.request("media.getAllByTag",{tagName:e})).contents}async getById(e){return(await this._client.request("media.getById",{id:e})).content}async openPicker(e){return(await this._client.request("media.openPicker",{accept:e==null?void 0:e.accept,currentValue:e==null?void 0:e.currentValue})).selection}}class ze{constructor(e){this._client=e}async fetch(e,t){var s;let n;typeof e=="string"?n=e:e instanceof URL?n=e.toString():(n=e.url,t||(t={method:e.method,headers:e.headers,body:e.body,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity}));let r={};t!=null&&t.headers&&(t.headers instanceof Headers?t.headers.forEach((y,w)=>{r[w]=y}):Array.isArray(t.headers)?t.headers.forEach(([y,w])=>{r[y]=w}):r=t.headers);const i=await this._client.request("proxy.fetch",{url:n,method:(t==null?void 0:t.method)||"GET",headers:r,body:(s=t==null?void 0:t.body)!==null&&s!==void 0?s:null});if(!i.success)throw new TypeError(i.errorMessage,{cause:i.errorCause?Error(i.errorCause):void 0});const o=new Headers(i.headers),c={status:i.status,statusText:i.statusText,headers:o};let h=null;if(i.body!==null&&i.body!==void 0)if(i.bodyType==="binary"){const y=atob(i.body),w=new Uint8Array(y.length);for(let S=0;S<y.length;S++)w[S]=y.charCodeAt(S);h=w}else i.bodyType==="text"?h=i.body:i.bodyType==="json"&&(h=JSON.stringify(i.body));return new Response(h,c)}}class Be{constructor(e){this._client=e}get application(){return new U("application","",this._client)}get instance(){return new U("instance",this._client.applicationInstance,this._client)}get device(){return new U("device",this._client.applicationInstance,this._client)}shared(e){return new U("shared",e,this._client)}}class U{constructor(e,t,s){this._kind=e,this._namespace=t,this._client=s}async set(e,t){return(await this._client.request("store.set",{kind:this._kind,namespace:this._namespace,key:e,value:t})).success}async get(e){return(await this._client.request("store.get",{kind:this._kind,namespace:this._namespace,key:e})).value}async subscribe(e,t){return(await this._client.subscribe("store.subscribe",{kind:this._kind,namespace:this._namespace,key:e},t)).success}async unsubscribe(e,t){return(await this._client.unsubscribe("store.unsubscribe",{kind:this._kind,namespace:this._namespace,key:e},t)).success}async delete(e){return(await this._client.request("store.delete",{kind:this._kind,namespace:this._namespace,key:e})).success}}class Ue{constructor(e){this._client=e}async getCurrent(){const e=await this._client.request("users.getCurrent",{});if(!e.success)throw new Error("Failed to fetch current user");return e.user}}class He{constructor(e){this._client=e}async getCities(e){const t=await this._client.request("weather.getCities",e);if(!t.success)throw new Error(t.error||"Failed to fetch cities");return t.data||[]}async getConditions(e){const t=await this._client.request("weather.getConditions",e);if(!t.success)throw new Error(t.error||"Failed to fetch weather conditions");return t}async getDailyForecast(e){const t=await this._client.request("weather.getDailyForecast",e);if(!t.success)throw new Error(t.error||"Failed to fetch daily forecast");return t}async getHourlyForecast(e){const t=await this._client.request("weather.getHourlyForecast",e);if(!t.success)throw new Error(t.error||"Failed to fetch hourly forecast");return t}async getAlerts(e){const t=await this._client.request("weather.getAlerts",e);if(!t.success)throw new Error(t.error||"Failed to fetch weather alerts");return t}}class Ke{constructor(e){this._client=e}async getSymbols(){const e=await this._client.request("currency.getSymbols",{});if(!e.success||!e.symbols)throw new Error("Failed to fetch currency symbols");return e.symbols}async getRates(e){var t,s,n;const r=await this._client.request("currency.getRates",e);if(!r.success||!r.rates)throw((t=r.error)===null||t===void 0?void 0:t.code)===201?new Error(`Invalid base currency '${e.base}'`):((s=r.error)===null||s===void 0?void 0:s.code)===202?new Error(`Invalid target currency symbol '${e.symbols}'`):new Error(((n=r.error)===null||n===void 0?void 0:n.message)||"Failed to fetch currency rates");return r.rates}}class We{constructor(e){this._client=e}async discover(){const e=await this._client.request("mqtt.discover",{});if(!e.success)throw new Error("Failed to discover MQTT brokers");return e.brokers}async connect(e,t){const s=await this._client.request("mqtt.connect",{brokerUrl:e,...t});if(!s.success)throw new Error("Failed to connect to MQTT broker");return s.clientId}async disconnect(e){if(!(await this._client.request("mqtt.disconnect",{clientId:e})).success)throw new Error("Failed to disconnect from MQTT broker")}async publish(e,t,s,n){if(!(await this._client.request("mqtt.publish",{clientId:e,topic:t,payload:s,...n})).success)throw new Error("Failed to publish MQTT message")}async subscribe(e,t,s,n){return(await this._client.subscribe("mqtt.subscribe",{clientId:e,topic:t,...n},s)).success}async unsubscribe(e,t,s){return(await this._client.unsubscribe("mqtt.unsubscribe",{clientId:e,topic:t},s)).success}async getConnectionStatus(e){const t=await this._client.request("mqtt.getConnectionStatus",{clientId:e});if(!t.success)throw new Error("Failed to get MQTT connection status");return t.status}async subscribeConnectionStatus(e,t){return(await this._client.subscribe("mqtt.subscribeConnectionStatus",{clientId:e},t)).success}async unsubscribeConnectionStatus(e,t){return(await this._client.unsubscribe("mqtt.unsubscribeConnectionStatus",{clientId:e},t)).success}}function Q(a){return{...a,type:"client"}}const Tt=xt({type:St("bridge"),name:wt(),data:kt()});class Zt{constructor(e){if(e._client._applicationSpecifier!=="rootSettingsNavigation")throw new Error("RootSettingsNavigation can only be used in the rootSettingsNavigation mount point");this._store=e}async setRootSettingsNavigation(e){var t;const s=this._store.shared("root-settings-navigation"),n=(t=await s.get("navigation"))!==null&&t!==void 0?t:{},r=this._store._client._applicationSpecifier;n[r]={applicationSpecifier:r,entries:e.entries},s.set("navigation",n)}async getRootSettingsNavigation(){var e;const t=(e=await this._store.shared("root-settings-navigation").get("navigation"))!==null&&e!==void 0?e:{},s=this._store._client._applicationSpecifier;return t[s]}async getAllRootSettingsNavigation(){var e;return(e=await this._store.shared("root-settings-navigation").get("navigation"))!==null&&e!==void 0?e:{}}}const z=1e3*30,ge=typeof window>"u"&&typeof self<"u",H=ge?self:window;function B(a){ge?self.postMessage(a):H.parent.postMessage(a,"*")}class Ot{constructor(e){this._applicationName=e,this._applicationInstance="",this._applicationSpecifier="",this._messageInterceptors=new Map,this._onHandlers=new Map,this._onceHandlers=new Map,this._subscriptionNamesByHandler=new Map,this._subscriptionNamesBySubjectName=new Map}get accounts(){return new qe(this)}get users(){return new Ue(this)}get store(){return new Be(this)}get applications(){return new Me(this)}get media(){return new Ve(this)}get proxy(){return new ze(this)}get devices(){return new Le(this)}get rootSettingsNavigation(){return new Zt(this.store)}get weather(){return new He(this)}get currency(){return new Ke(this)}get environment(){return new De(this)}get mqtt(){return new We(this)}get applicationName(){return this._applicationName}get applicationSpecifier(){return this._applicationSpecifier}get applicationInstance(){return this._applicationInstance}bind(){var e,t,s;const n=new URL(H.location.href),r=n.searchParams;if(this._applicationInstance=(e=r.get("applicationInstance"))!==null&&e!==void 0?e:"",!this._applicationInstance)throw new Error("Missing applicationInstance query parameter");if(this._applicationSpecifier=(t=r.get("applicationSpecifier"))!==null&&t!==void 0?t:"",!this._applicationSpecifier){const i=n.hostname.split(".");this._applicationSpecifier=(s=i[0])!==null&&s!==void 0?s:""}if(!this._applicationSpecifier||this._applicationSpecifier.length!==40)throw new Error(`Invalid applicationSpecifier: expected 40-character hash, got "${this._applicationSpecifier}"`);this._windowMessageHandler=i=>{if(i.source===H||!i.data||typeof i.data!="object"||!("type"in i.data)||i.data.type!=="client"&&i.data.type!=="bridge")return;let o;if(i.data.type==="client"){const c=this._messageInterceptors.get(i.data.name);if(!c){B(i.data);return}o={...c(i.data.data),type:"bridge"}}if(!o){const c=Tt.safeParse(i.data);if(!c.success)return;o=c.data;const h=this._onHandlers.get(o.name),y=this._onceHandlers.get(o.name);if(h)for(const w of h)w(o.data);if(y){for(const w of y)w(o.data);this._onceHandlers.delete(o.name)}}if(!ge)for(let c=0;c<window.frames.length;c+=1)window.frames[c].postMessage(o,"*")},H.addEventListener("message",this._windowMessageHandler)}unbind(){this._windowMessageHandler&&H.removeEventListener("message",this._windowMessageHandler)}send(e,t){const s=Q({telemetrySdkVersion:K,applicationName:this._applicationName,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:t});B(s)}request(e,t,s){var n;const r=G(),i=Q({telemetrySdkVersion:K,applicationName:this._applicationName,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:t,responseName:r});B(i);const o=(n=s==null?void 0:s.timeout)!==null&&n!==void 0?n:z;let c=!1,h;const y=new Promise(S=>{h=P=>{c||S(P)},this.once(r,h)});if(o===0)return y;const w=new Promise((S,P)=>{const F=new Error(`${e} message request with response name of ${r} timed out after ${o}`);setTimeout(()=>{c=!0,this.off(r,h),P(F)},o)});return Promise.race([w,y])}async subscribe(e,t,s){let n,r;typeof t=="function"?r=t:(n=t,r=s);const i=G(),o=G();let c=this._subscriptionNamesBySubjectName.get(e);c||(c=[],this._subscriptionNamesBySubjectName.set(e,c)),c.push(i),this._subscriptionNamesByHandler.set(r,i),this.on(i,r);const h=Q({telemetrySdkVersion:K,applicationName:this._applicationName,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:n,responseName:o,subscriptionName:i});B(h);let y=!1,w;const S=new Promise((F,R)=>{const se=new Error(`${e} subscribe request with subscription name of ${i} and response name of ${o} timed out after ${z}`);setTimeout(()=>{y=!0,this.off(o,w),R(se)},z)}),P=new Promise(F=>{w=R=>{y||F(R)},this.once(o,w)});return Promise.race([S,P])}async unsubscribe(e,t,s){let n,r;typeof t=="function"?r=t:(n=t,r=s);const i=G();let o=[];if(r){const c=this._subscriptionNamesByHandler.get(r);if(!c)return{success:!1};o=[c],this._subscriptionNamesByHandler.delete(r)}else if(!this._subscriptionNamesBySubjectName.get(e))return{success:!1};for await(const c of o){this.off(c,r);const h=Q({telemetrySdkVersion:K,applicationInstance:this._applicationInstance,applicationName:this._applicationName,applicationSpecifier:this._applicationSpecifier,name:e,data:n,responseName:i,unsubscribeName:c});B(h);let y=!1,w;const S=new Promise((F,R)=>{const se=new Error(`${e} unsubscribe request with unsubscribe name of ${c} and response name of ${i} timed out after ${z}`);setTimeout(()=>{y=!0,this.off(i,w),R(se)},z)}),P=new Promise(F=>{w=R=>{y||F(R)},this.once(i,w)});if(!(await Promise.race([S,P])).success)return{success:!1}}return{success:!0}}on(e,t){var s;const n=(s=this._onHandlers.get(e))!==null&&s!==void 0?s:[];n.length===0&&this._onHandlers.set(e,n),n.push(t)}once(e,t){var s;const n=(s=this._onceHandlers.get(e))!==null&&s!==void 0?s:[];n.length===0&&this._onceHandlers.set(e,n),n.push(t)}off(e,t){const s=this._onHandlers.get(e),n=this._onceHandlers.get(e);if(!(!s&&!n)){if(s){for(let r=0;r<s.length;r+=1)t&&s[r]!==t||(s.splice(r,1),r-=1);s.length===0&&this._onHandlers.delete(e)}if(n){for(let r=0;r<n.length;r+=1)t&&n[r]!==t||(n.splice(r,1),r-=1);n.length===0&&this._onceHandlers.delete(e)}}}}function G(){return Math.random().toString(36).slice(2,9)}const K=Nt.version;class At{constructor(e){this._client=e}async setOverride(e){if(!(await this._client.request("overrides.setOverride",{name:e})).success)throw new Error("Failed to set override");return!0}async clearOverride(e){if(!(await this._client.request("overrides.clearOverride",{name:e})).success)throw new Error("Failed to clear override");return!0}}class It{constructor(e){this._client=e}async nextPage(){if(!(await this._client.request("playlist.nextPage",{})).success)throw new Error("Failed to advance to next page");return!0}async previousPage(){if(!(await this._client.request("playlist.previousPage",{})).success)throw new Error("Failed to return to previous page");return!0}async setDuration(e){if(!(await this._client.request("playlist.setDuration",{duration:e})).success)throw new Error("Failed to set page duration");return!0}}class Et extends Ot{get playlist(){return new It(this)}get overrides(){return new At(this)}}let f=null;function $t(){return f}function jt(a){f=new Et(a),f.bind()}function Pt(){f==null||f.unbind(),f=null}function Ft(...a){return k(f),f.on(...a)}function Rt(...a){return k(f),f.once(...a)}function qt(...a){return k(f),f.off(...a)}function Mt(...a){return k(f),f.send(...a)}function Lt(...a){return k(f),f.request(...a)}function Dt(...a){return k(f),f.subscribe(...a)}function Vt(...a){return k(f),f.unsubscribe(...a)}function zt(){return k(f),f.store}function Bt(){return k(f),f.applications}function Ut(){return k(f),f.media}function Ht(){return k(f),f.accounts}function Kt(){return k(f),f.users}function Wt(){return k(f),f.devices}function Jt(){return k(f),f.proxy}function Qt(){return k(f),f.weather}function Gt(){return k(f),f.currency}function Yt(){return k(f),f.environment}function Xt(){return k(f),f.playlist}function es(){return k(f),f.overrides}function ts(){return k(f),f.mqtt}function k(a){if(!a)throw new Error("SDK is not configured")}exports.Accounts=qe;exports.Applications=Me;exports.Currency=Ke;exports.Devices=Le;exports.Environment=De;exports.Media=Ve;exports.Mqtt=We;exports.Proxy=ze;exports.Store=Be;exports.StoreSlice=U;exports.Users=Ue;exports.Weather=He;exports.accounts=Ht;exports.applications=Bt;exports.configure=jt;exports.currency=Gt;exports.destroy=Pt;exports.devices=Wt;exports.environment=Yt;exports.globalClient=$t;exports.media=Ut;exports.mqtt=ts;exports.off=qt;exports.on=Ft;exports.once=Rt;exports.overrides=es;exports.playlist=Xt;exports.proxy=Jt;exports.request=Lt;exports.send=Mt;exports.store=zt;exports.subscribe=Dt;exports.telemetrySdkVersion=K;exports.unsubscribe=Vt;exports.users=Kt;exports.weather=Qt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var b;(function(a){a.assertEqual=n=>{};function e(n){}a.assertIs=e;function t(n){throw new Error}a.assertNever=t,a.arrayToEnum=n=>{const r={};for(const i of n)r[i]=i;return r},a.getValidEnumValues=n=>{const r=a.objectKeys(n).filter(o=>typeof n[n[o]]!="number"),i={};for(const o of r)i[o]=n[o];return a.objectValues(i)},a.objectValues=n=>a.objectKeys(n).map(function(r){return n[r]}),a.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{const r=[];for(const i in n)Object.prototype.hasOwnProperty.call(n,i)&&r.push(i);return r},a.find=(n,r)=>{for(const i of n)if(r(i))return i},a.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function s(n,r=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(r)}a.joinValues=s,a.jsonStringifyReplacer=(n,r)=>typeof r=="bigint"?r.toString():r})(b||(b={}));var ye;(function(a){a.mergeShapes=(e,t)=>({...e,...t})})(ye||(ye={}));const h=b.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A=a=>{switch(typeof a){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(a)?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(a)?h.array:a===null?h.null:a.then&&typeof a.then=="function"&&a.catch&&typeof a.catch=="function"?h.promise:typeof Map<"u"&&a instanceof Map?h.map:typeof Set<"u"&&a instanceof Set?h.set:typeof Date<"u"&&a instanceof Date?h.date:h.object;default:return h.unknown}},u=b.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 O extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};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(r){return r.message},s={_errors:[]},n=r=>{for(const i of r.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let o=s,c=0;for(;c<i.path.length;){const l=i.path[c];c===i.path.length-1?(o[l]=o[l]||{_errors:[]},o[l]._errors.push(t(i))):o[l]=o[l]||{_errors:[]},o=o[l],c++}}};return n(this),s}static assert(e){if(!(e instanceof O))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,b.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},s=[];for(const n of this.issues)if(n.path.length>0){const r=n.path[0];t[r]=t[r]||[],t[r].push(e(n))}else s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}O.create=a=>new O(a);const ae=(a,e)=>{let t;switch(a.code){case u.invalid_type:a.received===h.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case u.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,b.jsonStringifyReplacer)}`;break;case u.unrecognized_keys:t=`Unrecognized key(s) in object: ${b.joinValues(a.keys,", ")}`;break;case u.invalid_union:t="Invalid input";break;case u.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${b.joinValues(a.options)}`;break;case u.invalid_enum_value:t=`Invalid enum value. Expected ${b.joinValues(a.options)}, received '${a.received}'`;break;case u.invalid_arguments:t="Invalid function arguments";break;case u.invalid_return_type:t="Invalid function return type";break;case u.invalid_date:t="Invalid date";break;case u.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:b.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case u.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case u.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case u.custom:t="Invalid input";break;case u.invalid_intersection_types:t="Intersection results could not be merged";break;case u.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case u.not_finite:t="Number must be finite";break;default:t=e.defaultError,b.assertNever(a)}return{message:t}};let Je=ae;function Qe(){return Je}const Ge=a=>{const{data:e,path:t,errorMaps:s,issueData:n}=a,r=[...t,...n.path||[]],i={...n,path:r};if(n.message!==void 0)return{...n,path:r,message:n.message};let o="";const c=s.filter(l=>!!l).slice().reverse();for(const l of c)o=l(i,{data:e,defaultError:o}).message;return{...n,path:r,message:o}};function d(a,e){const t=Qe(),s=Ge({issueData:e,data:a.data,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,t,t===ae?void 0:ae].filter(n=>!!n)});a.common.issues.push(s)}class S{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const n of t){if(n.status==="aborted")return _;n.status==="dirty"&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const n of t){const r=await n.key,i=await n.value;s.push({key:r,value:i})}return S.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const n of t){const{key:r,value:i}=n;if(r.status==="aborted"||i.status==="aborted")return _;r.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),r.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(s[r.value]=i.value)}return{status:e.value,value:s}}}const _=Object.freeze({status:"aborted"}),re=a=>({status:"dirty",value:a}),C=a=>({status:"valid",value:a}),ve=a=>a.status==="aborted",be=a=>a.status==="dirty",M=a=>a.status==="valid",Y=a=>typeof Promise<"u"&&a instanceof Promise;var p;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(p||(p={}));let E=class{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 we=(a,e)=>{if(M(e))return{success:!0,data:e.value};if(!a.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 O(a.common.issues);return this._error=t,this._error}}};function y(a){if(!a)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:n}=a;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(r,i)=>{const{message:o}=a;return r.code==="invalid_enum_value"?{message:o??i.defaultError}:typeof i.data>"u"?{message:o??s??i.defaultError}:r.code!=="invalid_type"?{message:i.defaultError}:{message:o??t??i.defaultError}},description:n}}let v=class{get description(){return this._def.description}_getType(e){return A(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:A(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new S,ctx:{common:e.parent.common,data:e.data,parsedType:A(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Y(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==null?void 0:t.async)??!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)},n=this._parseSync({data:e,path:s.path,parent:s});return we(s,n)}"~validate"(e){var t,s;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)};if(!this["~standard"].async)try{const r=this._parseSync({data:e,path:[],parent:n});return M(r)?{value:r.value}:{issues:n.common.issues}}catch(r){(s=(t=r==null?void 0:r.message)==null?void 0:t.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>M(r)?{value:r.value}:{issues:n.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==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:A(e)},n=this._parse({data:e,path:s.path,parent:s}),r=await(Y(n)?n:Promise.resolve(n));return we(s,r)}refine(e,t){const s=n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t;return this._refinement((n,r)=>{const i=e(n),o=()=>r.addIssue({code:u.custom,...s(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,t){return this._refinement((s,n)=>e(s)?!0:(n.addIssue(typeof t=="function"?t(s,n):t),!1))}_refinement(e){return new L({schema:this,typeName:m.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:t=>this["~validate"](t)}}optional(){return I.create(this,this._def)}nullable(){return D.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return N.create(this)}promise(){return te.create(this,this._def)}or(e){return X.create([this,e],this._def)}and(e){return ee.create(this,e,this._def)}transform(e){return new L({...y(this._def),schema:this,typeName:m.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new he({...y(this._def),innerType:this,defaultValue:t,typeName:m.ZodDefault})}brand(){return new bt({typeName:m.ZodBranded,type:this,...y(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new pe({...y(this._def),innerType:this,catchValue:t,typeName:m.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return _e.create(this,e)}readonly(){return fe.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Ye=/^c[^\s-]{8,}$/i,Xe=/^[0-9a-z]+$/,et=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tt=/^[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,st=/^[a-z0-9_-]{21}$/i,nt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,at=/^[-+]?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)?)??$/,rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,it="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let ne;const ot=/^(?:(?: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])$/,ct=/^(?:(?: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])$/,ut=/^(([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]))$/,dt=/^(([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])$/,lt=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ht=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,je="((\\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])))",pt=new RegExp(`^${je}$`);function Pe(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);const t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function ft(a){return new RegExp(`^${Pe(a)}$`)}function mt(a){let e=`${je}T${Pe(a)}`;const t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function _t(a,e){return!!((e==="v4"||!e)&&ot.test(a)||(e==="v6"||!e)&&ut.test(a))}function gt(a,e){if(!nt.test(a))return!1;try{const[t]=a.split(".");if(!t)return!1;const s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return!(typeof n!="object"||n===null||"typ"in n&&(n==null?void 0:n.typ)!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function yt(a,e){return!!((e==="v4"||!e)&&ct.test(a)||(e==="v6"||!e)&&dt.test(a))}let ie=class z extends v{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==h.string){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:h.string,received:n.parsedType}),_}const t=new S;let s;for(const n of this._def.checks)if(n.kind==="min")e.data.length<n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if(n.kind==="max")e.data.length>n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),t.dirty());else if(n.kind==="length"){const r=e.data.length>n.value,i=e.data.length<n.value;(r||i)&&(s=this._getOrReturnCtx(e,s),r?d(s,{code:u.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):i&&d(s,{code:u.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),t.dirty())}else if(n.kind==="email")rt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"email",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="emoji")ne||(ne=new RegExp(it,"u")),ne.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"emoji",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="uuid")tt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"uuid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="nanoid")st.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"nanoid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="cuid")Ye.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="cuid2")Xe.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cuid2",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="ulid")et.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ulid",code:u.invalid_string,message:n.message}),t.dirty());else if(n.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),d(s,{validation:"url",code:u.invalid_string,message:n.message}),t.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"regex",code:u.invalid_string,message:n.message}),t.dirty())):n.kind==="trim"?e.data=e.data.trim():n.kind==="includes"?e.data.includes(n.value,n.position)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),t.dirty()):n.kind==="toLowerCase"?e.data=e.data.toLowerCase():n.kind==="toUpperCase"?e.data=e.data.toUpperCase():n.kind==="startsWith"?e.data.startsWith(n.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{startsWith:n.value},message:n.message}),t.dirty()):n.kind==="endsWith"?e.data.endsWith(n.value)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:{endsWith:n.value},message:n.message}),t.dirty()):n.kind==="datetime"?mt(n).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"datetime",message:n.message}),t.dirty()):n.kind==="date"?pt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"date",message:n.message}),t.dirty()):n.kind==="time"?ft(n).test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:u.invalid_string,validation:"time",message:n.message}),t.dirty()):n.kind==="duration"?at.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"duration",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="ip"?_t(e.data,n.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"ip",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="jwt"?gt(e.data,n.alg)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"jwt",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="cidr"?yt(e.data,n.version)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"cidr",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="base64"?lt.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64",code:u.invalid_string,message:n.message}),t.dirty()):n.kind==="base64url"?ht.test(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{validation:"base64url",code:u.invalid_string,message:n.message}),t.dirty()):b.assertNever(n);return{status:t.value,value:e.data}}_regex(e,t,s){return this.refinement(n=>e.test(n),{validation:t,code:u.invalid_string,...p.errToObj(s)})}_addCheck(e){return new z({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...p.errToObj(e)})}url(e){return this._addCheck({kind:"url",...p.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...p.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...p.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...p.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...p.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...p.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...p.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...p.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...p.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...p.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...p.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...p.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...p.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...p.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...p.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...p.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...p.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...p.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...p.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...p.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...p.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...p.errToObj(t)})}nonempty(e){return this.min(1,p.errToObj(e))}trim(){return new z({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new z({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new z({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};ie.create=a=>new ie({checks:[],typeName:m.ZodString,coerce:(a==null?void 0:a.coerce)??!1,...y(a)});function vt(a,e){const t=(a.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,r=Number.parseInt(a.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return r%i/10**n}let ke=class oe extends v{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 n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:h.number,received:n.parsedType}),_}let t;const s=new S;for(const n of this._def.checks)n.kind==="int"?b.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),d(t,{code:u.invalid_type,expected:"integer",received:"float",message:n.message}),s.dirty()):n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),s.dirty()):n.kind==="multipleOf"?vt(e.data,n.value)!==0&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_finite,message:n.message}),s.dirty()):b.assertNever(n);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,s,n){return new oe({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:p.toString(n)}]})}_addCheck(e){return new oe({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:p.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:p.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&b.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}};ke.create=a=>new ke({checks:[],typeName:m.ZodNumber,coerce:(a==null?void 0:a.coerce)||!1,...y(a)});class W extends v{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 s=new S;for(const n of this._def.checks)n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),s.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),d(t,{code:u.not_multiple_of,multipleOf:n.value,message:n.message}),s.dirty()):b.assertNever(n);return{status:s.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.bigint,received:t.parsedType}),_}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,s,n){return new W({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:p.toString(n)}]})}_addCheck(e){return new W({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}W.create=a=>new W({checks:[],typeName:m.ZodBigInt,coerce:(a==null?void 0:a.coerce)??!1,...y(a)});class xe extends v{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==h.boolean){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.boolean,received:t.parsedType}),_}return C(e.data)}}xe.create=a=>new xe({typeName:m.ZodBoolean,coerce:(a==null?void 0:a.coerce)||!1,...y(a)});let Se=class Re extends v{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==h.date){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_type,expected:h.date,received:n.parsedType}),_}if(Number.isNaN(e.data.getTime())){const n=this._getOrReturnCtx(e);return d(n,{code:u.invalid_date}),_}const t=new S;let s;for(const n of this._def.checks)n.kind==="min"?e.data.getTime()<n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),t.dirty()):n.kind==="max"?e.data.getTime()>n.value&&(s=this._getOrReturnCtx(e,s),d(s,{code:u.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),t.dirty()):b.assertNever(n);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:p.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:p.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};Se.create=a=>new Se({checks:[],coerce:(a==null?void 0:a.coerce)||!1,typeName:m.ZodDate,...y(a)});class Ce extends v{_parse(e){if(this._getType(e)!==h.symbol){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.symbol,received:t.parsedType}),_}return C(e.data)}}Ce.create=a=>new Ce({typeName:m.ZodSymbol,...y(a)});class Te extends v{_parse(e){if(this._getType(e)!==h.undefined){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.undefined,received:t.parsedType}),_}return C(e.data)}}Te.create=a=>new Te({typeName:m.ZodUndefined,...y(a)});class Ne extends v{_parse(e){if(this._getType(e)!==h.null){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.null,received:t.parsedType}),_}return C(e.data)}}Ne.create=a=>new Ne({typeName:m.ZodNull,...y(a)});class ce extends v{constructor(){super(...arguments),this._any=!0}_parse(e){return C(e.data)}}ce.create=a=>new ce({typeName:m.ZodAny,...y(a)});class Oe extends v{constructor(){super(...arguments),this._unknown=!0}_parse(e){return C(e.data)}}Oe.create=a=>new Oe({typeName:m.ZodUnknown,...y(a)});let $=class extends v{_parse(e){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.never,received:t.parsedType}),_}};$.create=a=>new $({typeName:m.ZodNever,...y(a)});class Ze extends v{_parse(e){if(this._getType(e)!==h.undefined){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.void,received:t.parsedType}),_}return C(e.data)}}Ze.create=a=>new Ze({typeName:m.ZodVoid,...y(a)});class N extends v{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==h.array)return d(t,{code:u.invalid_type,expected:h.array,received:t.parsedType}),_;if(n.exactLength!==null){const i=t.data.length>n.exactLength.value,o=t.data.length<n.exactLength.value;(i||o)&&(d(t,{code:i?u.too_big:u.too_small,minimum:o?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),s.dirty())}if(n.minLength!==null&&t.data.length<n.minLength.value&&(d(t,{code:u.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),s.dirty()),n.maxLength!==null&&t.data.length>n.maxLength.value&&(d(t,{code:u.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((i,o)=>n.type._parseAsync(new E(t,i,t.path,o)))).then(i=>S.mergeArray(s,i));const r=[...t.data].map((i,o)=>n.type._parseSync(new E(t,i,t.path,o)));return S.mergeArray(s,r)}get element(){return this._def.type}min(e,t){return new N({...this._def,minLength:{value:e,message:p.toString(t)}})}max(e,t){return new N({...this._def,maxLength:{value:e,message:p.toString(t)}})}length(e,t){return new N({...this._def,exactLength:{value:e,message:p.toString(t)}})}nonempty(e){return this.min(1,e)}}N.create=(a,e)=>new N({type:a,minLength:null,maxLength:null,exactLength:null,typeName:m.ZodArray,...y(e)});function q(a){if(a instanceof Z){const e={};for(const t in a.shape){const s=a.shape[t];e[t]=I.create(q(s))}return new Z({...a._def,shape:()=>e})}else return a instanceof N?new N({...a._def,type:q(a.element)}):a instanceof I?I.create(q(a.unwrap())):a instanceof D?D.create(q(a.unwrap())):a instanceof F?F.create(a.items.map(e=>q(e))):a}let Z=class T extends v{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=b.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==h.object){const c=this._getOrReturnCtx(e);return d(c,{code:u.invalid_type,expected:h.object,received:c.parsedType}),_}const{status:t,ctx:s}=this._processInputParams(e),{shape:n,keys:r}=this._getCached(),i=[];if(!(this._def.catchall instanceof $&&this._def.unknownKeys==="strip"))for(const c in s.data)r.includes(c)||i.push(c);const o=[];for(const c of r){const l=n[c],g=s.data[c];o.push({key:{status:"valid",value:c},value:l._parse(new E(s,g,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof $){const c=this._def.unknownKeys;if(c==="passthrough")for(const l of i)o.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(c==="strict")i.length>0&&(d(s,{code:u.unrecognized_keys,keys:i}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const l of i){const g=s.data[l];o.push({key:{status:"valid",value:l},value:c._parse(new E(s,g,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const c=[];for(const l of o){const g=await l.key,w=await l.value;c.push({key:g,value:w,alwaysSet:l.alwaysSet})}return c}).then(c=>S.mergeObjectSync(t,c)):S.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return p.errToObj,new T({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{var n,r;const i=((r=(n=this._def).errorMap)==null?void 0:r.call(n,t,s).message)??s.defaultError;return t.code==="unrecognized_keys"?{message:p.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new T({...this._def,unknownKeys:"strip"})}passthrough(){return new T({...this._def,unknownKeys:"passthrough"})}extend(e){return new T({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new T({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:m.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new T({...this._def,catchall:e})}pick(e){const t={};for(const s of b.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new T({...this._def,shape:()=>t})}omit(e){const t={};for(const s of b.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new T({...this._def,shape:()=>t})}deepPartial(){return q(this)}partial(e){const t={};for(const s of b.objectKeys(this.shape)){const n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}return new T({...this._def,shape:()=>t})}required(e){const t={};for(const s of b.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof I;)n=n._def.innerType;t[s]=n}return new T({...this._def,shape:()=>t})}keyof(){return Fe(b.objectKeys(this.shape))}};Z.create=(a,e)=>new Z({shape:()=>a,unknownKeys:"strip",catchall:$.create(),typeName:m.ZodObject,...y(e)});Z.strictCreate=(a,e)=>new Z({shape:()=>a,unknownKeys:"strict",catchall:$.create(),typeName:m.ZodObject,...y(e)});Z.lazycreate=(a,e)=>new Z({shape:a,unknownKeys:"strip",catchall:$.create(),typeName:m.ZodObject,...y(e)});let X=class extends v{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function n(r){for(const o of r)if(o.result.status==="valid")return o.result;for(const o of r)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;const i=r.map(o=>new O(o.ctx.common.issues));return d(t,{code:u.invalid_union,unionErrors:i}),_}if(t.common.async)return Promise.all(s.map(async r=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await r._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(n);{let r;const i=[];for(const c of s){const l={...t,common:{...t.common,issues:[]},parent:null},g=c._parseSync({data:t.data,path:t.path,parent:l});if(g.status==="valid")return g;g.status==="dirty"&&!r&&(r={result:g,ctx:l}),l.common.issues.length&&i.push(l.common.issues)}if(r)return t.common.issues.push(...r.ctx.common.issues),r.result;const o=i.map(c=>new O(c));return d(t,{code:u.invalid_union,unionErrors:o}),_}}get options(){return this._def.options}};X.create=(a,e)=>new X({options:a,typeName:m.ZodUnion,...y(e)});function ue(a,e){const t=A(a),s=A(e);if(a===e)return{valid:!0,data:a};if(t===h.object&&s===h.object){const n=b.objectKeys(e),r=b.objectKeys(a).filter(o=>n.indexOf(o)!==-1),i={...a,...e};for(const o of r){const c=ue(a[o],e[o]);if(!c.valid)return{valid:!1};i[o]=c.data}return{valid:!0,data:i}}else if(t===h.array&&s===h.array){if(a.length!==e.length)return{valid:!1};const n=[];for(let r=0;r<a.length;r++){const i=a[r],o=e[r],c=ue(i,o);if(!c.valid)return{valid:!1};n.push(c.data)}return{valid:!0,data:n}}else return t===h.date&&s===h.date&&+a==+e?{valid:!0,data:a}:{valid:!1}}let ee=class extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=(r,i)=>{if(ve(r)||ve(i))return _;const o=ue(r.value,i.value);return o.valid?((be(r)||be(i))&&t.dirty(),{status:t.value,value:o.data}):(d(s,{code:u.invalid_intersection_types}),_)};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(([r,i])=>n(r,i)):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}))}};ee.create=(a,e,t)=>new ee({left:a,right:e,typeName:m.ZodIntersection,...y(t)});class F extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==h.array)return d(s,{code:u.invalid_type,expected:h.array,received:s.parsedType}),_;if(s.data.length<this._def.items.length)return d(s,{code:u.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_;!this._def.rest&&s.data.length>this._def.items.length&&(d(s,{code:u.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const n=[...s.data].map((r,i)=>{const o=this._def.items[i]||this._def.rest;return o?o._parse(new E(s,r,s.path,i)):null}).filter(r=>!!r);return s.common.async?Promise.all(n).then(r=>S.mergeArray(t,r)):S.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new F({...this._def,rest:e})}}F.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new F({items:a,typeName:m.ZodTuple,rest:null,...y(e)})};class Ae extends v{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!==h.map)return d(s,{code:u.invalid_type,expected:h.map,received:s.parsedType}),_;const n=this._def.keyType,r=this._def.valueType,i=[...s.data.entries()].map(([o,c],l)=>({key:n._parse(new E(s,o,s.path,[l,"key"])),value:r._parse(new E(s,c,s.path,[l,"value"]))}));if(s.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const c of i){const l=await c.key,g=await c.value;if(l.status==="aborted"||g.status==="aborted")return _;(l.status==="dirty"||g.status==="dirty")&&t.dirty(),o.set(l.value,g.value)}return{status:t.value,value:o}})}else{const o=new Map;for(const c of i){const l=c.key,g=c.value;if(l.status==="aborted"||g.status==="aborted")return _;(l.status==="dirty"||g.status==="dirty")&&t.dirty(),o.set(l.value,g.value)}return{status:t.value,value:o}}}}Ae.create=(a,e,t)=>new Ae({valueType:e,keyType:a,typeName:m.ZodMap,...y(t)});class J extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==h.set)return d(s,{code:u.invalid_type,expected:h.set,received:s.parsedType}),_;const n=this._def;n.minSize!==null&&s.data.size<n.minSize.value&&(d(s,{code:u.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),n.maxSize!==null&&s.data.size>n.maxSize.value&&(d(s,{code:u.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());const r=this._def.valueType;function i(c){const l=new Set;for(const g of c){if(g.status==="aborted")return _;g.status==="dirty"&&t.dirty(),l.add(g.value)}return{status:t.value,value:l}}const o=[...s.data.values()].map((c,l)=>r._parse(new E(s,c,s.path,l)));return s.common.async?Promise.all(o).then(c=>i(c)):i(o)}min(e,t){return new J({...this._def,minSize:{value:e,message:p.toString(t)}})}max(e,t){return new J({...this._def,maxSize:{value:e,message:p.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}J.create=(a,e)=>new J({valueType:a,minSize:null,maxSize:null,typeName:m.ZodSet,...y(e)});class Ie extends v{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})}}Ie.create=(a,e)=>new Ie({getter:a,typeName:m.ZodLazy,...y(e)});let de=class extends v{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return d(t,{received:t.data,code:u.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:e.data}}get value(){return this._def.value}};de.create=(a,e)=>new de({value:a,typeName:m.ZodLiteral,...y(e)});function Fe(a,e){return new me({values:a,typeName:m.ZodEnum,...y(e)})}let me=class le extends v{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return d(t,{expected:b.joinValues(s),received:t.parsedType,code:u.invalid_type}),_}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 d(t,{received:t.data,code:u.invalid_enum_value,options:s}),_}return C(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 le.create(e,{...this._def,...t})}exclude(e,t=this._def){return le.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};me.create=Fe;class Ee extends v{_parse(e){const t=b.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==h.string&&s.parsedType!==h.number){const n=b.objectValues(t);return d(s,{expected:b.joinValues(n),received:s.parsedType,code:u.invalid_type}),_}if(this._cache||(this._cache=new Set(b.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const n=b.objectValues(t);return d(s,{received:s.data,code:u.invalid_enum_value,options:n}),_}return C(e.data)}get enum(){return this._def.values}}Ee.create=(a,e)=>new Ee({values:a,typeName:m.ZodNativeEnum,...y(e)});let te=class extends v{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==h.promise&&t.common.async===!1)return d(t,{code:u.invalid_type,expected:h.promise,received:t.parsedType}),_;const s=t.parsedType===h.promise?t.data:Promise.resolve(t.data);return C(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}};te.create=(a,e)=>new te({type:a,typeName:m.ZodPromise,...y(e)});class L extends v{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===m.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,r={addIssue:i=>{d(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(r.addIssue=r.addIssue.bind(r),n.type==="preprocess"){const i=n.transform(s.data,r);if(s.common.async)return Promise.resolve(i).then(async o=>{if(t.value==="aborted")return _;const c=await this._def.schema._parseAsync({data:o,path:s.path,parent:s});return c.status==="aborted"?_:c.status==="dirty"||t.value==="dirty"?re(c.value):c});{if(t.value==="aborted")return _;const o=this._def.schema._parseSync({data:i,path:s.path,parent:s});return o.status==="aborted"?_:o.status==="dirty"||t.value==="dirty"?re(o.value):o}}if(n.type==="refinement"){const i=o=>{const c=n.refinement(o,r);if(s.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(s.common.async===!1){const o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?_:(o.status==="dirty"&&t.dirty(),i(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>o.status==="aborted"?_:(o.status==="dirty"&&t.dirty(),i(o.value).then(()=>({status:t.value,value:o.value}))))}if(n.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!M(i))return _;const o=n.transform(i.value,r);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>M(i)?Promise.resolve(n.transform(i.value,r)).then(o=>({status:t.value,value:o})):_);b.assertNever(n)}}L.create=(a,e,t)=>new L({schema:a,typeName:m.ZodEffects,effect:e,...y(t)});L.createWithPreprocess=(a,e,t)=>new L({schema:e,effect:{type:"preprocess",transform:a},typeName:m.ZodEffects,...y(t)});let I=class extends v{_parse(e){return this._getType(e)===h.undefined?C(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};I.create=(a,e)=>new I({innerType:a,typeName:m.ZodOptional,...y(e)});let D=class extends v{_parse(e){return this._getType(e)===h.null?C(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};D.create=(a,e)=>new D({innerType:a,typeName:m.ZodNullable,...y(e)});let he=class extends v{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===h.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};he.create=(a,e)=>new he({innerType:a,typeName:m.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...y(e)});class pe extends v{_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 Y(n)?n.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new O(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new O(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}pe.create=(a,e)=>new pe({innerType:a,typeName:m.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...y(e)});class $e extends v{_parse(e){if(this._getType(e)!==h.nan){const t=this._getOrReturnCtx(e);return d(t,{code:u.invalid_type,expected:h.nan,received:t.parsedType}),_}return{status:"valid",value:e.data}}}$e.create=a=>new $e({typeName:m.ZodNaN,...y(a)});class bt extends v{_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 _e extends v{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?_:n.status==="dirty"?(t.dirty(),re(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{const n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?_:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new _e({in:e,out:t,typeName:m.ZodPipeline})}}class fe extends v{_parse(e){const t=this._def.innerType._parse(e),s=n=>(M(n)&&(n.value=Object.freeze(n.value)),n);return Y(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}}fe.create=(a,e)=>new fe({innerType:a,typeName:m.ZodReadonly,...y(e)});var m;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(m||(m={}));const wt=ie.create,kt=ce.create;$.create;N.create;const xt=Z.create;X.create;ee.create;F.create;const St=de.create;me.create;te.create;I.create;D.create;const Ct="1.13.1",Tt={version:Ct};class qe{constructor(e){this._client=e}async getCurrent(){const e=await this._client.request("accounts.getCurrent",{});if(!e.success)throw new Error("Failed to fetch current account");return e.account}}class Me{constructor(e){this._client=e}async getAllByMountPoint(e){return(await this._client.request("applications.getAllByMountPoint",{mountPoint:e})).applications}async getByName(e){return(await this._client.request("applications.getByName",{name:e})).application}async setDependencies(e){return await this._client.request("applications.setDependencies",{applicationSpecifiers:e},{timeout:0})}bind(e,t){if(this._client._messageInterceptors.has(e))throw new Error(`Interceptor already bound for message ${e}`);this._client._messageInterceptors.set(e,t)}}class Le{constructor(e){this._client=e}async getInformation(){const e=await this._client.request("devices.getInformation",{});if(!e.success)throw new Error("Failed to get device information");return e.deviceInformation}async getCapabilities(){const e=await this._client.request("devices.getCapabilities",{});if(!e.success)throw new Error("Failed to get device capabilities");return e.capabilities}}class De{constructor(e){this._client=e}async getColorScheme(){return(await this._client.request("environment.getColorScheme",{})).colorScheme}async subscribeColorScheme(e){return(await this._client.subscribe("environment.subscribeColorScheme",{},e)).success}async unsubscribeColorScheme(e){return(await this._client.unsubscribe("environment.unsubscribeColorScheme",{},e)).success}}class He{constructor(e){this._client=e}async getAllFolders(){return(await this._client.request("mediaFolders.getAll",{})).folders}async getAllByFolderId(e){return(await this._client.request("media.getAllByFolderId",{folderId:e})).contents}async getAllByTag(e){return(await this._client.request("media.getAllByTag",{tagName:e})).contents}async getById(e){return(await this._client.request("media.getById",{id:e})).content}async openPicker(e){return(await this._client.request("media.openPicker",{accept:e==null?void 0:e.accept,currentValue:e==null?void 0:e.currentValue})).selection}}class Ve{constructor(e){this._client=e}async fetch(e,t){var s;let n;typeof e=="string"?n=e:e instanceof URL?n=e.toString():(n=e.url,t||(t={method:e.method,headers:e.headers,body:e.body,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity}));let r={};t!=null&&t.headers&&(t.headers instanceof Headers?t.headers.forEach((g,w)=>{r[w]=g}):Array.isArray(t.headers)?t.headers.forEach(([g,w])=>{r[g]=w}):r=t.headers);const i=await this._client.request("proxy.fetch",{url:n,method:(t==null?void 0:t.method)||"GET",headers:r,body:(s=t==null?void 0:t.body)!==null&&s!==void 0?s:null});if(!i.success)throw new TypeError(i.errorMessage,{cause:i.errorCause?Error(i.errorCause):void 0});const o=new Headers(i.headers),c={status:i.status,statusText:i.statusText,headers:o};let l=null;if(i.body!==null&&i.body!==void 0)if(i.bodyType==="binary"){const g=atob(i.body),w=new Uint8Array(g.length);for(let x=0;x<g.length;x++)w[x]=g.charCodeAt(x);l=w}else i.bodyType==="text"?l=i.body:i.bodyType==="json"&&(l=JSON.stringify(i.body));return new Response(l,c)}}class ze{constructor(e){this._client=e}get application(){return new B("application",void 0,this._client)}get instance(){return new B("instance",this._client.applicationInstance,this._client)}get device(){return new B("device",this._client.deviceId,this._client)}shared(e){return new B("shared",e,this._client)}}class B{constructor(e,t,s){this._kind=e,this._namespace=t,this._client=s}async set(e,t){return(await this._client.request("store.set",{kind:this._kind,namespace:this._namespace,key:e,value:t})).success}async get(e){return(await this._client.request("store.get",{kind:this._kind,namespace:this._namespace,key:e})).value}async subscribe(e,t){return(await this._client.subscribe("store.subscribe",{kind:this._kind,namespace:this._namespace,key:e},t)).success}async unsubscribe(e,t){return(await this._client.unsubscribe("store.unsubscribe",{kind:this._kind,namespace:this._namespace,key:e},t)).success}async delete(e){return(await this._client.request("store.delete",{kind:this._kind,namespace:this._namespace,key:e})).success}}class Be{constructor(e){this._client=e}async getCurrent(){const e=await this._client.request("users.getCurrent",{});if(!e.success)throw new Error("Failed to fetch current user");return e.user}}class Ue{constructor(e){this._client=e}async getCities(e){const t=await this._client.request("weather.getCities",e);if(!t.success)throw new Error(t.error||"Failed to fetch cities");return t.data||[]}async getConditions(e){const t=await this._client.request("weather.getConditions",e);if(!t.success)throw new Error(t.error||"Failed to fetch weather conditions");return t}async getDailyForecast(e){const t=await this._client.request("weather.getDailyForecast",e);if(!t.success)throw new Error(t.error||"Failed to fetch daily forecast");return t}async getHourlyForecast(e){const t=await this._client.request("weather.getHourlyForecast",e);if(!t.success)throw new Error(t.error||"Failed to fetch hourly forecast");return t}async getAlerts(e){const t=await this._client.request("weather.getAlerts",e);if(!t.success)throw new Error(t.error||"Failed to fetch weather alerts");return t}}class Ke{constructor(e){this._client=e}async getSymbols(){const e=await this._client.request("currency.getSymbols",{});if(!e.success||!e.symbols)throw new Error("Failed to fetch currency symbols");return e.symbols}async getRates(e){var t,s,n;const r=await this._client.request("currency.getRates",e);if(!r.success||!r.rates)throw((t=r.error)===null||t===void 0?void 0:t.code)===201?new Error(`Invalid base currency '${e.base}'`):((s=r.error)===null||s===void 0?void 0:s.code)===202?new Error(`Invalid target currency symbol '${e.symbols}'`):new Error(((n=r.error)===null||n===void 0?void 0:n.message)||"Failed to fetch currency rates");return r.rates}}class We{constructor(e){this._client=e}async discover(){const e=await this._client.request("mqtt.discover",{});if(!e.success)throw new Error("Failed to discover MQTT brokers");return e.brokers}async connect(e,t){const s=await this._client.request("mqtt.connect",{brokerUrl:e,...t});if(!s.success)throw new Error("Failed to connect to MQTT broker");return s.clientId}async disconnect(e){if(!(await this._client.request("mqtt.disconnect",{clientId:e})).success)throw new Error("Failed to disconnect from MQTT broker")}async publish(e,t,s,n){if(!(await this._client.request("mqtt.publish",{clientId:e,topic:t,payload:s,...n})).success)throw new Error("Failed to publish MQTT message")}async subscribe(e,t,s,n){return(await this._client.subscribe("mqtt.subscribe",{clientId:e,topic:t,...n},s)).success}async unsubscribe(e,t,s){return(await this._client.unsubscribe("mqtt.unsubscribe",{clientId:e,topic:t},s)).success}async getConnectionStatus(e){const t=await this._client.request("mqtt.getConnectionStatus",{clientId:e});if(!t.success)throw new Error("Failed to get MQTT connection status");return t.status}async subscribeConnectionStatus(e,t){return(await this._client.subscribe("mqtt.subscribeConnectionStatus",{clientId:e},t)).success}async unsubscribeConnectionStatus(e,t){return(await this._client.unsubscribe("mqtt.unsubscribeConnectionStatus",{clientId:e},t)).success}}class Nt{constructor(e){this._originalPushState=null,this._originalReplaceState=null,this._popstateHandler=null,this._backHandler=null,this._forwardHandler=null,this._client=e}bind(){typeof window>"u"||this._originalPushState||(this._originalPushState=history.pushState.bind(history),history.pushState=(...e)=>{this._originalPushState(...e),this._sendLocationChanged()},this._originalReplaceState=history.replaceState.bind(history),history.replaceState=(...e)=>{this._originalReplaceState(...e),this._sendLocationChanged()},this._popstateHandler=()=>this._sendLocationChanged(),window.addEventListener("popstate",this._popstateHandler),this._backHandler=()=>history.back(),this._forwardHandler=()=>history.forward(),this._client.on("navigation.back",this._backHandler),this._client.on("navigation.forward",this._forwardHandler),this._sendLocationChanged())}unbind(){typeof window>"u"||(this._originalPushState&&(history.pushState=this._originalPushState,this._originalPushState=null),this._originalReplaceState&&(history.replaceState=this._originalReplaceState,this._originalReplaceState=null),this._popstateHandler&&(window.removeEventListener("popstate",this._popstateHandler),this._popstateHandler=null),this._backHandler&&(this._client.off("navigation.back",this._backHandler),this._backHandler=null),this._forwardHandler&&(this._client.off("navigation.forward",this._forwardHandler),this._forwardHandler=null))}_sendLocationChanged(){this._client.send("navigation.locationChanged",{pathname:window.location.pathname})}}function Q(a){return{...a,type:"client"}}const Ot=xt({type:St("bridge"),name:wt(),data:kt()});class Zt{constructor(e){if(e._client._applicationSpecifier!=="rootSettingsNavigation")throw new Error("RootSettingsNavigation can only be used in the rootSettingsNavigation mount point");this._store=e}async setRootSettingsNavigation(e){var t;const s=this._store.shared("root-settings-navigation"),n=(t=await s.get("navigation"))!==null&&t!==void 0?t:{},r=this._store._client._applicationSpecifier;n[r]={applicationSpecifier:r,entries:e.entries},s.set("navigation",n)}async getRootSettingsNavigation(){var e;const t=(e=await this._store.shared("root-settings-navigation").get("navigation"))!==null&&e!==void 0?e:{},s=this._store._client._applicationSpecifier;return t[s]}async getAllRootSettingsNavigation(){var e;return(e=await this._store.shared("root-settings-navigation").get("navigation"))!==null&&e!==void 0?e:{}}}const H=1e3*30,ge=typeof window>"u"&&typeof self<"u",U=ge?self:window;function V(a){ge?self.postMessage(a):U.parent.postMessage(a,"*")}class At{constructor(){this._applicationInstance="",this._applicationSpecifier="",this._deviceId="",this._navigation=new Nt(this),this._messageInterceptors=new Map,this._onHandlers=new Map,this._onceHandlers=new Map,this._subscriptionNamesByHandler=new Map,this._subscriptionNamesBySubjectName=new Map}get accounts(){return new qe(this)}get users(){return new Be(this)}get store(){return new ze(this)}get applications(){return new Me(this)}get media(){return new He(this)}get proxy(){return new Ve(this)}get devices(){return new Le(this)}get rootSettingsNavigation(){return new Zt(this.store)}get weather(){return new Ue(this)}get currency(){return new Ke(this)}get environment(){return new De(this)}get mqtt(){return new We(this)}get applicationSpecifier(){return this._applicationSpecifier}get applicationInstance(){return this._applicationInstance}get deviceId(){return this._deviceId}bind(){var e,t;const s=new URL(U.location.href),n=s.searchParams;this._applicationInstance=n.get("applicationInstance")||"single",this._deviceId=n.get("deviceId")||this._applicationInstance;const r=s.hostname.split("."),i=/^[a-f0-9]{40}$/i;if(this._applicationSpecifier=(e=n.get("applicationSpecifier"))!==null&&e!==void 0?e:"",(!this._applicationSpecifier||!i.test(this._applicationSpecifier))&&(this._applicationSpecifier=(t=r[0])!==null&&t!==void 0?t:""),!this._applicationSpecifier||!i.test(this._applicationSpecifier))throw console.error("TelemetryOS apps require an applicationSpecifier in the URL query parameters or subdomain. Make sure your app is being served correctly through the TelemetryOS platform or development environment."),new Error(`Invalid applicationSpecifier: expected 40-character hash, got "${this._applicationSpecifier}"`);this._windowMessageHandler=o=>{if(o.source===U||!o.data||typeof o.data!="object"||!("type"in o.data)||o.data.type!=="client"&&o.data.type!=="bridge")return;let c;if(o.data.type==="client"){const l=this._messageInterceptors.get(o.data.name);if(!l){V(o.data);return}c={...l(o.data.data),type:"bridge",...o.data.responseName?{name:o.data.responseName}:{}}}if(!c){const l=Ot.safeParse(o.data);if(!l.success)return;c=l.data;const g=this._onHandlers.get(c.name),w=this._onceHandlers.get(c.name);if(g)for(const x of g)x(c.data);if(w){for(const x of w)x(c.data);this._onceHandlers.delete(c.name)}}if(!ge)for(let l=0;l<window.frames.length;l+=1)window.frames[l].postMessage(c,"*")},U.addEventListener("message",this._windowMessageHandler),this._navigation.bind()}unbind(){this._windowMessageHandler&&(this._navigation.unbind(),U.removeEventListener("message",this._windowMessageHandler))}send(e,t){const s=Q({telemetrySdkVersion:K,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:t});V(s)}request(e,t,s){var n;const r=G(),i=Q({telemetrySdkVersion:K,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:t,responseName:r});V(i);const o=(n=s==null?void 0:s.timeout)!==null&&n!==void 0?n:H;let c=!1,l;const g=new Promise(x=>{l=j=>{c||x(j)},this.once(r,l)});if(o===0)return g;const w=new Promise((x,j)=>{const P=new Error(`${e} message request with response name of ${r} timed out after ${o}`);setTimeout(()=>{c=!0,this.off(r,l),j(P)},o)});return Promise.race([w,g])}async subscribe(e,t,s){let n,r;typeof t=="function"?r=t:(n=t,r=s);const i=G(),o=G();let c=this._subscriptionNamesBySubjectName.get(e);c||(c=[],this._subscriptionNamesBySubjectName.set(e,c)),c.push(i),this._subscriptionNamesByHandler.set(r,i),this.on(i,r);const l=Q({telemetrySdkVersion:K,applicationSpecifier:this._applicationSpecifier,applicationInstance:this._applicationInstance,name:e,data:n,responseName:o,subscriptionName:i});V(l);let g=!1,w;const x=new Promise((P,R)=>{const se=new Error(`${e} subscribe request with subscription name of ${i} and response name of ${o} timed out after ${H}`);setTimeout(()=>{g=!0,this.off(o,w),R(se)},H)}),j=new Promise(P=>{w=R=>{g||P(R)},this.once(o,w)});return Promise.race([x,j])}async unsubscribe(e,t,s){let n,r;typeof t=="function"?r=t:(n=t,r=s);const i=G();let o=[];if(r){const c=this._subscriptionNamesByHandler.get(r);if(!c)return{success:!1};o=[c],this._subscriptionNamesByHandler.delete(r)}else if(!this._subscriptionNamesBySubjectName.get(e))return{success:!1};for await(const c of o){this.off(c,r);const l=Q({telemetrySdkVersion:K,applicationInstance:this._applicationInstance,applicationSpecifier:this._applicationSpecifier,name:e,data:n,responseName:i,unsubscribeName:c});V(l);let g=!1,w;const x=new Promise((P,R)=>{const se=new Error(`${e} unsubscribe request with unsubscribe name of ${c} and response name of ${i} timed out after ${H}`);setTimeout(()=>{g=!0,this.off(i,w),R(se)},H)}),j=new Promise(P=>{w=R=>{g||P(R)},this.once(i,w)});if(!(await Promise.race([x,j])).success)return{success:!1}}return{success:!0}}on(e,t){var s;const n=(s=this._onHandlers.get(e))!==null&&s!==void 0?s:[];n.length===0&&this._onHandlers.set(e,n),n.push(t)}once(e,t){var s;const n=(s=this._onceHandlers.get(e))!==null&&s!==void 0?s:[];n.length===0&&this._onceHandlers.set(e,n),n.push(t)}off(e,t){const s=this._onHandlers.get(e),n=this._onceHandlers.get(e);if(!(!s&&!n)){if(s){for(let r=0;r<s.length;r+=1)t&&s[r]!==t||(s.splice(r,1),r-=1);s.length===0&&this._onHandlers.delete(e)}if(n){for(let r=0;r<n.length;r+=1)t&&n[r]!==t||(n.splice(r,1),r-=1);n.length===0&&this._onceHandlers.delete(e)}}}}function G(){return Math.random().toString(36).slice(2,9)}const K=Tt.version;class It{constructor(e){this._client=e}async setOverride(e){if(!(await this._client.request("overrides.setOverride",{name:e})).success)throw new Error("Failed to set override");return!0}async clearOverride(e){if(!(await this._client.request("overrides.clearOverride",{name:e})).success)throw new Error("Failed to clear override");return!0}}class Et{constructor(e){this._client=e}async nextPage(){if(!(await this._client.request("playlist.nextPage",{})).success)throw new Error("Failed to advance to next page");return!0}async previousPage(){if(!(await this._client.request("playlist.previousPage",{})).success)throw new Error("Failed to return to previous page");return!0}async setDuration(e){if(!(await this._client.request("playlist.setDuration",{duration:e})).success)throw new Error("Failed to set page duration");return!0}async getDuration(){const e=await this._client.request("playlist.getDuration",{});if(!e.success)throw new Error("Failed to get page duration");return{success:!0,duration:e.duration}}}class $t extends At{get playlist(){return new Et(this)}get overrides(){return new It(this)}}let f=null;function jt(){return f}function Pt(a){f=new $t,f.bind()}function Rt(){f==null||f.unbind(),f=null}function Ft(...a){return k(f),f.on(...a)}function qt(...a){return k(f),f.once(...a)}function Mt(...a){return k(f),f.off(...a)}function Lt(...a){return k(f),f.send(...a)}function Dt(...a){return k(f),f.request(...a)}function Ht(...a){return k(f),f.subscribe(...a)}function Vt(...a){return k(f),f.unsubscribe(...a)}function zt(){return k(f),f.store}function Bt(){return k(f),f.applications}function Ut(){return k(f),f.media}function Kt(){return k(f),f.accounts}function Wt(){return k(f),f.users}function Jt(){return k(f),f.devices}function Qt(){return k(f),f.proxy}function Gt(){return k(f),f.weather}function Yt(){return k(f),f.currency}function Xt(){return k(f),f.environment}function es(){return k(f),f.playlist}function ts(){return k(f),f.overrides}function ss(){return k(f),f.mqtt}function k(a){if(!a)throw new Error("SDK is not configured")}exports.Accounts=qe;exports.Applications=Me;exports.Currency=Ke;exports.Devices=Le;exports.Environment=De;exports.Media=He;exports.Mqtt=We;exports.Proxy=Ve;exports.Store=ze;exports.StoreSlice=B;exports.Users=Be;exports.Weather=Ue;exports.accounts=Kt;exports.applications=Bt;exports.configure=Pt;exports.currency=Yt;exports.destroy=Rt;exports.devices=Jt;exports.environment=Xt;exports.globalClient=jt;exports.media=Ut;exports.mqtt=ss;exports.off=Mt;exports.on=Ft;exports.once=qt;exports.overrides=ts;exports.playlist=es;exports.proxy=Qt;exports.request=Dt;exports.send=Lt;exports.store=zt;exports.subscribe=Ht;exports.telemetrySdkVersion=K;exports.unsubscribe=Vt;exports.users=Wt;exports.weather=Gt;
package/dist/index.d.ts CHANGED
@@ -20,10 +20,8 @@ export declare function globalClient(): Client | null;
20
20
  * This function must be called before using any other exported functions that depend on the global client.
21
21
  * The exported convenience functions (send, request, store, etc.) use this global instance internally,
22
22
  * simplifying integration for applications that don't require multiple client instances.
23
- *
24
- * @param applicationName The name of your application - must match the 'name' property in your application's telemetry.config.json file
25
23
  */
26
- export declare function configure(applicationName: string): void;
24
+ export declare function configure(_applicationName?: string): void;
27
25
  /**
28
26
  * Destroys the SDK by unbinding event listeners and clearing the global client instance.
29
27
  *