@fragmentsx/fragments-client 0.2.0-dev-20260928114300 → 0.2.0-dev-20260928123417

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -82,9 +82,27 @@ undefined`. Ключ записи — `источник:операция` плю
82
82
  (`useSource('s24', …)`). Без подмены работает наш анонимный фетчер:
83
83
  `credentials: 'same-origin'`, отправку cookie на чужой домен включает только
84
84
  ваш собственный фетчер (`credentials: 'include'` — решение хоста, библиотека
85
- его не ставит никогда). `baseUrl` в слоте не заводится — фетчер получает
86
- полный абсолютный URL, окружение (staging/prod) переключается переписыванием
87
- адреса внутри самого фетчера.
85
+ его не ставит никогда).
86
+
87
+ Окружение (staging/prod, свой прокси) переключается `baseUrl` слота — он
88
+ заменяет базу источника из области целиком, вместе с путём:
89
+
90
+ ```ts
91
+ createFragmentsClient({
92
+ apiToken,
93
+ sources: {
94
+ // только база — запрос идёт нашим фетчером на этот адрес
95
+ s24: { baseUrl: 'https://staging.example.com/rapi' },
96
+ // база и свой фетчер — фетчер получает адрес уже на этой базе
97
+ // s24: { baseUrl: `${apiHost}/rapi`, fetch: authFetch },
98
+ },
99
+ });
100
+ ```
101
+
102
+ База — абсолютный `http(s)`-адрес. Невалидная база (например, относительная
103
+ `/rapi`) не откатывается на базу области: запрос не уходит, блок рисует
104
+ фоллбэк, в консоли — `[useSource] <источник>:<операция>: invalid-base-url`.
105
+ Для прокси на своём домене пишите адрес целиком: `${location.origin}/rapi`.
88
106
 
89
107
  Таймаут: наш фетчер источников обрывает запрос через `timeout` клиента или
90
108
  через 10 секунд без опции. **К фетчеру хоста наш таймаут не применяется —
@@ -71,9 +71,13 @@ export interface Options {
71
71
  * написано в коде артефакта (`useSource('s24', …)`), общего дефолта на
72
72
  * все источники нет. Фетчер совместим с `fetch`: `(url, init) =>
