@builder.io/sdk-vue 5.0.1 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/browser/{awaiter-ltuXxa1H.js → awaiter-NbFI2CU_.js} +1 -1
  2. package/lib/browser/{awaiter-EvoLkoA-.cjs → awaiter-YRNWppS-.cjs} +1 -1
  3. package/lib/browser/block-wrapper-7ZGQAl5W.cjs +1 -0
  4. package/lib/browser/block-wrapper-_4lEInw9.js +51 -0
  5. package/lib/browser/blocks/form/form/form.vue.d.ts +3 -3
  6. package/lib/browser/blocks/form/input/input.vue.d.ts +3 -3
  7. package/lib/browser/component-ref-A2Q0eDCA.cjs +1 -0
  8. package/lib/browser/component-ref-S2rn5_QV.js +185 -0
  9. package/lib/browser/components/content/components/enable-editor.vue.d.ts +9 -9
  10. package/lib/browser/components/content/components/styles.vue.d.ts +3 -3
  11. package/lib/browser/components/content/content.vue.d.ts +9 -9
  12. package/lib/browser/components/content-variants/content-variants.vue.d.ts +9 -9
  13. package/lib/browser/components/inlined-script.vue.d.ts +3 -3
  14. package/lib/browser/components/inlined-styles.vue.d.ts +3 -3
  15. package/lib/browser/constants/sdk-version.d.ts +1 -1
  16. package/lib/browser/functions/evaluate/evaluate.d.ts +1 -1
  17. package/lib/browser/functions/evaluate/helpers.d.ts +9 -1
  18. package/lib/browser/functions/get-block-actions-handler.d.ts +2 -0
  19. package/lib/browser/functions/get-block-actions.d.ts +2 -0
  20. package/lib/browser/get-block-properties-PbwnoRP4.cjs +1 -0
  21. package/lib/{edge/get-block-properties-oCaILy-t.js → browser/get-block-properties-Y9GlYFTe.js} +9 -7
  22. package/lib/browser/{index-ePDYAZ6K.js → index-HPQgrUEC.js} +427 -411
  23. package/lib/browser/index-OpNLmfCu.cjs +334 -0
  24. package/lib/browser/index.cjs +1 -1
  25. package/lib/browser/index.mjs +1 -1
  26. package/lib/browser/{live-edit-chiC8ikS.js → live-edit-8F1riCsR.js} +1 -1
  27. package/lib/browser/{live-edit-DW8AQ7OF.cjs → live-edit-tMAUVH2B.cjs} +1 -1
  28. package/lib/browser/{repeated-block-xZMeXElb.js → repeated-block-C21nYjNB.js} +2 -2
  29. package/lib/browser/{repeated-block-2KQQbmA4.cjs → repeated-block-YesIuQQG.cjs} +1 -1
  30. package/lib/browser/{style-wrapper-WGd4Chxy.js → style-wrapper-6gB537kz.js} +1 -1
  31. package/lib/browser/{style-wrapper-qFjrPlxq.cjs → style-wrapper-toT_b35_.cjs} +1 -1
  32. package/lib/browser/style.css +1 -1
  33. package/lib/edge/{awaiter-oif9kJRe.cjs → awaiter-GbCbMdxs.cjs} +1 -1
  34. package/lib/edge/{awaiter-C9m9dHFI.js → awaiter-Z1Aho-Tf.js} +1 -1
  35. package/lib/edge/block-wrapper-SGs68mW-.cjs +1 -0
  36. package/lib/edge/block-wrapper-sP32aCJj.js +50 -0
  37. package/lib/edge/blocks/form/form/form.vue.d.ts +3 -3
  38. package/lib/edge/blocks/form/input/input.vue.d.ts +3 -3
  39. package/lib/edge/component-ref-1HNLmjNP.cjs +1 -0
  40. package/lib/edge/component-ref-v3RKtvga.js +184 -0
  41. package/lib/edge/components/content/components/enable-editor.vue.d.ts +9 -9
  42. package/lib/edge/components/content/components/styles.vue.d.ts +3 -3
  43. package/lib/edge/components/content/content.vue.d.ts +9 -9
  44. package/lib/edge/components/content-variants/content-variants.vue.d.ts +9 -9
  45. package/lib/edge/components/inlined-script.vue.d.ts +3 -3
  46. package/lib/edge/components/inlined-styles.vue.d.ts +3 -3
  47. package/lib/edge/constants/sdk-version.d.ts +1 -1
  48. package/lib/edge/functions/evaluate/evaluate.d.ts +1 -1
  49. package/lib/edge/functions/evaluate/helpers.d.ts +9 -1
  50. package/lib/edge/functions/get-block-actions-handler.d.ts +2 -0
  51. package/lib/edge/functions/get-block-actions.d.ts +2 -0
  52. package/lib/{browser/get-block-properties-iI7YmUch.js → edge/get-block-properties-O8BCJSao.js} +17 -17
  53. package/lib/edge/get-block-properties-ju6Fj919.cjs +1 -0
  54. package/lib/edge/{index-HFOGs4Hj.cjs → index-FjhQsct4.cjs} +16 -16
  55. package/lib/edge/{index-1frz5lkv.js → index-x6Hu33ce.js} +784 -768
  56. package/lib/edge/index.cjs +1 -1
  57. package/lib/edge/index.mjs +1 -1
  58. package/lib/{node/live-edit-aXbmFIfP.cjs → edge/live-edit-VsbDXDK9.cjs} +1 -1
  59. package/lib/edge/{live-edit-zALqI-9F.js → live-edit-v7-_17wH.js} +1 -1
  60. package/lib/{node/repeated-block-mSU_Cjr_.js → edge/repeated-block-gmtzy89x.js} +2 -2
  61. package/lib/edge/{repeated-block-Ee9Tm3uw.cjs → repeated-block-ic1FaN4o.cjs} +1 -1
  62. package/lib/edge/{style-wrapper-c3dw8riH.js → style-wrapper-DFS-znzq.js} +1 -1
  63. package/lib/edge/{style-wrapper-4MZw2Z4C.cjs → style-wrapper-Xaty5j6j.cjs} +1 -1
  64. package/lib/edge/style.css +1 -1
  65. package/lib/node/{awaiter-zW9jRrYG.cjs → awaiter-7GQ8utUb.cjs} +1 -1
  66. package/lib/node/{awaiter-excNZ5hj.js → awaiter-MB_eWqp9.js} +1 -1
  67. package/lib/node/block-wrapper--M33E0VG.cjs +1 -0
  68. package/lib/node/block-wrapper-P5y87ZAx.js +50 -0
  69. package/lib/node/blocks/form/form/form.vue.d.ts +3 -3
  70. package/lib/node/blocks/form/input/input.vue.d.ts +3 -3
  71. package/lib/node/component-ref-KETj2JRL.cjs +1 -0
  72. package/lib/node/component-ref-RUGITshe.js +185 -0
  73. package/lib/node/components/content/components/enable-editor.vue.d.ts +9 -9
  74. package/lib/node/components/content/components/styles.vue.d.ts +3 -3
  75. package/lib/node/components/content/content.vue.d.ts +9 -9
  76. package/lib/node/components/content-variants/content-variants.vue.d.ts +9 -9
  77. package/lib/node/components/inlined-script.vue.d.ts +3 -3
  78. package/lib/node/components/inlined-styles.vue.d.ts +3 -3
  79. package/lib/node/constants/sdk-version.d.ts +1 -1
  80. package/lib/node/functions/evaluate/evaluate.d.ts +1 -1
  81. package/lib/node/functions/evaluate/helpers.d.ts +9 -1
  82. package/lib/node/functions/get-block-actions-handler.d.ts +2 -0
  83. package/lib/node/functions/get-block-actions.d.ts +2 -0
  84. package/lib/node/{get-block-properties-Mb4zG5TJ.js → get-block-properties-Ec9Kj4p7.js} +18 -17
  85. package/lib/node/get-block-properties-Z9QEqFjm.cjs +1 -0
  86. package/lib/node/{index-eR1W_62s.js → index-TvY2gce_.js} +696 -894
  87. package/lib/node/{index-tfY1dYSa.cjs → index-WS6d-d4F.cjs} +30 -30
  88. package/lib/node/index.cjs +1 -1
  89. package/lib/node/index.mjs +11 -11
  90. package/lib/node/init.cjs +1 -1
  91. package/lib/node/init.mjs +1 -1
  92. package/lib/node/{live-edit-o65mqvJD.js → live-edit-61Hzovyk.js} +1 -1
  93. package/lib/{edge/live-edit-Iys2OcAx.cjs → node/live-edit-Jp1PzpUr.cjs} +1 -1
  94. package/lib/node/{repeated-block-37s5osdr.cjs → repeated-block-9JRCsGOV.cjs} +1 -1
  95. package/lib/{edge/repeated-block-7Kc2eLpq.js → node/repeated-block-Nh0O2sxg.js} +2 -2
  96. package/lib/node/should-force-browser-runtime-in-node-ghF-DZhu.js +503 -0
  97. package/lib/node/should-force-browser-runtime-in-node-xByMtVKh.cjs +48 -0
  98. package/lib/node/{style-wrapper-3JIrc4dO.cjs → style-wrapper-rXB6kp1P.cjs} +1 -1
  99. package/lib/node/{style-wrapper-5KYeK0ik.js → style-wrapper-y344qWFp.js} +10 -10
  100. package/lib/node/style.css +1 -1
  101. package/package.json +1 -1
  102. package/lib/browser/block-wrapper-7_N4V3w6.js +0 -44
  103. package/lib/browser/block-wrapper-RtyEgmfY.cjs +0 -1
  104. package/lib/browser/component-ref-TD-MkgTS.cjs +0 -1
  105. package/lib/browser/component-ref-br7lvgH4.js +0 -178
  106. package/lib/browser/get-block-properties-p2HBwDQ1.cjs +0 -1
  107. package/lib/browser/index-s0tL4FL7.cjs +0 -334
  108. package/lib/edge/block-wrapper-WxMXMCAh.js +0 -43
  109. package/lib/edge/block-wrapper-cR5tGys5.cjs +0 -1
  110. package/lib/edge/component-ref-m5Kyhqf9.cjs +0 -1
  111. package/lib/edge/component-ref-v_a0xkUh.js +0 -177
  112. package/lib/edge/get-block-properties-8MeUldw3.cjs +0 -1
  113. package/lib/node/block-wrapper-bkv_QgId.js +0 -43
  114. package/lib/node/block-wrapper-ywFGBqs7.cjs +0 -1
  115. package/lib/node/component-ref-RVkeY7E2.cjs +0 -1
  116. package/lib/node/component-ref-nfCUEPmF.js +0 -178
  117. package/lib/node/get-block-properties-o8p6cp5S.cjs +0 -1
  118. package/lib/node/should-force-browser-runtime-in-node-1vTKsoso.cjs +0 -48
  119. package/lib/node/should-force-browser-runtime-in-node-ikxWrCvn.js +0 -277
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-tfY1dYSa.cjs"),t=require("./should-force-browser-runtime-in-node-1vTKsoso.cjs");exports.Blocks=e.Blocks;exports.BuilderContext=e.BuilderContext;exports.Button=e.Button;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.Fragment=e.Fragment;exports.Image=e.Image;exports.Section=e.Section;exports.Symbol=e.Symbol;exports.Text=e.Text;exports.Video=e.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.isPreviewing=e.isPreviewing;exports.register=e.register;exports.registerAction=e.registerAction;exports.setClientUserAttributes=e.setClientUserAttributes;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;exports.isEditing=t.isEditing;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-WS6d-d4F.cjs"),t=require("./should-force-browser-runtime-in-node-xByMtVKh.cjs");exports.Blocks=e.Blocks;exports.BuilderContext=e.BuilderContext;exports.Button=e.Button;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.Fragment=e.Fragment;exports.Image=e.Image;exports.Section=e.Section;exports.Symbol=e.Symbol;exports.Text=e.Text;exports.Video=e.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.isPreviewing=e.isPreviewing;exports.register=e.register;exports.registerAction=e.registerAction;exports.setClientUserAttributes=e.setClientUserAttributes;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.isEditing=t.isEditing;exports.track=t.track;
@@ -1,11 +1,11 @@
1
- import { m as t, b as a, k as r, C as i, n as o, F as n, I as c, S as g, l, T as m, V as u, z as d, p as C, y as p, A as b, D as f, u as h, o as x, r as B, q as E, s as S, t as k, x as y, v as A } from "./index-eR1W_62s.js";
2
- import { h as T } from "./should-force-browser-runtime-in-node-ikxWrCvn.js";
1
+ import { m as t, b as a, k as r, C as o, n as i, F as n, I as c, S as g, l, T as m, V as u, y as d, p as C, x as p, z as b, A as f, u as x, o as B, r as E, q as S, s as h, t as k, v as y } from "./index-TvY2gce_.js";
2
+ import { o as P, t as T } from "./should-force-browser-runtime-in-node-ghF-DZhu.js";
3
3
  export {
4
4
  t as Blocks,
5
5
  a as BuilderContext,
6
6
  r as Button,
7
- i as Columns,
8
- o as Content,
7
+ o as Columns,
8
+ i as Content,
9
9
  n as Fragment,
10
10
  c as Image,
11
11
  g as Section,
@@ -17,13 +17,13 @@ export {
17
17
  p as fetchBuilderProps,
18
18
  b as fetchEntries,
19
19
  f as fetchOneEntry,
20
- h as getBuilderSearchParams,
21
- T as isEditing,
22
- x as isPreviewing,
23
- B as register,
24
- E as registerAction,
25
- S as setClientUserAttributes,
20
+ x as getBuilderSearchParams,
21
+ P as isEditing,
22
+ B as isPreviewing,
23
+ E as register,
24
+ S as registerAction,
25
+ h as setClientUserAttributes,
26
26
  k as setEditorSettings,
27
27
  y as subscribeToEditor,
28
- A as track
28
+ T as track
29
29
  };
package/lib/node/init.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./should-force-browser-runtime-in-node-1vTKsoso.cjs"),t=require("isolated-vm"),n=i=>{if(e.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:o}=i||{};e.setIvm(t,o)};exports.initializeNodeRuntime=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./should-force-browser-runtime-in-node-xByMtVKh.cjs"),t=require("isolated-vm"),n=i=>{if(e.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:o}=i||{};e.setIvm(t,o)};exports.initializeNodeRuntime=n;
package/lib/node/init.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { s as t, k as e } from "./should-force-browser-runtime-in-node-ikxWrCvn.js";
1
+ import { s as t, u as e } from "./should-force-browser-runtime-in-node-ghF-DZhu.js";
2
2
  import r from "isolated-vm";
