@builder.io/sdk-react 2.0.15 → 2.0.19
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 +21 -21
- package/lib/browser/blocks-exports.mjs +258 -242
- package/lib/browser/index.cjs +1 -1
- package/lib/browser/index.mjs +1 -1
- package/lib/browser/{server-entry-b4e02b7f.js → server-entry-12189812.js} +1 -2
- package/lib/browser/{server-entry-6758904f.cjs → server-entry-c8020f19.cjs} +2 -2
- package/lib/browser/server-entry.cjs +1 -1
- package/lib/browser/server-entry.mjs +1 -1
- package/lib/edge/{accordion-cc5e4262.js → accordion-634b0466.js} +1 -1
- package/lib/edge/{accordion-9d6ead4a.cjs → accordion-eaf2e50a.cjs} +1 -1
- package/lib/edge/{blocks-28f8515f.js → blocks-51761337.js} +91 -78
- package/lib/edge/blocks-b8c9a72a.cjs +12 -0
- package/lib/edge/blocks-exports.cjs +1 -1
- package/lib/edge/blocks-exports.mjs +2 -2
- package/lib/edge/{button-5b479c4f.js → button-6d2144c3.js} +2 -2
- package/lib/edge/{button-d5d5a523.cjs → button-a0aad19e.cjs} +1 -1
- package/lib/edge/{columns-80468479.js → columns-030a6892.js} +4 -4
- package/lib/edge/{columns-52de76ba.cjs → columns-44d76a14.cjs} +1 -1
- package/lib/edge/{content-variants-ab7b16da.cjs → content-variants-3eef022e.cjs} +1 -1
- package/lib/edge/{content-variants-4a3c14d6.js → content-variants-46a433c2.js} +11 -11
- package/lib/edge/{evaluate-b34c0621.cjs → evaluate-29260bf8.cjs} +7 -7
- package/lib/edge/{evaluate-9643776e.js → evaluate-6febb3ef.js} +65 -60
- package/lib/edge/{form-2490bc65.cjs → form-59059e97.cjs} +1 -1
- package/lib/edge/{form-8614781e.js → form-855a28fc.js} +4 -4
- package/lib/edge/{get-class-prop-name-3fcaaa4e.cjs → get-class-prop-name-6320e936.cjs} +1 -1
- package/lib/edge/{get-class-prop-name-982b0eeb.js → get-class-prop-name-a6353748.js} +1 -1
- package/lib/edge/{img-5481830d.cjs → img-1f88586f.cjs} +1 -1
- package/lib/edge/{img-2750ffb8.js → img-56b4a196.js} +1 -1
- package/lib/edge/index.cjs +1 -1
- package/lib/edge/index.mjs +1 -1
- package/lib/edge/{input-4018ed38.cjs → input-35f6fbdd.cjs} +1 -1
- package/lib/edge/{input-a53f13e5.js → input-7873f170.js} +1 -1
- package/lib/edge/{select-a9ba7290.js → select-eb16d7cc.js} +1 -1
- package/lib/edge/{select-b5257730.cjs → select-f03c5ba6.cjs} +1 -1
- package/lib/edge/{server-entry-425ab225.js → server-entry-77a5a1a0.js} +1 -2
- package/lib/edge/{server-entry-c0a129cd.cjs → server-entry-dbe27fb2.cjs} +2 -2
- package/lib/edge/server-entry.cjs +1 -1
- package/lib/edge/server-entry.mjs +1 -1
- package/lib/edge/{slot-7c52b924.cjs → slot-93865012.cjs} +1 -1
- package/lib/edge/{slot-2806840c.js → slot-c9a7a451.js} +4 -4
- package/lib/edge/{symbol-f4a3bd00.js → symbol-6657c638.js} +2 -2
- package/lib/edge/{symbol-2a759e66.cjs → symbol-b6b36212.cjs} +1 -1
- package/lib/edge/{tabs-238833b0.cjs → tabs-020fedaa.cjs} +1 -1
- package/lib/edge/{tabs-1e5bb78c.js → tabs-44484f49.js} +4 -4
- package/lib/edge/{text-95df08ad.cjs → text-562c8568.cjs} +1 -1
- package/lib/edge/{text-4492d4a7.js → text-e00e3cdc.js} +2 -2
- package/lib/node/blocks-exports.cjs +22 -22
- package/lib/node/blocks-exports.mjs +236 -232
- 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 +12 -8
- package/lib/node/{server-entry-6758904f.cjs → server-entry-82ab17f2.cjs} +1 -1
- package/lib/node/{server-entry-b4e02b7f.js → server-entry-902ea0c4.js} +1 -1
- package/lib/node/server-entry.cjs +1 -1
- package/lib/node/server-entry.mjs +1 -1
- package/lib/node/{node-runtime-e5a24b2b.js → should-force-browser-runtime-in-node-0b0cefdf.js} +51 -37
- package/lib/node/should-force-browser-runtime-in-node-f20178fa.cjs +48 -0
- package/package.json +1 -1
- package/types/components/awaiter.d.ts +14 -0
- package/types/constants/sdk-version.d.ts +1 -1
- package/types/context/component-reference-types.d.ts +4 -0
- package/types/context/types.d.ts +2 -1
- package/types/functions/evaluate/should-force-browser-runtime-in-node.d.ts +3 -1
- package/lib/browser/init.cjs +0 -8
- package/lib/browser/init.mjs +0 -59
- package/lib/edge/blocks-f9516def.cjs +0 -12
- package/lib/edge/init.cjs +0 -8
- package/lib/edge/init.mjs +0 -59
- package/lib/node/node-runtime-9a8c1fa3.cjs +0 -48
package/lib/node/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-82ab17f2.cjs");require("react/jsx-runtime");require("react");require("./should-force-browser-runtime-in-node-f20178fa.cjs");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/node/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Blocks as s, BuilderContext as n, Button as m, Columns as c, Content as g, Fragment as a, Image as p, Section as d, Symbol as l, Text as u, Video as f } from "./blocks-exports.mjs";
|
|
2
|
-
import { _processContentResult as C, createRegisterComponentMessage as E, fetchBuilderProps as h, fetchEntries as x, fetchOneEntry as S, getBuilderSearchParams as b, isEditing as P, isPreviewing as k, register as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-
|
|
2
|
+
import { _processContentResult as C, createRegisterComponentMessage as E, fetchBuilderProps as h, fetchEntries as x, fetchOneEntry as S, getBuilderSearchParams as b, isEditing as P, isPreviewing as k, register as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-902ea0c4.js";
|
|
3
3
|
import "react/jsx-runtime";
|
|
4
4
|
import "react";
|
|
5
|
-
import "./
|
|
5
|
+
import "./should-force-browser-runtime-in-node-0b0cefdf.js";
|
|
6
6
|
export {
|
|
7
7
|
s as Blocks,
|
|
8
8
|
n as BuilderContext,
|
package/lib/node/init.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./should-force-browser-runtime-in-node-f20178fa.cjs"),t=require("isolated-vm");require("./server-entry-82ab17f2.cjs");const r=i=>{if(e.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:o}=i||{};e.setIvm(t,o)};exports.initializeNodeRuntime=r;
|
package/lib/node/init.mjs
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import t from "
|
|
2
|
-
import
|
|
3
|
-
import "./server-entry-
|
|
4
|
-
const
|
|
1
|
+
import { shouldForceBrowserRuntimeInNode as t, setIvm as r } from "./should-force-browser-runtime-in-node-0b0cefdf.js";
|
|
2
|
+
import e from "isolated-vm";
|
|
3
|
+
import "./server-entry-902ea0c4.js";
|
|
4
|
+
const u = (o) => {
|
|
5
|
+
if (t({
|
|
6
|
+
shouldLogWarning: !0
|
|
7
|
+
}))
|
|
8
|
+
return;
|
|
5
9
|
const {
|
|
6
|
-
ivmIsolateOptions:
|
|
7
|
-
} =
|
|
8
|
-
|
|
10
|
+
ivmIsolateOptions: i
|
|
11
|
+
} = o || {};
|
|
12
|
+
r(e, i);
|
|
9
13
|
};
|
|
10
14
|
export {
|
|
11
|
-
|
|
15
|
+
u as initializeNodeRuntime
|
|
12
16
|
};
|
|
@@ -1,2 +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 ce=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},M=e=>e instanceof URLSearchParams?ce(e):e,U=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function ue(){return c()&&window.self!==window.top}function F(e){return ue()&&U(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const de=()=>{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},le=()=>typeof navigator=="object"&&navigator.userAgent||"",N=()=>{const e=le(),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=de();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;function fe(e){const t=e||(c()?window.location.search:void 0);return t?U(t).indexOf("builder.preview=")!==-1:!1}const ge=e=>({type:"builder.registerComponent",data:k(e)}),he=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`};function k(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?he(n):n))}const x={};function D(e,t){e==="plugin"&&(t=k(t));let n=x[e];if(n||(n=x[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 R={};function pe(e){if(c()){Object.assign(R,e);const t={type:"builder.settingsChange",data:R};parent.postMessage(t,"*")}}const B="builder.",me="options.",P=e=>{if(!e)return{};const t=M(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(B)){const o=r.replace(B,"").replace(me,"");n[o]=t[r]}}),n},ye=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},Se=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},j=({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}},K=async e=>j(e),we=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),be=[["secure",""],["SameSite","None"]],Ie=({name:e,value:t,expires:n})=>{const o=(c()?location.protocol==="https:":!0)?be:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",Se(window.location.hostname)],...o];return we(a)},_=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const o=Ie({name:e,value:t,expires:n});document.cookie=o}catch(o){d.warn("[COOKIE] SET error: ",(o==null?void 0:o.message)||o)}};function ve(){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 W(){return ve().replace(/-/g,"")}const $="builderSessionId",Ee=async({canTrack:e})=>{if(!e)return;const t=await K({name:$,canTrack:e});if(p(t))return t;{const n=ke();return Pe({id:n,canTrack:e}),n}},ke=()=>W(),Pe=({id:e,canTrack:t})=>_({name:$,value:e,canTrack:t}),G=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Ce=({key:e,canTrack:t})=>{var n;try{return t?(n=G())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Oe=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=G())==null||r.setItem(e,n))}catch(o){console.debug("[LocalStorage] SET error: ",o)}},z="builderVisitorId",Ae=({canTrack:e})=>{if(!e)return;const t=Ce({key:z,canTrack:e});if(p(t))return t;{const n=Te();return xe({id:n,canTrack:e}),n}},Te=()=>W(),xe=({id:e,canTrack:t})=>Oe({key:z,value:e,canTrack:t}),Re=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Ee({canTrack:e}),n=Ae({canTrack:e});return{sessionId:t,visitorId:n}},Be=async({type:e,canTrack:t,apiKey:n,metadata:r,...o})=>({type:e,data:{...o,metadata:{url:location.href,...r},...await Re({canTrack:t}),userAttributes:N(),ownerId:n}});async function J(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 Be(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const Le=e=>J({...e,canTrack:!0}),Ve=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function H(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||Ve).findIndex(o=>o.startsWith("*.")?r.endsWith(o.slice(1)):o===r)>-1}const Me="2.0.
|
|
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 ce=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},M=e=>e instanceof URLSearchParams?ce(e):e,U=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function ue(){return c()&&window.self!==window.top}function F(e){return ue()&&U(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const de=()=>{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},le=()=>typeof navigator=="object"&&navigator.userAgent||"",N=()=>{const e=le(),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=de();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;function fe(e){const t=e||(c()?window.location.search:void 0);return t?U(t).indexOf("builder.preview=")!==-1:!1}const ge=e=>({type:"builder.registerComponent",data:k(e)}),he=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`};function k(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?he(n):n))}const x={};function D(e,t){e==="plugin"&&(t=k(t));let n=x[e];if(n||(n=x[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 R={};function pe(e){if(c()){Object.assign(R,e);const t={type:"builder.settingsChange",data:R};parent.postMessage(t,"*")}}const B="builder.",me="options.",P=e=>{if(!e)return{};const t=M(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(B)){const o=r.replace(B,"").replace(me,"");n[o]=t[r]}}),n},ye=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},Se=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},j=({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}},K=async e=>j(e),we=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),be=[["secure",""],["SameSite","None"]],Ie=({name:e,value:t,expires:n})=>{const o=(c()?location.protocol==="https:":!0)?be:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",Se(window.location.hostname)],...o];return we(a)},_=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const o=Ie({name:e,value:t,expires:n});document.cookie=o}catch(o){d.warn("[COOKIE] SET error: ",(o==null?void 0:o.message)||o)}};function ve(){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 W(){return ve().replace(/-/g,"")}const $="builderSessionId",Ee=async({canTrack:e})=>{if(!e)return;const t=await K({name:$,canTrack:e});if(p(t))return t;{const n=ke();return Pe({id:n,canTrack:e}),n}},ke=()=>W(),Pe=({id:e,canTrack:t})=>_({name:$,value:e,canTrack:t}),G=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Ce=({key:e,canTrack:t})=>{var n;try{return t?(n=G())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Oe=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=G())==null||r.setItem(e,n))}catch(o){console.debug("[LocalStorage] SET error: ",o)}},z="builderVisitorId",Ae=({canTrack:e})=>{if(!e)return;const t=Ce({key:z,canTrack:e});if(p(t))return t;{const n=Te();return xe({id:n,canTrack:e}),n}},Te=()=>W(),xe=({id:e,canTrack:t})=>Oe({key:z,value:e,canTrack:t}),Re=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Ee({canTrack:e}),n=Ae({canTrack:e});return{sessionId:t,visitorId:n}},Be=async({type:e,canTrack:t,apiKey:n,metadata:r,...o})=>({type:e,data:{...o,metadata:{url:location.href,...r},...await Re({canTrack:t}),userAttributes:N(),ownerId:n}});async function J(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 Be(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const Le=e=>J({...e,canTrack:!0}),Ve=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function H(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||Ve).findIndex(o=>o.startsWith("*.")?r.endsWith(o.slice(1)):o===r)>-1}const Me="2.0.19",Ue=()=>{D("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 X=(e={})=>{var t,n;L||(L=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:I,version:Me,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(!H(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}}})))},q=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!H(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}}},Fe=(e,t,n)=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};X();const r=q({callbacks:{contentUpdate:t,animation:()=>{},configureSdk:()=>{}},model:e,trustedHosts:n==null?void 0:n.trustedHosts});return window.addEventListener("message",r),()=>{window.removeEventListener("message",r)}},Ne="builder.tests",C=e=>`${Ne}.${e}`,De=({contentId:e})=>K({name:C(e),canTrack:!0}),je=({contentId:e})=>j({name:C(e),canTrack:!0}),Ke=({contentId:e,value:t})=>_({name:C(e),value:t,canTrack:!0}),Q=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,_e=({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},Y=e=>{const t=_e(e);return Ke({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},Z=({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":"")}},We=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!Q(e))return e;const n=je({contentId:e.id})||Y({variations:e.variations,id:e.id}),r=Z({item:e,testGroupId:n});return{...e,...r}},$e=async({item:e,canTrack:t})=>{if(!t||!Q(e))return e;const r=await De({contentId:e.id})||Y({variations:e.variations,id:e.id}),o=Z({item:e,testGroupId:r});return{...e,...o}},ee=e=>p(e)?e:!0;function Ge(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function ze(){const e=Ge().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
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 te=ze();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 ne(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("$"))?ne(o,s,n):n[s]=o}return n}const Je="v3",V=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=Je,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 ie=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(ie)),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&&V(g)&&i.searchParams.set("cacheSeconds",String(g)),h&&V(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 ae={...ye(),...M(e.options||{})},T=E(ae);for(const f in T)i.searchParams.set(f,String(T[f]));if(n&&i.searchParams.set("userAttributes",JSON.stringify(n)),r){const f=ne({query:r});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}return i},He=e=>"results"in e;async function re(e){const t=await se({...e,limit:1});return t&&t[0]||null}const Xe=async e=>{var s;const t=O(e);return await(await((s=e.fetch)!=null?s:te)(t.href,e.fetchOptions)).json()},oe=async(e,t,n=O(e))=>{const r=ee(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 $e({item:s,canTrack:r}));t.results=o}catch(o){d.error("Could not process A/B tests. ",o)}return t.results};async function se(e){try{const t=O(e),n=await Xe(e);return He(n)?oe(e,n):(d.error("Error fetching data. ",{url:t,content:n,options:e}),null)}catch(t){return d.error("Error fetching data. ",t),null}}const qe=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 re(n)}};exports.MSG_PREFIX=b;exports.TARGET=I;exports._processContentResult=oe;exports._track=J;exports.checkIsDefined=p;exports.createEditorListener=q;exports.createRegisterComponentMessage=ge;exports.fetch=te;exports.fetchBuilderProps=qe;exports.fetchEntries=se;exports.fetchOneEntry=re;exports.getBuilderSearchParams=P;exports.getDefaultCanTrack=ee;exports.getUserAttributes=N;exports.handleABTestingSync=We;exports.isBrowser=c;exports.isEditing=F;exports.isPreviewing=fe;exports.logger=d;exports.register=D;exports.registerInsertMenu=Ue;exports.serializeIncludingFunctions=k;exports.setEditorSettings=pe;exports.setupBrowserForEditing=X;exports.subscribeToEditor=Fe;exports.track=Le;
|
|
@@ -302,7 +302,7 @@ function $(t, e) {
|
|
|
302
302
|
const n = new URL(e.origin), r = n.hostname;
|
|
303
303
|
return (t || kt).findIndex((o) => o.startsWith("*.") ? r.endsWith(o.slice(1)) : o === r) > -1;
|
|
304
304
|
}
|
|
305
|
-
const Et = "2.0.
|
|
305
|
+
const Et = "2.0.19", zt = () => {
|
|
306
306
|
ot("insertMenu", {
|
|
307
307
|
name: "_default",
|
|
308
308
|
default: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-82ab17f2.cjs");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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-
|
|
1
|
+
import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-902ea0c4.js";
|
|
2
2
|
export {
|
|
3
3
|
r as _processContentResult,
|
|
4
4
|
s as createRegisterComponentMessage,
|
package/lib/node/{node-runtime-e5a24b2b.js → should-force-browser-runtime-in-node-0b0cefdf.js}
RENAMED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX } from "./server-entry-
|
|
1
|
+
import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX, checkIsDefined } from "./server-entry-902ea0c4.js";
|
|
2
2
|
const getFunctionArguments = ({
|
|
3
3
|
builder: e,
|
|
4
4
|
context: t,
|
|
5
|
-
event:
|
|
6
|
-
state:
|
|
5
|
+
event: r,
|
|
6
|
+
state: o
|
|
7
7
|
}) => Object.entries({
|
|
8
|
-
state:
|
|
8
|
+
state: o,
|
|
9
9
|
Builder: e,
|
|
10
10
|
// legacy
|
|
11
11
|
builder: e,
|
|
12
12
|
context: t,
|
|
13
|
-
event:
|
|
13
|
+
event: r
|
|
14
14
|
}), getBuilderGlobals = () => ({
|
|
15
15
|
isEditing: isEditing(),
|
|
16
16
|
isBrowser: isBrowser(),
|
|
@@ -27,11 +27,11 @@ const getFunctionArguments = ({
|
|
|
27
27
|
default:
|
|
28
28
|
return TARGET;
|
|
29
29
|
}
|
|
30
|
-
})(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, fastClone = (e) => JSON.parse(JSON.stringify(e)), set = (e, t,
|
|
30
|
+
})(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, fastClone = (e) => JSON.parse(JSON.stringify(e)), set = (e, t, r) => {
|
|
31
31
|
if (Object(e) !== e)
|
|
32
32
|
return e;
|
|
33
|
-
const
|
|
34
|
-
return
|
|
33
|
+
const o = Array.isArray(t) ? t : t.toString().match(/[^.[\]]+/g);
|
|
34
|
+
return o.slice(0, -1).reduce((n, s, i) => Object(n[s]) === n[s] ? n[s] : n[s] = Math.abs(Number(o[i + 1])) >> 0 === +o[i + 1] ? [] : {}, e)[o[o.length - 1]] = r, e;
|
|
35
35
|
}, noop = () => {
|
|
36
36
|
};
|
|
37
37
|
let safeDynamicRequire = noop;
|
|
@@ -69,10 +69,10 @@ var refToProxy = (obj) => {
|
|
|
69
69
|
code: e,
|
|
70
70
|
args: t
|
|
71
71
|
}) => {
|
|
72
|
-
const
|
|
72
|
+
const r = t.map(([o]) => `var ${o} = refToProxy(${getSyncValName(o)}); `).join("");
|
|
73
73
|
return `
|
|
74
74
|
${REF_TO_PROXY_FN}
|
|
75
|
-
${
|
|
75
|
+
${r}
|
|
76
76
|
function theFunction() {
|
|
77
77
|
${e}
|
|
78
78
|
}
|
|
@@ -89,7 +89,7 @@ if (typeof output === 'object' && output !== null) {
|
|
|
89
89
|
let IVM_INSTANCE = null, IVM_CONTEXT = null;
|
|
90
90
|
const setIvm = (e, t = {}) => {
|
|
91
91
|
IVM_INSTANCE = e, setIsolateContext(t);
|
|
92
|
-
}, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik", getIvm = () => {
|
|
92
|
+
}, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik" || SDK_NAME === "@builder.io/sdk-vue", getIvm = () => {
|
|
93
93
|
try {
|
|
94
94
|
if (IVM_INSTANCE)
|
|
95
95
|
return IVM_INSTANCE;
|
|
@@ -112,51 +112,64 @@ const setIvm = (e, t = {}) => {
|
|
|
112
112
|
function setIsolateContext(e = {
|
|
113
113
|
memoryLimit: 128
|
|
114
114
|
}) {
|
|
115
|
-
const t = getIvm(),
|
|
116
|
-
return
|
|
117
|
-
console.log(...
|
|
118
|
-
}),
|
|
115
|
+
const t = getIvm(), o = new t.Isolate(e).createContextSync(), n = o.global;
|
|
116
|
+
return n.setSync("global", n.derefInto()), n.setSync("log", function(...s) {
|
|
117
|
+
console.log(...s);
|
|
118
|
+
}), n.setSync(INJECTED_IVM_GLOBAL, t), IVM_CONTEXT = o, o;
|
|
119
119
|
}
|
|
120
120
|
const getIsolateContext = () => IVM_CONTEXT || setIsolateContext(), runInNode = ({
|
|
121
121
|
code: e,
|
|
122
122
|
builder: t,
|
|
123
|
-
context:
|
|
124
|
-
event:
|
|
125
|
-
localState:
|
|
126
|
-
rootSetState:
|
|
123
|
+
context: r,
|
|
124
|
+
event: o,
|
|
125
|
+
localState: n,
|
|
126
|
+
rootSetState: s,
|
|
127
127
|
rootState: i
|
|
128
128
|
}) => {
|
|
129
|
-
const
|
|
129
|
+
const I = getIvm(), N = fastClone({
|
|
130
130
|
...i,
|
|
131
|
-
...
|
|
132
|
-
}),
|
|
131
|
+
...n
|
|
132
|
+
}), a = getFunctionArguments({
|
|
133
133
|
builder: t,
|
|
134
|
-
context:
|
|
135
|
-
event:
|
|
136
|
-
state:
|
|
137
|
-
}),
|
|
138
|
-
|
|
139
|
-
set(i, c, u),
|
|
140
|
-
}),
|
|
141
|
-
const
|
|
134
|
+
context: r,
|
|
135
|
+
event: o,
|
|
136
|
+
state: N
|
|
137
|
+
}), l = getIsolateContext(), d = l.global;
|
|
138
|
+
d.setSync(BUILDER_SET_STATE_NAME, function(c, u) {
|
|
139
|
+
set(i, c, u), s == null || s(i);
|
|
140
|
+
}), a.forEach(([c, u]) => {
|
|
141
|
+
const f = typeof u == "object" ? new I.Reference(
|
|
142
142
|
// workaround: methods with default values for arguments is not being cloned over
|
|
143
143
|
c === "builder" ? {
|
|
144
144
|
...u,
|
|
145
145
|
getUserAttributes: () => u.getUserAttributes()
|
|
146
146
|
} : u
|
|
147
147
|
) : null;
|
|
148
|
-
|
|
148
|
+
d.setSync(getSyncValName(c), f);
|
|
149
149
|
});
|
|
150
|
-
const
|
|
150
|
+
const p = processCode({
|
|
151
151
|
code: e,
|
|
152
|
-
args:
|
|
153
|
-
}),
|
|
152
|
+
args: a
|
|
153
|
+
}), E = l.evalClosureSync(p);
|
|
154
154
|
try {
|
|
155
|
-
return JSON.parse(
|
|
155
|
+
return JSON.parse(E);
|
|
156
156
|
} catch {
|
|
157
|
-
return
|
|
157
|
+
return E;
|
|
158
158
|
}
|
|
159
159
|
};
|
|
160
|
+
function isNodeRuntime() {
|
|
161
|
+
var e;
|
|
162
|
+
return typeof process != "undefined" && checkIsDefined((e = process == null ? void 0 : process.versions) == null ? void 0 : e.node);
|
|
163
|
+
}
|
|
164
|
+
const shouldForceBrowserRuntimeInNode = ({
|
|
165
|
+
shouldLogWarning: e
|
|
166
|
+
}) => {
|
|
167
|
+
var n;
|
|
168
|
+
if (!isNodeRuntime())
|
|
169
|
+
return !1;
|
|
170
|
+
const t = process.arch === "arm64", r = process.version.startsWith("v20"), o = (n = process.env.NODE_OPTIONS) == null ? void 0 : n.includes("--no-node-snapshot");
|
|
171
|
+
return t && r && !o ? (e && 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;
|
|
172
|
+
};
|
|
160
173
|
export {
|
|
161
174
|
fastClone,
|
|
162
175
|
getBuilderGlobals,
|
|
@@ -164,5 +177,6 @@ export {
|
|
|
164
177
|
parseCode,
|
|
165
178
|
runInNode,
|
|
166
179
|
set,
|
|
167
|
-
setIvm
|
|
180
|
+
setIvm,
|
|
181
|
+
shouldForceBrowserRuntimeInNode
|
|
168
182
|
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";const serverEntry=require("./server-entry-82ab17f2.cjs"),getFunctionArguments=({builder:e,context:t,event:n,state:r})=>Object.entries({state:r,Builder:e,builder:e,context:t,event:n}),getBuilderGlobals=()=>({isEditing:serverEntry.isEditing(),isBrowser:serverEntry.isBrowser(),isServer:!serverEntry.isBrowser(),getUserAttributes:()=>serverEntry.getUserAttributes()}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e,SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,n)=>{if(Object(e)!==e)return e;const r=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return r.slice(0,-1).reduce((o,s,i)=>Object(o[s])===o[s]?o[s]:o[s]=Math.abs(Number(r[i+1]))>>0===+r[i+1]?[]:{},e)[r[r.length-1]]=n,e},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const getSyncValName=e=>`bldr_${e}_sync`,BUILDER_SET_STATE_NAME="BUILDER_SET_STATE",INJECTED_IVM_GLOBAL="BUILDER_IVM",REF_TO_PROXY_FN=`
|
|
2
|
+
var refToProxy = (obj) => {
|
|
3
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
4
|
+
return obj;
|
|
5
|
+
}
|
|
6
|
+
return new Proxy({}, {
|
|
7
|
+
get(target, key) {
|
|
8
|
+
if (key === 'copySync') {
|
|
9
|
+
return () => obj.copySync();
|
|
10
|
+
}
|
|
11
|
+
const val = obj.getSync(key);
|
|
12
|
+
if (typeof val?.getSync === 'function') {
|
|
13
|
+
return refToProxy(val);
|
|
14
|
+
}
|
|
15
|
+
return val;
|
|
16
|
+
},
|
|
17
|
+
set(target, key, value) {
|
|
18
|
+
const v = typeof value === 'object' ? new ${INJECTED_IVM_GLOBAL}.Reference(value) : value;
|
|
19
|
+
obj.setSync(key, v);
|
|
20
|
+
${BUILDER_SET_STATE_NAME}(key, value)
|
|
21
|
+
},
|
|
22
|
+
deleteProperty(target, key) {
|
|
23
|
+
obj.deleteSync(key);
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
`,processCode=({code:e,args:t})=>{const n=t.map(([r])=>`var ${r} = refToProxy(${getSyncValName(r)}); `).join("");return`
|
|
28
|
+
${REF_TO_PROXY_FN}
|
|
29
|
+
${n}
|
|
30
|
+
function theFunction() {
|
|
31
|
+
${e}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const output = theFunction()
|
|
35
|
+
|
|
36
|
+
if (typeof output === 'object' && output !== null) {
|
|
37
|
+
return JSON.stringify(output.copySync ? output.copySync() : output);
|
|
38
|
+
} else {
|
|
39
|
+
return output;
|
|
40
|
+
}
|
|
41
|
+
`};let IVM_INSTANCE=null,IVM_CONTEXT=null;const setIvm=(e,t={})=>{IVM_INSTANCE=e,setIsolateContext(t)},SHOULD_MENTION_INITIALIZE_SCRIPT=SDK_NAME==="@builder.io/sdk-react-nextjs"||SDK_NAME==="@builder.io/sdk-react"||SDK_NAME==="@builder.io/sdk-qwik"||SDK_NAME==="@builder.io/sdk-vue",getIvm=()=>{try{if(IVM_INSTANCE)return IVM_INSTANCE;const t=safeDynamicRequire("isolated-vm");if(t)return t}catch(t){serverEntry.logger.error("isolated-vm import error.",t)}const e=`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
|
|
42
|
+
|
|
43
|
+
SOLUTION: In a server-only execution path within your application, do one of the following:
|
|
44
|
+
|
|
45
|
+
${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
|
|
46
|
+
- add the following import: \`await import('isolated-vm')\`.
|
|
47
|
+
|
|
48
|
+
For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(e)};function setIsolateContext(e={memoryLimit:128}){const t=getIvm(),r=new t.Isolate(e).createContextSync(),o=r.global;return o.setSync("global",o.derefInto()),o.setSync("log",function(...s){console.log(...s)}),o.setSync(INJECTED_IVM_GLOBAL,t),IVM_CONTEXT=r,r}const getIsolateContext=()=>IVM_CONTEXT||setIsolateContext(),runInNode=({code:e,builder:t,context:n,event:r,localState:o,rootSetState:s,rootState:i})=>{const y=getIvm(),p=fastClone({...i,...o}),l=getFunctionArguments({builder:t,context:n,event:r,state:p}),a=getIsolateContext(),d=a.global;d.setSync(BUILDER_SET_STATE_NAME,function(c,u){set(i,c,u),s==null||s(i)}),l.forEach(([c,u])=>{const N=typeof u=="object"?new y.Reference(c==="builder"?{...u,getUserAttributes:()=>u.getUserAttributes()}:u):null;d.setSync(getSyncValName(c),N)});const I=processCode({code:e,args:l}),E=a.evalClosureSync(I);try{return JSON.parse(E)}catch{return E}};function isNodeRuntime(){var e;return typeof process!="undefined"&&serverEntry.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const shouldForceBrowserRuntimeInNode=({shouldLogWarning:e})=>{var o;if(!isNodeRuntime())return!1;const t=process.arch==="arm64",n=process.version.startsWith("v20"),r=(o=process.env.NODE_OPTIONS)==null?void 0:o.includes("--no-node-snapshot");return t&&n&&!r?(e&&serverEntry.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};exports.fastClone=fastClone;exports.getBuilderGlobals=getBuilderGlobals;exports.getFunctionArguments=getFunctionArguments;exports.parseCode=parseCode;exports.runInNode=runInNode;exports.set=set;exports.setIvm=setIvm;exports.shouldForceBrowserRuntimeInNode=shouldForceBrowserRuntimeInNode;
|
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Placeholder component to be overridden by specific SDKs.
|
|
4
|
+
* Allows to dynamically import components.
|
|
5
|
+
*/
|
|
6
|
+
type AwaiterProps = {
|
|
7
|
+
load: () => Promise<any>;
|
|
8
|
+
props?: any;
|
|
9
|
+
attributes?: any;
|
|
10
|
+
fallback?: any;
|
|
11
|
+
children?: any;
|
|
12
|
+
};
|
|
13
|
+
declare function Awaiter(props: AwaiterProps): React.JSX.Element;
|
|
14
|
+
export default Awaiter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "2.0.
|
|
1
|
+
export declare const SDK_VERSION = "2.0.19";
|
package/types/context/types.d.ts
CHANGED
|
@@ -3,9 +3,10 @@ import type { ApiVersion } from '../types/api-version';
|
|
|
3
3
|
import type { BuilderContent } from '../types/builder-content';
|
|
4
4
|
import type { ComponentInfo } from '../types/components';
|
|
5
5
|
import type { Dictionary, Nullable } from '../types/typescript';
|
|
6
|
+
import type { ComponentReference } from './component-reference-types';
|
|
6
7
|
import type { ExtraContextTypes } from './extra-context-types';
|
|
7
8
|
export type RegisteredComponent = ComponentInfo & {
|
|
8
|
-
component:
|
|
9
|
+
component: ComponentReference;
|
|
9
10
|
};
|
|
10
11
|
export type RegisteredComponents = Dictionary<RegisteredComponent>;
|
|
11
12
|
export type BuilderRenderState = Record<string, unknown>;
|
package/lib/browser/init.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ivm=require("isolated-vm"),serverEntry=require("./server-entry-6758904f.cjs"),SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(t){}const INJECTED_IVM_GLOBAL="BUILDER_IVM";let IVM_INSTANCE=null;const setIvm=(t,e={})=>{IVM_INSTANCE=t,setIsolateContext(e)},SHOULD_MENTION_INITIALIZE_SCRIPT=SDK_NAME==="@builder.io/sdk-react-nextjs"||SDK_NAME==="@builder.io/sdk-react"||SDK_NAME==="@builder.io/sdk-qwik",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)}const t=`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
|
|
2
|
-
|
|
3
|
-
SOLUTION: In a server-only execution path within your application, do one of the following:
|
|
4
|
-
|
|
5
|
-
${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
|
|
6
|
-
- add the following import: \`await import('isolated-vm')\`.
|
|
7
|
-
|
|
8
|
-
For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(t)};function setIsolateContext(t={memoryLimit:128}){const e=getIvm(),i=new e.Isolate(t).createContextSync(),o=i.global;return o.setSync("global",o.derefInto()),o.setSync("log",function(...r){console.log(...r)}),o.setSync(INJECTED_IVM_GLOBAL,e),i}const initializeNodeRuntime=t=>{const{ivmIsolateOptions:e}=t||{};setIvm(ivm,e)};exports.initializeNodeRuntime=initializeNodeRuntime;
|
package/lib/browser/init.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import ivm from "isolated-vm";
|
|
2
|
-
import { TARGET, logger, MSG_PREFIX } from "./server-entry-b4e02b7f.js";
|
|
3
|
-
const SDK_NAME_FOR_TARGET = (() => {
|
|
4
|
-
switch (TARGET) {
|
|
5
|
-
case "rsc":
|
|
6
|
-
return "react-nextjs";
|
|
7
|
-
case "reactNative":
|
|
8
|
-
return "react-native";
|
|
9
|
-
default:
|
|
10
|
-
return TARGET;
|
|
11
|
-
}
|
|
12
|
-
})(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, noop = () => {
|
|
13
|
-
};
|
|
14
|
-
let safeDynamicRequire = noop;
|
|
15
|
-
try {
|
|
16
|
-
safeDynamicRequire = eval("require");
|
|
17
|
-
} catch (t) {
|
|
18
|
-
}
|
|
19
|
-
const INJECTED_IVM_GLOBAL = "BUILDER_IVM";
|
|
20
|
-
let IVM_INSTANCE = null;
|
|
21
|
-
const setIvm = (t, e = {}) => {
|
|
22
|
-
IVM_INSTANCE = t, setIsolateContext(e);
|
|
23
|
-
}, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik", getIvm = () => {
|
|
24
|
-
try {
|
|
25
|
-
if (IVM_INSTANCE)
|
|
26
|
-
return IVM_INSTANCE;
|
|
27
|
-
const e = safeDynamicRequire("isolated-vm");
|
|
28
|
-
if (e)
|
|
29
|
-
return e;
|
|
30
|
-
} catch (e) {
|
|
31
|
-
logger.error("isolated-vm import error.", e);
|
|
32
|
-
}
|
|
33
|
-
const t = `${MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
|
|
34
|
-
|
|
35
|
-
SOLUTION: In a server-only execution path within your application, do one of the following:
|
|
36
|
-
|
|
37
|
-
${SHOULD_MENTION_INITIALIZE_SCRIPT ? `- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".` : ""}
|
|
38
|
-
- add the following import: \`await import('isolated-vm')\`.
|
|
39
|
-
|
|
40
|
-
For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
|
|
41
|
-
throw new Error(t);
|
|
42
|
-
};
|
|
43
|
-
function setIsolateContext(t = {
|
|
44
|
-
memoryLimit: 128
|
|
45
|
-
}) {
|
|
46
|
-
const e = getIvm(), i = new e.Isolate(t).createContextSync(), o = i.global;
|
|
47
|
-
return o.setSync("global", o.derefInto()), o.setSync("log", function(...n) {
|
|
48
|
-
console.log(...n);
|
|
49
|
-
}), o.setSync(INJECTED_IVM_GLOBAL, e), i;
|
|
50
|
-
}
|
|
51
|
-
const initializeNodeRuntime = (t) => {
|
|
52
|
-
const {
|
|
53
|
-
ivmIsolateOptions: e
|
|
54
|
-
} = t || {};
|
|
55
|
-
setIvm(ivm, e);
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
initializeNodeRuntime
|
|
59
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";const l=require("react/jsx-runtime"),p=require("react"),W=require("./blocks-exports.cjs"),g=require("./server-entry-c0a129cd.cjs"),B=require("./evaluate-b34c0621.cjs"),K=require("./get-class-prop-name-3fcaaa4e.cjs"),G=require("./dynamic-renderer-b29b45ca.cjs"),R=e=>JSON.parse(JSON.stringify(e)),$=p.createContext({registeredComponents:{}});function V(e){var n;return{...(n=e.component)==null?void 0:n.options,...e.options}}function Z(e,...n){const t=Object.assign({},e);for(const r of n)delete t[r];return t}function j(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(t=>j(t));if(e["@type"]==="@builder.io/sdk:Element")return e;const n={};for(const t in e)t!=="meta"&&Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=j(e[t]));return n}const J=["svelte","vue","angular","qwik","solid"].includes(g.TARGET),Q=e=>{if(J){const n=R(e);return{...n,properties:{...n.properties},actions:{...n.actions}}}else{const n=j(Z(e,"children","meta"));return{...n,properties:{...n.properties},actions:{...n.actions},children:e.children,meta:e.meta}}},X=({block:e,context:n,localState:t,rootState:r,rootSetState:o})=>{if(!e.bindings)return e;const s=Q(e);for(const c in e.bindings){const d=e.bindings[c],f=B.evaluate({code:d,localState:t,rootState:r,rootSetState:o,context:n,enableCache:!0});B.set(s,c,f)}return s};function Y({block:e,context:n,shouldEvaluateBindings:t,localState:r,rootState:o,rootSetState:s}){const c=e;return t?X({block:c,localState:r,rootState:o,rootSetState:s,context:n}):c}const P=e=>e?e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase():"";function ee(e,n,t={}){let r,o,s,c=null,d=0;const f=function(){d=t.leading===!1?0:Date.now(),c=null,s=e.apply(r,o),c||(r=o=null)};return function(){const a=Date.now();!d&&t.leading===!1&&(d=a);const m=n-(a-d);return r=this,o=arguments,m<=0||m>n?(c&&(clearTimeout(c),c=null),d=a,s=e.apply(r,o),c||(r=o=null)):!c&&t.trailing!==!1&&(c=setTimeout(f,m)),s}}function S(e,...n){const t=Object(e);for(let r=1;r<arguments.length;r++){const o=arguments[r];if(o!=null)for(const s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s])}return t}function te(e){for(const n of e)switch(n.trigger){case"pageLoad":F(n);break;case"scrollInView":oe(n);break}}function N(e){console.warn(`Cannot animate element: element with ID ${e} not found!`)}function D(e,n){const t=ne(e),r=getComputedStyle(n),o=e.steps[0].styles,s=e.steps[e.steps.length-1].styles,c=[o,s];for(const d of c)for(const f of t)f in d||(d[f]=r[f])}function ne(e){const n=[];for(const t of e.steps)for(const r in t.styles)n.indexOf(r)===-1&&n.push(r);return n}function F(e){const n=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!n.length){N(e.elementId||e.id||"");return}Array.from(n).forEach(t=>{D(e,t),t.style.transition="none",t.style.transitionDelay="0",S(t.style,e.steps[0].styles),setTimeout(()=>{t.style.transition=`all ${e.duration}s ${P(e.easing)}`,e.delay&&(t.style.transitionDelay=e.delay+"s"),S(t.style,e.steps[1].styles),setTimeout(()=>{t.style.transition="",t.style.transitionDelay=""},(e.delay||0)*1e3+e.duration*1e3+100)})})}function oe(e){const n=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!n.length){N(e.elementId||e.id||"");return}Array.from(n).forEach(t=>{D(e,t);let r=!1,o=!1;function s(){!r&&d(t)?(r=!0,o=!0,setTimeout(()=>{S(t.style,e.steps[1].styles),e.repeat||document.removeEventListener("scroll",c),setTimeout(()=>{o=!1,e.repeat||(t.style.transition="",t.style.transitionDelay="")},(e.duration+(e.delay||0))*1e3+100)})):e.repeat&&r&&!o&&!d(t)&&(r=!1,S(t.style,e.steps[0].styles))}const c=ee(s,200,{leading:!1});function d(m){const x=m.getBoundingClientRect(),k=window.innerHeight,i=(e.thresholdPercent||0)/100*k;return x.bottom>i&&x.top<k-i}const f=e.steps[0].styles;function a(){S(t.style,f)}a(),setTimeout(()=>{t.style.transition=`all ${e.duration}s ${P(e.easing)}`,e.delay&&(t.style.transitionDelay=e.delay+"s")}),document.addEventListener("scroll",c,{capture:!0,passive:!0}),s()})}const _=e=>Object.entries(e).map(([t,r])=>{if(typeof r=="string")return`${P(t)}: ${r};`}).filter(g.checkIsDefined),re=e=>_(e).join(`
|
|
2
|
-
`),v=({mediaQuery:e,className:n,styles:t})=>{const r=`.${n} {
|
|
3
|
-
${re(t)}
|
|
4
|
-
}`;return e?`${e} {
|
|
5
|
-
${r}
|
|
6
|
-
}`:r};function se({style:e}){return e}const ce=({block:e,context:n})=>M(se({style:e.style||{},context:n,block:e}));function M(e){switch(g.TARGET){case"svelte":case"vue":case"solid":case"angular":return _(e).join(" ");case"qwik":case"reactNative":case"react":case"rsc":return e}}const le=({block:e,registeredComponents:n})=>{var o;const t=(o=e.component)==null?void 0:o.name;if(!t)return null;const r=n[t];if(r)return r;console.warn(`
|
|
7
|
-
Could not find a registered component named "${t}".
|
|
8
|
-
If you registered it, is the file that registered it imported by the file that needs to render it?`)},ie=({block:e,context:n})=>{const{repeat:t,...r}=e;if(!(t!=null&&t.collection))return;const o=B.evaluate({code:t.collection,localState:n.localState,rootState:n.rootState,rootSetState:n.rootSetState,context:n.context,enableCache:!0});if(!Array.isArray(o))return;const s=t.collection.split(".").pop(),c=t.itemName||(s?s+"Item":"item");return o.map((f,a)=>({context:{...n,localState:{...n.localState,$index:a,$item:f,[c]:f,[`$${c}Index`]:a}},block:r}))},ae=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderLinkComponent?{builderLinkComponent:n}:{}},ue=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderComponents?{builderComponents:n}:{}},de=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderBlock?{builderBlock:n}:{}},fe=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderContext?{builderContext:n}:{}},L={small:{min:320,default:321,max:640},medium:{min:641,default:642,max:991},large:{min:990,default:991,max:1200}},A=(e,n=L)=>`@media (max-width: ${n[e].max}px)`,q=({small:e,medium:n})=>{const t=R(L);if(!e||!n)return t;const r=Math.floor(e/2);t.small={max:e,min:r,default:r+1};const o=t.small.max+1;t.medium={max:n,min:o,default:o+1};const s=t.medium.max+1;return t.large={max:2e3,min:s,default:s+1},t};function H(e){return l.jsx("style",{dangerouslySetInnerHTML:{__html:e.styles},"data-id":e.id,nonce:e.nonce})}function me(e){function n(){const r=e.block;return g.checkIsDefined(r.hide)?!r.hide:g.checkIsDefined(r.show)?r.show:!0}function t(){var h,y,I;const r=e.block,o=r.responsiveStyles,s=e.context.content,c=q(((h=s==null?void 0:s.meta)==null?void 0:h.breakpoints)||{}),d=o==null?void 0:o.large,f=o==null?void 0:o.medium,a=o==null?void 0:o.small,m=r.id;if(!m)return"";const x=d?v({className:m,styles:d}):"",k=f?v({className:m,styles:f,mediaQuery:A("medium",c)}):"",C=a?v({className:m,styles:a,mediaQuery:A("small",c)}):"",i=r.animations&&r.animations.find(w=>w.trigger==="hover");let u="";if(i){const w=((I=(y=i.steps)==null?void 0:y[1])==null?void 0:I.styles)||{};u=v({className:`${m}:hover`,styles:{...w,transition:`all ${i.duration}s ${P(i.easing)}`,transitionDelay:i.delay?`${i.delay}s`:"0s"}})||""}return[x,k,C,u].join(" ")}return l.jsx(l.Fragment,{children:t()&&n()?l.jsx(l.Fragment,{children:l.jsx(H,{id:"builderio-block",styles:t(),nonce:e.context.nonce})}):null})}function he(e){return e.charAt(0).toUpperCase()+e.slice(1)}const pe=e=>`on${he(e)}`,ge=(e,n)=>t=>B.evaluate({code:e,context:n.context,localState:n.localState,rootState:n.rootState,rootSetState:n.rootSetState,event:t,isExpression:!1,enableCache:!0});function U(e){var r;const n={},t=(r=e.block.actions)!=null?r:{};for(const o in t){if(!t.hasOwnProperty(o))continue;const s=t[o];let c=pe(o);if(e.stripPrefix)switch(g.TARGET){case"vue":c=c.replace("v-on:","");break;case"svelte":c=c.replace("on:","");break}n[c]=ge(s,e)}return n}function ye({properties:e}){return e}const xe=e=>({href:e.href});function E({block:e,context:n}){var r;const t={...xe(e),...e.properties,"builder-id":e.id,style:ce({block:e,context:n}),[K.getClassPropName()]:[e.id,"builder-block",e.class,(r=e.properties)==null?void 0:r.class].filter(Boolean).join(" ")};return ye({properties:t,context:n,block:e})}function ke(e){return l.jsx(G.DynamicRenderer,{TagName:e.Wrapper,attributes:E({block:e.block,context:e.context}),actionAttributes:U({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context,stripPrefix:!0}),children:e.children})}function Ce(e){function n(){return e.includeBlockProps?{...E({block:e.block,context:e.context}),...U({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context})}:{}}return l.jsx(e.Wrapper,{...e.wrapperProps,attributes:n(),children:e.children})}const Se=({componentOptions:e,builderBlock:n,context:t,componentRef:r,includeBlockProps:o,isInteractive:s,contextValue:c})=>{const d={...e,...o?{attributes:E({block:n,context:c})}:{}};return s?{Wrapper:r,block:n,context:t,wrapperProps:e,includeBlockProps:o}:d};function O(e){var r;const[n,t]=p.useState(()=>e.isInteractive?Ce:e.componentRef);return l.jsx(l.Fragment,{children:e.componentRef?l.jsx(l.Fragment,{children:l.jsx(n,{...Se({componentOptions:e.componentOptions,builderBlock:e.builderBlock,context:e.context,componentRef:e.componentRef,linkComponent:e.linkComponent,includeBlockProps:e.includeBlockProps,isInteractive:e.isInteractive,contextValue:e.context}),children:(r=e.blockChildren)==null?void 0:r.map(o=>l.jsx(b,{block:o,context:e.context,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},o.id))})}):null})}function T(e){const[n,t]=p.useState(()=>e.repeatContext);return l.jsx(W.BuilderContext.Provider,{value:n,children:l.jsx(b,{block:e.block,context:n,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent})})}function b(e){var m,x,k,C;function n(){return ie({block:e.block,context:e.context})}const[t,r]=p.useState(()=>({value:null,update:!1}));function o(){var u;if(t.value&&!t.update&&!g.isPreviewing())return t.value;const i=(u=e.block.repeat)!=null&&u.collection?e.block:Y({block:e.block,localState:e.context.localState,rootState:e.context.rootState,rootSetState:e.context.rootSetState,context:e.context.context,shouldEvaluateBindings:!0});return t.value=i,t.update=!1,i}function s(){return le({block:o(),registeredComponents:e.registeredComponents})}function c(){var u;return e.block.tagName==="a"||((u=o().properties)==null?void 0:u.href)||o().href?e.linkComponent||"a":e.block.tagName||"div"}function d(){var h,y;if((h=e.block.repeat)!=null&&h.collection)return!!((y=n==null?void 0:n())!=null&&y.length);const i="hide"in o()?o().hide:!1;return("show"in o()?o().show:!0)&&!i}function f(){var u,h;return!((u=s==null?void 0:s())!=null&&u.component)&&!n()?(h=o().children)!=null?h:[]:[]}function a(){var i,u,h,y;return{blockChildren:(i=o().children)!=null?i:[],componentRef:(u=s==null?void 0:s())==null?void 0:u.component,componentOptions:{...V(o()),...de(s(),o()),...fe(s(),e.context),...ae(s(),e.linkComponent),...ue(s(),e.registeredComponents)},context:e.context,linkComponent:e.linkComponent,registeredComponents:e.registeredComponents,builderBlock:o(),includeBlockProps:((h=s==null?void 0:s())==null?void 0:h.noWrap)===!0,isInteractive:!((y=s==null?void 0:s())!=null&&y.isRSC&&g.TARGET==="rsc")}}return p.useEffect(()=>{const i=o().id,u=o().animations;u&&i&&te(u.map(h=>({...h,elementId:i})))},[]),p.useEffect(()=>{t.update=!0}),l.jsx(l.Fragment,{children:d()?l.jsxs(l.Fragment,{children:[l.jsx(me,{block:o(),context:e.context}),(m=s==null?void 0:s())!=null&&m.noWrap?n()?l.jsx(l.Fragment,{children:(C=n())==null?void 0:C.map((i,u)=>l.jsx(T,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):l.jsx(O,{componentRef:a().componentRef,componentOptions:a().componentOptions,blockChildren:a().blockChildren,context:a().context,registeredComponents:a().registeredComponents,linkComponent:a().linkComponent,builderBlock:a().builderBlock,includeBlockProps:a().includeBlockProps,isInteractive:a().isInteractive}):l.jsx(l.Fragment,{children:n()?l.jsx(l.Fragment,{children:(k=n())==null?void 0:k.map((i,u)=>l.jsx(T,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):l.jsxs(ke,{Wrapper:c(),block:o(),context:e.context,children:[l.jsx(O,{componentRef:a().componentRef,componentOptions:a().componentOptions,blockChildren:a().blockChildren,context:a().context,registeredComponents:a().registeredComponents,linkComponent:a().linkComponent,builderBlock:a().builderBlock,includeBlockProps:a().includeBlockProps,isInteractive:a().isInteractive}),(x=f())==null?void 0:x.map(i=>l.jsx(b,{block:i,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent,context:e.context},i.id))]})})]}):null})}function be(e){const n=p.useRef(null);function t(){var s;return"builder-blocks"+((s=e.blocks)!=null&&s.length?"":" no-blocks")}function r(){var s,c;g.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((c=window.parent)==null||c.postMessage({type:"builder.clickEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}function o(){var s,c;g.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((c=window.parent)==null||c.postMessage({type:"builder.hoverEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}return p.useEffect(()=>{},[]),l.jsxs(l.Fragment,{children:[l.jsx(e.BlocksWrapper,{ref:n,className:t()+" props-blocks-wrapper-51ef31b4","builder-path":e.path,"builder-parent-id":e.parent,style:e.styleProp,onClick:s=>r(),onMouseEnter:s=>o(),onKeyPress:s=>r(),...e.BlocksWrapperProps,children:e.children}),l.jsx("style",{children:`.props-blocks-wrapper-51ef31b4 {
|
|
9
|
-
display: flex;
|
|
10
|
-
flex-direction: column;
|
|
11
|
-
align-items: stretch;
|
|
12
|
-
}`})]})}function z(e){var r,o,s;const n=p.useContext(W.BuilderContext),t=p.useContext($);return l.jsx(be,{blocks:e.blocks,parent:e.parent,path:e.path,styleProp:e.styleProp,BlocksWrapper:((r=e.context)==null?void 0:r.BlocksWrapper)||n.BlocksWrapper,BlocksWrapperProps:((o=e.context)==null?void 0:o.BlocksWrapperProps)||n.BlocksWrapperProps,children:e.blocks?l.jsx(l.Fragment,{children:(s=e.blocks)==null?void 0:s.map(c=>l.jsx(b,{block:c,linkComponent:e.linkComponent,context:e.context||n,registeredComponents:e.registeredComponents||t.registeredComponents},c.id))}):null})}const ve=Object.freeze(Object.defineProperty({__proto__:null,default:z},Symbol.toStringTag,{value:"Module"}));exports.Block=b;exports.Blocks=z;exports.ComponentsContext=$;exports.InlinedStyles=H;exports.blocks=ve;exports.fastClone=R;exports.getSizesForBreakpoints=q;exports.mapStyleObjToStrIfNeeded=M;exports.triggerAnimation=F;
|
package/lib/edge/init.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ivm=require("isolated-vm"),serverEntry=require("./server-entry-c0a129cd.cjs"),SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(t){}const INJECTED_IVM_GLOBAL="BUILDER_IVM";let IVM_INSTANCE=null;const setIvm=(t,e={})=>{IVM_INSTANCE=t,setIsolateContext(e)},SHOULD_MENTION_INITIALIZE_SCRIPT=SDK_NAME==="@builder.io/sdk-react-nextjs"||SDK_NAME==="@builder.io/sdk-react"||SDK_NAME==="@builder.io/sdk-qwik",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)}const t=`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
|
|
2
|
-
|
|
3
|
-
SOLUTION: In a server-only execution path within your application, do one of the following:
|
|
4
|
-
|
|
5
|
-
${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
|
|
6
|
-
- add the following import: \`await import('isolated-vm')\`.
|
|
7
|
-
|
|
8
|
-
For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(t)};function setIsolateContext(t={memoryLimit:128}){const e=getIvm(),i=new e.Isolate(t).createContextSync(),o=i.global;return o.setSync("global",o.derefInto()),o.setSync("log",function(...r){console.log(...r)}),o.setSync(INJECTED_IVM_GLOBAL,e),i}const initializeNodeRuntime=t=>{const{ivmIsolateOptions:e}=t||{};setIvm(ivm,e)};exports.initializeNodeRuntime=initializeNodeRuntime;
|
package/lib/edge/init.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import ivm from "isolated-vm";
|
|
2
|
-
import { TARGET, logger, MSG_PREFIX } from "./server-entry-425ab225.js";
|
|
3
|
-
const SDK_NAME_FOR_TARGET = (() => {
|
|
4
|
-
switch (TARGET) {
|
|
5
|
-
case "rsc":
|
|
6
|
-
return "react-nextjs";
|
|
7
|
-
case "reactNative":
|
|
8
|
-
return "react-native";
|
|
9
|
-
default:
|
|
10
|
-
return TARGET;
|
|
11
|
-
}
|
|
12
|
-
})(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, noop = () => {
|
|
13
|
-
};
|
|
14
|
-
let safeDynamicRequire = noop;
|
|
15
|
-
try {
|
|
16
|
-
safeDynamicRequire = eval("require");
|
|
17
|
-
} catch (t) {
|
|
18
|
-
}
|
|
19
|
-
const INJECTED_IVM_GLOBAL = "BUILDER_IVM";
|
|
20
|
-
let IVM_INSTANCE = null;
|
|
21
|
-
const setIvm = (t, e = {}) => {
|
|
22
|
-
IVM_INSTANCE = t, setIsolateContext(e);
|
|
23
|
-
}, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik", getIvm = () => {
|
|
24
|
-
try {
|
|
25
|
-
if (IVM_INSTANCE)
|
|
26
|
-
return IVM_INSTANCE;
|
|
27
|
-
const e = safeDynamicRequire("isolated-vm");
|
|
28
|
-
if (e)
|
|
29
|
-
return e;
|
|
30
|
-
} catch (e) {
|
|
31
|
-
logger.error("isolated-vm import error.", e);
|
|
32
|
-
}
|
|
33
|
-
const t = `${MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
|
|
34
|
-
|
|
35
|
-
SOLUTION: In a server-only execution path within your application, do one of the following:
|
|
36
|
-
|
|
37
|
-
${SHOULD_MENTION_INITIALIZE_SCRIPT ? `- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".` : ""}
|
|
38
|
-
- add the following import: \`await import('isolated-vm')\`.
|
|
39
|
-
|
|
40
|
-
For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
|
|
41
|
-
throw new Error(t);
|
|
42
|
-
};
|
|
43
|
-
function setIsolateContext(t = {
|
|
44
|
-
memoryLimit: 128
|
|
45
|
-
}) {
|
|
46
|
-
const e = getIvm(), i = new e.Isolate(t).createContextSync(), o = i.global;
|
|
47
|
-
return o.setSync("global", o.derefInto()), o.setSync("log", function(...n) {
|
|
48
|
-
console.log(...n);
|
|
49
|
-
}), o.setSync(INJECTED_IVM_GLOBAL, e), i;
|
|
50
|
-
}
|
|
51
|
-
const initializeNodeRuntime = (t) => {
|
|
52
|
-
const {
|
|
53
|
-
ivmIsolateOptions: e
|
|
54
|
-
} = t || {};
|
|
55
|
-
setIvm(ivm, e);
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
initializeNodeRuntime
|
|
59
|
-
};
|