73
73
  * Promise<SourceResponse>` (`ok`/`status`/`json()`, а не готовые данные).
74
- * Получает только запросы своего источника и полный абсолютный URL —
75
- * `baseUrl` в слоте нет, окружение переключается переписыванием адреса
76
- * внутри фетчера (D-115-19). `credentials: "include"` ставит сам
74
+ * Получает только запросы своего источника и полный абсолютный URL.
75
+ * `baseUrl` слота (D-115-19) заменяет базу источника из области целиком,
76
+ * вместе с путём: `{ baseUrl: "https://staging.example.com/rapi" }`
77
+ * переключает окружение без своего фетчера, а вместе с `fetch` фетчер
78
+ * получает адрес уже на этой базе. База — абсолютный `http(s)`-адрес;
79
+ * невалидная не откатывается на базу области, запрос отказывает
80
+ * (`invalid-base-url`). `credentials: "include"` ставит сам
77
81
  * фетчер — наш анонимный остаётся на `same-origin` (D-115-18). К
78
82
  * фетчеру хоста таймаут не применяется, за него отвечает хост
79
83
  * (D-115-20). Reversibility: costly — публичная опция клиента.
@@ -1 +1 @@
1
- {"version":3,"file":"createFragmentsClient.d.ts","sourceRoot":"","sources":["../src/createFragmentsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAe9E;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,sGAiFrD,CAAC"}
1
+ {"version":3,"file":"createFragmentsClient.d.ts","sourceRoot":"","sources":["../src/createFragmentsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAevG;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,sGAkFrD,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Te=require("@graph-state/core"),_e=require("@graph-state/checkers");class R extends Error{constructor(r,t,n,a){super(t),this.code=r,this.details=n,this.status=a,this.name="FragmentsAreaError",Object.setPrototypeOf(this,R.prototype)}}class D extends Error{constructor(r,t){super(`Manifest apiVersion mismatch: expected ${r}, received ${t}`),this.expected=r,this.received=t,this.name="FragmentsApiVersionError",Object.setPrototypeOf(this,D.prototype)}}class M extends Error{constructor(r,t,n){super(`Failed to load fragment ${r} from ${t}`),this.fragmentId=r,this.moduleUrl=t,this.cause=n,this.name="FragmentsLoadError",Object.setPrototypeOf(this,M.prototype)}}const b=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),Fe=b("Fragment","FragmentInstance","Instance","Collection","ArrayItem","Breakpoint","Frame","Image","Text","SolidPaintStyle","CssLink","Variable","ComputedValue","TransformValue","StopColor","LinearGradient","CssChunk","Border","Paint","Link","Interaction","Classname","GoalEvent","MutateEvent","TextHighlight","TextStyleMark","ImagePaint"),Me=b("auto","fill"),Ve=b("None","Solid","Dashed","Dotted"),xe=b("_blank","none"),Re=b("None","Solid","LinearGradient","RadialGradient","ConicGradient","Image"),Le=b("Auto","Contain","Cover"),Ne=b("Min","Center","Max","Stretch","Scale"),Be=b("absolute","relative"),De=b("Fixed","Hug","Fill","Relative"),Ge=b("none","flex"),qe=b("vertical","horizontal"),Ke=b("start","center","end"),Ue=b("start","center","end","space-between","space-around"),He=b("none","uppercase","lowercase","capitalize"),We=b("none","underline","line-through"),Xe=b("loop","appear","hover","tap"),Je=b("fade","slide","bounce","wiggle","increase"),m=b("Event","String","Link","Boolean","Array","Color","ComponentInstance","Date","Enum","Number","Image","Object","Goal"),Ye=b("normal","nowrap","pre","pre-wrap","pre-line","break-spaces"),Qe=b("visible","hidden","scroll"),Ze=b("convert","exists","equals","startWith","endWith","contains","dateBefore","dateAfter","dateBetween","feature","notFeature","gt","gte","lt","lte","convertFromBoolean","negative"),ze=b("canvas","document"),et=b("viewport","parent","fixed"),tt=b("click","mouseover","appear"),H=b("goal","mutate","callback","tracker"),rt=b("AreaScope","InstanceScope","FragmentScope","CollectionScope","CollectionItemScope"),nt=b("Global","Fragment"),ae=3,st=Object.freeze(Object.defineProperty({__proto__:null,MAX_SCHEMA_DEPTH:ae,borderType:Ve,constrain:Ne,createConstants:b,cssChunkScopeTypes:nt,effectName:Je,effectType:Xe,eventMode:H,fragmentGrowingMode:Me,imagePaintScaleModes:Le,interactions:tt,layerAlign:Ke,layerDirection:qe,layerDistribute:Ue,layerMode:Ge,linkTarget:xe,nodes:Fe,overflow:Qe,paintMode:Re,positionType:Be,renderMode:et,renderTarget:ze,scopeTypes:rt,sizing:De,textDecorations:We,textTransform:He,variableTransforms:Ze,variableType:m,whiteSpace:Ye},Symbol.toStringTag,{value:"Module"}));function it(e){return{lang:(e==null?void 0:e.lang)??void 0,message:e==null?void 0:e.message,abortEarly:(e==null?void 0:e.abortEarly)??void 0,abortPipeEarly:(e==null?void 0:e.abortPipeEarly)??void 0}}function at(e,r){var t;return(t=void 0)==null?void 0:t.get(r)}function J(e){var r,t;const n=typeof e;return n==="string"?`"${e}"`:n==="number"||n==="bigint"||n==="boolean"?`${e}`:n==="object"||n==="function"?(e&&((t=(r=Object.getPrototypeOf(e))==null?void 0:r.constructor)==null?void 0:t.name))??"null":n}function P(e,r,t,n,a){const u=a&&"input"in a?a.input:t.value,s=(a==null?void 0:a.expected)??e.expects??null,o=(a==null?void 0:a.received)??J(u),i={kind:e.kind,type:e.type,input:u,expected:s,received:o,message:`Invalid ${r}: ${s?`Expected ${s} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:a==null?void 0:a.path,issues:a==null?void 0:a.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},d=e.kind==="schema",h=(a==null?void 0:a.message)??e.message??at(e.reference,i.lang)??(d?(i.lang,void 0):null)??n.message??(i.lang,void 0);h!==void 0&&(i.message=typeof h=="function"?h(i):h),d&&(t.typed=!1),t.issues?t.issues.push(i):t.issues=[i]}function $(e){return{version:1,vendor:"valibot",validate(r){return e["~run"]({value:r},it())}}}function ot(e,r){return Object.hasOwn(e,r)&&r!=="__proto__"&&r!=="prototype"&&r!=="constructor"}function oe(e,r){const t=[...new Set(e)];return t.length>1?`(${t.join(` ${r} `)})`:t[0]??"never"}function ut(e,r,t){return typeof e.fallback=="function"?e.fallback(r,t):e.fallback}function Y(e,r,t){return typeof e.default=="function"?e.default(r,t):e.default}function Q(e,r){return{kind:"schema",type:"array",reference:Q,expects:"Array",async:!1,item:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){var a;const u=t.value;if(Array.isArray(u)){t.typed=!0,t.value=[];for(let s=0;s<u.length;s++){const o=u[s],i=this.item["~run"]({value:o},n);if(i.issues){const d={type:"array",origin:"value",input:u,key:s,value:o};for(const h of i.issues)h.path?h.path.unshift(d):h.path=[d],(a=t.issues)==null||a.push(h);if(t.issues||(t.issues=i.issues),n.abortEarly){t.typed=!1;break}}i.typed||(t.typed=!1),t.value.push(i.value)}}else P(this,"type",t,n);return t}}}function k(e){return{kind:"schema",type:"boolean",reference:k,expects:"boolean",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="boolean"?r.typed=!0:P(this,"type",r,t),r}}}function Z(e){return{kind:"schema",type:"lazy",reference:Z,expects:"unknown",async:!1,getter:e,get"~standard"(){return $(this)},"~run"(r,t){return this.getter(r.value)["~run"](r,t)}}}function A(e,r){return{kind:"schema",type:"literal",reference:A,expects:J(e),async:!1,literal:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===this.literal?t.typed=!0:P(this,"type",t,n),t}}}function ue(e){return{kind:"schema",type:"never",reference:ue,expects:"never",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return P(this,"type",r,t),r}}}function G(e,r){return{kind:"schema",type:"nullable",reference:G,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===null&&(this.default!==void 0&&(t.value=Y(this,t,n)),t.value===null)?(t.typed=!0,t):this.wrapped["~run"](t,n)}}}function F(e){return{kind:"schema",type:"number",reference:F,expects:"number",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="number"&&!isNaN(r.value)?r.typed=!0:P(this,"type",r,t),r}}}function w(e,r){return{kind:"schema",type:"object",reference:w,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){var a;const u=t.value;if(u&&typeof u=="object"){t.typed=!0,t.value={};for(const s in this.entries){const o=this.entries[s];if(s in u||(o.type==="exact_optional"||o.type==="optional"||o.type==="nullish")&&o.default!==void 0){const i=s in u?u[s]:Y(o),d=o["~run"]({value:i},n);if(d.issues){const h={type:"object",origin:"value",input:u,key:s,value:i};for(const f of d.issues)f.path?f.path.unshift(h):f.path=[h],(a=t.issues)==null||a.push(f);if(t.issues||(t.issues=d.issues),n.abortEarly){t.typed=!1;break}}d.typed||(t.typed=!1),t.value[s]=d.value}else if(o.fallback!==void 0)t.value[s]=ut(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(P(this,"key",t,n,{input:void 0,expected:`"${s}"`,path:[{type:"object",origin:"key",input:u,key:s,value:u[s]}]}),n.abortEarly))break}}else P(this,"type",t,n);return t}}}function c(e,r){return{kind:"schema",type:"optional",reference:c,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===void 0&&(this.default!==void 0&&(t.value=Y(this,t,n)),t.value===void 0)?(t.typed=!0,t):this.wrapped["~run"](t,n)}}}function le(e,r){return{kind:"schema",type:"picklist",reference:le,expects:oe(e.map(J),"|"),async:!1,options:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){return this.options.includes(t.value)?t.typed=!0:P(this,"type",t,n),t}}}function W(e,r,t){return{kind:"schema",type:"record",reference:W,expects:"Object",async:!1,key:e,value:r,message:t,get"~standard"(){return $(this)},"~run"(n,a){var u,s;const o=n.value;if(o&&typeof o=="object"){n.typed=!0,n.value={};for(const i in o)if(ot(o,i)){const d=o[i],h=this.key["~run"]({value:i},a);if(h.issues){const p={type:"object",origin:"key",input:o,key:i,value:d};for(const l of h.issues)l.path=[p],(u=n.issues)==null||u.push(l);if(n.issues||(n.issues=h.issues),a.abortEarly){n.typed=!1;break}}const f=this.value["~run"]({value:d},a);if(f.issues){const p={type:"object",origin:"value",input:o,key:i,value:d};for(const l of f.issues)l.path?l.path.unshift(p):l.path=[p],(s=n.issues)==null||s.push(l);if(n.issues||(n.issues=f.issues),a.abortEarly){n.typed=!1;break}}(!h.typed||!f.typed)&&(n.typed=!1),h.typed&&(n.value[h.value]=f.value)}}else P(this,"type",n,a);return n}}}function j(e){return{kind:"schema",type:"string",reference:j,expects:"string",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="string"?r.typed=!0:P(this,"type",r,t),r}}}function q(){return{kind:"schema",type:"unknown",reference:q,expects:"unknown",async:!1,get"~standard"(){return $(this)},"~run"(e){return e.typed=!0,e}}}function ce(e,r,t){return{kind:"schema",type:"variant",reference:ce,expects:"Object",async:!1,key:e,options:r,message:t,get"~standard"(){return $(this)},"~run"(n,a){const u=n.value;if(u&&typeof u=="object"){let s,o=0,i=this.key,d=[];const h=(f,p)=>{for(const l of f.options){if(l.type==="variant")h(l,new Set(p).add(l.key));else{let y=!0,S=0;for(const g of p){const v=l.entries[g];if(g in u?v["~run"]({typed:!1,value:u[g]},a).issues:v.type!=="exact_optional"&&v.type!=="optional"&&v.type!=="nullish"){y=!1,i!==g&&(o<S||o===S&&g in u&&!(i in u))&&(o=S,i=g,d=[]),i===g&&d.push(l.entries[g].expects);break}S++}if(y){const g=l["~run"]({value:u},a);(!s||!s.typed&&g.typed)&&(s=g)}}if(s&&!s.issues)break}};if(h(this,new Set([this.key])),s)return s;P(this,"type",n,a,{input:u[i],expected:oe(d,"|"),path:[{type:"object",origin:"value",input:u,key:i,value:u[i]}]})}else P(this,"type",n,a);return n}}}const fe=w({name:c(j(),"String"),type:c(A(m.String),m.String),defaultValue:c(j(),""),required:c(k(),!1),editable:c(k(),!0),placeholder:c(j(),""),isTextarea:c(k(),!1),isRich:c(k(),!1)}),pe=w({name:c(j(),"Number"),type:c(A(m.Number),m.Number),defaultValue:c(F(),0),required:c(k(),!1),editable:c(k(),!0),min:c(F(),1),max:c(F(),100),step:c(F(),1),displayStepper:c(k(),!0)}),de=w({name:c(j(),"Boolean"),type:c(A(m.Boolean),m.Boolean),defaultValue:c(k(),!1),required:c(k(),!1),editable:c(k(),!0)}),he=w({name:c(j(),"String"),type:c(A(m.Color),m.Color),defaultValue:c(j(),"#000"),required:c(k(),!1),editable:c(k(),!0)}),me=w({name:c(j(),"Option"),type:c(A(m.Enum),m.Enum),defaultValue:c(j(),""),required:c(k(),!1),editable:c(k(),!0),cases:c(Q(w({id:j(),name:j()})),[])}),ye=w({name:c(j(),"Link"),type:c(A(m.Link),m.Link),defaultValue:c(j(),""),required:c(k(),!1),editable:c(k(),!0)}),ge=w({name:c(j(),"Image"),type:c(A(m.Image),m.Image),defaultValue:c(G(j()),null),required:c(k(),!1),editable:c(k(),!0)});function ve(e){return w({name:c(j(),"Object"),type:c(A(m.Object),m.Object),defaultValue:c(W(j(),q()),{}),fields:c(W(j(),Z(()=>ke(e+1))),{}),required:c(k(),!1),editable:c(k(),!0)})}function be(e){return w({name:c(j(),"Collection"),type:c(A(m.Array),m.Array),defaultValue:c(Q(q()),[]),definition:c(G(Z(()=>ke(e+1))),null),required:c(k(),!1),editable:c(k(),!0)})}function ke(e){return e>ae?ue():ce("type",[fe,pe,de,he,me,ye,ge,ve(e),be(e)])}const lt=w({name:c(j(),"Event"),type:c(A(m.Event),m.Event),mode:c(le(Object.keys(H)),H.callback),defaultValue:c(q(),null),required:c(k(),!1),editable:c(k(),!0)}),ct=ve(0),ft=be(0),pt=w({name:c(j(),"Goal"),type:c(A(m.Goal),m.Goal),defaultValue:c(G(F()),null),required:c(k(),!1),editable:c(k(),!0)});m.Number+"",m.Boolean+"",m.String+"",m.Color+"",m.Event+"",m.Link+"",m.Enum+"",m.Object+"",m.Image+"",m.Array+"",m.Goal+"";m.String+"",m.Link+"",m.Color+"",m.Image+"",m.Date+"",m.Number+"",m.Boolean+"",m.Enum+"",m.Object+"",m.Array+"",m.Event+"",m.Goal+"",m.ComponentInstance+"";const Se=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{});function B(e){return e===""||e===null||e===void 0||Array.isArray(e)&&e.length===0}const _=Symbol("sourceCallKey:empty");function X(e){if(B(e))return _;if(Array.isArray(e)){const r=e.map(X).filter(t=>t!==_);return r.length===0?_:["a",r]}if(typeof e=="object"&&e!==null){const r=Object.keys(e).sort().map(t=>[t,X(e[t])]).filter(([,t])=>t!==_);return r.length===0?_:["o",r]}return e}function x(e){const r=X(e.params??{});return JSON.stringify([e.source,e.target,r===_?["o",[]]:r])}function je(){const e=new Map,r=new Map,t=new Map;function n(i){var d;(d=r.get(i))==null||d.forEach(h=>h())}return{get:i=>e.get(x(i)),set:(i,d)=>{const h=x(i);e.set(h,Object.freeze({status:"ready",data:d,origin:"host-set"})),n(h)},load:(i,d,h="host-fetch")=>{const f=x(i),p=e.get(f);if((p==null?void 0:p.status)==="ready")return Promise.resolve(p);const l=t.get(f);if(l)return l;const y=Object.freeze({status:"pending"});e.set(f,y),n(f);const S=new Promise(g=>g(d())).then(g=>{if(e.get(f)===y){const O=Object.freeze({status:"ready",data:g,origin:h});return e.set(f,O),n(f),O}const v=e.get(f);return(v==null?void 0:v.status)==="ready"?v:void 0}).catch(g=>{if(console.warn(`[sourceCache] ${i.source}:${i.target}: ${g instanceof Error?g.message:String(g)}`),e.get(f)===y){e.delete(f),n(f);return}const v=e.get(f);return(v==null?void 0:v.status)==="ready"?v:void 0}).finally(()=>{t.delete(f)});return t.set(f,S),S},subscribe:(i,d)=>{const h=x(i);let f=r.get(h);return f||(f=new Set,r.set(h,f)),f.add(d),()=>{f.delete(d),f.size===0&&r.delete(h)}}}}const dt=1e4;function ht(e){if(typeof e!="object"||e===null)return!1;const r=e;return typeof r.ok=="boolean"&&typeof r.status=="number"&&typeof r.json=="function"}function re(e){if(!ht(e))throw new Error("not-a-response");if(!e.ok)throw new Error(`http-${e.status}`);return e.status===204?Promise.resolve(void 0):Promise.resolve().then(()=>e.json()).then(r=>r===null?void 0:r).catch(()=>{throw new Error("invalid-json")})}function mt(e,r){const{url:t,init:n}=e,a=r==null?void 0:r.fetcher;if(a)return Promise.resolve().then(()=>a(t,n)).then(re);const u=new AbortController,s=(r==null?void 0:r.timeout)??dt,o={...n,credentials:"same-origin",signal:u.signal},i=Promise.resolve().then(()=>fetch(t,o)).then(re);return new Promise((d,h)=>{let f=!1;const p=setTimeout(()=>{f||(f=!0,u.abort(),h(new Error("timeout")))},s);i.then(l=>{f||(f=!0,clearTimeout(p),d(l))},l=>{f||(f=!0,clearTimeout(p),h(l))})})}function yt(e){const r=Object.create(null);if(!e)return Object.freeze(r);for(const t of Object.keys(e)){const n=e[t];n&&typeof n.fetch=="function"?r[t]=n.fetch:console.warn(`[fragments-client] sources.${t}: нет функции fetch — источник пойдёт нашим фетчером`)}return Object.freeze(r)}const gt={"Content-Type":"application/json"},vt=(e,r={},t={})=>{const{timeout:n}=t,a=new Map;return{get:(o,i={})=>{const d=`${e}${o}`;if(a.has(d))return a.get(d);const h=i.timeout??n,f=h!=null?AbortSignal.timeout(h):void 0,p=typeof r=="function"?r():r,l=fetch(d,{method:"GET",headers:{...gt,...p},signal:f}).then(async y=>{if(!y.ok){let g={};try{g=await y.json()}catch{g={error:{code:"UNKNOWN",message:y.statusText}}}return{ok:!1,errorBody:g,status:y.status}}let S;try{S=await y.json()}catch{S=null}return{ok:!0,data:S,status:y.status}}).finally(()=>{a.delete(d)});return a.set(d,l),l},getAbsolute:o=>{fetch(o,{method:"GET",mode:"no-cors",credentials:"omit",keepalive:!0}).catch(i=>{console.error(i)})}}},bt=e=>({sendBeacon:(t,n)=>{if(!t||typeof navigator>"u"||typeof(navigator==null?void 0:navigator.sendBeacon)!="function")return!1;try{return navigator.sendBeacon.bind(navigator)(t,n)}catch(a){return console.error(a),!1}}}),kt=e=>{var i,d,h,f;const r=(i=e==null?void 0:e.env)==null?void 0:i.backendEndpoint,t=(d=e==null?void 0:e.env)==null?void 0:d.apiToken,n=(h=e==null?void 0:e.env)==null?void 0:h.referer;if(!r)return;const a=()=>{var y,S,g;const p=(y=e==null?void 0:e.env)==null?void 0:y.filterOverrides,l={};return t&&(l["X-Api-Key"]=t),n&&(l.Referer=n),p!=null&&p.deviceType&&(l["X-Filter-Device-Type"]=p.deviceType),p!=null&&p.osType&&(l["X-Filter-OS-Type"]=p.osType),p!=null&&p.page&&(l["X-Filter-Page"]=p.page),(S=p==null?void 0:p.geo)!=null&&S.code?l["X-Filter-Geo"]=p.geo.code:p!=null&&p.ip&&(l["X-Filter-IP"]=p.ip),(g=e==null?void 0:e.env)!=null&&g.debug&&(l["X-Debug"]="true"),l},u=(f=e==null?void 0:e.env)==null?void 0:f.timeout,s=vt(r,a,{timeout:u}),o=bt();e.$fetch={get:s.get,sendBeacon:o.sendBeacon,getAbsolute:s.getAbsolute}},z=typeof window<"u",ne=new Set,St=e=>{try{const r=new Image;r.referrerPolicy="no-referrer";const t=()=>{r.removeEventListener("load",t),r.removeEventListener("error",t),ne.delete(r)};r.addEventListener("load",t,{once:!0}),r.addEventListener("error",t,{once:!0}),ne.add(r),r.src=e}catch{}},jt=(e,r)=>{if(typeof r!="function")return!1;try{return r(e),!0}catch{return!1}},Et=e=>{if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return!1;try{return navigator.sendBeacon(e)}catch{return!1}},Ct=(e,r,t)=>{if(!z)return;const n=e==null?void 0:e.trim();if(n){if(typeof r=="function")try{if(r(n)===!0)return}catch{}Et(n)||jt(n,t)||St(n)}},se=Se("INIT_SESSION","RELEASE_SESSION","REACH_PROJECT_GOAL"),Ee=e=>{const r=(a,u)=>{var o;if(a!==se.REACH_PROJECT_GOAL||!u)return;const s=new URLSearchParams({goal_id:String(u.goalId),variant_id:String(u.variantId),area_id:String(u.areaId),campaign_id:String(u.campaignId)});(o=e.$fetch)==null||o.get(`/api/metric/goal?${s}`).catch(()=>{})},t=a=>{r(se.REACH_PROJECT_GOAL,a)},n=a=>{var s,o;const u=((s=e.$fetch)==null?void 0:s.getAbsolute)!=null?i=>e.$fetch.getAbsolute(i):void 0;Ct(a,(o=e==null?void 0:e.$fetch)==null?void 0:o.sendBeacon,u)};e.$metrics={reachGoal:t,trackAdPixel:n}},K=e=>(e==null?void 0:e.loaded)??Promise.resolve(),Ce=e=>`fragment:${e}:css`,$t=e=>`fragment:${e}:fonts`,$e=e=>`chunk:${e}`,we="global";function wt(e){if(!e)return[];const r=[];function t(a){if(a!==null){if(Array.isArray(a)){for(const u of a)t(u);return}r.push(a.fragmentId),a.slots&&n(a.slots)}}function n(a){for(const u of Object.keys(a))t(a[u])}return n(e),r}function Pe(e){return r=>{const t=new Map,n=new Map,a=new Map,u=(i,d)=>{if(t.has(i))return Promise.resolve(t.get(i));if(n.has(i))return n.get(i);a.delete(i);const h=`/api/area/${i}/compiled`,f=(async()=>{var C,V,T,L,te;const p=await r.$fetch.get(h);if(!p.ok){const I=p.errorBody;throw new R(((C=I==null?void 0:I.error)==null?void 0:C.code)??"UNKNOWN",((V=I==null?void 0:I.error)==null?void 0:V.message)??String(p.status),(T=I==null?void 0:I.error)==null?void 0:T.details,p.status)}const l=p.data;if(l.apiVersion!==2)throw new D(2,l.apiVersion);const y=l.globalCssUrl??null,S=y?K(e.inject(y,we)):Promise.resolve(),g=wt(l.slots),v=(L=r.$fragments)==null?void 0:L.populate(l.fragments??[],l.rootFragmentId,g),O=(te=r.$cssChunks)==null?void 0:te.populate(l.cssChunks??{});z&&await Promise.allSettled([v,O,S]);const E={rootFragmentId:l.rootFragmentId,variantId:l.variantId??null,props:l.props??{},projectProperties:l.projectProperties??{},globalCssUrl:y,fragments:l.fragments??[],slots:l.slots??{},sources:l.sources??{}};return t.set(i,E),E})();return n.set(i,f),f.catch(p=>{a.set(i,p)}).finally(()=>{n.delete(i)}),f},s=i=>{if(t.has(i))return t.get(i);throw n.has(i)?n.get(i):a.has(i)?a.get(i):new R("AREA_NOT_RESOLVED",`Area ${i} not resolved — call $area.resolve(code) before read()`)},o=i=>t.has(i)||a.has(i);r.$area={resolve:u,read:s,has:o}}}const Pt=Pe({inject:()=>()=>{}});function ie(e){return`fragment/${e}/index.js`}function Ae(e){return`fragment/${e}/styles.css`}function At(e){if(!e.length)return e;let r=0;for(let n=0;n<e.length;n++)r=(r<<5)-r+e.charCodeAt(n),r|=0;const t=Math.abs(r).toString(36);return/^[0-9]/.test(t)?`h${t}`:t}function Ot(e){return`fx-${At(String(e))}`}const Oe=e=>{return null;try{return(void 0)(e)}catch{return null}};function It(e){return Oe(Ae(e))}const Tt=e=>`fragment:${e}:preload`;function _t(e,r){if(!z)return()=>{};const t=document.createElement("link");return t.rel="modulepreload",t.href=e,t.setAttribute("data-fragment-key",r),document.head.appendChild(t),()=>t.remove()}function ee(e){const r=(e==null?void 0:e.importer)??(u=>import(u)),t=(e==null?void 0:e.inject)??(()=>()=>{}),n=(e==null?void 0:e.resolveSpecifier)??Oe,a=(e==null?void 0:e.preloadModule)??_t;return u=>{const s=new Map,o=l=>s.has(l),i=l=>{var y;return(y=s.get(l))==null?void 0:y.schema},d=l=>{var y;return(y=s.get(l))==null?void 0:y.scopeClass},h=l=>{const y=s.get(l);if(y===void 0)throw new M(l,"",new Error(`Fragment ${l} not populated — call populate() before read()`));if(!y.imported)throw new M(l,"",new Error(`Fragment ${l} is a nested element of the cone, not the root — its module resolves via a static import inside the consumer's code, not via $fragments.read()`));if(y.status==="pending")throw y.promise;if(y.status==="error")throw y.error;return y.component},f=(l,y)=>{const S=ie(l);y.imported=!0;const g=r(S).then(v=>(y.status="success",y.component=v.default,y.schema=v.schema,y.scopeClass=typeof v.scopeClass=="string"?v.scopeClass:void 0,v.default),v=>{const O=new M(l,S,v);throw y.status="error",y.error=O,O});y.promise=g,g.catch(()=>{})},p=(l,y,S)=>{const g=[],v=S?new Set(S):void 0,O=E=>E===y||((v==null?void 0:v.has(E))??!1);return l.forEach(E=>{let C=s.get(E);if(C===void 0){C={status:"pending",promise:Promise.resolve(),imported:!1,assetsLoaded:Promise.resolve(),cssCleanups:[]},s.set(E,C);const V=n(Ae(E));if(V){const T=t(V,Ce(E));C.cssCleanups.push(T),C.assetsLoaded=K(T)}if(O(E))f(E,C);else{const T=n(ie(E));if(T){const L=a(T,Tt(E));C.cssCleanups.push(L)}}}else O(E)&&!C.imported&&f(E,C);g.push(C.promise,C.assetsLoaded)}),Promise.allSettled(g).then(()=>{})};u.$fragments={has:o,read:h,populate:p,getSchema:i,getScopeClass:d}}}const Ft=ee();function Ie(e){return r=>{const t=new Map;r.$cssChunks={has:n=>t.has(n),populate:n=>{const a=[];for(const[u,s]of Object.entries(n)){const o=Number(u);if(!t.has(o))if(s.cssUrl){const i=e.inject(s.cssUrl,$e(o));t.set(o,{ref:s,cleanup:i,loaded:K(i)})}else t.set(o,{ref:s,cleanup:()=>{},loaded:Promise.resolve()});a.push(t.get(o).loaded)}return Promise.allSettled(a).then(()=>{})}}}}const Mt=Se("GlobalManager"),Vt=e=>{const r=()=>()=>{},t=(e==null?void 0:e.inject)??r;return Te.createState({_type:"GlobalManager",initialState:{},skip:[_e.allowTypes([...Object.keys(st.nodes),...Object.keys(Mt)])],plugins:[n=>{n.env={backendEndpoint:(e==null?void 0:e.backendEndpoint)??"https://client-api.fragmentsx.com",apiToken:e==null?void 0:e.apiToken,referer:e==null?void 0:e.referer,timeout:e==null?void 0:e.timeout,filterOverrides:e==null?void 0:e.filterOverrides,debug:e==null?void 0:e.debug}},n=>{n.sourceCache=(e==null?void 0:e.sourceCache)??je()},n=>{n.sourceFetchers=yt(e==null?void 0:e.sources)},n=>{n.setFilters=a=>{var u;n.env={...n.env,filterOverrides:{...(u=n.env)==null?void 0:u.filterOverrides,...a}}}},n=>{(e==null?void 0:e.projectId)!=null&&(n.$project={projectId:e.projectId})},...(e==null?void 0:e.plugins)??[],kt,Ee,Pe({inject:t}),ee({inject:t,resolveSpecifier:e==null?void 0:e.resolveSpecifier,importer:e==null?void 0:e.importer}),Ie({inject:t})]})},U=e=>typeof e=="string"||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e),xt=(e,r)=>`${e}:${r}`;function Rt(e,r){if(!(!e||!Object.prototype.hasOwnProperty.call(e,r)))return e[r]}function N(e){if(B(e))return{kind:"empty"};if(Array.isArray(e)){const r=[];for(const t of e)if(!B(t)){if(!U(t))return{kind:"invalid"};r.push(t)}return r.length===0?{kind:"empty"}:{kind:"array",items:r}}if(typeof e=="object"&&e!==null){const r=[];for(const t of Object.keys(e)){const n=e[t];if(!B(n)){if(!U(n))return{kind:"invalid"};r.push([t,n])}}return r.length===0?{kind:"empty"}:{kind:"object",entries:r}}return U(e)?{kind:"scalar",value:e}:{kind:"invalid"}}function Lt(e,r,t,n){const a=s=>encodeURIComponent(String(s));if(n.kind==="invalid")return null;if(r==="deepObject")return t?n.kind==="empty"?[]:n.kind!=="object"?null:n.entries.map(([s,o])=>({name:`${a(e)}[${a(s)}]`,value:a(o)})):null;const u=r==="form"?",":r==="spaceDelimited"?"%20":r==="pipeDelimited"?"|":null;return u===null?null:n.kind==="empty"?[]:n.kind==="scalar"?[{name:e,value:a(n.value)}]:n.kind==="array"?t?n.items.map(s=>({name:e,value:a(s)})):r==="spaceDelimited"&&n.items.some(s=>/\s/.test(String(s)))?null:[{name:e,value:n.items.map(a).join(u)}]:r!=="form"?null:t?n.entries.map(([s,o])=>({name:s,value:a(o)})):[{name:e,value:n.entries.flatMap(([s,o])=>[a(s),a(o)]).join(u)}]}const Nt=new Set([".","..","%2e",".%2e","%2e.","%2e%2e"]);function Bt(e){return Nt.has(e.toLowerCase())}function Dt(e,r,t,n){if(r!=="simple"&&r!=="label"&&r!=="matrix"||n.kind==="invalid"||n.kind==="empty")return null;const a=s=>{const o=String(s);if(Bt(o))return null;let i=encodeURIComponent(o);return r==="label"&&(i=i.replace(/\./g,"%2E")),i};if(n.kind==="scalar"){const s=a(n.value);return s===null?null:r==="simple"?s:r==="label"?`.${s}`:`;${e}=${s}`}if(n.kind==="array"){const s=[];for(const o of n.items){const i=a(o);if(i===null)return null;s.push(i)}return r==="simple"?s.join(","):r==="label"?t?s.map(o=>`.${o}`).join(""):`.${s.join(",")}`:t?s.map(o=>`;${e}=${o}`).join(""):`;${e}=${s.join(",")}`}const u=[];for(const[s,o]of n.entries){const i=a(s),d=a(o);if(i===null||d===null)return null;u.push([i,d])}return r==="simple"?t?u.map(([s,o])=>`${s}=${o}`).join(","):u.flatMap(([s,o])=>[s,o]).join(","):r==="label"?t?u.map(([s,o])=>`.${s}=${o}`).join(""):`.${u.flatMap(([s,o])=>[s,o]).join(",")}`:t?u.map(([s,o])=>`;${s}=${o}`).join(""):`;${e}=${u.flatMap(([s,o])=>[s,o]).join(",")}`}function Gt(e,r,t){if(t.kind==="invalid"||e!=="simple")return null;if(t.kind==="empty")return{present:!1};const n=u=>encodeURIComponent(String(u));let a;return t.kind==="scalar"?a=String(t.value):t.kind==="array"?a=t.items.map(n).join(","):a=r?t.entries.map(([u,s])=>`${n(u)}=${n(s)}`).join(","):t.entries.flatMap(([u,s])=>[n(u),n(s)]).join(","),/[\r\n\0]/.test(a)?null:{present:!0,value:a}}function qt(e){if(!e||typeof e!="object")return null;const r=e;if(typeof r.method!="string"||!/^[A-Z]+$/.test(r.method)||typeof r.path!="string"||!r.path.startsWith("/")||!r.params||typeof r.params!="object"||Array.isArray(r.params))return null;for(const t of Object.values(r.params)){if(!t||typeof t!="object")return null;const n=t;if(!["path","query","header","cookie"].includes(n.in)||typeof n.style!="string"||typeof n.explode!="boolean")return null}return r}function Kt(e){try{return["http:","https:"].includes(new URL(e).protocol)}catch{return!1}}function Ut(e,r,t){let n=r.path;const a={},u=[];let s;try{if(s=new URL(e),!["http:","https:"].includes(s.protocol))return null}catch{return null}for(const i of Object.keys(r.params).sort()){const d=r.params[i],h=Rt(t,i);if(d.in==="query"){const f=N(h);if(f.kind==="invalid")return null;const p=Lt(i,d.style,d.explode,f);if(p===null)return null;for(const l of p)u.push(`${l.name}=${l.value}`)}else if(d.in==="path"){const f=N(h),p=Dt(i,d.style,d.explode,f);if(p===null)return null;n=n.split(`{${i}}`).join(p)}else if(d.in==="header"){const f=N(h),p=Gt(d.style,d.explode,f);if(p===null)return null;p.present&&(a[i]=p.value)}else{const f=N(h);if(f.kind==="invalid"||f.kind!=="empty")return null}}if(/\{[^}]+\}/.test(n))return null;if(s.pathname=`${s.pathname.replace(/\/$/,"")}/${n.replace(/^\//,"")}`,u.length>0){const i=s.search?s.search.slice(1):"";s.search=i?`${i}&${u.join("&")}`:u.join("&")}const o={method:r.method,credentials:"same-origin",headers:a};return{url:s.toString(),init:o}}function Ht(e,r){if(!e)return{ok:!1,reason:"missing"};if(e.kind!=="openapi")return{ok:!1,reason:"unsupported-kind"};const t=qt(e.transport);if(!t)return{ok:!1,reason:"invalid-transport"};if(!Kt(e.baseUrl))return{ok:!1,reason:"invalid-transport"};const n=Ut(e.baseUrl,t,r);return n?{ok:!0,...n}:{ok:!1,reason:"unsupported-params"}}exports.AREA_GLOBAL_CSS_KEY=we;exports.FragmentsApiVersionError=D;exports.FragmentsAreaError=R;exports.FragmentsLoadError=M;exports.areaPlugin=Pt;exports.createCssChunksCachePlugin=Ie;exports.createFragmentsCachePlugin=ee;exports.createFragmentsClient=Vt;exports.createSourceCache=je;exports.cssChunkKey=$e;exports.fragmentCssKey=Ce;exports.fragmentFontsKey=$t;exports.fragmentsCachePlugin=Ft;exports.globalMetricsPlugin=Ee;exports.readyOf=K;exports.resolveSourceRequest=Ht;exports.resolveStylesHref=It;exports.runSourceFetch=mt;exports.sourceCallKey=x;exports.sourceTransportKey=xt;exports.toScopeClassName=Ot;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _e=require("@graph-state/core"),Fe=require("@graph-state/checkers");class R extends Error{constructor(r,t,n,i){super(t),this.code=r,this.details=n,this.status=i,this.name="FragmentsAreaError",Object.setPrototypeOf(this,R.prototype)}}class D extends Error{constructor(r,t){super(`Manifest apiVersion mismatch: expected ${r}, received ${t}`),this.expected=r,this.received=t,this.name="FragmentsApiVersionError",Object.setPrototypeOf(this,D.prototype)}}class M extends Error{constructor(r,t,n){super(`Failed to load fragment ${r} from ${t}`),this.fragmentId=r,this.moduleUrl=t,this.cause=n,this.name="FragmentsLoadError",Object.setPrototypeOf(this,M.prototype)}}const b=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),Me=b("Fragment","FragmentInstance","Instance","Collection","ArrayItem","Breakpoint","Frame","Image","Text","SolidPaintStyle","CssLink","Variable","ComputedValue","TransformValue","StopColor","LinearGradient","CssChunk","Border","Paint","Link","Interaction","Classname","GoalEvent","MutateEvent","TextHighlight","TextStyleMark","ImagePaint"),Ve=b("auto","fill"),xe=b("None","Solid","Dashed","Dotted"),Re=b("_blank","none"),Le=b("None","Solid","LinearGradient","RadialGradient","ConicGradient","Image"),Ne=b("Auto","Contain","Cover"),Be=b("Min","Center","Max","Stretch","Scale"),De=b("absolute","relative"),Ge=b("Fixed","Hug","Fill","Relative"),qe=b("none","flex"),Ke=b("vertical","horizontal"),Ue=b("start","center","end"),He=b("start","center","end","space-between","space-around"),We=b("none","uppercase","lowercase","capitalize"),Xe=b("none","underline","line-through"),Je=b("loop","appear","hover","tap"),Ye=b("fade","slide","bounce","wiggle","increase"),m=b("Event","String","Link","Boolean","Array","Color","ComponentInstance","Date","Enum","Number","Image","Object","Goal"),Qe=b("normal","nowrap","pre","pre-wrap","pre-line","break-spaces"),Ze=b("visible","hidden","scroll"),ze=b("convert","exists","equals","startWith","endWith","contains","dateBefore","dateAfter","dateBetween","feature","notFeature","gt","gte","lt","lte","convertFromBoolean","negative"),et=b("canvas","document"),tt=b("viewport","parent","fixed"),rt=b("click","mouseover","appear"),H=b("goal","mutate","callback","tracker"),nt=b("AreaScope","InstanceScope","FragmentScope","CollectionScope","CollectionItemScope"),st=b("Global","Fragment"),oe=3,it=Object.freeze(Object.defineProperty({__proto__:null,MAX_SCHEMA_DEPTH:oe,borderType:xe,constrain:Be,createConstants:b,cssChunkScopeTypes:st,effectName:Ye,effectType:Je,eventMode:H,fragmentGrowingMode:Ve,imagePaintScaleModes:Ne,interactions:rt,layerAlign:Ue,layerDirection:Ke,layerDistribute:He,layerMode:qe,linkTarget:Re,nodes:Me,overflow:Ze,paintMode:Le,positionType:De,renderMode:tt,renderTarget:et,scopeTypes:nt,sizing:Ge,textDecorations:Xe,textTransform:We,variableTransforms:ze,variableType:m,whiteSpace:Qe},Symbol.toStringTag,{value:"Module"}));function at(e){return{lang:(e==null?void 0:e.lang)??void 0,message:e==null?void 0:e.message,abortEarly:(e==null?void 0:e.abortEarly)??void 0,abortPipeEarly:(e==null?void 0:e.abortPipeEarly)??void 0}}function ot(e,r){var t;return(t=void 0)==null?void 0:t.get(r)}function J(e){var r,t;const n=typeof e;return n==="string"?`"${e}"`:n==="number"||n==="bigint"||n==="boolean"?`${e}`:n==="object"||n==="function"?(e&&((t=(r=Object.getPrototypeOf(e))==null?void 0:r.constructor)==null?void 0:t.name))??"null":n}function P(e,r,t,n,i){const u=i&&"input"in i?i.input:t.value,s=(i==null?void 0:i.expected)??e.expects??null,o=(i==null?void 0:i.received)??J(u),a={kind:e.kind,type:e.type,input:u,expected:s,received:o,message:`Invalid ${r}: ${s?`Expected ${s} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:i==null?void 0:i.path,issues:i==null?void 0:i.issues,lang:n.lang,abortEarly:n.abortEarly,abortPipeEarly:n.abortPipeEarly},d=e.kind==="schema",h=(i==null?void 0:i.message)??e.message??ot(e.reference,a.lang)??(d?(a.lang,void 0):null)??n.message??(a.lang,void 0);h!==void 0&&(a.message=typeof h=="function"?h(a):h),d&&(t.typed=!1),t.issues?t.issues.push(a):t.issues=[a]}function $(e){return{version:1,vendor:"valibot",validate(r){return e["~run"]({value:r},at())}}}function ut(e,r){return Object.hasOwn(e,r)&&r!=="__proto__"&&r!=="prototype"&&r!=="constructor"}function ue(e,r){const t=[...new Set(e)];return t.length>1?`(${t.join(` ${r} `)})`:t[0]??"never"}function ct(e,r,t){return typeof e.fallback=="function"?e.fallback(r,t):e.fallback}function Y(e,r,t){return typeof e.default=="function"?e.default(r,t):e.default}function Q(e,r){return{kind:"schema",type:"array",reference:Q,expects:"Array",async:!1,item:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){var i;const u=t.value;if(Array.isArray(u)){t.typed=!0,t.value=[];for(let s=0;s<u.length;s++){const o=u[s],a=this.item["~run"]({value:o},n);if(a.issues){const d={type:"array",origin:"value",input:u,key:s,value:o};for(const h of a.issues)h.path?h.path.unshift(d):h.path=[d],(i=t.issues)==null||i.push(h);if(t.issues||(t.issues=a.issues),n.abortEarly){t.typed=!1;break}}a.typed||(t.typed=!1),t.value.push(a.value)}}else P(this,"type",t,n);return t}}}function k(e){return{kind:"schema",type:"boolean",reference:k,expects:"boolean",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="boolean"?r.typed=!0:P(this,"type",r,t),r}}}function Z(e){return{kind:"schema",type:"lazy",reference:Z,expects:"unknown",async:!1,getter:e,get"~standard"(){return $(this)},"~run"(r,t){return this.getter(r.value)["~run"](r,t)}}}function O(e,r){return{kind:"schema",type:"literal",reference:O,expects:J(e),async:!1,literal:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===this.literal?t.typed=!0:P(this,"type",t,n),t}}}function ce(e){return{kind:"schema",type:"never",reference:ce,expects:"never",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return P(this,"type",r,t),r}}}function G(e,r){return{kind:"schema",type:"nullable",reference:G,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===null&&(this.default!==void 0&&(t.value=Y(this,t,n)),t.value===null)?(t.typed=!0,t):this.wrapped["~run"](t,n)}}}function F(e){return{kind:"schema",type:"number",reference:F,expects:"number",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="number"&&!isNaN(r.value)?r.typed=!0:P(this,"type",r,t),r}}}function w(e,r){return{kind:"schema",type:"object",reference:w,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){var i;const u=t.value;if(u&&typeof u=="object"){t.typed=!0,t.value={};for(const s in this.entries){const o=this.entries[s];if(s in u||(o.type==="exact_optional"||o.type==="optional"||o.type==="nullish")&&o.default!==void 0){const a=s in u?u[s]:Y(o),d=o["~run"]({value:a},n);if(d.issues){const h={type:"object",origin:"value",input:u,key:s,value:a};for(const f of d.issues)f.path?f.path.unshift(h):f.path=[h],(i=t.issues)==null||i.push(f);if(t.issues||(t.issues=d.issues),n.abortEarly){t.typed=!1;break}}d.typed||(t.typed=!1),t.value[s]=d.value}else if(o.fallback!==void 0)t.value[s]=ct(o);else if(o.type!=="exact_optional"&&o.type!=="optional"&&o.type!=="nullish"&&(P(this,"key",t,n,{input:void 0,expected:`"${s}"`,path:[{type:"object",origin:"key",input:u,key:s,value:u[s]}]}),n.abortEarly))break}}else P(this,"type",t,n);return t}}}function l(e,r){return{kind:"schema",type:"optional",reference:l,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:r,get"~standard"(){return $(this)},"~run"(t,n){return t.value===void 0&&(this.default!==void 0&&(t.value=Y(this,t,n)),t.value===void 0)?(t.typed=!0,t):this.wrapped["~run"](t,n)}}}function le(e,r){return{kind:"schema",type:"picklist",reference:le,expects:ue(e.map(J),"|"),async:!1,options:e,message:r,get"~standard"(){return $(this)},"~run"(t,n){return this.options.includes(t.value)?t.typed=!0:P(this,"type",t,n),t}}}function W(e,r,t){return{kind:"schema",type:"record",reference:W,expects:"Object",async:!1,key:e,value:r,message:t,get"~standard"(){return $(this)},"~run"(n,i){var u,s;const o=n.value;if(o&&typeof o=="object"){n.typed=!0,n.value={};for(const a in o)if(ut(o,a)){const d=o[a],h=this.key["~run"]({value:a},i);if(h.issues){const p={type:"object",origin:"key",input:o,key:a,value:d};for(const c of h.issues)c.path=[p],(u=n.issues)==null||u.push(c);if(n.issues||(n.issues=h.issues),i.abortEarly){n.typed=!1;break}}const f=this.value["~run"]({value:d},i);if(f.issues){const p={type:"object",origin:"value",input:o,key:a,value:d};for(const c of f.issues)c.path?c.path.unshift(p):c.path=[p],(s=n.issues)==null||s.push(c);if(n.issues||(n.issues=f.issues),i.abortEarly){n.typed=!1;break}}(!h.typed||!f.typed)&&(n.typed=!1),h.typed&&(n.value[h.value]=f.value)}}else P(this,"type",n,i);return n}}}function j(e){return{kind:"schema",type:"string",reference:j,expects:"string",async:!1,message:e,get"~standard"(){return $(this)},"~run"(r,t){return typeof r.value=="string"?r.typed=!0:P(this,"type",r,t),r}}}function q(){return{kind:"schema",type:"unknown",reference:q,expects:"unknown",async:!1,get"~standard"(){return $(this)},"~run"(e){return e.typed=!0,e}}}function fe(e,r,t){return{kind:"schema",type:"variant",reference:fe,expects:"Object",async:!1,key:e,options:r,message:t,get"~standard"(){return $(this)},"~run"(n,i){const u=n.value;if(u&&typeof u=="object"){let s,o=0,a=this.key,d=[];const h=(f,p)=>{for(const c of f.options){if(c.type==="variant")h(c,new Set(p).add(c.key));else{let y=!0,S=0;for(const g of p){const v=c.entries[g];if(g in u?v["~run"]({typed:!1,value:u[g]},i).issues:v.type!=="exact_optional"&&v.type!=="optional"&&v.type!=="nullish"){y=!1,a!==g&&(o<S||o===S&&g in u&&!(a in u))&&(o=S,a=g,d=[]),a===g&&d.push(c.entries[g].expects);break}S++}if(y){const g=c["~run"]({value:u},i);(!s||!s.typed&&g.typed)&&(s=g)}}if(s&&!s.issues)break}};if(h(this,new Set([this.key])),s)return s;P(this,"type",n,i,{input:u[a],expected:ue(d,"|"),path:[{type:"object",origin:"value",input:u,key:a,value:u[a]}]})}else P(this,"type",n,i);return n}}}const pe=w({name:l(j(),"String"),type:l(O(m.String),m.String),defaultValue:l(j(),""),required:l(k(),!1),editable:l(k(),!0),placeholder:l(j(),""),isTextarea:l(k(),!1),isRich:l(k(),!1)}),de=w({name:l(j(),"Number"),type:l(O(m.Number),m.Number),defaultValue:l(F(),0),required:l(k(),!1),editable:l(k(),!0),min:l(F(),1),max:l(F(),100),step:l(F(),1),displayStepper:l(k(),!0)}),he=w({name:l(j(),"Boolean"),type:l(O(m.Boolean),m.Boolean),defaultValue:l(k(),!1),required:l(k(),!1),editable:l(k(),!0)}),me=w({name:l(j(),"String"),type:l(O(m.Color),m.Color),defaultValue:l(j(),"#000"),required:l(k(),!1),editable:l(k(),!0)}),ye=w({name:l(j(),"Option"),type:l(O(m.Enum),m.Enum),defaultValue:l(j(),""),required:l(k(),!1),editable:l(k(),!0),cases:l(Q(w({id:j(),name:j()})),[])}),ge=w({name:l(j(),"Link"),type:l(O(m.Link),m.Link),defaultValue:l(j(),""),required:l(k(),!1),editable:l(k(),!0)}),ve=w({name:l(j(),"Image"),type:l(O(m.Image),m.Image),defaultValue:l(G(j()),null),required:l(k(),!1),editable:l(k(),!0)});function be(e){return w({name:l(j(),"Object"),type:l(O(m.Object),m.Object),defaultValue:l(W(j(),q()),{}),fields:l(W(j(),Z(()=>Se(e+1))),{}),required:l(k(),!1),editable:l(k(),!0)})}function ke(e){return w({name:l(j(),"Collection"),type:l(O(m.Array),m.Array),defaultValue:l(Q(q()),[]),definition:l(G(Z(()=>Se(e+1))),null),required:l(k(),!1),editable:l(k(),!0)})}function Se(e){return e>oe?ce():fe("type",[pe,de,he,me,ye,ge,ve,be(e),ke(e)])}const lt=w({name:l(j(),"Event"),type:l(O(m.Event),m.Event),mode:l(le(Object.keys(H)),H.callback),defaultValue:l(q(),null),required:l(k(),!1),editable:l(k(),!0)}),ft=be(0),pt=ke(0),dt=w({name:l(j(),"Goal"),type:l(O(m.Goal),m.Goal),defaultValue:l(G(F()),null),required:l(k(),!1),editable:l(k(),!0)});m.Number+"",m.Boolean+"",m.String+"",m.Color+"",m.Event+"",m.Link+"",m.Enum+"",m.Object+"",m.Image+"",m.Array+"",m.Goal+"";m.String+"",m.Link+"",m.Color+"",m.Image+"",m.Date+"",m.Number+"",m.Boolean+"",m.Enum+"",m.Object+"",m.Array+"",m.Event+"",m.Goal+"",m.ComponentInstance+"";const je=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{});function B(e){return e===""||e===null||e===void 0||Array.isArray(e)&&e.length===0}const _=Symbol("sourceCallKey:empty");function X(e){if(B(e))return _;if(Array.isArray(e)){const r=e.map(X).filter(t=>t!==_);return r.length===0?_:["a",r]}if(typeof e=="object"&&e!==null){const r=Object.keys(e).sort().map(t=>[t,X(e[t])]).filter(([,t])=>t!==_);return r.length===0?_:["o",r]}return e}function x(e){const r=X(e.params??{});return JSON.stringify([e.source,e.target,r===_?["o",[]]:r])}function Ee(){const e=new Map,r=new Map,t=new Map;function n(a){var d;(d=r.get(a))==null||d.forEach(h=>h())}return{get:a=>e.get(x(a)),set:(a,d)=>{const h=x(a);e.set(h,Object.freeze({status:"ready",data:d,origin:"host-set"})),n(h)},load:(a,d,h="host-fetch")=>{const f=x(a),p=e.get(f);if((p==null?void 0:p.status)==="ready")return Promise.resolve(p);const c=t.get(f);if(c)return c;const y=Object.freeze({status:"pending"});e.set(f,y),n(f);const S=new Promise(g=>g(d())).then(g=>{if(e.get(f)===y){const A=Object.freeze({status:"ready",data:g,origin:h});return e.set(f,A),n(f),A}const v=e.get(f);return(v==null?void 0:v.status)==="ready"?v:void 0}).catch(g=>{if(console.warn(`[sourceCache] ${a.source}:${a.target}: ${g instanceof Error?g.message:String(g)}`),e.get(f)===y){e.delete(f),n(f);return}const v=e.get(f);return(v==null?void 0:v.status)==="ready"?v:void 0}).finally(()=>{t.delete(f)});return t.set(f,S),S},subscribe:(a,d)=>{const h=x(a);let f=r.get(h);return f||(f=new Set,r.set(h,f)),f.add(d),()=>{f.delete(d),f.size===0&&r.delete(h)}}}}const ht=1e4;function mt(e){if(typeof e!="object"||e===null)return!1;const r=e;return typeof r.ok=="boolean"&&typeof r.status=="number"&&typeof r.json=="function"}function re(e){if(!mt(e))throw new Error("not-a-response");if(!e.ok)throw new Error(`http-${e.status}`);return e.status===204?Promise.resolve(void 0):Promise.resolve().then(()=>e.json()).then(r=>r===null?void 0:r).catch(()=>{throw new Error("invalid-json")})}function yt(e,r){const{url:t,init:n}=e,i=r==null?void 0:r.fetcher;if(i)return Promise.resolve().then(()=>i(t,n)).then(re);const u=new AbortController,s=(r==null?void 0:r.timeout)??ht,o={...n,credentials:"same-origin",signal:u.signal},a=Promise.resolve().then(()=>fetch(t,o)).then(re);return new Promise((d,h)=>{let f=!1;const p=setTimeout(()=>{f||(f=!0,u.abort(),h(new Error("timeout")))},s);a.then(c=>{f||(f=!0,clearTimeout(p),d(c))},c=>{f||(f=!0,clearTimeout(p),h(c))})})}function gt(e){const r=Object.create(null);if(!e)return Object.freeze(r);for(const t of Object.keys(e)){const n=e[t];typeof(n==null?void 0:n.fetch)=="function"?r[t]=n.fetch:((n==null?void 0:n.fetch)!==void 0||(n==null?void 0:n.baseUrl)===void 0)&&console.warn(`[fragments-client] sources.${t}: нет функции fetch — источник пойдёт нашим фетчером`)}return Object.freeze(r)}function vt(e){var t;const r=Object.create(null);if(!e)return Object.freeze(r);for(const n of Object.keys(e)){const i=(t=e[n])==null?void 0:t.baseUrl;i!==void 0&&(r[n]=String(i))}return Object.freeze(r)}const bt={"Content-Type":"application/json"},kt=(e,r={},t={})=>{const{timeout:n}=t,i=new Map;return{get:(o,a={})=>{const d=`${e}${o}`;if(i.has(d))return i.get(d);const h=a.timeout??n,f=h!=null?AbortSignal.timeout(h):void 0,p=typeof r=="function"?r():r,c=fetch(d,{method:"GET",headers:{...bt,...p},signal:f}).then(async y=>{if(!y.ok){let g={};try{g=await y.json()}catch{g={error:{code:"UNKNOWN",message:y.statusText}}}return{ok:!1,errorBody:g,status:y.status}}let S;try{S=await y.json()}catch{S=null}return{ok:!0,data:S,status:y.status}}).finally(()=>{i.delete(d)});return i.set(d,c),c},getAbsolute:o=>{fetch(o,{method:"GET",mode:"no-cors",credentials:"omit",keepalive:!0}).catch(a=>{console.error(a)})}}},St=e=>({sendBeacon:(t,n)=>{if(!t||typeof navigator>"u"||typeof(navigator==null?void 0:navigator.sendBeacon)!="function")return!1;try{return navigator.sendBeacon.bind(navigator)(t,n)}catch(i){return console.error(i),!1}}}),jt=e=>{var a,d,h,f;const r=(a=e==null?void 0:e.env)==null?void 0:a.backendEndpoint,t=(d=e==null?void 0:e.env)==null?void 0:d.apiToken,n=(h=e==null?void 0:e.env)==null?void 0:h.referer;if(!r)return;const i=()=>{var y,S,g;const p=(y=e==null?void 0:e.env)==null?void 0:y.filterOverrides,c={};return t&&(c["X-Api-Key"]=t),n&&(c.Referer=n),p!=null&&p.deviceType&&(c["X-Filter-Device-Type"]=p.deviceType),p!=null&&p.osType&&(c["X-Filter-OS-Type"]=p.osType),p!=null&&p.page&&(c["X-Filter-Page"]=p.page),(S=p==null?void 0:p.geo)!=null&&S.code?c["X-Filter-Geo"]=p.geo.code:p!=null&&p.ip&&(c["X-Filter-IP"]=p.ip),(g=e==null?void 0:e.env)!=null&&g.debug&&(c["X-Debug"]="true"),c},u=(f=e==null?void 0:e.env)==null?void 0:f.timeout,s=kt(r,i,{timeout:u}),o=St();e.$fetch={get:s.get,sendBeacon:o.sendBeacon,getAbsolute:s.getAbsolute}},z=typeof window<"u",ne=new Set,Et=e=>{try{const r=new Image;r.referrerPolicy="no-referrer";const t=()=>{r.removeEventListener("load",t),r.removeEventListener("error",t),ne.delete(r)};r.addEventListener("load",t,{once:!0}),r.addEventListener("error",t,{once:!0}),ne.add(r),r.src=e}catch{}},Ct=(e,r)=>{if(typeof r!="function")return!1;try{return r(e),!0}catch{return!1}},$t=e=>{if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return!1;try{return navigator.sendBeacon(e)}catch{return!1}},wt=(e,r,t)=>{if(!z)return;const n=e==null?void 0:e.trim();if(n){if(typeof r=="function")try{if(r(n)===!0)return}catch{}$t(n)||Ct(n,t)||Et(n)}},se=je("INIT_SESSION","RELEASE_SESSION","REACH_PROJECT_GOAL"),Ce=e=>{const r=(i,u)=>{var o;if(i!==se.REACH_PROJECT_GOAL||!u)return;const s=new URLSearchParams({goal_id:String(u.goalId),variant_id:String(u.variantId),area_id:String(u.areaId),campaign_id:String(u.campaignId)});(o=e.$fetch)==null||o.get(`/api/metric/goal?${s}`).catch(()=>{})},t=i=>{r(se.REACH_PROJECT_GOAL,i)},n=i=>{var s,o;const u=((s=e.$fetch)==null?void 0:s.getAbsolute)!=null?a=>e.$fetch.getAbsolute(a):void 0;wt(i,(o=e==null?void 0:e.$fetch)==null?void 0:o.sendBeacon,u)};e.$metrics={reachGoal:t,trackAdPixel:n}},K=e=>(e==null?void 0:e.loaded)??Promise.resolve(),$e=e=>`fragment:${e}:css`,Pt=e=>`fragment:${e}:fonts`,we=e=>`chunk:${e}`,Pe="global";function Ot(e){if(!e)return[];const r=[];function t(i){if(i!==null){if(Array.isArray(i)){for(const u of i)t(u);return}r.push(i.fragmentId),i.slots&&n(i.slots)}}function n(i){for(const u of Object.keys(i))t(i[u])}return n(e),r}function Oe(e){return r=>{const t=new Map,n=new Map,i=new Map,u=(a,d)=>{if(t.has(a))return Promise.resolve(t.get(a));if(n.has(a))return n.get(a);i.delete(a);const h=`/api/area/${a}/compiled`,f=(async()=>{var C,V,T,L,te;const p=await r.$fetch.get(h);if(!p.ok){const I=p.errorBody;throw new R(((C=I==null?void 0:I.error)==null?void 0:C.code)??"UNKNOWN",((V=I==null?void 0:I.error)==null?void 0:V.message)??String(p.status),(T=I==null?void 0:I.error)==null?void 0:T.details,p.status)}const c=p.data;if(c.apiVersion!==2)throw new D(2,c.apiVersion);const y=c.globalCssUrl??null,S=y?K(e.inject(y,Pe)):Promise.resolve(),g=Ot(c.slots),v=(L=r.$fragments)==null?void 0:L.populate(c.fragments??[],c.rootFragmentId,g),A=(te=r.$cssChunks)==null?void 0:te.populate(c.cssChunks??{});z&&await Promise.allSettled([v,A,S]);const E={rootFragmentId:c.rootFragmentId,variantId:c.variantId??null,props:c.props??{},projectProperties:c.projectProperties??{},globalCssUrl:y,fragments:c.fragments??[],slots:c.slots??{},sources:c.sources??{}};return t.set(a,E),E})();return n.set(a,f),f.catch(p=>{i.set(a,p)}).finally(()=>{n.delete(a)}),f},s=a=>{if(t.has(a))return t.get(a);throw n.has(a)?n.get(a):i.has(a)?i.get(a):new R("AREA_NOT_RESOLVED",`Area ${a} not resolved — call $area.resolve(code) before read()`)},o=a=>t.has(a)||i.has(a);r.$area={resolve:u,read:s,has:o}}}const At=Oe({inject:()=>()=>{}});function ie(e){return`fragment/${e}/index.js`}function Ae(e){return`fragment/${e}/styles.css`}function It(e){if(!e.length)return e;let r=0;for(let n=0;n<e.length;n++)r=(r<<5)-r+e.charCodeAt(n),r|=0;const t=Math.abs(r).toString(36);return/^[0-9]/.test(t)?`h${t}`:t}function Tt(e){return`fx-${It(String(e))}`}const Ie=e=>{return null;try{return(void 0)(e)}catch{return null}};function _t(e){return Ie(Ae(e))}const Ft=e=>`fragment:${e}:preload`;function Mt(e,r){if(!z)return()=>{};const t=document.createElement("link");return t.rel="modulepreload",t.href=e,t.setAttribute("data-fragment-key",r),document.head.appendChild(t),()=>t.remove()}function ee(e){const r=(e==null?void 0:e.importer)??(u=>import(u)),t=(e==null?void 0:e.inject)??(()=>()=>{}),n=(e==null?void 0:e.resolveSpecifier)??Ie,i=(e==null?void 0:e.preloadModule)??Mt;return u=>{const s=new Map,o=c=>s.has(c),a=c=>{var y;return(y=s.get(c))==null?void 0:y.schema},d=c=>{var y;return(y=s.get(c))==null?void 0:y.scopeClass},h=c=>{const y=s.get(c);if(y===void 0)throw new M(c,"",new Error(`Fragment ${c} not populated — call populate() before read()`));if(!y.imported)throw new M(c,"",new Error(`Fragment ${c} is a nested element of the cone, not the root — its module resolves via a static import inside the consumer's code, not via $fragments.read()`));if(y.status==="pending")throw y.promise;if(y.status==="error")throw y.error;return y.component},f=(c,y)=>{const S=ie(c);y.imported=!0;const g=r(S).then(v=>(y.status="success",y.component=v.default,y.schema=v.schema,y.scopeClass=typeof v.scopeClass=="string"?v.scopeClass:void 0,v.default),v=>{const A=new M(c,S,v);throw y.status="error",y.error=A,A});y.promise=g,g.catch(()=>{})},p=(c,y,S)=>{const g=[],v=S?new Set(S):void 0,A=E=>E===y||((v==null?void 0:v.has(E))??!1);return c.forEach(E=>{let C=s.get(E);if(C===void 0){C={status:"pending",promise:Promise.resolve(),imported:!1,assetsLoaded:Promise.resolve(),cssCleanups:[]},s.set(E,C);const V=n(Ae(E));if(V){const T=t(V,$e(E));C.cssCleanups.push(T),C.assetsLoaded=K(T)}if(A(E))f(E,C);else{const T=n(ie(E));if(T){const L=i(T,Ft(E));C.cssCleanups.push(L)}}}else A(E)&&!C.imported&&f(E,C);g.push(C.promise,C.assetsLoaded)}),Promise.allSettled(g).then(()=>{})};u.$fragments={has:o,read:h,populate:p,getSchema:a,getScopeClass:d}}}const Vt=ee();function Te(e){return r=>{const t=new Map;r.$cssChunks={has:n=>t.has(n),populate:n=>{const i=[];for(const[u,s]of Object.entries(n)){const o=Number(u);if(!t.has(o))if(s.cssUrl){const a=e.inject(s.cssUrl,we(o));t.set(o,{ref:s,cleanup:a,loaded:K(a)})}else t.set(o,{ref:s,cleanup:()=>{},loaded:Promise.resolve()});i.push(t.get(o).loaded)}return Promise.allSettled(i).then(()=>{})}}}}const xt=je("GlobalManager"),Rt=e=>{const r=()=>()=>{},t=(e==null?void 0:e.inject)??r;return _e.createState({_type:"GlobalManager",initialState:{},skip:[Fe.allowTypes([...Object.keys(it.nodes),...Object.keys(xt)])],plugins:[n=>{n.env={backendEndpoint:(e==null?void 0:e.backendEndpoint)??"https://client-api.fragmentsx.com",apiToken:e==null?void 0:e.apiToken,referer:e==null?void 0:e.referer,timeout:e==null?void 0:e.timeout,filterOverrides:e==null?void 0:e.filterOverrides,debug:e==null?void 0:e.debug}},n=>{n.sourceCache=(e==null?void 0:e.sourceCache)??Ee()},n=>{n.sourceFetchers=gt(e==null?void 0:e.sources),n.sourceBaseUrls=vt(e==null?void 0:e.sources)},n=>{n.setFilters=i=>{var u;n.env={...n.env,filterOverrides:{...(u=n.env)==null?void 0:u.filterOverrides,...i}}}},n=>{(e==null?void 0:e.projectId)!=null&&(n.$project={projectId:e.projectId})},...(e==null?void 0:e.plugins)??[],jt,Ce,Oe({inject:t}),ee({inject:t,resolveSpecifier:e==null?void 0:e.resolveSpecifier,importer:e==null?void 0:e.importer}),Te({inject:t})]})},U=e=>typeof e=="string"||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e),Lt=(e,r)=>`${e}:${r}`;function Nt(e,r){if(!(!e||!Object.prototype.hasOwnProperty.call(e,r)))return e[r]}function N(e){if(B(e))return{kind:"empty"};if(Array.isArray(e)){const r=[];for(const t of e)if(!B(t)){if(!U(t))return{kind:"invalid"};r.push(t)}return r.length===0?{kind:"empty"}:{kind:"array",items:r}}if(typeof e=="object"&&e!==null){const r=[];for(const t of Object.keys(e)){const n=e[t];if(!B(n)){if(!U(n))return{kind:"invalid"};r.push([t,n])}}return r.length===0?{kind:"empty"}:{kind:"object",entries:r}}return U(e)?{kind:"scalar",value:e}:{kind:"invalid"}}function Bt(e,r,t,n){const i=s=>encodeURIComponent(String(s));if(n.kind==="invalid")return null;if(r==="deepObject")return t?n.kind==="empty"?[]:n.kind!=="object"?null:n.entries.map(([s,o])=>({name:`${i(e)}[${i(s)}]`,value:i(o)})):null;const u=r==="form"?",":r==="spaceDelimited"?"%20":r==="pipeDelimited"?"|":null;return u===null?null:n.kind==="empty"?[]:n.kind==="scalar"?[{name:e,value:i(n.value)}]:n.kind==="array"?t?n.items.map(s=>({name:e,value:i(s)})):r==="spaceDelimited"&&n.items.some(s=>/\s/.test(String(s)))?null:[{name:e,value:n.items.map(i).join(u)}]:r!=="form"?null:t?n.entries.map(([s,o])=>({name:s,value:i(o)})):[{name:e,value:n.entries.flatMap(([s,o])=>[i(s),i(o)]).join(u)}]}const Dt=new Set([".","..","%2e",".%2e","%2e.","%2e%2e"]);function Gt(e){return Dt.has(e.toLowerCase())}function qt(e,r,t,n){if(r!=="simple"&&r!=="label"&&r!=="matrix"||n.kind==="invalid"||n.kind==="empty")return null;const i=s=>{const o=String(s);if(Gt(o))return null;let a=encodeURIComponent(o);return r==="label"&&(a=a.replace(/\./g,"%2E")),a};if(n.kind==="scalar"){const s=i(n.value);return s===null?null:r==="simple"?s:r==="label"?`.${s}`:`;${e}=${s}`}if(n.kind==="array"){const s=[];for(const o of n.items){const a=i(o);if(a===null)return null;s.push(a)}return r==="simple"?s.join(","):r==="label"?t?s.map(o=>`.${o}`).join(""):`.${s.join(",")}`:t?s.map(o=>`;${e}=${o}`).join(""):`;${e}=${s.join(",")}`}const u=[];for(const[s,o]of n.entries){const a=i(s),d=i(o);if(a===null||d===null)return null;u.push([a,d])}return r==="simple"?t?u.map(([s,o])=>`${s}=${o}`).join(","):u.flatMap(([s,o])=>[s,o]).join(","):r==="label"?t?u.map(([s,o])=>`.${s}=${o}`).join(""):`.${u.flatMap(([s,o])=>[s,o]).join(",")}`:t?u.map(([s,o])=>`;${s}=${o}`).join(""):`;${e}=${u.flatMap(([s,o])=>[s,o]).join(",")}`}function Kt(e,r,t){if(t.kind==="invalid"||e!=="simple")return null;if(t.kind==="empty")return{present:!1};const n=u=>encodeURIComponent(String(u));let i;return t.kind==="scalar"?i=String(t.value):t.kind==="array"?i=t.items.map(n).join(","):i=r?t.entries.map(([u,s])=>`${n(u)}=${n(s)}`).join(","):t.entries.flatMap(([u,s])=>[n(u),n(s)]).join(","),/[\r\n\0]/.test(i)?null:{present:!0,value:i}}function Ut(e){if(!e||typeof e!="object")return null;const r=e;if(typeof r.method!="string"||!/^[A-Z]+$/.test(r.method)||typeof r.path!="string"||!r.path.startsWith("/")||!r.params||typeof r.params!="object"||Array.isArray(r.params))return null;for(const t of Object.values(r.params)){if(!t||typeof t!="object")return null;const n=t;if(!["path","query","header","cookie"].includes(n.in)||typeof n.style!="string"||typeof n.explode!="boolean")return null}return r}function ae(e){try{return["http:","https:"].includes(new URL(e).protocol)}catch{return!1}}function Ht(e,r,t){let n=r.path;const i={},u=[];let s;try{if(s=new URL(e),!["http:","https:"].includes(s.protocol))return null}catch{return null}for(const a of Object.keys(r.params).sort()){const d=r.params[a],h=Nt(t,a);if(d.in==="query"){const f=N(h);if(f.kind==="invalid")return null;const p=Bt(a,d.style,d.explode,f);if(p===null)return null;for(const c of p)u.push(`${c.name}=${c.value}`)}else if(d.in==="path"){const f=N(h),p=qt(a,d.style,d.explode,f);if(p===null)return null;n=n.split(`{${a}}`).join(p)}else if(d.in==="header"){const f=N(h),p=Kt(d.style,d.explode,f);if(p===null)return null;p.present&&(i[a]=p.value)}else{const f=N(h);if(f.kind==="invalid"||f.kind!=="empty")return null}}if(/\{[^}]+\}/.test(n))return null;if(s.pathname=`${s.pathname.replace(/\/$/,"")}/${n.replace(/^\//,"")}`,u.length>0){const a=s.search?s.search.slice(1):"";s.search=a?`${a}&${u.join("&")}`:u.join("&")}const o={method:r.method,credentials:"same-origin",headers:i};return{url:s.toString(),init:o}}function Wt(e,r,t){if(!e)return{ok:!1,reason:"missing"};if(e.kind!=="openapi")return{ok:!1,reason:"unsupported-kind"};const n=Ut(e.transport);if(!n)return{ok:!1,reason:"invalid-transport"};if(t!==void 0){if(!ae(t))return{ok:!1,reason:"invalid-base-url"}}else if(!ae(e.baseUrl))return{ok:!1,reason:"invalid-transport"};const i=Ht(t??e.baseUrl,n,r);return i?{ok:!0,...i}:{ok:!1,reason:"unsupported-params"}}exports.AREA_GLOBAL_CSS_KEY=Pe;exports.FragmentsApiVersionError=D;exports.FragmentsAreaError=R;exports.FragmentsLoadError=M;exports.areaPlugin=At;exports.createCssChunksCachePlugin=Te;exports.createFragmentsCachePlugin=ee;exports.createFragmentsClient=Rt;exports.createSourceCache=Ee;exports.cssChunkKey=we;exports.fragmentCssKey=$e;exports.fragmentFontsKey=Pt;exports.fragmentsCachePlugin=Vt;exports.globalMetricsPlugin=Ce;exports.readyOf=K;exports.resolveSourceRequest=Wt;exports.resolveStylesHref=_t;exports.runSourceFetch=yt;exports.sourceCallKey=x;exports.sourceTransportKey=Lt;exports.toScopeClassName=Tt;