@fragmentsx/fragments-client 0.1.0 → 0.2.0-dev-20260831061037

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
@@ -30,13 +30,19 @@ pnpm add @fragmentsx/fragments-client
30
30
  import { createFragmentsClient } from '@fragmentsx/fragments-client';
31
31
 
32
32
  const client = createFragmentsClient({
33
- apiUrl: 'https://api.fragments.example.com',
34
- projectId: 'my-project',
33
+ apiToken: process.env.FRAGMENTS_API_TOKEN,
34
+ backendEndpoint: 'https://api.example.com',
35
35
  });
36
36
 
37
37
  const area = await client.$area.resolve('home');
38
38
  ```
39
39
 
40
+ `apiToken` обязателен. Остальные опции — `backendEndpoint` (источник
41
+ манифеста; по умолчанию `window.location.origin`), `projectId?: number`,
42
+ `referer?`, `timeout?`, `plugins?` и `inject?` (callback монтирования CSS в
43
+ DOM; в браузере передайте `injectStylesheet` из `@fragmentsx/runtime-react`
44
+ или используйте готовый `createBrowserClient` оттуда же).
45
+
40
46
  ## Пара с runtime-react
41
47
 
42
48
  `@fragmentsx/runtime-react` — React-обвязка над этим пакетом
@@ -26,7 +26,7 @@ export interface CreateFragmentsCachePluginOpts {
26
26
  }
27
27
  /**
28
28
  * Публичный тип $fragments namespace — используется downstream (runtime-react).
29
- * Typed augmentation GraphState.$fragments в src/declarations.d.ts (D-05).
29
+ * Typed augmentation GraphState.$fragments в src/namespaces.ts (D-05).
30
30
  */
31
31
  export interface FragmentsCacheNamespace {
32
32
  /** Проверяет наличие id в кэше (любой status). */
@@ -1,4 +1,5 @@
1
1
  import { Plugin } from '@graph-state/core';
2
+ import { FilterOverrides } from './namespaces';
2
3
  /**
3
4
  * Тип inject функции — DOM injection callback.
4
5
  * Production: `injectStylesheet` из `@fragmentsx/runtime-react`.
@@ -23,6 +24,19 @@ export interface Options {
23
24
  * Production: `inject = injectStylesheet` из `@fragmentsx/runtime-react`.
24
25
  */
25
26
  inject?: InjectFn;
27
+ /**
28
+ * quick 260830-rvp, INT-07: значения таргетинга (гео/ip/устройство/страница),
29
+ * уходящие в заголовки `X-Filter-*` при каждом запросе (fetchPlugin читает их
30
+ * лениво из `state.env.filterOverrides`). Живая смена после создания клиента —
31
+ * через `client.setFilters(...)`, монтируемый ниже.
32
+ */
33
+ filterOverrides?: FilterOverrides;
34
+ /**
35
+ * quick 260830-rvp, INT-07: включает заголовок `X-Debug` на каждом запросе.
36
+ * Задаётся только при создании клиента — живого сеттера намеренно нет
37
+ * (T-rvp-02): флаг нельзя поднять из пользовательского ввода на лету.
38
+ */
39
+ debug?: boolean;
26
40
  }
27
41
  /**
28
42
  * Создаёт compiled-only GraphState client.
@@ -1 +1 @@
1
- {"version":3,"file":"createFragmentsClient.d.ts","sourceRoot":"","sources":["../src/createFragmentsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAkB7D;;;;GAIG;AACH,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;AAE1D;;;;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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,sGA4CrD,CAAC"}
1
+ {"version":3,"file":"createFragmentsClient.d.ts","sourceRoot":"","sources":["../src/createFragmentsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAepD;;;;GAIG;AACH,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;AAE1D;;;;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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,sGA+DrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dist-declarations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist-declarations.test.d.ts","sourceRoot":"","sources":["../src/dist-declarations.test.ts"],"names":[],"mappings":""}
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ze=require("@graph-state/core"),et=require("@graph-state/checkers");class q extends Error{constructor(r,t,a,u){super(t),this.code=r,this.details=a,this.status=u,this.name="FragmentsAreaError",Object.setPrototypeOf(this,q.prototype)}}class X 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,X.prototype)}}class W extends Error{constructor(r,t,a){super(`Failed to load fragment ${r} from ${t}`),this.fragmentId=r,this.moduleUrl=t,this.cause=a,this.name="FragmentsLoadError",Object.setPrototypeOf(this,W.prototype)}}const j=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),O=j("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"),H=j("auto","fill"),ne=j("None","Solid","Dashed","Dotted"),tt=j("_blank","none"),ae=j("None","Solid","LinearGradient","RadialGradient","ConicGradient","Image"),le=j("Auto","Contain","Cover"),rt=j("Min","Center","Max","Stretch","Scale"),ie=j("absolute","relative"),V=j("Fixed","Hug","Fill","Relative"),se=j("none","flex"),oe=j("vertical","horizontal"),ce=j("start","center","end"),ue=j("start","center","end","space-between","space-around"),Ee=j("none","uppercase","lowercase","capitalize"),J=j("none","underline","line-through"),nt=j("loop","appear","hover","tap"),at=j("fade","slide","bounce","wiggle","increase"),g=j("Event","String","Link","Boolean","Array","Color","ComponentInstance","Date","Enum","Number","Image","Object","Goal"),fe=j("normal","nowrap","pre","pre-wrap","pre-line","break-spaces"),pe=j("visible","hidden","scroll"),lt=j("convert","exists","equals","startWith","endWith","contains","dateBefore","dateAfter","dateBetween","feature","notFeature","gt","gte","lt","lte","convertFromBoolean","negative"),it=j("canvas","document"),st=j("viewport","parent","fixed"),Ce=j("click","mouseover","appear"),he=j("goal","mutate","callback","tracker"),ot=j("AreaScope","InstanceScope","FragmentScope","CollectionScope","CollectionItemScope"),ct=j("Global","Fragment"),Oe=3,ut=Object.freeze(Object.defineProperty({__proto__:null,MAX_SCHEMA_DEPTH:Oe,borderType:ne,constrain:rt,createConstants:j,cssChunkScopeTypes:ct,effectName:at,effectType:nt,eventMode:he,fragmentGrowingMode:H,imagePaintScaleModes:le,interactions:Ce,layerAlign:ce,layerDirection:oe,layerDistribute:ue,layerMode:se,linkTarget:tt,nodes:O,overflow:pe,paintMode:ae,positionType:ie,renderMode:st,renderTarget:it,scopeTypes:ot,sizing:V,textDecorations:J,textTransform:Ee,variableTransforms:lt,variableType:g,whiteSpace:fe},Symbol.toStringTag,{value:"Module"}));function ft(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 pt(e,r){var t;return(t=void 0)==null?void 0:t.get(r)}function L(e){var r,t;const a=typeof e;return a==="string"?`"${e}"`:a==="number"||a==="bigint"||a==="boolean"?`${e}`:a==="object"||a==="function"?(e&&((t=(r=Object.getPrototypeOf(e))==null?void 0:r.constructor)==null?void 0:t.name))??"null":a}function w(e,r,t,a,u){const c=u&&"input"in u?u.input:t.value,o=(u==null?void 0:u.expected)??e.expects??null,i=(u==null?void 0:u.received)??L(c),f={kind:e.kind,type:e.type,input:c,expected:o,received:i,message:`Invalid ${r}: ${o?`Expected ${o} but r`:"R"}eceived ${i}`,requirement:e.requirement,path:u==null?void 0:u.path,issues:u==null?void 0:u.issues,lang:a.lang,abortEarly:a.abortEarly,abortPipeEarly:a.abortPipeEarly},m=e.kind==="schema",p=(u==null?void 0:u.message)??e.message??pt(e.reference,f.lang)??(m?(f.lang,void 0):null)??a.message??(f.lang,void 0);p!==void 0&&(f.message=typeof p=="function"?p(f):p),m&&(t.typed=!1),t.issues?t.issues.push(f):t.issues=[f]}function P(e){return{version:1,vendor:"valibot",validate(r){return e["~run"]({value:r},ft())}}}function Te(e,r){return Object.hasOwn(e,r)&&r!=="__proto__"&&r!=="prototype"&&r!=="constructor"}function K(e,r){const t=[...new Set(e)];return t.length>1?`(${t.join(` ${r} `)})`:t[0]??"never"}function we(e,r){return{kind:"validation",type:"check",reference:we,async:!1,expects:null,requirement:e,message:r,"~run"(t,a){return t.typed&&!this.requirement(t.value)&&w(this,"input",t,a),t}}}function be(e,r){return{kind:"validation",type:"max_value",reference:be,async:!1,expects:`<=${e instanceof Date?e.toJSON():L(e)}`,requirement:e,message:r,"~run"(t,a){return t.typed&&!(t.value<=this.requirement)&&w(this,"value",t,a,{received:t.value instanceof Date?t.value.toJSON():L(t.value)}),t}}}function Pe(e){return{kind:"metadata",type:"metadata",reference:Pe,metadata:e}}function B(e,r){return{kind:"validation",type:"min_value",reference:B,async:!1,expects:`>=${e instanceof Date?e.toJSON():L(e)}`,requirement:e,message:r,"~run"(t,a){return t.typed&&!(t.value>=this.requirement)&&w(this,"value",t,a,{received:t.value instanceof Date?t.value.toJSON():L(t.value)}),t}}}function Fe(e){return{kind:"transformation",type:"transform",reference:Fe,async:!1,operation:e,"~run"(r){return r.value=this.operation(r.value),r}}}function Ie(e,r,t){return typeof e.fallback=="function"?e.fallback(r,t):e.fallback}function U(e,r,t){return typeof e.default=="function"?e.default(r,t):e.default}function ye(){return{kind:"schema",type:"any",reference:ye,expects:"any",async:!1,get"~standard"(){return P(this)},"~run"(e){return e.typed=!0,e}}}function M(e,r){return{kind:"schema",type:"array",reference:M,expects:"Array",async:!1,item:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var u;const c=t.value;if(Array.isArray(c)){t.typed=!0,t.value=[];for(let o=0;o<c.length;o++){const i=c[o],f=this.item["~run"]({value:i},a);if(f.issues){const m={type:"array",origin:"value",input:c,key:o,value:i};for(const p of f.issues)p.path?p.path.unshift(m):p.path=[m],(u=t.issues)==null||u.push(p);if(t.issues||(t.issues=f.issues),a.abortEarly){t.typed=!1;break}}f.typed||(t.typed=!1),t.value.push(f.value)}}else w(this,"type",t,a);return t}}}function v(e){return{kind:"schema",type:"boolean",reference:v,expects:"boolean",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="boolean"?r.typed=!0:w(this,"type",r,t),r}}}function R(e,r){const t=[];for(const a in e)(`${+a}`!==a||typeof e[a]!="string"||!Object.is(e[e[a]],+a))&&t.push(e[a]);return{kind:"schema",type:"enum",reference:R,expects:K(t.map(L),"|"),async:!1,enum:e,options:t,message:r,get"~standard"(){return P(this)},"~run"(a,u){return this.options.includes(a.value)?a.typed=!0:w(this,"type",a,u),a}}}function Y(e){return{kind:"schema",type:"lazy",reference:Y,expects:"unknown",async:!1,getter:e,get"~standard"(){return P(this)},"~run"(r,t){return this.getter(r.value)["~run"](r,t)}}}function F(e,r){return{kind:"schema",type:"literal",reference:F,expects:L(e),async:!1,literal:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===this.literal?t.typed=!0:w(this,"type",t,a),t}}}function de(e,r){return{kind:"schema",type:"loose_object",reference:de,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var u;const c=t.value;if(c&&typeof c=="object"){t.typed=!0,t.value={};for(const o in this.entries){const i=this.entries[o];if(o in c||(i.type==="exact_optional"||i.type==="optional"||i.type==="nullish")&&i.default!==void 0){const f=o in c?c[o]:U(i),m=i["~run"]({value:f},a);if(m.issues){const p={type:"object",origin:"value",input:c,key:o,value:f};for(const h of m.issues)h.path?h.path.unshift(p):h.path=[p],(u=t.issues)==null||u.push(h);if(t.issues||(t.issues=m.issues),a.abortEarly){t.typed=!1;break}}m.typed||(t.typed=!1),t.value[o]=m.value}else if(i.fallback!==void 0)t.value[o]=Ie(i);else if(i.type!=="exact_optional"&&i.type!=="optional"&&i.type!=="nullish"&&(w(this,"key",t,a,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:c,key:o,value:c[o]}]}),a.abortEarly))break}if(!t.issues||!a.abortEarly)for(const o in c)Te(c,o)&&!(o in this.entries)&&(t.value[o]=c[o])}else w(this,"type",t,a);return t}}}function Ae(e){return{kind:"schema",type:"never",reference:Ae,expects:"never",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return w(this,"type",r,t),r}}}function S(e,r){return{kind:"schema",type:"nullable",reference:S,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===null&&(this.default!==void 0&&(t.value=U(this,t,a)),t.value===null)?(t.typed=!0,t):this.wrapped["~run"](t,a)}}}function y(e){return{kind:"schema",type:"number",reference:y,expects:"number",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="number"&&!isNaN(r.value)?r.typed=!0:w(this,"type",r,t),r}}}function b(e,r){return{kind:"schema",type:"object",reference:b,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var u;const c=t.value;if(c&&typeof c=="object"){t.typed=!0,t.value={};for(const o in this.entries){const i=this.entries[o];if(o in c||(i.type==="exact_optional"||i.type==="optional"||i.type==="nullish")&&i.default!==void 0){const f=o in c?c[o]:U(i),m=i["~run"]({value:f},a);if(m.issues){const p={type:"object",origin:"value",input:c,key:o,value:f};for(const h of m.issues)h.path?h.path.unshift(p):h.path=[p],(u=t.issues)==null||u.push(h);if(t.issues||(t.issues=m.issues),a.abortEarly){t.typed=!1;break}}m.typed||(t.typed=!1),t.value[o]=m.value}else if(i.fallback!==void 0)t.value[o]=Ie(i);else if(i.type!=="exact_optional"&&i.type!=="optional"&&i.type!=="nullish"&&(w(this,"key",t,a,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:c,key:o,value:c[o]}]}),a.abortEarly))break}}else w(this,"type",t,a);return t}}}function s(e,r){return{kind:"schema",type:"optional",reference:s,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===void 0&&(this.default!==void 0&&(t.value=U(this,t,a)),t.value===void 0)?(t.typed=!0,t):this.wrapped["~run"](t,a)}}}function T(e,r){return{kind:"schema",type:"picklist",reference:T,expects:K(e.map(L),"|"),async:!1,options:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){return this.options.includes(t.value)?t.typed=!0:w(this,"type",t,a),t}}}function z(e,r,t){return{kind:"schema",type:"record",reference:z,expects:"Object",async:!1,key:e,value:r,message:t,get"~standard"(){return P(this)},"~run"(a,u){var c,o;const i=a.value;if(i&&typeof i=="object"){a.typed=!0,a.value={};for(const f in i)if(Te(i,f)){const m=i[f],p=this.key["~run"]({value:f},u);if(p.issues){const d={type:"object",origin:"key",input:i,key:f,value:m};for(const k of p.issues)k.path=[d],(c=a.issues)==null||c.push(k);if(a.issues||(a.issues=p.issues),u.abortEarly){a.typed=!1;break}}const h=this.value["~run"]({value:m},u);if(h.issues){const d={type:"object",origin:"value",input:i,key:f,value:m};for(const k of h.issues)k.path?k.path.unshift(d):k.path=[d],(o=a.issues)==null||o.push(k);if(a.issues||(a.issues=h.issues),u.abortEarly){a.typed=!1;break}}(!p.typed||!h.typed)&&(a.typed=!1),p.typed&&(a.value[p.value]=h.value)}}else w(this,"type",a,u);return a}}}function l(e){return{kind:"schema",type:"string",reference:l,expects:"string",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="string"?r.typed=!0:w(this,"type",r,t),r}}}function Se(e){let r;if(e)for(const t of e)r?r.push(...t.issues):r=t.issues;return r}function $(e,r){return{kind:"schema",type:"union",reference:$,expects:K(e.map(t=>t.expects),"|"),async:!1,options:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){let u,c,o;for(const i of this.options){const f=i["~run"]({value:t.value},a);if(f.typed)if(f.issues)c?c.push(f):c=[f];else{u=f;break}else o?o.push(f):o=[f]}if(u)return u;if(c){if(c.length===1)return c[0];w(this,"type",t,a,{issues:Se(c)}),t.typed=!0}else{if((o==null?void 0:o.length)===1)return o[0];w(this,"type",t,a,{issues:Se(o)})}return t}}}function Q(){return{kind:"schema",type:"unknown",reference:Q,expects:"unknown",async:!1,get"~standard"(){return P(this)},"~run"(e){return e.typed=!0,e}}}function Me(e,r,t){return{kind:"schema",type:"variant",reference:Me,expects:"Object",async:!1,key:e,options:r,message:t,get"~standard"(){return P(this)},"~run"(a,u){const c=a.value;if(c&&typeof c=="object"){let o,i=0,f=this.key,m=[];const p=(h,d)=>{for(const k of h.options){if(k.type==="variant")p(k,new Set(d).add(k.key));else{let E=!0,A=0;for(const x of d){const G=k.entries[x];if(x in c?G["~run"]({typed:!1,value:c[x]},u).issues:G.type!=="exact_optional"&&G.type!=="optional"&&G.type!=="nullish"){E=!1,f!==x&&(i<A||i===A&&x in c&&!(f in c))&&(i=A,f=x,m=[]),f===x&&m.push(k.entries[x].expects);break}A++}if(E){const x=k["~run"]({value:c},u);(!o||!o.typed&&x.typed)&&(o=x)}}if(o&&!o.issues)break}};if(p(this,new Set([this.key])),o)return o;w(this,"type",a,u,{input:c[f],expected:K(m,"|"),path:[{type:"object",origin:"value",input:c,key:f,value:c[f]}]})}else w(this,"type",a,u);return a}}}function _(...e){return{...e[0],pipe:e,get"~standard"(){return P(this)},"~run"(r,t){for(const a of e)if(a.kind!=="metadata"){if(r.issues&&(a.kind==="schema"||a.kind==="transformation")){r.typed=!1;break}(!r.issues||!t.abortEarly&&!t.abortPipeEarly)&&(r=a["~run"](r,t))}return r}}}const _e=we(e=>e.split(":").length===2),me=e=>{const r=t=>typeof t=="number"?`${t}px`:t;return n($([y(),l()]),{...e,fallback:e==null?void 0:e.fallback,transform:r})},C=_(l(),_e),n=(e,r)=>{const t=(r==null?void 0:r.overridable)??!0,a=(r==null?void 0:r.variable)??!1,u=[e];return a&&u.push(_(l(),_e)),t&&u.push(ye()),_(s($(u)),Fe((r==null?void 0:r.transform)??(c=>c)),Pe(r??{}))},ve=b({children:n(M(l()),{fallback:[],overridable:!1})}),I=b({_id:$([l(),y()]),_type:T(Object.keys(O))}),D=b({overrides:n(M(l()),{overridable:!1}),overrideFrom:n(S(l()),{overridable:!1})}),Z=b({position:n(R(Object.keys(ie)),{fallback:ie.absolute}),top:n(S(y()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),left:n(S(y()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),right:n(S(y()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),bottom:n(S(y()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),centerAnchorX:n(y(),{fallback:.5}),centerAnchorY:n(y(),{fallback:.5})}),ee=b({opacity:n(_(y(),B(0),be(1)),{fallback:1,variable:!0}),visible:n(v(),{fallback:!0,variable:!0}),rotate:n(y(),{fallback:null}),zIndex:n(y(),{fallback:null}),classnames:n(M(C),{fallback:[]})}),te=b({widthType:n(T(Object.keys(V)),{fallback:V.Fixed}),heightType:n(T(Object.keys(V)),{fallback:V.Fixed}),width:n(_(y(),B(0)),{fallback:0,transform:Math.ceil}),height:n(_(y(),B(0)),{fallback:0,transform:Math.ceil}),aspectRatio:n(y(),{fallback:-1}),minWidth:n(S(_(y(),B(-1))),{fallback:-1,transform:Math.ceil}),minWidthType:n(T(Object.keys(V)),{fallback:V.Fixed}),maxWidth:n(S(_(y(),B(-1))),{fallback:-1,transform:Math.ceil}),maxWidthType:n(T(Object.keys(V)),{fallback:V.Fixed}),minHeight:n(S(_(y(),B(-1))),{fallback:-1,transform:Math.ceil}),minHeightType:n(T(Object.keys(V)),{fallback:V.Fixed}),maxHeight:n(S(_(y(),B(-1))),{fallback:-1,transform:Math.ceil}),maxHeightType:n(T(Object.keys(V)),{fallback:V.Fixed})}),$e=b({layerMode:n(T(Object.keys(se)),{fallback:se.none}),layerAlign:n(T(Object.keys(ce)),{fallback:ce.start}),layerDirection:n(T(Object.keys(oe)),{fallback:oe.horizontal}),layerDistribute:n(T(Object.keys(ue)),{fallback:ue.start}),layerWrap:n(v(),{fallback:!1}),layerGap:n(_(y(),B(0)),{fallback:0}),padding:me({fallback:"0px"})}),ht=n(T(Object.keys(pe)),{fallback:pe.hidden}),bt=me({fallback:"0px"}),re=b({interactions:n(M(C),{fallback:[]})}),ke=b({cssOverride:n(l(),{fallback:""})}),yt=_(b({name:n(l(),{fallback:"Frame",overridable:!1}),isBreakpoint:n(v(),{fallback:!1,overridable:!1}),isPrimary:n(v(),{fallback:!1,overridable:!1}),border:n(C),paint:n(C),link:n(C),...ve.entries,...I.entries,...D.entries,parent:n(S(l()),{overridable:!1}),...Z.entries,...ee.entries,...te.entries,...$e.entries,...re.entries,...ke.entries,overflow:ht,borderRadius:bt})),dt=b({type:F("text"),text:l(),marks:s(M(b({rangeKey:l()})))}),mt=b({type:F("mention"),ref:l(),fallback:s(l())}),vt=b({type:F("hardBreak")}),kt=$([dt,mt,vt]),gt=b({type:F("paragraph"),content:M(kt)}),St=b({type:F("doc"),content:M(gt)}),xt=b({name:n(l(),{fallback:"Text",overridable:!1}),content:n(l(),{fallback:""}),doc:n(St,{fallback:{type:"doc",content:[]}}),styleRanges:n(M(C),{fallback:[]}),whiteSpace:n(R(Object.keys(fe)),{fallback:fe.pre}),textAlign:n(l(),{fallback:"left"}),fontSize:n(y(),{fallback:null,variable:!0}),fontWeight:n($([l(),y()]),{fallback:null,variable:!0}),fontFamily:n(l(),{fallback:null,variable:!0}),color:n(l(),{fallback:null,variable:!0}),lineHeight:n(y(),{fallback:null,variable:!0}),letterSpacing:n(y(),{fallback:null,variable:!0}),textDecoration:n(T(Object.keys(J)),{fallback:null}),textTransform:n(T(Object.keys(Ee)),{fallback:null}),parent:n(S(l()),{overridable:!1}),link:n(C),highlight:n(C),contentBinding:n(C),...I.entries,...D.entries,...ke.entries,...Z.entries,...ee.entries,...te.entries,...re.entries}),jt=b({name:n(l(),{fallback:"Fragment",overridable:!1}),parent:n(S(l()),{overridable:!1}),horizontalGrow:n(R(Object.keys(H)),{fallback:H.fill,overridable:!1}),verticalGrow:n(R(Object.keys(H)),{fallback:H.auto,overridable:!1}),properties:n(M(l()),{fallback:[],overridable:!1}),propsObject:n(S(C),{fallback:null,overridable:!1}),cssChunks:n(M(C),{fallback:[],overridable:!1}),...I.entries,...ve.entries}),Et=b({name:n(l(),{fallback:"Instance",overridable:!1}),fragment:n(y()),parent:n(S(l()),{overridable:!1}),props:n($([C,z(l(),$([l(),y(),v(),b({code:l(),name:l()})]))]),{fallback:{}}),link:n(C),...I.entries,...D.entries,...Z.entries,...te.entries,...ee.entries,...re.entries}),Ct=_(b({name:n(l(),{fallback:"Collection",overridable:!1}),parent:n(S(l()),{overridable:!1}),source:n(C,{}),border:n(C),paint:n(C),link:n(C),...ve.entries,...I.entries,...D.entries,...Z.entries,...ee.entries,...te.entries,...$e.entries,...re.entries,...ke.entries})),Ot=b({...D.entries,parent:n(S(l()),{overridable:!1}),position:n(_(y(),be(1),B(0)),{fallback:0}),value:n(l(),{fallback:"#000",variable:!0}),...I.entries}),Tt=b({...D.entries,parent:n(S(l()),{overridable:!1}),angle:n(y(),{fallback:0}),stops:n(M(C),{fallback:[]}),...I.entries}),wt=b({parent:n(S(l()),{overridable:!1}),chunkId:n(y()),enabled:n(v(),{fallback:!0,variable:!0}),...I.entries}),Pt=b({...D.entries,parent:n(S(l()),{overridable:!1}),type:n(T(Object.keys(ne)),{fallback:ne.None}),width:me({fallback:"1px"}),paint:n(C),...I.entries}),Ft=b({...D.entries,parent:n(S(l()),{overridable:!1}),type:n(T(Object.keys(ae)),{fallback:ae.None}),solid:n(l(),{fallback:"#fff"}),linearGradient:n(C),image:n(C),...I.entries}),It=b({...I.entries,...D.entries,parent:n(S(l()),{overridable:!1}),src:n(l()),scale:n(T(Object.keys(le)),{fallback:le.Auto})}),At=b({...D.entries,...I.entries,parent:n(S(l()),{overridable:!1}),href:n(l(),{fallback:null}),isNewTab:n(v(),{fallback:!0})}),Mt=b({parent:n(S(l()),{overridable:!1}),...I.entries,on:R(Object.keys(Ce)),event:n(C)}),_t=b({parent:n(S(l()),{overridable:!1}),value:n(l(),{fallback:""}),enabled:n(v(),{fallback:!0,variable:!0}),...I.entries}),$t=b({parent:n(S(l()),{overridable:!1}),goalId:n(y(),{overridable:!1}),...I.entries}),Vt=b({parent:n(S(l()),{overridable:!1}),target:n(C),value:n(ye()),...I.entries}),Dt=b({color:n(l(),{fallback:null}),lineHeight:n(y(),{fallback:null}),fontSize:n(y(),{fallback:null}),fontWeight:n($([l(),y()]),{fallback:400}),fontFamily:n(l(),{fallback:null}),textDecoration:n(T(Object.keys(J)),{fallback:null}),parent:n(S(l()),{overridable:!1}),...I.entries}),Gt=b({...D.entries,parent:n(S(l()),{overridable:!1}),color:n(l(),{fallback:null,variable:!0}),fontSize:n(y(),{fallback:null,variable:!0}),fontWeight:n($([l(),y()]),{fallback:400,variable:!0}),fontFamily:n(l(),{fallback:null,variable:!0}),lineHeight:n(y(),{fallback:null,variable:!0}),letterSpacing:n(y(),{fallback:null,variable:!0}),textDecoration:n(T(Object.keys(J)),{fallback:null,variable:!0}),...I.entries}),Ve=b({name:s(l(),"Number"),type:s(F(g.Number),g.Number),defaultValue:s(y(),0),required:s(v(),!1),editable:s(v(),!0),min:s(y(),1),max:s(y(),100),step:s(y(),1),displayStepper:s(v(),!0)}),De=b({name:s(l(),"Boolean"),type:s(F(g.Boolean),g.Boolean),defaultValue:s(v(),!1),required:s(v(),!1),editable:s(v(),!0)}),Ge=b({name:s(l(),"String"),type:s(F(g.String),g.String),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0),placeholder:s(l(),""),isTextarea:s(v(),!1),isRich:s(v(),!1)}),Be=b({name:s(l(),"String"),type:s(F(g.Color),g.Color),defaultValue:s(l(),"#000"),required:s(v(),!1),editable:s(v(),!0)}),Bt=b({name:s(l(),"Event"),type:s(F(g.Event),g.Event),mode:s(T(Object.keys(he)),he.callback),defaultValue:s(Q(),null),required:s(v(),!1),editable:s(v(),!0)}),Ne=b({name:s(l(),"Link"),type:s(F(g.Link),g.Link),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0)}),Le=b({name:s(l(),"Option"),type:s(F(g.Enum),g.Enum),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0),cases:s(M(b({id:l(),name:l()})),[])}),Re=b({name:s(l(),"Image"),type:s(F(g.Image),g.Image),defaultValue:s(S(l()),null),required:s(v(),!1),editable:s(v(),!0)});function He(e){return b({name:s(l(),"Object"),type:s(F(g.Object),g.Object),defaultValue:s(z(l(),Q()),{}),fields:s(z(l(),Y(()=>We(e+1))),{}),required:s(v(),!1),editable:s(v(),!0)})}function qe(e){return b({name:s(l(),"Collection"),type:s(F(g.Array),g.Array),defaultValue:s(M(Q()),[]),definition:s(S(Y(()=>We(e+1))),null),required:s(v(),!1),editable:s(v(),!0)})}function We(e){return e>Oe?Ae():Me("type",[Ge,Ve,De,Be,Le,Ne,Re,He(e),qe(e)])}const Nt=He(0),Lt=qe(0),Rt=b({name:s(l(),"Goal"),type:s(F(g.Goal),g.Goal),defaultValue:s(S(y()),null),required:s(v(),!1),editable:s(v(),!0)});g.Number+"",g.Boolean+"",g.String+"",g.Color+"",g.Event+"",g.Link+"",g.Enum+"",g.Object+"",g.Image+"",g.Array+"",g.Goal+"";O.Frame+"",O.Text+"",O.Fragment+"",O.Instance+"",O.Collection+"",O.StopColor+"",O.LinearGradient+"",O.CssChunk+"",O.Border+"",O.Paint+"",O.ImagePaint+"",O.Link+"",O.Interaction+"",O.Classname+"",O.GoalEvent+"",O.MutateEvent+"",O.TextHighlight+"",O.TextStyleMark+"";const ze=Y(()=>de({_type:l(),_id:$([l(),y()]),children:s(M($([l(),ze])))}));O.Fragment;const Xe=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),Ht={"Content-Type":"application/json"},qt=(e,r={},t={})=>{const{timeout:a}=t,u=new Map;return{get:(i,f={})=>{const m=`${e}${i}`;if(u.has(m))return u.get(m);const p=f.timeout??a,h=p!=null?AbortSignal.timeout(p):void 0,d=typeof r=="function"?r():r,k=fetch(m,{method:"GET",headers:{...Ht,...d},signal:h}).then(async E=>{if(!E.ok){let x={};try{x=await E.json()}catch{x={error:{code:"UNKNOWN",message:E.statusText}}}return{ok:!1,errorBody:x,status:E.status}}let A;try{A=await E.json()}catch{A=null}return{ok:!0,data:A,status:E.status}}).finally(()=>{u.delete(m)});return u.set(m,k),k},getAbsolute:i=>{fetch(i,{method:"GET",mode:"no-cors",credentials:"omit",keepalive:!0}).catch(f=>{console.error(f)})}}},Wt=e=>({sendBeacon:(t,a)=>{if(!t||typeof navigator>"u"||typeof(navigator==null?void 0:navigator.sendBeacon)!="function")return!1;try{return navigator.sendBeacon.bind(navigator)(t,a)}catch(u){return console.error(u),!1}}}),zt=e=>{var f,m,p,h;const r=(f=e==null?void 0:e.env)==null?void 0:f.backendEndpoint,t=(m=e==null?void 0:e.env)==null?void 0:m.apiToken,a=(p=e==null?void 0:e.env)==null?void 0:p.referer;if(!r)return;const u=()=>{var E,A,x;const d=(E=e==null?void 0:e.env)==null?void 0:E.filterOverrides,k={};return t&&(k["X-Api-Key"]=t),a&&(k.Referer=a),d!=null&&d.deviceType&&(k["X-Filter-Device-Type"]=d.deviceType),d!=null&&d.osType&&(k["X-Filter-OS-Type"]=d.osType),d!=null&&d.page&&(k["X-Filter-Page"]=d.page),(A=d==null?void 0:d.geo)!=null&&A.code?k["X-Filter-Geo"]=d.geo.code:d!=null&&d.ip&&(k["X-Filter-IP"]=d.ip),(x=e==null?void 0:e.env)!=null&&x.debug&&(k["X-Debug"]="true"),k},c=(h=e==null?void 0:e.env)==null?void 0:h.timeout,o=qt(r,u,{timeout:c}),i=Wt();e.$fetch={get:o.get,sendBeacon:i.sendBeacon,getAbsolute:o.getAbsolute}},Xt=typeof window<"u",xe=new Set,Jt=e=>{try{const r=new Image;r.referrerPolicy="no-referrer";const t=()=>{r.removeEventListener("load",t),r.removeEventListener("error",t),xe.delete(r)};r.addEventListener("load",t,{once:!0}),r.addEventListener("error",t,{once:!0}),xe.add(r),r.src=e}catch{}},Kt=(e,r)=>{if(typeof r!="function")return!1;try{return r(e),!0}catch{return!1}},Ut=e=>{if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return!1;try{return navigator.sendBeacon(e)}catch{return!1}},Yt=(e,r,t)=>{if(!Xt)return;const a=e==null?void 0:e.trim();if(a){if(typeof r=="function")try{if(r(a)===!0)return}catch{}Ut(a)||Kt(a,t)||Jt(a)}},je=Xe("INIT_SESSION","RELEASE_SESSION","REACH_PROJECT_GOAL"),Je=e=>{const r=(u,c)=>{var i;if(u!==je.REACH_PROJECT_GOAL||!c)return;const o=new URLSearchParams({goal_id:String(c.goalId),variant_id:String(c.variantId),area_id:String(c.areaId),campaign_id:String(c.campaignId)});(i=e.$fetch)==null||i.get(`/api/metric/goal?${o}`).catch(()=>{})},t=u=>{r(je.REACH_PROJECT_GOAL,u)},a=u=>{var o,i;const c=((o=e.$fetch)==null?void 0:o.getAbsolute)!=null?f=>e.$fetch.getAbsolute(f):void 0;Yt(u,(i=e==null?void 0:e.$fetch)==null?void 0:i.sendBeacon,c)};e.$metrics={reachGoal:t,trackAdPixel:a}},Ke=e=>{const r=new Map,t=new Map,a=new Map,u=(i,f)=>{if(r.has(i))return Promise.resolve(r.get(i));if(t.has(i))return t.get(i);a.delete(i);const m=`/api/area/${i}/compiled`,p=(async()=>{var E,A,x,G,ge;const h=await e.$fetch.get(m);if(!h.ok){const N=h.errorBody;throw new q(((E=N==null?void 0:N.error)==null?void 0:E.code)??"UNKNOWN",((A=N==null?void 0:N.error)==null?void 0:A.message)??String(h.status),(x=N==null?void 0:N.error)==null?void 0:x.details,h.status)}const d=h.data;if(d.apiVersion!==1)throw new X(1,d.apiVersion);(G=e.$fragments)==null||G.populate(d.fragments??{}),(ge=e.$cssChunks)==null||ge.populate(d.cssChunks??{});const k={rootFragmentId:d.rootFragmentId,props:d.props??{},projectProperties:d.projectProperties??{},globalCssUrl:d.globalCssUrl??null};return r.set(i,k),k})();return t.set(i,p),p.catch(h=>{a.set(i,h)}).finally(()=>{t.delete(i)}),p},c=i=>{if(r.has(i))return r.get(i);throw t.has(i)?t.get(i):a.has(i)?a.get(i):new q("AREA_NOT_RESOLVED",`Area ${i} not resolved — call $area.resolve(code) before read()`)},o=i=>r.has(i)||a.has(i);e.$area={resolve:u,read:c,has:o}};function Ue(e){const r=(e==null?void 0:e.importer)??(t=>import(t));return t=>{const a=new Map,u=p=>a.has(p),c=p=>{var h;return(h=a.get(p))==null?void 0:h.ref},o=p=>{var h;return(h=a.get(p))==null?void 0:h.schema},i=p=>{var h;return(h=a.get(p))==null?void 0:h.scopeClass},f=p=>{const h=a.get(p);if(h===void 0)throw new W(p,"",new Error(`Fragment ${p} not populated — call populate() before read()`));if(h.status==="pending")throw h.promise;if(h.status==="error")throw h.error;return h.component},m=p=>{Object.entries(p).forEach(([h,d])=>{const k=Number(h);if(a.has(k))return;const E={status:"pending",promise:Promise.resolve(),ref:d},A=r(d.moduleUrl).then(x=>(E.status="success",E.component=x.default,E.schema=x.schema,E.scopeClass=typeof x.scopeClass=="string"?x.scopeClass:void 0,x.default),x=>{const G=new W(k,d.moduleUrl,x);throw E.status="error",E.error=G,G});E.promise=A,a.set(k,E),A.catch(()=>{})})};t.$fragments={has:u,read:f,populate:m,getRef:c,getSchema:o,getScopeClass:i}}}const Ye=Ue();function Qe(e){return r=>{const t=new Map;r.$cssChunks={has:a=>t.has(a),populate:a=>{for(const[u,c]of Object.entries(a)){const o=Number(u);if(t.has(o))continue;const i=e.inject(c.cssUrl,`chunk:${o}`);t.set(o,{ref:c,cleanup:i})}}}}}const Qt=Xe("GlobalManager"),Zt=e=>{const r=()=>()=>{};return Ze.createState({_type:"GlobalManager",initialState:{},skip:[et.allowTypes([...Object.keys(ut.nodes),...Object.keys(Qt)])],plugins:[t=>{t.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}},t=>{(e==null?void 0:e.projectId)!=null&&(t.$project={projectId:e.projectId})},...(e==null?void 0:e.plugins)??[],zt,Je,Ke,Ye,Qe({inject:(e==null?void 0:e.inject)??r})]})};exports.FragmentsApiVersionError=X;exports.FragmentsAreaError=q;exports.FragmentsLoadError=W;exports.areaPlugin=Ke;exports.createCssChunksCachePlugin=Qe;exports.createFragmentsCachePlugin=Ue;exports.createFragmentsClient=Zt;exports.fragmentsCachePlugin=Ye;exports.globalMetricsPlugin=Je;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ze=require("@graph-state/core"),et=require("@graph-state/checkers");class q extends Error{constructor(r,t,a,c){super(t),this.code=r,this.details=a,this.status=c,this.name="FragmentsAreaError",Object.setPrototypeOf(this,q.prototype)}}class X 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,X.prototype)}}class W extends Error{constructor(r,t,a){super(`Failed to load fragment ${r} from ${t}`),this.fragmentId=r,this.moduleUrl=t,this.cause=a,this.name="FragmentsLoadError",Object.setPrototypeOf(this,W.prototype)}}const j=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),C=j("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"),H=j("auto","fill"),ne=j("None","Solid","Dashed","Dotted"),tt=j("_blank","none"),ae=j("None","Solid","LinearGradient","RadialGradient","ConicGradient","Image"),le=j("Auto","Contain","Cover"),rt=j("Min","Center","Max","Stretch","Scale"),ie=j("absolute","relative"),V=j("Fixed","Hug","Fill","Relative"),se=j("none","flex"),oe=j("vertical","horizontal"),ce=j("start","center","end"),ue=j("start","center","end","space-between","space-around"),Ee=j("none","uppercase","lowercase","capitalize"),J=j("none","underline","line-through"),nt=j("loop","appear","hover","tap"),at=j("fade","slide","bounce","wiggle","increase"),g=j("Event","String","Link","Boolean","Array","Color","ComponentInstance","Date","Enum","Number","Image","Object","Goal"),fe=j("normal","nowrap","pre","pre-wrap","pre-line","break-spaces"),pe=j("visible","hidden","scroll"),lt=j("convert","exists","equals","startWith","endWith","contains","dateBefore","dateAfter","dateBetween","feature","notFeature","gt","gte","lt","lte","convertFromBoolean","negative"),it=j("canvas","document"),st=j("viewport","parent","fixed"),Oe=j("click","mouseover","appear"),be=j("goal","mutate","callback","tracker"),ot=j("AreaScope","InstanceScope","FragmentScope","CollectionScope","CollectionItemScope"),ct=j("Global","Fragment"),Ce=3,ut=Object.freeze(Object.defineProperty({__proto__:null,MAX_SCHEMA_DEPTH:Ce,borderType:ne,constrain:rt,createConstants:j,cssChunkScopeTypes:ct,effectName:at,effectType:nt,eventMode:be,fragmentGrowingMode:H,imagePaintScaleModes:le,interactions:Oe,layerAlign:ce,layerDirection:oe,layerDistribute:ue,layerMode:se,linkTarget:tt,nodes:C,overflow:pe,paintMode:ae,positionType:ie,renderMode:st,renderTarget:it,scopeTypes:ot,sizing:V,textDecorations:J,textTransform:Ee,variableTransforms:lt,variableType:g,whiteSpace:fe},Symbol.toStringTag,{value:"Module"}));function ft(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 pt(e,r){var t;return(t=void 0)==null?void 0:t.get(r)}function L(e){var r,t;const a=typeof e;return a==="string"?`"${e}"`:a==="number"||a==="bigint"||a==="boolean"?`${e}`:a==="object"||a==="function"?(e&&((t=(r=Object.getPrototypeOf(e))==null?void 0:r.constructor)==null?void 0:t.name))??"null":a}function w(e,r,t,a,c){const u=c&&"input"in c?c.input:t.value,o=(c==null?void 0:c.expected)??e.expects??null,i=(c==null?void 0:c.received)??L(u),f={kind:e.kind,type:e.type,input:u,expected:o,received:i,message:`Invalid ${r}: ${o?`Expected ${o} but r`:"R"}eceived ${i}`,requirement:e.requirement,path:c==null?void 0:c.path,issues:c==null?void 0:c.issues,lang:a.lang,abortEarly:a.abortEarly,abortPipeEarly:a.abortPipeEarly},m=e.kind==="schema",p=(c==null?void 0:c.message)??e.message??pt(e.reference,f.lang)??(m?(f.lang,void 0):null)??a.message??(f.lang,void 0);p!==void 0&&(f.message=typeof p=="function"?p(f):p),m&&(t.typed=!1),t.issues?t.issues.push(f):t.issues=[f]}function P(e){return{version:1,vendor:"valibot",validate(r){return e["~run"]({value:r},ft())}}}function Te(e,r){return Object.hasOwn(e,r)&&r!=="__proto__"&&r!=="prototype"&&r!=="constructor"}function K(e,r){const t=[...new Set(e)];return t.length>1?`(${t.join(` ${r} `)})`:t[0]??"never"}function we(e,r){return{kind:"validation",type:"check",reference:we,async:!1,expects:null,requirement:e,message:r,"~run"(t,a){return t.typed&&!this.requirement(t.value)&&w(this,"input",t,a),t}}}function he(e,r){return{kind:"validation",type:"max_value",reference:he,async:!1,expects:`<=${e instanceof Date?e.toJSON():L(e)}`,requirement:e,message:r,"~run"(t,a){return t.typed&&!(t.value<=this.requirement)&&w(this,"value",t,a,{received:t.value instanceof Date?t.value.toJSON():L(t.value)}),t}}}function Pe(e){return{kind:"metadata",type:"metadata",reference:Pe,metadata:e}}function B(e,r){return{kind:"validation",type:"min_value",reference:B,async:!1,expects:`>=${e instanceof Date?e.toJSON():L(e)}`,requirement:e,message:r,"~run"(t,a){return t.typed&&!(t.value>=this.requirement)&&w(this,"value",t,a,{received:t.value instanceof Date?t.value.toJSON():L(t.value)}),t}}}function Fe(e){return{kind:"transformation",type:"transform",reference:Fe,async:!1,operation:e,"~run"(r){return r.value=this.operation(r.value),r}}}function Ie(e,r,t){return typeof e.fallback=="function"?e.fallback(r,t):e.fallback}function U(e,r,t){return typeof e.default=="function"?e.default(r,t):e.default}function de(){return{kind:"schema",type:"any",reference:de,expects:"any",async:!1,get"~standard"(){return P(this)},"~run"(e){return e.typed=!0,e}}}function M(e,r){return{kind:"schema",type:"array",reference:M,expects:"Array",async:!1,item:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var c;const u=t.value;if(Array.isArray(u)){t.typed=!0,t.value=[];for(let o=0;o<u.length;o++){const i=u[o],f=this.item["~run"]({value:i},a);if(f.issues){const m={type:"array",origin:"value",input:u,key:o,value:i};for(const p of f.issues)p.path?p.path.unshift(m):p.path=[m],(c=t.issues)==null||c.push(p);if(t.issues||(t.issues=f.issues),a.abortEarly){t.typed=!1;break}}f.typed||(t.typed=!1),t.value.push(f.value)}}else w(this,"type",t,a);return t}}}function v(e){return{kind:"schema",type:"boolean",reference:v,expects:"boolean",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="boolean"?r.typed=!0:w(this,"type",r,t),r}}}function R(e,r){const t=[];for(const a in e)(`${+a}`!==a||typeof e[a]!="string"||!Object.is(e[e[a]],+a))&&t.push(e[a]);return{kind:"schema",type:"enum",reference:R,expects:K(t.map(L),"|"),async:!1,enum:e,options:t,message:r,get"~standard"(){return P(this)},"~run"(a,c){return this.options.includes(a.value)?a.typed=!0:w(this,"type",a,c),a}}}function Y(e){return{kind:"schema",type:"lazy",reference:Y,expects:"unknown",async:!1,getter:e,get"~standard"(){return P(this)},"~run"(r,t){return this.getter(r.value)["~run"](r,t)}}}function F(e,r){return{kind:"schema",type:"literal",reference:F,expects:L(e),async:!1,literal:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===this.literal?t.typed=!0:w(this,"type",t,a),t}}}function ye(e,r){return{kind:"schema",type:"loose_object",reference:ye,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var c;const u=t.value;if(u&&typeof u=="object"){t.typed=!0,t.value={};for(const o in this.entries){const i=this.entries[o];if(o in u||(i.type==="exact_optional"||i.type==="optional"||i.type==="nullish")&&i.default!==void 0){const f=o in u?u[o]:U(i),m=i["~run"]({value:f},a);if(m.issues){const p={type:"object",origin:"value",input:u,key:o,value:f};for(const b of m.issues)b.path?b.path.unshift(p):b.path=[p],(c=t.issues)==null||c.push(b);if(t.issues||(t.issues=m.issues),a.abortEarly){t.typed=!1;break}}m.typed||(t.typed=!1),t.value[o]=m.value}else if(i.fallback!==void 0)t.value[o]=Ie(i);else if(i.type!=="exact_optional"&&i.type!=="optional"&&i.type!=="nullish"&&(w(this,"key",t,a,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:u,key:o,value:u[o]}]}),a.abortEarly))break}if(!t.issues||!a.abortEarly)for(const o in u)Te(u,o)&&!(o in this.entries)&&(t.value[o]=u[o])}else w(this,"type",t,a);return t}}}function Ae(e){return{kind:"schema",type:"never",reference:Ae,expects:"never",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return w(this,"type",r,t),r}}}function S(e,r){return{kind:"schema",type:"nullable",reference:S,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===null&&(this.default!==void 0&&(t.value=U(this,t,a)),t.value===null)?(t.typed=!0,t):this.wrapped["~run"](t,a)}}}function d(e){return{kind:"schema",type:"number",reference:d,expects:"number",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="number"&&!isNaN(r.value)?r.typed=!0:w(this,"type",r,t),r}}}function h(e,r){return{kind:"schema",type:"object",reference:h,expects:"Object",async:!1,entries:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){var c;const u=t.value;if(u&&typeof u=="object"){t.typed=!0,t.value={};for(const o in this.entries){const i=this.entries[o];if(o in u||(i.type==="exact_optional"||i.type==="optional"||i.type==="nullish")&&i.default!==void 0){const f=o in u?u[o]:U(i),m=i["~run"]({value:f},a);if(m.issues){const p={type:"object",origin:"value",input:u,key:o,value:f};for(const b of m.issues)b.path?b.path.unshift(p):b.path=[p],(c=t.issues)==null||c.push(b);if(t.issues||(t.issues=m.issues),a.abortEarly){t.typed=!1;break}}m.typed||(t.typed=!1),t.value[o]=m.value}else if(i.fallback!==void 0)t.value[o]=Ie(i);else if(i.type!=="exact_optional"&&i.type!=="optional"&&i.type!=="nullish"&&(w(this,"key",t,a,{input:void 0,expected:`"${o}"`,path:[{type:"object",origin:"key",input:u,key:o,value:u[o]}]}),a.abortEarly))break}}else w(this,"type",t,a);return t}}}function s(e,r){return{kind:"schema",type:"optional",reference:s,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:r,get"~standard"(){return P(this)},"~run"(t,a){return t.value===void 0&&(this.default!==void 0&&(t.value=U(this,t,a)),t.value===void 0)?(t.typed=!0,t):this.wrapped["~run"](t,a)}}}function T(e,r){return{kind:"schema",type:"picklist",reference:T,expects:K(e.map(L),"|"),async:!1,options:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){return this.options.includes(t.value)?t.typed=!0:w(this,"type",t,a),t}}}function z(e,r,t){return{kind:"schema",type:"record",reference:z,expects:"Object",async:!1,key:e,value:r,message:t,get"~standard"(){return P(this)},"~run"(a,c){var u,o;const i=a.value;if(i&&typeof i=="object"){a.typed=!0,a.value={};for(const f in i)if(Te(i,f)){const m=i[f],p=this.key["~run"]({value:f},c);if(p.issues){const y={type:"object",origin:"key",input:i,key:f,value:m};for(const k of p.issues)k.path=[y],(u=a.issues)==null||u.push(k);if(a.issues||(a.issues=p.issues),c.abortEarly){a.typed=!1;break}}const b=this.value["~run"]({value:m},c);if(b.issues){const y={type:"object",origin:"value",input:i,key:f,value:m};for(const k of b.issues)k.path?k.path.unshift(y):k.path=[y],(o=a.issues)==null||o.push(k);if(a.issues||(a.issues=b.issues),c.abortEarly){a.typed=!1;break}}(!p.typed||!b.typed)&&(a.typed=!1),p.typed&&(a.value[p.value]=b.value)}}else w(this,"type",a,c);return a}}}function l(e){return{kind:"schema",type:"string",reference:l,expects:"string",async:!1,message:e,get"~standard"(){return P(this)},"~run"(r,t){return typeof r.value=="string"?r.typed=!0:w(this,"type",r,t),r}}}function Se(e){let r;if(e)for(const t of e)r?r.push(...t.issues):r=t.issues;return r}function $(e,r){return{kind:"schema",type:"union",reference:$,expects:K(e.map(t=>t.expects),"|"),async:!1,options:e,message:r,get"~standard"(){return P(this)},"~run"(t,a){let c,u,o;for(const i of this.options){const f=i["~run"]({value:t.value},a);if(f.typed)if(f.issues)u?u.push(f):u=[f];else{c=f;break}else o?o.push(f):o=[f]}if(c)return c;if(u){if(u.length===1)return u[0];w(this,"type",t,a,{issues:Se(u)}),t.typed=!0}else{if((o==null?void 0:o.length)===1)return o[0];w(this,"type",t,a,{issues:Se(o)})}return t}}}function Q(){return{kind:"schema",type:"unknown",reference:Q,expects:"unknown",async:!1,get"~standard"(){return P(this)},"~run"(e){return e.typed=!0,e}}}function Me(e,r,t){return{kind:"schema",type:"variant",reference:Me,expects:"Object",async:!1,key:e,options:r,message:t,get"~standard"(){return P(this)},"~run"(a,c){const u=a.value;if(u&&typeof u=="object"){let o,i=0,f=this.key,m=[];const p=(b,y)=>{for(const k of b.options){if(k.type==="variant")p(k,new Set(y).add(k.key));else{let E=!0,A=0;for(const x of y){const G=k.entries[x];if(x in u?G["~run"]({typed:!1,value:u[x]},c).issues:G.type!=="exact_optional"&&G.type!=="optional"&&G.type!=="nullish"){E=!1,f!==x&&(i<A||i===A&&x in u&&!(f in u))&&(i=A,f=x,m=[]),f===x&&m.push(k.entries[x].expects);break}A++}if(E){const x=k["~run"]({value:u},c);(!o||!o.typed&&x.typed)&&(o=x)}}if(o&&!o.issues)break}};if(p(this,new Set([this.key])),o)return o;w(this,"type",a,c,{input:u[f],expected:K(m,"|"),path:[{type:"object",origin:"value",input:u,key:f,value:u[f]}]})}else w(this,"type",a,c);return a}}}function _(...e){return{...e[0],pipe:e,get"~standard"(){return P(this)},"~run"(r,t){for(const a of e)if(a.kind!=="metadata"){if(r.issues&&(a.kind==="schema"||a.kind==="transformation")){r.typed=!1;break}(!r.issues||!t.abortEarly&&!t.abortPipeEarly)&&(r=a["~run"](r,t))}return r}}}const _e=we(e=>e.split(":").length===2),me=e=>{const r=t=>typeof t=="number"?`${t}px`:t;return n($([d(),l()]),{...e,fallback:e==null?void 0:e.fallback,transform:r})},O=_(l(),_e),n=(e,r)=>{const t=(r==null?void 0:r.overridable)??!0,a=(r==null?void 0:r.variable)??!1,c=[e];return a&&c.push(_(l(),_e)),t&&c.push(de()),_(s($(c)),Fe((r==null?void 0:r.transform)??(u=>u)),Pe(r??{}))},ve=h({children:n(M(l()),{fallback:[],overridable:!1})}),I=h({_id:$([l(),d()]),_type:T(Object.keys(C))}),D=h({overrides:n(M(l()),{overridable:!1}),overrideFrom:n(S(l()),{overridable:!1})}),Z=h({position:n(R(Object.keys(ie)),{fallback:ie.absolute}),top:n(S(d()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),left:n(S(d()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),right:n(S(d()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),bottom:n(S(d()),{fallback:null,transform:e=>typeof e=="number"?Math.ceil(e):e}),centerAnchorX:n(d(),{fallback:.5}),centerAnchorY:n(d(),{fallback:.5})}),ee=h({opacity:n(_(d(),B(0),he(1)),{fallback:1,variable:!0}),visible:n(v(),{fallback:!0,variable:!0}),rotate:n(d(),{fallback:null}),zIndex:n(d(),{fallback:null}),classnames:n(M(O),{fallback:[]})}),te=h({widthType:n(T(Object.keys(V)),{fallback:V.Fixed}),heightType:n(T(Object.keys(V)),{fallback:V.Fixed}),width:n(_(d(),B(0)),{fallback:0,transform:Math.ceil}),height:n(_(d(),B(0)),{fallback:0,transform:Math.ceil}),aspectRatio:n(d(),{fallback:-1}),minWidth:n(S(_(d(),B(-1))),{fallback:-1,transform:Math.ceil}),minWidthType:n(T(Object.keys(V)),{fallback:V.Fixed}),maxWidth:n(S(_(d(),B(-1))),{fallback:-1,transform:Math.ceil}),maxWidthType:n(T(Object.keys(V)),{fallback:V.Fixed}),minHeight:n(S(_(d(),B(-1))),{fallback:-1,transform:Math.ceil}),minHeightType:n(T(Object.keys(V)),{fallback:V.Fixed}),maxHeight:n(S(_(d(),B(-1))),{fallback:-1,transform:Math.ceil}),maxHeightType:n(T(Object.keys(V)),{fallback:V.Fixed})}),$e=h({layerMode:n(T(Object.keys(se)),{fallback:se.none}),layerAlign:n(T(Object.keys(ce)),{fallback:ce.start}),layerDirection:n(T(Object.keys(oe)),{fallback:oe.horizontal}),layerDistribute:n(T(Object.keys(ue)),{fallback:ue.start}),layerWrap:n(v(),{fallback:!1}),layerGap:n(_(d(),B(0)),{fallback:0}),padding:me({fallback:"0px"})}),bt=n(T(Object.keys(pe)),{fallback:pe.hidden}),ht=me({fallback:"0px"}),re=h({interactions:n(M(O),{fallback:[]})}),ke=h({cssOverride:n(l(),{fallback:""})}),dt=_(h({name:n(l(),{fallback:"Frame",overridable:!1}),isBreakpoint:n(v(),{fallback:!1,overridable:!1}),isPrimary:n(v(),{fallback:!1,overridable:!1}),border:n(O),paint:n(O),link:n(O),...ve.entries,...I.entries,...D.entries,parent:n(S(l()),{overridable:!1}),...Z.entries,...ee.entries,...te.entries,...$e.entries,...re.entries,...ke.entries,overflow:bt,borderRadius:ht})),yt=h({type:F("text"),text:l(),marks:s(M(h({rangeKey:l()})))}),mt=h({type:F("mention"),ref:l(),fallback:s(l())}),vt=h({type:F("hardBreak")}),kt=$([yt,mt,vt]),gt=h({type:F("paragraph"),content:M(kt)}),St=h({type:F("doc"),content:M(gt)}),xt=h({name:n(l(),{fallback:"Text",overridable:!1}),content:n(l(),{fallback:""}),doc:n(St,{fallback:{type:"doc",content:[]}}),styleRanges:n(M(O),{fallback:[]}),whiteSpace:n(R(Object.keys(fe)),{fallback:fe.pre}),textAlign:n(l(),{fallback:"left"}),fontSize:n(d(),{fallback:null,variable:!0}),fontWeight:n($([l(),d()]),{fallback:null,variable:!0}),fontFamily:n(l(),{fallback:null,variable:!0}),color:n(l(),{fallback:null,variable:!0}),lineHeight:n(d(),{fallback:null,variable:!0}),letterSpacing:n(d(),{fallback:null,variable:!0}),textDecoration:n(T(Object.keys(J)),{fallback:null}),textTransform:n(T(Object.keys(Ee)),{fallback:null}),parent:n(S(l()),{overridable:!1}),link:n(O),highlight:n(O),contentBinding:n(O),...I.entries,...D.entries,...ke.entries,...Z.entries,...ee.entries,...te.entries,...re.entries}),jt=h({name:n(l(),{fallback:"Fragment",overridable:!1}),parent:n(S(l()),{overridable:!1}),horizontalGrow:n(R(Object.keys(H)),{fallback:H.fill,overridable:!1}),verticalGrow:n(R(Object.keys(H)),{fallback:H.auto,overridable:!1}),properties:n(M(l()),{fallback:[],overridable:!1}),propsObject:n(S(O),{fallback:null,overridable:!1}),cssChunks:n(M(O),{fallback:[],overridable:!1}),...I.entries,...ve.entries}),Et=h({name:n(l(),{fallback:"Instance",overridable:!1}),fragment:n(d()),parent:n(S(l()),{overridable:!1}),props:n($([O,z(l(),$([l(),d(),v(),h({code:l(),name:l()})]))]),{fallback:{}}),link:n(O),...I.entries,...D.entries,...Z.entries,...te.entries,...ee.entries,...re.entries}),Ot=_(h({name:n(l(),{fallback:"Collection",overridable:!1}),parent:n(S(l()),{overridable:!1}),source:n(O,{}),border:n(O),paint:n(O),link:n(O),...ve.entries,...I.entries,...D.entries,...Z.entries,...ee.entries,...te.entries,...$e.entries,...re.entries,...ke.entries})),Ct=h({...D.entries,parent:n(S(l()),{overridable:!1}),position:n(_(d(),he(1),B(0)),{fallback:0}),value:n(l(),{fallback:"#000",variable:!0}),...I.entries}),Tt=h({...D.entries,parent:n(S(l()),{overridable:!1}),angle:n(d(),{fallback:0}),stops:n(M(O),{fallback:[]}),...I.entries}),wt=h({parent:n(S(l()),{overridable:!1}),chunkId:n(d()),enabled:n(v(),{fallback:!0,variable:!0}),...I.entries}),Pt=h({...D.entries,parent:n(S(l()),{overridable:!1}),type:n(T(Object.keys(ne)),{fallback:ne.None}),width:me({fallback:"1px"}),paint:n(O),...I.entries}),Ft=h({...D.entries,parent:n(S(l()),{overridable:!1}),type:n(T(Object.keys(ae)),{fallback:ae.None}),solid:n(l(),{fallback:"#fff"}),linearGradient:n(O),image:n(O),...I.entries}),It=h({...I.entries,...D.entries,parent:n(S(l()),{overridable:!1}),src:n(l()),scale:n(T(Object.keys(le)),{fallback:le.Auto})}),At=h({...D.entries,...I.entries,parent:n(S(l()),{overridable:!1}),href:n(l(),{fallback:null}),isNewTab:n(v(),{fallback:!0})}),Mt=h({parent:n(S(l()),{overridable:!1}),...I.entries,on:R(Object.keys(Oe)),event:n(O)}),_t=h({parent:n(S(l()),{overridable:!1}),value:n(l(),{fallback:""}),enabled:n(v(),{fallback:!0,variable:!0}),...I.entries}),$t=h({parent:n(S(l()),{overridable:!1}),goalId:n(d(),{overridable:!1}),...I.entries}),Vt=h({parent:n(S(l()),{overridable:!1}),target:n(O),value:n(de()),...I.entries}),Dt=h({color:n(l(),{fallback:null}),lineHeight:n(d(),{fallback:null}),fontSize:n(d(),{fallback:null}),fontWeight:n($([l(),d()]),{fallback:400}),fontFamily:n(l(),{fallback:null}),textDecoration:n(T(Object.keys(J)),{fallback:null}),parent:n(S(l()),{overridable:!1}),...I.entries}),Gt=h({...D.entries,parent:n(S(l()),{overridable:!1}),color:n(l(),{fallback:null,variable:!0}),fontSize:n(d(),{fallback:null,variable:!0}),fontWeight:n($([l(),d()]),{fallback:400,variable:!0}),fontFamily:n(l(),{fallback:null,variable:!0}),lineHeight:n(d(),{fallback:null,variable:!0}),letterSpacing:n(d(),{fallback:null,variable:!0}),textDecoration:n(T(Object.keys(J)),{fallback:null,variable:!0}),...I.entries}),Ve=h({name:s(l(),"Number"),type:s(F(g.Number),g.Number),defaultValue:s(d(),0),required:s(v(),!1),editable:s(v(),!0),min:s(d(),1),max:s(d(),100),step:s(d(),1),displayStepper:s(v(),!0)}),De=h({name:s(l(),"Boolean"),type:s(F(g.Boolean),g.Boolean),defaultValue:s(v(),!1),required:s(v(),!1),editable:s(v(),!0)}),Ge=h({name:s(l(),"String"),type:s(F(g.String),g.String),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0),placeholder:s(l(),""),isTextarea:s(v(),!1),isRich:s(v(),!1)}),Be=h({name:s(l(),"String"),type:s(F(g.Color),g.Color),defaultValue:s(l(),"#000"),required:s(v(),!1),editable:s(v(),!0)}),Bt=h({name:s(l(),"Event"),type:s(F(g.Event),g.Event),mode:s(T(Object.keys(be)),be.callback),defaultValue:s(Q(),null),required:s(v(),!1),editable:s(v(),!0)}),Ne=h({name:s(l(),"Link"),type:s(F(g.Link),g.Link),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0)}),Le=h({name:s(l(),"Option"),type:s(F(g.Enum),g.Enum),defaultValue:s(l(),""),required:s(v(),!1),editable:s(v(),!0),cases:s(M(h({id:l(),name:l()})),[])}),Re=h({name:s(l(),"Image"),type:s(F(g.Image),g.Image),defaultValue:s(S(l()),null),required:s(v(),!1),editable:s(v(),!0)});function He(e){return h({name:s(l(),"Object"),type:s(F(g.Object),g.Object),defaultValue:s(z(l(),Q()),{}),fields:s(z(l(),Y(()=>We(e+1))),{}),required:s(v(),!1),editable:s(v(),!0)})}function qe(e){return h({name:s(l(),"Collection"),type:s(F(g.Array),g.Array),defaultValue:s(M(Q()),[]),definition:s(S(Y(()=>We(e+1))),null),required:s(v(),!1),editable:s(v(),!0)})}function We(e){return e>Ce?Ae():Me("type",[Ge,Ve,De,Be,Le,Ne,Re,He(e),qe(e)])}const Nt=He(0),Lt=qe(0),Rt=h({name:s(l(),"Goal"),type:s(F(g.Goal),g.Goal),defaultValue:s(S(d()),null),required:s(v(),!1),editable:s(v(),!0)});g.Number+"",g.Boolean+"",g.String+"",g.Color+"",g.Event+"",g.Link+"",g.Enum+"",g.Object+"",g.Image+"",g.Array+"",g.Goal+"";C.Frame+"",C.Text+"",C.Fragment+"",C.Instance+"",C.Collection+"",C.StopColor+"",C.LinearGradient+"",C.CssChunk+"",C.Border+"",C.Paint+"",C.ImagePaint+"",C.Link+"",C.Interaction+"",C.Classname+"",C.GoalEvent+"",C.MutateEvent+"",C.TextHighlight+"",C.TextStyleMark+"";const ze=Y(()=>ye({_type:l(),_id:$([l(),d()]),children:s(M($([l(),ze])))}));C.Fragment;const Xe=(...e)=>e.reduce((r,t)=>(r[t]=t,r),{}),Ht={"Content-Type":"application/json"},qt=(e,r={},t={})=>{const{timeout:a}=t,c=new Map;return{get:(i,f={})=>{const m=`${e}${i}`;if(c.has(m))return c.get(m);const p=f.timeout??a,b=p!=null?AbortSignal.timeout(p):void 0,y=typeof r=="function"?r():r,k=fetch(m,{method:"GET",headers:{...Ht,...y},signal:b}).then(async E=>{if(!E.ok){let x={};try{x=await E.json()}catch{x={error:{code:"UNKNOWN",message:E.statusText}}}return{ok:!1,errorBody:x,status:E.status}}let A;try{A=await E.json()}catch{A=null}return{ok:!0,data:A,status:E.status}}).finally(()=>{c.delete(m)});return c.set(m,k),k},getAbsolute:i=>{fetch(i,{method:"GET",mode:"no-cors",credentials:"omit",keepalive:!0}).catch(f=>{console.error(f)})}}},Wt=e=>({sendBeacon:(t,a)=>{if(!t||typeof navigator>"u"||typeof(navigator==null?void 0:navigator.sendBeacon)!="function")return!1;try{return navigator.sendBeacon.bind(navigator)(t,a)}catch(c){return console.error(c),!1}}}),zt=e=>{var f,m,p,b;const r=(f=e==null?void 0:e.env)==null?void 0:f.backendEndpoint,t=(m=e==null?void 0:e.env)==null?void 0:m.apiToken,a=(p=e==null?void 0:e.env)==null?void 0:p.referer;if(!r)return;const c=()=>{var E,A,x;const y=(E=e==null?void 0:e.env)==null?void 0:E.filterOverrides,k={};return t&&(k["X-Api-Key"]=t),a&&(k.Referer=a),y!=null&&y.deviceType&&(k["X-Filter-Device-Type"]=y.deviceType),y!=null&&y.osType&&(k["X-Filter-OS-Type"]=y.osType),y!=null&&y.page&&(k["X-Filter-Page"]=y.page),(A=y==null?void 0:y.geo)!=null&&A.code?k["X-Filter-Geo"]=y.geo.code:y!=null&&y.ip&&(k["X-Filter-IP"]=y.ip),(x=e==null?void 0:e.env)!=null&&x.debug&&(k["X-Debug"]="true"),k},u=(b=e==null?void 0:e.env)==null?void 0:b.timeout,o=qt(r,c,{timeout:u}),i=Wt();e.$fetch={get:o.get,sendBeacon:i.sendBeacon,getAbsolute:o.getAbsolute}},Xt=typeof window<"u",xe=new Set,Jt=e=>{try{const r=new Image;r.referrerPolicy="no-referrer";const t=()=>{r.removeEventListener("load",t),r.removeEventListener("error",t),xe.delete(r)};r.addEventListener("load",t,{once:!0}),r.addEventListener("error",t,{once:!0}),xe.add(r),r.src=e}catch{}},Kt=(e,r)=>{if(typeof r!="function")return!1;try{return r(e),!0}catch{return!1}},Ut=e=>{if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return!1;try{return navigator.sendBeacon(e)}catch{return!1}},Yt=(e,r,t)=>{if(!Xt)return;const a=e==null?void 0:e.trim();if(a){if(typeof r=="function")try{if(r(a)===!0)return}catch{}Ut(a)||Kt(a,t)||Jt(a)}},je=Xe("INIT_SESSION","RELEASE_SESSION","REACH_PROJECT_GOAL"),Je=e=>{const r=(c,u)=>{var i;if(c!==je.REACH_PROJECT_GOAL||!u)return;const o=new URLSearchParams({goal_id:String(u.goalId),variant_id:String(u.variantId),area_id:String(u.areaId),campaign_id:String(u.campaignId)});(i=e.$fetch)==null||i.get(`/api/metric/goal?${o}`).catch(()=>{})},t=c=>{r(je.REACH_PROJECT_GOAL,c)},a=c=>{var o,i;const u=((o=e.$fetch)==null?void 0:o.getAbsolute)!=null?f=>e.$fetch.getAbsolute(f):void 0;Yt(c,(i=e==null?void 0:e.$fetch)==null?void 0:i.sendBeacon,u)};e.$metrics={reachGoal:t,trackAdPixel:a}},Ke=e=>{const r=new Map,t=new Map,a=new Map,c=(i,f)=>{if(r.has(i))return Promise.resolve(r.get(i));if(t.has(i))return t.get(i);a.delete(i);const m=`/api/area/${i}/compiled`,p=(async()=>{var E,A,x,G,ge;const b=await e.$fetch.get(m);if(!b.ok){const N=b.errorBody;throw new q(((E=N==null?void 0:N.error)==null?void 0:E.code)??"UNKNOWN",((A=N==null?void 0:N.error)==null?void 0:A.message)??String(b.status),(x=N==null?void 0:N.error)==null?void 0:x.details,b.status)}const y=b.data;if(y.apiVersion!==1)throw new X(1,y.apiVersion);(G=e.$fragments)==null||G.populate(y.fragments??{}),(ge=e.$cssChunks)==null||ge.populate(y.cssChunks??{});const k={rootFragmentId:y.rootFragmentId,props:y.props??{},projectProperties:y.projectProperties??{},globalCssUrl:y.globalCssUrl??null};return r.set(i,k),k})();return t.set(i,p),p.catch(b=>{a.set(i,b)}).finally(()=>{t.delete(i)}),p},u=i=>{if(r.has(i))return r.get(i);throw t.has(i)?t.get(i):a.has(i)?a.get(i):new q("AREA_NOT_RESOLVED",`Area ${i} not resolved — call $area.resolve(code) before read()`)},o=i=>r.has(i)||a.has(i);e.$area={resolve:c,read:u,has:o}};function Ue(e){const r=(e==null?void 0:e.importer)??(t=>import(t));return t=>{const a=new Map,c=p=>a.has(p),u=p=>{var b;return(b=a.get(p))==null?void 0:b.ref},o=p=>{var b;return(b=a.get(p))==null?void 0:b.schema},i=p=>{var b;return(b=a.get(p))==null?void 0:b.scopeClass},f=p=>{const b=a.get(p);if(b===void 0)throw new W(p,"",new Error(`Fragment ${p} not populated — call populate() before read()`));if(b.status==="pending")throw b.promise;if(b.status==="error")throw b.error;return b.component},m=p=>{Object.entries(p).forEach(([b,y])=>{const k=Number(b);if(a.has(k))return;const E={status:"pending",promise:Promise.resolve(),ref:y},A=r(y.moduleUrl).then(x=>(E.status="success",E.component=x.default,E.schema=x.schema,E.scopeClass=typeof x.scopeClass=="string"?x.scopeClass:void 0,x.default),x=>{const G=new W(k,y.moduleUrl,x);throw E.status="error",E.error=G,G});E.promise=A,a.set(k,E),A.catch(()=>{})})};t.$fragments={has:c,read:f,populate:m,getRef:u,getSchema:o,getScopeClass:i}}}const Ye=Ue();function Qe(e){return r=>{const t=new Map;r.$cssChunks={has:a=>t.has(a),populate:a=>{for(const[c,u]of Object.entries(a)){const o=Number(c);if(t.has(o))continue;const i=e.inject(u.cssUrl,`chunk:${o}`);t.set(o,{ref:u,cleanup:i})}}}}}const Qt=Xe("GlobalManager"),Zt=e=>{const r=()=>()=>{};return Ze.createState({_type:"GlobalManager",initialState:{},skip:[et.allowTypes([...Object.keys(ut.nodes),...Object.keys(Qt)])],plugins:[t=>{t.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}},t=>{t.setFilters=a=>{var c;t.env={...t.env,filterOverrides:{...(c=t.env)==null?void 0:c.filterOverrides,...a}}}},t=>{(e==null?void 0:e.projectId)!=null&&(t.$project={projectId:e.projectId})},...(e==null?void 0:e.plugins)??[],zt,Je,Ke,Ye,Qe({inject:(e==null?void 0:e.inject)??r})]})};exports.FragmentsApiVersionError=X;exports.FragmentsAreaError=q;exports.FragmentsLoadError=W;exports.areaPlugin=Ke;exports.createCssChunksCachePlugin=Qe;exports.createFragmentsCachePlugin=Ue;exports.createFragmentsClient=Zt;exports.fragmentsCachePlugin=Ye;exports.globalMetricsPlugin=Je;
package/dist/index.d.ts CHANGED
@@ -3,11 +3,17 @@
3
3
  *
4
4
  * Экспортирует: types, errors, createFragmentsClient, $area, $fragments, $cssChunks, metrics.
5
5
  *
6
- * Трёхслэшевая директива гарантирует, что declarations.d.ts (ambient module augmentation
7
- * GraphState) попадает в граф компиляции при любом импорте через path-mapping из внешних
8
- * пакетов (runtime-react, playgrounds и т.д.).
6
+ * quick 260830-rvp (INT-08): тип-реэкспорт из `./namespaces` (обычный модуль, не
7
+ * `.d.ts`) вместо трёхслэшевой директивы на `declarations.d.ts` — та гарантировала
8
+ * попадание ambient-аугментации GraphState в граф компиляции ТОЛЬКО внутри пакета;
9
+ * `vite-plugin-dts` стирал директиву при генерации деклараций, и наружу пакета
10
+ * (`dist/`) аугментация не доезжала вовсе. Тип-реэкспорт заставляет dts-плагин
11
+ * положить `dist/namespaces.d.ts` рядом с `dist/index.d.ts` и сослаться на него
12
+ * оттуда — потребитель (runtime-react, playgrounds) получает аугментацию вместе
13
+ * с пакетом. Гейт на факт сборки — `src/dist-declarations.test.ts`.
9
14
  */
10
15
  export type { AreaResolveResponse, FragmentRef, CssChunkRef, ResolvedValue, FieldId, } from './types';
16
+ export type { FragmentsEnv, FilterOverrides, AreaNamespace, FetchNamespace, CssChunksNamespace, } from './namespaces';
11
17
  export { FragmentsAreaError, FragmentsApiVersionError, FragmentsLoadError, } from './errors';
12
18
  export { createFragmentsClient } from './createFragmentsClient';
13
19
  export type { Options as CreateFragmentsClientOptions } from './createFragmentsClient';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAChF,YAAY,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAChF,YAAY,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}