3
3
  const m = (o) => {
4
4
  if (t({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as o, openBlock as r, createBlock as n, resolveDynamicComponent as i, mergeProps as s, withCtx as p, renderSlot as a } from "vue";
2
2
  import { f as c } from "./find-block-3Ig0kVVe.js";
3
- import { b as d, _ as l } from "./index-eR1W_62s.js";
3
+ import { b as d, _ as l } from "./index-TvY2gce_.js";
4
4
  const m = o({
5
5
  name: "live-edit",
6
6
  props: ["id", "attributes", "Wrapper"],
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),r=require("./find-block-FREohLcp.cjs"),n=require("./index-HFOGs4Hj.cjs"),i=t.defineComponent({name:"live-edit",props:["id","attributes","Wrapper"],inject:{context:n.BuilderContext.key},computed:{block(){return r.findBlockById(this.context.content,this.id)},options(){var e,o;return((o=(e=this.block)==null?void 0:e.component)==null?void 0:o.options)||{}}}});function s(e,o,p,u,d,a){return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.Wrapper),t.mergeProps({attributes:e.attributes},e.options),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["attributes"])}const c=n._export_sfc(i,[["render",s]]);exports.default=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),r=require("./find-block-FREohLcp.cjs"),n=require("./index-WS6d-d4F.cjs"),i=t.defineComponent({name:"live-edit",props:["id","attributes","Wrapper"],inject:{context:n.BuilderContext.key},computed:{block(){return r.findBlockById(this.context.content,this.id)},options(){var e,o;return((o=(e=this.block)==null?void 0:e.component)==null?void 0:o.options)||{}}}});function s(e,o,p,u,d,a){return t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.Wrapper),t.mergeProps({attributes:e.attributes},e.options),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["attributes"])}const c=n._export_sfc(i,[["render",s]]);exports.default=c;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),t=require("./index-tfY1dYSa.cjs"),r=()=>Promise.resolve().then(()=>require("./index-tfY1dYSa.cjs")).then(e=>e.block).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component Block at ../block.vue",e),e}),c=o.defineComponent({name:"repeated-block",components:{Block:o.defineAsyncComponent(r)},props:["repeatContext","block","registeredComponents","linkComponent"],data(){return{store:this.repeatContext}},provide(){const e=this;return{[t.BuilderContext.key]:e.store}},watch:{onUpdateHook0:{handler(){this.store=this.repeatContext},immediate:!0}},computed:{onUpdateHook0(){return{0:this.repeatContext}}}});function s(e,p,l,a,d,m){const n=o.resolveComponent("Block");return o.openBlock(),o.createBlock(n,{block:e.block,context:e.store,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},null,8,["block","context","registeredComponents","linkComponent"])}const i=t._export_sfc(c,[["render",s]]);exports.default=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),t=require("./index-WS6d-d4F.cjs"),r=()=>Promise.resolve().then(()=>require("./index-WS6d-d4F.cjs")).then(e=>e.block).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component Block at ../block.vue",e),e}),c=o.defineComponent({name:"repeated-block",components:{Block:o.defineAsyncComponent(r)},props:["repeatContext","block","registeredComponents","linkComponent"],data(){return{store:this.repeatContext}},provide(){const e=this;return{[t.BuilderContext.key]:e.store}},watch:{onUpdateHook0:{handler(){this.store=this.repeatContext},immediate:!0}},computed:{onUpdateHook0(){return{0:this.repeatContext}}}});function s(e,p,l,a,d,m){const n=o.resolveComponent("Block");return o.openBlock(),o.createBlock(n,{block:e.block,context:e.store,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},null,8,["block","context","registeredComponents","linkComponent"])}const i=t._export_sfc(c,[["render",s]]);exports.default=i;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as t, defineAsyncComponent as n, resolveComponent as r, openBlock as p, createBlock as s } from "vue";
2
- import { b as c, _ as i } from "./index-1frz5lkv.js";
3
- const a = () => import("./index-1frz5lkv.js").then((e) => e.K).then((e) => e.default).catch((e) => {
2
+ import { b as c, _ as i } from "./index-TvY2gce_.js";
3
+ const a = () => import("./index-TvY2gce_.js").then((e) => e.E).then((e) => e.default).catch((e) => {
4
4
  throw console.error(
5
5
  "Error while attempting to dynamically import component Block at ../block.vue",
6
6
  e
@@ -0,0 +1,503 @@
1
+ import { createRequire } from "node:module";
2
+ const TARGET = "vue", MSG_PREFIX = "[Builder.io]: ", logger = {
3
+ log: (...e) => console.log(MSG_PREFIX, ...e),
4
+ error: (...e) => console.error(MSG_PREFIX, ...e),
5
+ warn: (...e) => console.warn(MSG_PREFIX, ...e),
6
+ debug: (...e) => console.debug(MSG_PREFIX, ...e)
7
+ };
8
+ function isBrowser() {
9
+ return typeof window < "u" && typeof document < "u";
10
+ }
11
+ const convertSearchParamsToQueryObject = (e) => {
12
+ const t = {};
13
+ return e.forEach((r, o) => {
14
+ t[o] = r;
15
+ }), t;
16
+ }, normalizeSearchParams = (e) => e instanceof URLSearchParams ? convertSearchParamsToQueryObject(e) : e, getSearchString = (e) => typeof e == "string" ? e : e instanceof URLSearchParams ? e.toString() : new URLSearchParams(e).toString();
17
+ function isIframe() {
18
+ return isBrowser() && window.self !== window.top;
19
+ }
20
+ function isEditing(e) {
21
+ return isIframe() && // accessing window.location.search is safe here because `isIframe()` is only `true` if we're in a browser.
22
+ getSearchString(e || window.location.search).indexOf("builder.frameEditing=") !== -1;
23
+ }
24
+ const getLocation = () => {
25
+ if (isBrowser()) {
26
+ const e = new URL(location.href);
27
+ return e.pathname === "" && (e.pathname = "/"), e;
28
+ } else
29
+ return console.warn("Cannot get location for tracking in non-browser environment"), null;
30
+ }, getUserAgent = () => typeof navigator == "object" && navigator.userAgent || "", getUserAttributes = () => {
31
+ const e = getUserAgent(), t = {
32
+ Android() {
33
+ return e.match(/Android/i);
34
+ },
35
+ BlackBerry() {
36
+ return e.match(/BlackBerry/i);
37
+ },
38
+ iOS() {
39
+ return e.match(/iPhone|iPod/i);
40
+ },
41
+ Opera() {
42
+ return e.match(/Opera Mini/i);
43
+ },
44
+ Windows() {
45
+ return e.match(/IEMobile/i) || e.match(/WPDesktop/i);
46
+ },
47
+ any() {
48
+ return t.Android() || t.BlackBerry() || t.iOS() || t.Opera() || t.Windows() || TARGET === "reactNative";
49
+ }
50
+ }, r = e.match(/Tablet|iPad/i), o = getLocation();
51
+ return {
52
+ urlPath: o == null ? void 0 : o.pathname,
53
+ host: (o == null ? void 0 : o.host) || (o == null ? void 0 : o.hostname),
54
+ device: r ? "tablet" : t.any() ? "mobile" : "desktop"
55
+ };
56
+ }, SDK_VERSION = "5.1.1", getSdkHeaders = () => ({
57
+ "X-Builder-SDK": TARGET,
58
+ "X-Builder-SDK-GEN": "2",
59
+ "X-Builder-SDK-Version": SDK_VERSION
60
+ }), checkIsDefined = (e) => e != null, getTopLevelDomain = (e) => {
61
+ if (e === "localhost" || e === "127.0.0.1")
62
+ return e;
63
+ const t = e.split(".");
64
+ return t.length > 2 ? t.slice(1).join(".") : e;
65
+ }, getCookieSync = ({
66
+ name: e,
67
+ canTrack: t
68
+ }) => {
69
+ var r;
70
+ try {
71
+ return t ? (r = document.cookie.split("; ").find((o) => o.startsWith(`${e}=`))) == null ? void 0 : r.split("=")[1] : void 0;
72
+ } catch (o) {
73
+ logger.warn("[COOKIE] GET error: ", (o == null ? void 0 : o.message) || o);
74
+ return;
75
+ }
76
+ }, getCookie = async (e) => getCookieSync(e), stringifyCookie = (e) => e.map(([t, r]) => r ? `${t}=${r}` : t).filter(checkIsDefined).join("; "), SECURE_CONFIG = [["secure", ""], ["SameSite", "None"]], createCookieString = ({
77
+ name: e,
78
+ value: t,
79
+ expires: r
80
+ }) => {
81
+ const n = (isBrowser() ? location.protocol === "https:" : !0) ? SECURE_CONFIG : [[]], s = r ? [["expires", r.toUTCString()]] : [[]], i = [[e, t], ...s, ["path", "/"], ["domain", getTopLevelDomain(window.location.hostname)], ...n];
82
+ return stringifyCookie(i);
83
+ }, setCookie = async ({
84
+ name: e,
85
+ value: t,
86
+ expires: r,
87
+ canTrack: o
88
+ }) => {
89
+ try {
90
+ if (!o)
91
+ return;
92
+ const n = createCookieString({
93
+ name: e,
94
+ value: t,
95
+ expires: r
96
+ });
97
+ document.cookie = n;
98
+ } catch (n) {
99
+ logger.warn("[COOKIE] SET error: ", (n == null ? void 0 : n.message) || n);
100
+ }
101
+ };
102
+ function uuidv4() {
103
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
104
+ const t = Math.random() * 16 | 0;
105
+ return (e == "x" ? t : t & 3 | 8).toString(16);
106
+ });
107
+ }
108
+ function uuid() {
109
+ return uuidv4().replace(/-/g, "");
110
+ }
111
+ const SESSION_LOCAL_STORAGE_KEY = "builderSessionId", getSessionId = async ({
112
+ canTrack: e
113
+ }) => {
114
+ if (!e)
115
+ return;
116
+ const t = await getCookie({
117
+ name: SESSION_LOCAL_STORAGE_KEY,
118
+ canTrack: e
119
+ });
120
+ if (checkIsDefined(t))
121
+ return t;
122
+ {
123
+ const r = createSessionId();
124
+ return setSessionId({
125
+ id: r,
126
+ canTrack: e
127
+ }), r;
128
+ }
129
+ }, createSessionId = () => uuid(), setSessionId = ({
130
+ id: e,
131
+ canTrack: t
132
+ }) => setCookie({
133
+ name: SESSION_LOCAL_STORAGE_KEY,
134
+ value: e,
135
+ canTrack: t
136
+ }), getLocalStorage = () => isBrowser() && typeof localStorage < "u" ? localStorage : void 0, getLocalStorageItem = ({
137
+ key: e,
138
+ canTrack: t
139
+ }) => {
140
+ var r;
141
+ try {
142
+ return t ? (r = getLocalStorage()) == null ? void 0 : r.getItem(e) : void 0;
143
+ } catch (o) {
144
+ console.debug("[LocalStorage] GET error: ", o);
145
+ return;
146
+ }
147
+ }, setLocalStorageItem = ({
148
+ key: e,
149
+ canTrack: t,
150
+ value: r
151
+ }) => {
152
+ var o;
153
+ try {
154
+ t && ((o = getLocalStorage()) == null || o.setItem(e, r));
155
+ } catch (n) {
156
+ console.debug("[LocalStorage] SET error: ", n);
157
+ }
158
+ }, VISITOR_LOCAL_STORAGE_KEY = "builderVisitorId", getVisitorId = ({
159
+ canTrack: e
160
+ }) => {
161
+ if (!e)
162
+ return;
163
+ const t = getLocalStorageItem({
164
+ key: VISITOR_LOCAL_STORAGE_KEY,
165
+ canTrack: e
166
+ });
167
+ if (checkIsDefined(t))
168
+ return t;
169
+ {
170
+ const r = createVisitorId();
171
+ return setVisitorId({
172
+ id: r,
173
+ canTrack: e
174
+ }), r;
175
+ }
176
+ }, createVisitorId = () => uuid(), setVisitorId = ({
177
+ id: e,
178
+ canTrack: t
179
+ }) => setLocalStorageItem({
180
+ key: VISITOR_LOCAL_STORAGE_KEY,
181
+ value: e,
182
+ canTrack: t
183
+ });
184
+ function logFetch(e) {
185
+ var t;
186
+ typeof process < "u" && ((t = process.env) != null && t.DEBUG) && String(process.env.DEBUG) == "true" && logger.log(e);
187
+ }
188
+ const getTrackingEventData = async ({
189
+ canTrack: e
190
+ }) => {
191
+ if (!e)
192
+ return {
193
+ visitorId: void 0,
194
+ sessionId: void 0
195
+ };
196
+ const t = await getSessionId({
197
+ canTrack: e
198
+ }), r = getVisitorId({
199
+ canTrack: e
200
+ });
201
+ return {
202
+ sessionId: t,
203
+ visitorId: r
204
+ };
205
+ }, createEvent = async ({
206
+ type: e,
207
+ canTrack: t,
208
+ apiKey: r,
209
+ metadata: o,
210
+ ...n
211
+ }) => ({
212
+ type: e,
213
+ data: {
214
+ ...n,
215
+ metadata: {
216
+ url: location.href,
217
+ ...o
218
+ },
219
+ ...await getTrackingEventData({
220
+ canTrack: t
221
+ }),
222
+ userAttributes: getUserAttributes(),
223
+ ownerId: r
224
+ }
225
+ });
226
+ async function _track({
227
+ apiHost: e,
228
+ ...t
229
+ }) {
230
+ if (!t.apiKey) {
231
+ logger.error("Missing API key for track call. Please provide your API key.");
232
+ return;
233
+ }
234
+ if (!t.canTrack || isEditing() || !(isBrowser() || TARGET === "reactNative"))
235
+ return;
236
+ const o = `${e || "https://cdn.builder.io"}/api/v1/track`;
237
+ return logFetch(o), fetch(o, {
238
+ method: "POST",
239
+ body: JSON.stringify({
240
+ events: [await createEvent(t)]
241
+ }),
242
+ headers: {
243
+ "content-type": "application/json",
244
+ ...getSdkHeaders()
245
+ },
246
+ mode: "cors"
247
+ }).catch((n) => {
248
+ console.error("Failed to track: ", n);
249
+ });
250
+ }
251
+ const track = (e) => _track({
252
+ ...e,
253
+ canTrack: !0
254
+ }), getFunctionArguments = ({
255
+ builder: e,
256
+ context: t,
257
+ event: r,
258
+ state: o
259
+ }) => Object.entries({
260
+ state: o,
261
+ Builder: e,
262
+ // legacy
263
+ builder: e,
264
+ context: t,
265
+ event: r
266
+ }), getBuilderGlobals = (e) => ({
267
+ isEditing: isEditing(),
268
+ isBrowser: isBrowser(),
269
+ isServer: !isBrowser(),
270
+ getUserAttributes: () => getUserAttributes(),
271
+ trackConversion: (t, r) => {
272
+ !(e != null && e.apiKey) || (e == null ? void 0 : e.canTrack) === !1 || _track({
273
+ type: "conversion",
274
+ apiKey: e.apiKey,
275
+ canTrack: e.canTrack ?? !0,
276
+ contentId: e.contentId,
277
+ variationId: e.variationId !== e.contentId ? e.variationId : void 0,
278
+ metadata: {
279
+ ...r || {},
280
+ ...t !== void 0 ? {
281
+ amount: t
282
+ } : {}
283
+ }
284
+ });
285
+ }
286
+ }), parseCode = (e, {
287
+ isExpression: t = !0
288
+ }) => /* we disable this for cases where we definitely don't want a return */ t && !(e.includes(";") || e.includes(" return ") || e.trim().startsWith("return ")) ? `return (${e});` : e;
289
+ function flattenState({
290
+ rootState: e,
291
+ localState: t,
292
+ rootSetState: r
293
+ }) {
294
+ return new Proxy(e, {
295
+ get: (o, n) => {
296
+ if (t && n in t)
297
+ return t[n];
298
+ const s = o[n];
299
+ return typeof s == "object" && s !== null ? flattenState({
300
+ rootState: s,
301
+ localState: void 0,
302
+ rootSetState: r ? (i) => {
303
+ o[n] = i, r(o);
304
+ } : void 0
305
+ }) : s;
306
+ },
307
+ set: (o, n, s) => {
308
+ if (t && n in t)
309
+ throw new Error("Writing to local state is not allowed as it is read-only.");
310
+ return o[n] = s, r == null || r(o), !0;
311
+ }
312
+ });
313
+ }
314
+ const SDK_NAME_FOR_TARGET = (() => {
315
+ switch (TARGET) {
316
+ case "rsc":
317
+ return "react-nextjs";
318
+ case "reactNative":
319
+ return "react-native";
320
+ default:
321
+ return TARGET;
322
+ }
323
+ })(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, fastClone = (e) => JSON.parse(JSON.stringify(e)), set = (e, t, r) => {
324
+ if (Object(e) !== e)
325
+ return e;
326
+ const o = Array.isArray(t) ? t : t.toString().match(/[^.[\]]+/g);
327
+ 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;
328
+ }, noop = () => {
329
+ };
330
+ let safeDynamicRequire = noop;
331
+ try {
332
+ safeDynamicRequire = createRequire(import.meta.url);
333
+ } catch (error) {
334
+ try {
335
+ safeDynamicRequire = eval("require");
336
+ } catch (e) {
337
+ }
338
+ }
339
+ const getSyncValName = (e) => `bldr_${e}_sync`, BUILDER_SET_STATE_NAME = "BUILDER_SET_STATE", INJECTED_IVM_GLOBAL = "BUILDER_IVM", REF_TO_PROXY_FN = `
340
+ var refToProxy = (obj) => {
341
+ if (typeof obj !== 'object' || obj === null) {
342
+ return obj;
343
+ }
344
+ return new Proxy({}, {
345
+ get(target, key) {
346
+ if (key === 'copySync') {
347
+ return () => obj.copySync();
348
+ }
349
+ const val = obj.getSync(key);
350
+ if (typeof val?.getSync === 'function') {
351
+ return refToProxy(val);
352
+ }
353
+ return val;
354
+ },
355
+ set(target, key, value) {
356
+ const v = typeof value === 'object' ? new ${INJECTED_IVM_GLOBAL}.Reference(value) : value;
357
+ obj.setSync(key, v);
358
+ ${BUILDER_SET_STATE_NAME}(key, value)
359
+ },
360
+ deleteProperty(target, key) {
361
+ obj.deleteSync(key);
362
+ }
363
+ })
364
+ }
365
+ `, processCode = ({
366
+ code: e,
367
+ args: t
368
+ }) => {
369
+ const r = t.map(([o]) => `var ${o} = refToProxy(${getSyncValName(o)}); `).join("");
370
+ return `
371
+ ${REF_TO_PROXY_FN}
372
+ ${r}
373
+ function theFunction() {
374
+ ${e}
375
+ }
376
+
377
+ const output = theFunction()
378
+
379
+ if (typeof output === 'object' && output !== null) {
380
+ return JSON.stringify(output.copySync ? output.copySync() : output);
381
+ } else {
382
+ return output;
383
+ }
384
+ `;
385
+ };
386
+ let IVM_INSTANCE = null, IVM_OPTIONS = {
387
+ memoryLimit: 128
388
+ };
389
+ const setIvm = (e, t) => {
390
+ IVM_INSTANCE || (IVM_INSTANCE = e, t && (IVM_OPTIONS = t));
391
+ }, 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 = () => {
392
+ try {
393
+ if (IVM_INSTANCE)
394
+ return IVM_INSTANCE;
395
+ const t = safeDynamicRequire("isolated-vm");
396
+ if (t)
397
+ return t;
398
+ } catch (t) {
399
+ logger.error("isolated-vm import error.", t);
400
+ }
401
+ const e = `${MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
402
+
403
+ SOLUTION: In a server-only execution path within your application, do one of the following:
404
+
405
+ ${SHOULD_MENTION_INITIALIZE_SCRIPT ? `- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".` : ""}
406
+ - add the following import: \`await import('isolated-vm')\`.
407
+
408
+ For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
409
+ throw new Error(e);
410
+ }, runInNode = ({
411
+ code: e,
412
+ builder: t,
413
+ context: r,
414
+ event: o,
415
+ localState: n,
416
+ rootSetState: s,
417
+ rootState: i
418
+ }) => {
419
+ const d = getIvm();
420
+ let l;
421
+ try {
422
+ l = new d.Isolate(IVM_OPTIONS);
423
+ const f = l.createContextSync(), a = f.global;
424
+ a.setSync("global", a.derefInto()), a.setSync("log", function(...c) {
425
+ console.log(...c);
426
+ }), a.setSync(INJECTED_IVM_GLOBAL, d);
427
+ const I = fastClone({
428
+ ...i,
429
+ ...n
430
+ }), g = getFunctionArguments({
431
+ builder: t,
432
+ context: r,
433
+ event: o,
434
+ state: I
435
+ });
436
+ a.setSync(BUILDER_SET_STATE_NAME, function(c, u) {
437
+ set(i, c, u), s == null || s(i);
438
+ }), g.forEach(([c, u]) => {
439
+ const y = typeof u == "object" ? new d.Reference(
440
+ // workaround: methods with default values for arguments is not being cloned over
441
+ c === "builder" ? {
442
+ ...u,
443
+ getUserAttributes: () => u.getUserAttributes()
444
+ } : u
445
+ ) : null;
446
+ a.setSync(getSyncValName(c), y);
447
+ });
448
+ const E = processCode({
449
+ code: e,
450
+ args: g
451
+ }), S = f.evalClosureSync(E);
452
+ try {
453
+ return JSON.parse(S);
454
+ } catch {
455
+ return S;
456
+ }
457
+ } finally {
458
+ if (l)
459
+ try {
460
+ l.dispose();
461
+ } catch {
462
+ }
463
+ }
464
+ };
465
+ function isNodeRuntime() {
466
+ var e;
467
+ return typeof process < "u" && checkIsDefined((e = process == null ? void 0 : process.versions) == null ? void 0 : e.node);
468
+ }
469
+ const shouldForceBrowserRuntimeInNode = ({
470
+ shouldLogWarning: e
471
+ }) => {
472
+ var n;
473
+ if (!isNodeRuntime())
474
+ return !1;
475
+ const t = process.arch === "arm64", r = process.version.startsWith("v20"), o = (n = process.env.NODE_OPTIONS) == null ? void 0 : n.includes("--no-node-snapshot");
476
+ 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;
477
+ };
478
+ export {
479
+ SDK_VERSION as S,
480
+ TARGET as T,
481
+ _track as _,
482
+ getBuilderGlobals as a,
483
+ set as b,
484
+ fastClone as c,
485
+ getSearchString as d,
486
+ getCookieSync as e,
487
+ flattenState as f,
488
+ getFunctionArguments as g,
489
+ checkIsDefined as h,
490
+ isBrowser as i,
491
+ getCookie as j,
492
+ setCookie as k,
493
+ logger as l,
494
+ getSdkHeaders as m,
495
+ normalizeSearchParams as n,
496
+ isEditing as o,
497
+ parseCode as p,
498
+ logFetch as q,
499
+ runInNode as r,
500
+ shouldForceBrowserRuntimeInNode as s,
501
+ track as t,
502
+ setIvm as u
503
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";const node_module=require("node:module");var _documentCurrentScript=typeof document<"u"?document.currentScript:null;const TARGET="vue",MSG_PREFIX="[Builder.io]: ",logger={log:(...e)=>console.log(MSG_PREFIX,...e),error:(...e)=>console.error(MSG_PREFIX,...e),warn:(...e)=>console.warn(MSG_PREFIX,...e),debug:(...e)=>console.debug(MSG_PREFIX,...e)};function isBrowser(){return typeof window<"u"&&typeof document<"u"}const convertSearchParamsToQueryObject=e=>{const t={};return e.forEach((r,o)=>{t[o]=r}),t},normalizeSearchParams=e=>e instanceof URLSearchParams?convertSearchParamsToQueryObject(e):e,getSearchString=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function isIframe(){return isBrowser()&&window.self!==window.top}function isEditing(e){return isIframe()&&getSearchString(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const getLocation=()=>{if(isBrowser()){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},getUserAgent=()=>typeof navigator=="object"&&navigator.userAgent||"",getUserAttributes=()=>{const e=getUserAgent(),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()||TARGET==="reactNative"}},r=e.match(/Tablet|iPad/i),o=getLocation();return{urlPath:o==null?void 0:o.pathname,host:(o==null?void 0:o.host)||(o==null?void 0:o.hostname),device:r?"tablet":t.any()?"mobile":"desktop"}},SDK_VERSION="5.1.1",getSdkHeaders=()=>({"X-Builder-SDK":TARGET,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":SDK_VERSION}),checkIsDefined=e=>e!=null,getTopLevelDomain=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},getCookieSync=({name:e,canTrack:t})=>{var r;try{return t?(r=document.cookie.split("; ").find(o=>o.startsWith(`${e}=`)))==null?void 0:r.split("=")[1]:void 0}catch(o){logger.warn("[COOKIE] GET error: ",(o==null?void 0:o.message)||o);return}},getCookie=async e=>getCookieSync(e),stringifyCookie=e=>e.map(([t,r])=>r?`${t}=${r}`:t).filter(checkIsDefined).join("; "),SECURE_CONFIG=[["secure",""],["SameSite","None"]],createCookieString=({name:e,value:t,expires:r})=>{const n=(isBrowser()?location.protocol==="https:":!0)?SECURE_CONFIG:[[]],s=r?[["expires",r.toUTCString()]]:[[]],i=[[e,t],...s,["path","/"],["domain",getTopLevelDomain(window.location.hostname)],...n];return stringifyCookie(i)},setCookie=async({name:e,value:t,expires:r,canTrack:o})=>{try{if(!o)return;const n=createCookieString({name:e,value:t,expires:r});document.cookie=n}catch(n){logger.warn("[COOKIE] SET error: ",(n==null?void 0:n.message)||n)}};function uuidv4(){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 uuid(){return uuidv4().replace(/-/g,"")}const SESSION_LOCAL_STORAGE_KEY="builderSessionId",getSessionId=async({canTrack:e})=>{if(!e)return;const t=await getCookie({name:SESSION_LOCAL_STORAGE_KEY,canTrack:e});if(checkIsDefined(t))return t;{const r=createSessionId();return setSessionId({id:r,canTrack:e}),r}},createSessionId=()=>uuid(),setSessionId=({id:e,canTrack:t})=>setCookie({name:SESSION_LOCAL_STORAGE_KEY,value:e,canTrack:t}),getLocalStorage=()=>isBrowser()&&typeof localStorage<"u"?localStorage:void 0,getLocalStorageItem=({key:e,canTrack:t})=>{var r;try{return t?(r=getLocalStorage())==null?void 0:r.getItem(e):void 0}catch(o){console.debug("[LocalStorage] GET error: ",o);return}},setLocalStorageItem=({key:e,canTrack:t,value:r})=>{var o;try{t&&((o=getLocalStorage())==null||o.setItem(e,r))}catch(n){console.debug("[LocalStorage] SET error: ",n)}},VISITOR_LOCAL_STORAGE_KEY="builderVisitorId",getVisitorId=({canTrack:e})=>{if(!e)return;const t=getLocalStorageItem({key:VISITOR_LOCAL_STORAGE_KEY,canTrack:e});if(checkIsDefined(t))return t;{const r=createVisitorId();return setVisitorId({id:r,canTrack:e}),r}},createVisitorId=()=>uuid(),setVisitorId=({id:e,canTrack:t})=>setLocalStorageItem({key:VISITOR_LOCAL_STORAGE_KEY,value:e,canTrack:t});function logFetch(e){var t;typeof process<"u"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&logger.log(e)}const getTrackingEventData=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await getSessionId({canTrack:e}),r=getVisitorId({canTrack:e});return{sessionId:t,visitorId:r}},createEvent=async({type:e,canTrack:t,apiKey:r,metadata:o,...n})=>({type:e,data:{...n,metadata:{url:location.href,...o},...await getTrackingEventData({canTrack:t}),userAttributes:getUserAttributes(),ownerId:r}});async function _track({apiHost:e,...t}){if(!t.apiKey){logger.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||isEditing()||!(isBrowser()||TARGET==="reactNative"))return;const o=`${e||"https://cdn.builder.io"}/api/v1/track`;return logFetch(o),fetch(o,{method:"POST",body:JSON.stringify({events:[await createEvent(t)]}),headers:{"content-type":"application/json",...getSdkHeaders()},mode:"cors"}).catch(n=>{console.error("Failed to track: ",n)})}const track=e=>_track({...e,canTrack:!0}),getFunctionArguments=({builder:e,context:t,event:r,state:o})=>Object.entries({state:o,Builder:e,builder:e,context:t,event:r}),getBuilderGlobals=e=>({isEditing:isEditing(),isBrowser:isBrowser(),isServer:!isBrowser(),getUserAttributes:()=>getUserAttributes(),trackConversion:(t,r)=>{!(e!=null&&e.apiKey)||(e==null?void 0:e.canTrack)===!1||_track({type:"conversion",apiKey:e.apiKey,canTrack:e.canTrack??!0,contentId:e.contentId,variationId:e.variationId!==e.contentId?e.variationId:void 0,metadata:{...r||{},...t!==void 0?{amount:t}:{}}})}}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e;function flattenState({rootState:e,localState:t,rootSetState:r}){return new Proxy(e,{get:(o,n)=>{if(t&&n in t)return t[n];const s=o[n];return typeof s=="object"&&s!==null?flattenState({rootState:s,localState:void 0,rootSetState:r?i=>{o[n]=i,r(o)}:void 0}):s},set:(o,n,s)=>{if(t&&n in t)throw new Error("Writing to local state is not allowed as it is read-only.");return o[n]=s,r==null||r(o),!0}})}const SDK_NAME_FOR_TARGET=(()=>{switch(TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,r)=>{if(Object(e)!==e)return e;const o=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);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},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=node_module.createRequire(typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.src||new URL("should-force-browser-runtime-in-node-xByMtVKh.cjs",document.baseURI).href)}catch(error){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 r=t.map(([o])=>`var ${o} = refToProxy(${getSyncValName(o)}); `).join("");return`
28
+ ${REF_TO_PROXY_FN}
29
+ ${r}
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_OPTIONS={memoryLimit:128};const setIvm=(e,t)=>{IVM_INSTANCE||(IVM_INSTANCE=e,t&&(IVM_OPTIONS=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){logger.error("isolated-vm import error.",t)}const e=`${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)},runInNode=({code:e,builder:t,context:r,event:o,localState:n,rootSetState:s,rootState:i})=>{const d=getIvm();let l;try{l=new d.Isolate(IVM_OPTIONS);const g=l.createContextSync(),a=g.global;a.setSync("global",a.derefInto()),a.setSync("log",function(...c){console.log(...c)}),a.setSync(INJECTED_IVM_GLOBAL,d);const I=fastClone({...i,...n}),S=getFunctionArguments({builder:t,context:r,event:o,state:I});a.setSync(BUILDER_SET_STATE_NAME,function(c,u){set(i,c,u),s==null||s(i)}),S.forEach(([c,u])=>{const m=typeof u=="object"?new d.Reference(c==="builder"?{...u,getUserAttributes:()=>u.getUserAttributes()}:u):null;a.setSync(getSyncValName(c),m)});const p=processCode({code:e,args:S}),f=g.evalClosureSync(p);try{return JSON.parse(f)}catch{return f}}finally{if(l)try{l.dispose()}catch{}}};function isNodeRuntime(){var e;return typeof process<"u"&&checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const shouldForceBrowserRuntimeInNode=({shouldLogWarning:e})=>{var n;if(!isNodeRuntime())return!1;const t=process.arch==="arm64",r=process.version.startsWith("v20"),o=(n=process.env.NODE_OPTIONS)==null?void 0:n.includes("--no-node-snapshot");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};exports.SDK_VERSION=SDK_VERSION;exports.TARGET=TARGET;exports._track=_track;exports.checkIsDefined=checkIsDefined;exports.fastClone=fastClone;exports.flattenState=flattenState;exports.getBuilderGlobals=getBuilderGlobals;exports.getCookie=getCookie;exports.getCookieSync=getCookieSync;exports.getFunctionArguments=getFunctionArguments;exports.getSdkHeaders=getSdkHeaders;exports.getSearchString=getSearchString;exports.isBrowser=isBrowser;exports.isEditing=isEditing;exports.logFetch=logFetch;exports.logger=logger;exports.normalizeSearchParams=normalizeSearchParams;exports.parseCode=parseCode;exports.runInNode=runInNode;exports.set=set;exports.setCookie=setCookie;exports.setIvm=setIvm;exports.shouldForceBrowserRuntimeInNode=shouldForceBrowserRuntimeInNode;exports.track=track;