@builder.io/sdk-react 1.0.26 → 1.0.27
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/lib/browser/blocks-exports.cjs +1 -1
- package/lib/browser/blocks-exports.mjs +1 -1
- package/lib/browser/index.cjs +1 -1
- package/lib/browser/index.mjs +1 -1
- package/lib/browser/init.cjs +1 -1
- package/lib/browser/init.mjs +1 -1
- package/lib/browser/server-entry-60c3f2b2.cjs +2 -0
- package/lib/browser/{server-entry-c522a38f.js → server-entry-805a2c2a.js} +142 -135
- package/lib/browser/server-entry.cjs +1 -1
- package/lib/browser/server-entry.mjs +1 -1
- package/lib/edge/{blocks-612eb41b.js → blocks-a1399a78.js} +2 -2
- package/lib/edge/{blocks-77e27834.cjs → blocks-af5c8ecf.cjs} +1 -1
- package/lib/edge/blocks-exports.cjs +1 -1
- package/lib/edge/blocks-exports.mjs +2 -2
- package/lib/edge/{button-70b2e3a9.js → button-0820a5bc.js} +2 -2
- package/lib/edge/{button-956ab5bc.cjs → button-16076ac7.cjs} +1 -1
- package/lib/edge/{columns-623de7ba.js → columns-688cc205.js} +3 -3
- package/lib/edge/{columns-9ed7dfeb.cjs → columns-6b8c03be.cjs} +1 -1
- package/lib/edge/{content-variants-eca40007.cjs → content-variants-4679172a.cjs} +1 -1
- package/lib/edge/{content-variants-059e455f.js → content-variants-efa4f81b.js} +9 -9
- package/lib/edge/{form-5c01a94c.cjs → form-91166ed6.cjs} +1 -1
- package/lib/edge/{form-a1e588d6.js → form-cbe7d822.js} +3 -3
- package/lib/edge/{get-class-prop-name-65450a8e.cjs → get-class-prop-name-47012c9c.cjs} +1 -1
- package/lib/edge/{get-class-prop-name-bee742f6.js → get-class-prop-name-4a1bad2b.js} +1 -1
- package/lib/edge/{img-79534c61.js → img-14849a5b.js} +1 -1
- package/lib/edge/{img-d8259a3f.cjs → img-d3420f5d.cjs} +1 -1
- package/lib/edge/index.cjs +1 -1
- package/lib/edge/index.mjs +1 -1
- package/lib/edge/init.cjs +1 -1
- package/lib/edge/init.mjs +1 -1
- package/lib/edge/{input-d9a6232c.cjs → input-07becc4d.cjs} +1 -1
- package/lib/edge/{input-5b9458cd.js → input-534b9f95.js} +1 -1
- package/lib/edge/{select-1b1b666f.js → select-b05ef24f.js} +1 -1
- package/lib/edge/{select-fd3daca2.cjs → select-e576d7d0.cjs} +1 -1
- package/lib/edge/{server-entry-5a6eeaf9.js → server-entry-6aaf6054.js} +137 -130
- package/lib/edge/server-entry-ee324b22.cjs +2 -0
- package/lib/edge/server-entry.cjs +1 -1
- package/lib/edge/server-entry.mjs +1 -1
- package/lib/edge/{slot-7cd830aa.js → slot-944437dd.js} +3 -3
- package/lib/edge/{slot-0f591294.cjs → slot-e139f9b4.cjs} +1 -1
- package/lib/edge/{symbol-1bd5d636.js → symbol-75d1c60d.js} +2 -2
- package/lib/edge/{symbol-0eff91f7.cjs → symbol-f7f42446.cjs} +1 -1
- package/lib/edge/{tabs-784ddfd3.cjs → tabs-4860ef6d.cjs} +1 -1
- package/lib/edge/{tabs-fd103011.js → tabs-62e415e1.js} +3 -3
- package/lib/node/blocks-exports.cjs +1 -1
- package/lib/node/blocks-exports.mjs +2 -2
- package/lib/node/index.cjs +1 -1
- package/lib/node/index.mjs +2 -2
- package/lib/node/init.cjs +1 -1
- package/lib/node/init.mjs +2 -2
- package/lib/node/{node-runtime-72de67f1.cjs → node-runtime-1bee7133.cjs} +1 -1
- package/lib/node/{node-runtime-8a7cc42d.js → node-runtime-e167306c.js} +1 -1
- package/lib/node/{server-entry-262852ac.js → server-entry-38fb2258.js} +142 -135
- package/lib/node/server-entry-db936548.cjs +2 -0
- package/lib/node/server-entry.cjs +1 -1
- package/lib/node/server-entry.mjs +1 -1
- package/package.json +1 -1
- package/types/constants/sdk-version.d.ts +1 -1
- package/types/helpers/flatten.d.ts +10 -0
- package/lib/browser/server-entry-298501b1.cjs +0 -2
- package/lib/edge/server-entry-2f25c4ff.cjs +0 -2
- package/lib/node/server-entry-e9d5a539.cjs +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";var Ae=Object.defineProperty;var We=(e,t,n)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var J=(e,t,n)=>(We(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),f=require("./server-entry-
|
|
1
|
+
"use client";"use strict";var Ae=Object.defineProperty;var We=(e,t,n)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var J=(e,t,n)=>(We(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),f=require("./server-entry-60c3f2b2.cjs"),h=require("react"),Ne=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),$e=e=>typeof e=="string"&&Ne.has(e.toLowerCase());function Z(e){return a.jsx(a.Fragment,{children:$e(e.TagName)?a.jsx(a.Fragment,{children:a.jsx(e.TagName,{...e.attributes,...e.actionAttributes})}):a.jsx(a.Fragment,{children:typeof e.TagName=="string"?a.jsx(e.TagName,{...e.attributes,...e.actionAttributes,children:e.children}):a.jsx(e.TagName,{...e.attributes,...e.actionAttributes,children:e.children})})})}const M=()=>{switch(f.TARGET){case"react":case"reactNative":case"rsc":return"className";case"svelte":case"vue":case"solid":case"qwik":case"angular":return"class"}};function de(e){function t(){return{...e.attributes,[M()]:`${e.link?"":"builder-button"} ${e.attributes[M()]||""}`,...e.link?{href:e.link,target:e.openLinkInNewTab?"_blank":void 0,role:"link"}:{role:"button"}}}return a.jsx(Z,{attributes:t(),TagName:e.link?e.builderLinkComponent||"a":"button",actionAttributes:{},children:e.text})}const z=h.createContext({content:null,context:{},localState:void 0,rootSetState(){},rootState:{},apiKey:null,apiVersion:void 0,componentInfos:{},inheritedStyles:{},BlocksWrapper:"div",BlocksWrapperProps:{}}),ue=h.createContext({registeredComponents:{}});function De(e){var t;return{...(t=e.component)==null?void 0:t.options,...e.options,builderBlock:e}}const Le=({builder:e,context:t,event:n,state:i})=>Object.entries({state:i,Builder:e,builder:e,context:t,event:n}),Me=()=>({isEditing:f.isEditing(),isBrowser:f.isBrowser(),isServer:!f.isBrowser(),getUserAttributes:()=>f.getUserAttributes()}),Oe=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e,ne=({code:e,builder:t,context:n,event:i,localState:o,rootSetState:r,rootState:s})=>{const l=Le({builder:t,context:n,event:i,state:me({rootState:s,localState:o,rootSetState:r})});return new Function(...l.map(([c])=>c),e)(...l.map(([,c])=>c))};function me({rootState:e,localState:t,rootSetState:n}){return new Proxy(e,{get:(i,o)=>{if(t&&o in t)return t[o];const r=i[o];return typeof r=="object"&&r!==null?me({rootState:r,localState:void 0,rootSetState:n?s=>{i[o]=s,n(i)}:void 0}):r},set:(i,o,r)=>{if(t&&o in t)throw new Error("Writing to local state is not allowed as it is read-only.");return i[o]=r,n==null||n(i),!0}})}function Ue(){var e;return typeof process!="undefined"&&f.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const He=()=>{var i;if(!Ue())return!1;const e=process.arch==="arm64",t=process.version.startsWith("v20"),n=(i=process.env.NODE_OPTIONS)==null?void 0:i.includes("--no-node-snapshot");return e&&t&&!n?(f.logger.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n "),!0):!1},Ke=e=>(f.isBrowser()||He(),ne(e)),A=class A{static getCacheKey(t){return JSON.stringify({...t,event:t.event?Math.random():void 0})}static getCachedValue(t){return A.cache.get(t)}static setCachedValue(t,n){A.cache.size>20&&A.cache.delete(A.cache.keys().next().value),A.cache.set(t,{value:n})}};J(A,"cacheLimit",20),J(A,"cache",new Map);let D=A;function O({code:e,context:t,localState:n,rootState:i,rootSetState:o,event:r,isExpression:s=!0,enableCache:l}){if(e==="")return;const c={code:Oe(e,{isExpression:s}),builder:Me(),context:t,event:r,rootSetState:o,rootState:i,localState:n};if(l){const d=D.getCacheKey(c),m=D.getCachedValue(d);if(m)return m.value}try{const d=Ke(c);if(l){const m=D.getCacheKey(c);D.setCachedValue(m,d)}return d}catch(d){f.logger.error("Failed code evaluation: "+d.message,{code:e});return}}const fe=(e,t,n)=>{if(Object(e)!==e)return e;const i=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return i.slice(0,-1).reduce((o,r,s)=>Object(o[r])===o[r]?o[r]:o[r]=Math.abs(Number(i[s+1]))>>0===+i[s+1]?[]:{},e)[i[i.length-1]]=n,e};const qe=({block:e,context:t,localState:n,rootState:i,rootSetState:o})=>{if(!e.bindings)return e;const r=f.fastClone(e),s={...r,properties:{...r.properties},actions:{...r.actions}};for(const l in e.bindings){const c=e.bindings[l],d=O({code:c,localState:n,rootState:i,rootSetState:o,context:t,enableCache:!0});fe(s,l,d)}return s};function q({block:e,context:t,shouldEvaluateBindings:n,localState:i,rootState:o,rootSetState:r}){const s=e;return n?qe({block:s,localState:i,rootState:o,rootSetState:r,context:t}):s}function ze(e,t,n={}){let i,o,r,s=null,l=0;const c=function(){l=n.leading===!1?0:Date.now(),s=null,r=e.apply(i,o),s||(i=o=null)};return function(){const d=Date.now();!l&&n.leading===!1&&(l=d);const m=t-(d-l);return i=this,o=arguments,m<=0||m>t?(s&&(clearTimeout(s),s=null),l=d,r=e.apply(i,o),s||(i=o=null)):!s&&n.trailing!==!1&&(s=setTimeout(c,m)),r}}function L(e,...t){const n=Object(e);for(let i=1;i<arguments.length;i++){const o=arguments[i];if(o!=null)for(const r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n[r]=o[r])}return n}const ee=e=>e?e.replace(/([A-Z])/g,t=>`-${t[0].toLowerCase()}`):"";function _e(e){for(const t of e)switch(t.trigger){case"pageLoad":be(t);break;case"scrollInView":Ye(t);break}}function he(e){console.warn(`Cannot animate element: element with ID ${e} not found!`)}function ge(e,t){const n=Je(e),i=getComputedStyle(t),o=e.steps[0].styles,r=e.steps[e.steps.length-1].styles,s=[o,r];for(const l of s)for(const c of n)c in l||(l[c]=i[c])}function Je(e){const t=[];for(const n of e.steps)for(const i in n.styles)t.indexOf(i)===-1&&t.push(i);return t}function be(e){const t=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!t.length){he(e.elementId||e.id||"");return}Array.from(t).forEach(n=>{ge(e,n),n.style.transition="none",n.style.transitionDelay="0",L(n.style,e.steps[0].styles),setTimeout(()=>{n.style.transition=`all ${e.duration}s ${ee(e.easing)}`,e.delay&&(n.style.transitionDelay=e.delay+"s"),L(n.style,e.steps[1].styles),setTimeout(()=>{n.style.transition="",n.style.transitionDelay=""},(e.delay||0)*1e3+e.duration*1e3+100)})})}function Ye(e){const t=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!t.length){he(e.elementId||e.id||"");return}Array.from(t).forEach(n=>{ge(e,n);let i=!1,o=!1;function r(){!i&&l(n)?(i=!0,o=!0,setTimeout(()=>{L(n.style,e.steps[1].styles),e.repeat||document.removeEventListener("scroll",s),setTimeout(()=>{o=!1,e.repeat||(n.style.transition="",n.style.transitionDelay="")},(e.duration+(e.delay||0))*1e3+100)})):e.repeat&&i&&!o&&!l(n)&&(i=!1,L(n.style,e.steps[0].styles))}const s=ze(r,200,{leading:!1});function l(m){const u=m.getBoundingClientRect(),x=window.innerHeight,k=(e.thresholdPercent||0)/100*x;return u.bottom>k&&u.top<x-k}const c=e.steps[0].styles;function d(){L(n.style,c)}d(),setTimeout(()=>{n.style.transition=`all ${e.duration}s ${ee(e.easing)}`,e.delay&&(n.style.transitionDelay=e.delay+"s")}),document.addEventListener("scroll",s,{capture:!0,passive:!0}),r()})}const Ge=e=>e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase(),xe=e=>Object.entries(e).map(([n,i])=>{if(typeof i=="string")return`${Ge(n)}: ${i};`}).filter(f.checkIsDefined),Qe=e=>xe(e).join(`
|
|
2
2
|
`),H=({mediaQuery:e,className:t,styles:n})=>{const i=`.${t} {
|
|
3
3
|
${Qe(n)}
|
|
4
4
|
}`;return e?`${e} {
|
|
@@ -3,7 +3,7 @@ var Ue = Object.defineProperty;
|
|
|
3
3
|
var je = (e, t, n) => t in e ? Ue(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
4
4
|
var ne = (e, t, n) => (je(e, typeof t != "symbol" ? t + "" : t, n), n);
|
|
5
5
|
import { jsx as s, Fragment as w, jsxs as V } from "react/jsx-runtime";
|
|
6
|
-
import { TARGET as z, isEditing as F, isBrowser as j, getUserAttributes as He, checkIsDefined as G, logger as Z, fastClone as le, registerInsertMenu as Ke, setupBrowserForEditing as qe, createRegisterComponentMessage as ze, getDefaultCanTrack as Q, _track as me, isPreviewing as _e, fetchOneEntry as Ce, createEditorListener as Je, fetch as Ye, serializeComponentInfo as fe, handleABTestingSync as Ge } from "./server-entry-
|
|
6
|
+
import { TARGET as z, isEditing as F, isBrowser as j, getUserAttributes as He, checkIsDefined as G, logger as Z, fastClone as le, registerInsertMenu as Ke, setupBrowserForEditing as qe, createRegisterComponentMessage as ze, getDefaultCanTrack as Q, _track as me, isPreviewing as _e, fetchOneEntry as Ce, createEditorListener as Je, fetch as Ye, serializeComponentInfo as fe, handleABTestingSync as Ge } from "./server-entry-805a2c2a.js";
|
|
7
7
|
import { createContext as Te, useState as C, useEffect as P, useContext as he, useRef as ee, createElement as we } from "react";
|
|
8
8
|
const Qe = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]), Xe = (e) => typeof e == "string" && Qe.has(e.toLowerCase());
|
|
9
9
|
function se(e) {
|
package/lib/browser/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-60c3f2b2.cjs");require("react/jsx-runtime");require("react");exports.Blocks=t.Blocks;exports.BuilderContext=t.BuilderContext;exports.Button=t.Button;exports.Columns=t.Columns;exports.Content=t.Content;exports.Fragment=t.Fragment;exports.Image=t.Image;exports.Section=t.Section;exports.Symbol=t.Symbol;exports.Text=t.Text;exports.Video=t.Video;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
|
package/lib/browser/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Blocks as i, BuilderContext as s, Button as n, Columns as c, Content as m, Fragment as g, Image as a, Section as d, Symbol as l, Text as p, Video as u } from "./blocks-exports.mjs";
|
|
2
|
-
import { _processContentResult as B, createRegisterComponentMessage as C, fetchBuilderProps as E, fetchEntries as h, fetchOneEntry as x, getBuilderSearchParams as S, isEditing as b, isPreviewing as P, register as k, setEditorSettings as y, subscribeToEditor as R, track as T } from "./server-entry-
|
|
2
|
+
import { _processContentResult as B, createRegisterComponentMessage as C, fetchBuilderProps as E, fetchEntries as h, fetchOneEntry as x, getBuilderSearchParams as S, isEditing as b, isPreviewing as P, register as k, setEditorSettings as y, subscribeToEditor as R, track as T } from "./server-entry-805a2c2a.js";
|
|
3
3
|
import "react/jsx-runtime";
|
|
4
4
|
import "react";
|
|
5
5
|
export {
|
package/lib/browser/init.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ivm=require("isolated-vm"),serverEntry=require("./server-entry-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ivm=require("isolated-vm"),serverEntry=require("./server-entry-60c3f2b2.cjs"),noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const INJECTED_IVM_GLOBAL="BUILDER_IVM";let IVM_INSTANCE=null;const setIvm=(e,t={})=>{IVM_INSTANCE=e,setIsolateContext(t)},getIvm=()=>{try{if(IVM_INSTANCE)return IVM_INSTANCE;const e=safeDynamicRequire("isolated-vm");if(e)return e}catch(e){serverEntry.logger.error("isolated-vm import error.",e)}throw new Error(`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on Node server.
|
|
2
2
|
|
|
3
3
|
In certain Node environments, the SDK requires additional initialization steps. This can be achieved by
|
|
4
4
|
importing and calling \`initializeNodeRuntime()\` from "@builder.io/sdk-react/node/init". This must be done in
|
package/lib/browser/init.mjs
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const I="react",b="[Builder.io]: ",d={log:(...e)=>console.log(b,...e),error:(...e)=>console.error(b,...e),warn:(...e)=>console.warn(b,...e),debug:(...e)=>console.debug(b,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const ue=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},M=e=>e instanceof URLSearchParams?ue(e):e,U=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function de(){return c()&&window.self!==window.top}function F(e){return de()&&U(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const le=()=>{if(c()){const e=new URL(location.href);return e.pathname===""&&(e.pathname="/"),e}else return console.warn("Cannot get location for tracking in non-browser environment"),null},fe=()=>typeof navigator=="object"&&navigator.userAgent||"",N=()=>{const e=fe(),t={Android(){return e.match(/Android/i)},BlackBerry(){return e.match(/BlackBerry/i)},iOS(){return e.match(/iPhone|iPod/i)},Opera(){return e.match(/Opera Mini/i)},Windows(){return e.match(/IEMobile/i)||e.match(/WPDesktop/i)},any(){return t.Android()||t.BlackBerry()||t.iOS()||t.Opera()||t.Windows()||I==="reactNative"}},n=e.match(/Tablet|iPad/i),r=le();return{urlPath:r==null?void 0:r.pathname,host:(r==null?void 0:r.host)||(r==null?void 0:r.hostname),device:n?"tablet":t.any()?"mobile":"desktop"}},p=e=>e!=null,k=e=>JSON.parse(JSON.stringify(e)),ge=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},D=({name:e,canTrack:t})=>{var n;try{return t?(n=document.cookie.split("; ").find(r=>r.startsWith(`${e}=`)))==null?void 0:n.split("=")[1]:void 0}catch(r){d.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},j=async e=>D(e),he=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),pe=[["secure",""],["SameSite","None"]],me=({name:e,value:t,expires:n})=>{const o=(c()?location.protocol==="https:":!0)?pe:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",ge(window.location.hostname)],...o];return he(a)},K=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const o=me({name:e,value:t,expires:n});document.cookie=o}catch(o){d.warn("[COOKIE] SET error: ",(o==null?void 0:o.message)||o)}},ye="builder.tests",C=e=>`${ye}.${e}`,Se=({contentId:e})=>j({name:C(e),canTrack:!0}),we=({contentId:e})=>D({name:C(e),canTrack:!0}),be=({contentId:e,value:t})=>K({name:C(e),value:t,canTrack:!0}),_=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,Ie=({id:e,variations:t})=>{var o;let n=0;const r=Math.random();for(const s in t){const a=(o=t[s])==null?void 0:o.testRatio;if(n+=a,r<n)return s}return e},W=e=>{const t=Ie(e);return be({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},$=({item:e,testGroupId:t})=>{const n=e.variations[t];return t===e.id||!n?{testVariationId:e.id,testVariationName:"Default"}:{data:n.data,testVariationId:n.id,testVariationName:n.name||(n.id===e.id?"Default":"")}},ve=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!_(e))return e;const n=we({contentId:e.id})||W({variations:e.variations,id:e.id}),r=$({item:e,testGroupId:n});return{...e,...r}},Ee=async({item:e,canTrack:t})=>{if(!t||!_(e))return e;const r=await Se({contentId:e.id})||W({variations:e.variations,id:e.id}),o=$({item:e,testGroupId:r});return{...e,...o}},G=e=>p(e)?e:!0,ke=e=>({type:"builder.registerComponent",data:z(e)}),Ce=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`},Pe=e=>typeof e=="function"?Ce(e):k(e),z=({inputs:e,...t})=>({...k(t),inputs:e==null?void 0:e.map(n=>Object.entries(n).reduce((r,[o,s])=>({...r,[o]:Pe(s)}),{}))});function Oe(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function Ae(){const e=Oe().fetch;if(typeof e=="undefined")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
|
|
2
|
+
For more information, read https://github.com/BuilderIO/this-package-uses-fetch`),new Error("Builder SDK could not find a global `fetch` function");return e}const J=Ae();function E(e,t=null,n="."){return Object.keys(e).reduce((r,o)=>{const s=e[o],a=[t,o].filter(Boolean).join(n);return[typeof s=="object",s!==null,!(Array.isArray(s)&&s.length===0)].every(Boolean)?{...r,...E(s,a,n)}:{...r,[a]:s}},{})}function H(e,t,n={}){for(const r in e){const o=e[r],s=t?t+"."+r:r;o&&typeof o=="object"&&!Array.isArray(o)&&!Object.keys(o).find(a=>a.startsWith("$"))?H(o,s,n):n[s]=o}return n}const Te="v3",x="builder.",xe="options.",P=e=>{if(!e)return{};const t=M(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(x)){const o=r.replace(x,"").replace(xe,"");n[o]=t[r]}}),n},Re=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},R=e=>typeof e=="number"&&!isNaN(e)&&e>=0,O=e=>{const{limit:t=30,userAttributes:n,query:r,model:o,apiKey:s,enrich:a,locale:l,apiVersion:y=Te,fields:m,omit:v,offset:u,cacheSeconds:g,staleCacheSeconds:h,sort:S,includeUnpublished:A}=e;if(!s)throw new Error("Missing API key");if(!["v3"].includes(y))throw new Error(`Invalid apiVersion: expected 'v3', received '${y}'`);const ae=t!==1,i=new URL(`https://cdn.builder.io/api/${y}/content/${o}`);if(i.searchParams.set("apiKey",s),i.searchParams.set("limit",String(t)),i.searchParams.set("noTraverse",String(ae)),i.searchParams.set("includeRefs",String(!0)),l&&i.searchParams.set("locale",l),a&&i.searchParams.set("enrich",String(a)),i.searchParams.set("omit",v||"meta.componentsUsed"),m&&i.searchParams.set("fields",m),Number.isFinite(u)&&u>-1&&i.searchParams.set("offset",String(Math.floor(u))),typeof A=="boolean"&&i.searchParams.set("includeUnpublished",String(A)),g&&R(g)&&i.searchParams.set("cacheSeconds",String(g)),h&&R(h)&&i.searchParams.set("staleCacheSeconds",String(h)),S){const f=E({sort:S});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}const ce={...Re(),...M(e.options||{})},T=E(ce);for(const f in T)i.searchParams.set(f,String(T[f]));if(n&&i.searchParams.set("userAttributes",JSON.stringify(n)),r){const f=H({query:r});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}return i},Be=e=>"results"in e;async function X(e){const t=await Q({...e,limit:1});return t&&t[0]||null}const Le=async e=>{var s;const t=O(e);return await(await((s=e.fetch)!=null?s:J)(t.href,e.fetchOptions)).json()},q=async(e,t,n=O(e))=>{const r=G(e.canTrack);if(n.search.includes("preview="),!r||!(c()||I==="reactNative"))return t.results;try{const o=[];for(const s of t.results)o.push(await Ee({item:s,canTrack:r}));t.results=o}catch(o){d.error("Could not process A/B tests. ",o)}return t.results};async function Q(e){try{const t=O(e),n=await Le(e);return Be(n)?q(e,n):(d.error("Error fetching data. ",{url:t,content:n,options:e}),null)}catch(t){return d.error("Error fetching data. ",t),null}}function Ve(e){const t=e||(c()?window.location.search:void 0);return t?U(t).indexOf("builder.preview=")!==-1:!1}function Me(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}function Y(){return Me().replace(/-/g,"")}const Z="builderSessionId",Ue=async({canTrack:e})=>{if(!e)return;const t=await j({name:Z,canTrack:e});if(p(t))return t;{const n=Fe();return Ne({id:n,canTrack:e}),n}},Fe=()=>Y(),Ne=({id:e,canTrack:t})=>K({name:Z,value:e,canTrack:t}),ee=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,De=({key:e,canTrack:t})=>{var n;try{return t?(n=ee())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},je=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=ee())==null||r.setItem(e,n))}catch(o){console.debug("[LocalStorage] SET error: ",o)}},te="builderVisitorId",Ke=({canTrack:e})=>{if(!e)return;const t=De({key:te,canTrack:e});if(p(t))return t;{const n=_e();return We({id:n,canTrack:e}),n}},_e=()=>Y(),We=({id:e,canTrack:t})=>je({key:te,value:e,canTrack:t}),$e=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Ue({canTrack:e}),n=Ke({canTrack:e});return{sessionId:t,visitorId:n}},Ge=async({type:e,canTrack:t,apiKey:n,metadata:r,...o})=>({type:e,data:{...o,metadata:{url:location.href,...r},...await $e({canTrack:t}),userAttributes:N(),ownerId:n}});async function ne(e){if(!e.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(e.canTrack&&!F()&&(c()||I==="reactNative"))return fetch("https://cdn.builder.io/api/v1/track",{method:"POST",body:JSON.stringify({events:[await Ge(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const ze=e=>ne({...e,canTrack:!0}),Je=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function re(e,t){const n=new URL(t.origin),r=n.hostname;return(e||Je).findIndex(o=>o.startsWith("*.")?r.endsWith(o.slice(1)):o===r)>-1}const He="1.0.27",B={};function oe(e,t){let n=B[e];if(n||(n=B[e]=[]),n.push(t),c()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(o){console.debug("Could not postmessage",o)}}}const Xe=()=>{oe("insertMenu",{name:"_default",default:!0,items:[{name:"Box"},{name:"Text"},{name:"Image"},{name:"Columns"},{name:"Core:Section"},{name:"Core:Button"},{name:"Embed"},{name:"Custom Code"}]})};let L=!1;const se=(e={})=>{var t,n;L||(L=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:I,version:He,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",r=>{var s,a;if(!re(e.trustedHosts,r))return;const{data:o}=r;if(o!=null&&o.type)switch(o.type){case"builder.evaluate":{const l=o.data.text,y=o.data.arguments||[],m=o.data.id,v=new Function(l);let u,g=null;try{u=v.apply(null,y)}catch(h){g=h}g?(s=window.parent)==null||s.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):u&&typeof u.then=="function"?u.then(h=>{var S;(S=window.parent)==null||S.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(a=window.parent)==null||a.postMessage({type:"builder.evaluateResult",data:{result:u,id:m}},"*");break}}})))},ie=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!re(t,r))return;const{data:o}=r;if(o)switch(o.type){case"builder.configureSdk":{n.configureSdk(o.data);break}case"builder.triggerAnimation":{n.animation(o.data);break}case"builder.contentUpdate":{const s=o.data,a=s.key||s.alias||s.entry||s.modelName,l=s.data;a===e&&n.contentUpdate(l);break}}},qe=(e,t,n)=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};se();const r=ie({callbacks:{contentUpdate:t,animation:()=>{},configureSdk:()=>{}},model:e,trustedHosts:n==null?void 0:n.trustedHosts});return window.addEventListener("message",r),()=>{window.removeEventListener("message",r)}},V={};function Qe(e){if(c()){Object.assign(V,e);const t={type:"builder.settingsChange",data:V};parent.postMessage(t,"*")}}const Ye=async e=>{var r,o,s;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((o=e.userAttributes)==null?void 0:o.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:P(e.searchParams||((s=e.url)==null?void 0:s.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await X(n)}};exports.MSG_PREFIX=b;exports.TARGET=I;exports._processContentResult=q;exports._track=ne;exports.checkIsDefined=p;exports.createEditorListener=ie;exports.createRegisterComponentMessage=ke;exports.fastClone=k;exports.fetch=J;exports.fetchBuilderProps=Ye;exports.fetchEntries=Q;exports.fetchOneEntry=X;exports.getBuilderSearchParams=P;exports.getDefaultCanTrack=G;exports.getUserAttributes=N;exports.handleABTestingSync=ve;exports.isBrowser=c;exports.isEditing=F;exports.isPreviewing=Ve;exports.logger=d;exports.register=oe;exports.registerInsertMenu=Xe;exports.serializeComponentInfo=z;exports.setEditorSettings=Qe;exports.setupBrowserForEditing=se;exports.subscribeToEditor=qe;exports.track=ze;
|