@builder.io/sdk-react-native 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 (126) hide show
  1. package/lib/browser/commonjs/components/block/components/block-wrapper.js +8 -1
  2. package/lib/browser/commonjs/components/block/components/block-wrapper.js.map +1 -1
  3. package/lib/browser/commonjs/components/block/components/interactive-element.js +8 -1
  4. package/lib/browser/commonjs/components/block/components/interactive-element.js.map +1 -1
  5. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  6. package/lib/browser/commonjs/functions/evaluate/evaluate.js +3 -2
  7. package/lib/browser/commonjs/functions/evaluate/evaluate.js.map +1 -1
  8. package/lib/browser/commonjs/functions/evaluate/helpers.js +21 -2
  9. package/lib/browser/commonjs/functions/evaluate/helpers.js.map +1 -1
  10. package/lib/browser/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  11. package/lib/browser/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  12. package/lib/browser/commonjs/functions/get-block-actions-handler.js +2 -1
  13. package/lib/browser/commonjs/functions/get-block-actions-handler.js.map +1 -1
  14. package/lib/browser/commonjs/functions/get-block-actions.js.map +1 -1
  15. package/lib/browser/module/components/block/components/block-wrapper.js +8 -1
  16. package/lib/browser/module/components/block/components/block-wrapper.js.map +1 -1
  17. package/lib/browser/module/components/block/components/interactive-element.js +8 -1
  18. package/lib/browser/module/components/block/components/interactive-element.js.map +1 -1
  19. package/lib/browser/module/constants/sdk-version.js +1 -1
  20. package/lib/browser/module/functions/evaluate/evaluate.js +3 -2
  21. package/lib/browser/module/functions/evaluate/evaluate.js.map +1 -1
  22. package/lib/browser/module/functions/evaluate/helpers.js +21 -2
  23. package/lib/browser/module/functions/evaluate/helpers.js.map +1 -1
  24. package/lib/browser/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  25. package/lib/browser/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  26. package/lib/browser/module/functions/get-block-actions-handler.js +2 -1
  27. package/lib/browser/module/functions/get-block-actions-handler.js.map +1 -1
  28. package/lib/browser/module/functions/get-block-actions.js.map +1 -1
  29. package/lib/browser/typescript/components/block/components/block-wrapper.d.ts.map +1 -1
  30. package/lib/browser/typescript/components/block/components/interactive-element.d.ts.map +1 -1
  31. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  32. package/lib/browser/typescript/functions/evaluate/evaluate.d.ts +1 -1
  33. package/lib/browser/typescript/functions/evaluate/evaluate.d.ts.map +1 -1
  34. package/lib/browser/typescript/functions/evaluate/helpers.d.ts +9 -1
  35. package/lib/browser/typescript/functions/evaluate/helpers.d.ts.map +1 -1
  36. package/lib/browser/typescript/functions/get-block-actions-handler.d.ts +2 -0
  37. package/lib/browser/typescript/functions/get-block-actions-handler.d.ts.map +1 -1
  38. package/lib/browser/typescript/functions/get-block-actions.d.ts +2 -0
  39. package/lib/browser/typescript/functions/get-block-actions.d.ts.map +1 -1
  40. package/lib/edge/commonjs/components/block/components/block-wrapper.js +8 -1
  41. package/lib/edge/commonjs/components/block/components/block-wrapper.js.map +1 -1
  42. package/lib/edge/commonjs/components/block/components/interactive-element.js +8 -1
  43. package/lib/edge/commonjs/components/block/components/interactive-element.js.map +1 -1
  44. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  45. package/lib/edge/commonjs/functions/evaluate/evaluate.js +3 -2
  46. package/lib/edge/commonjs/functions/evaluate/evaluate.js.map +1 -1
  47. package/lib/edge/commonjs/functions/evaluate/helpers.js +21 -2
  48. package/lib/edge/commonjs/functions/evaluate/helpers.js.map +1 -1
  49. package/lib/edge/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  50. package/lib/edge/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  51. package/lib/edge/commonjs/functions/get-block-actions-handler.js +2 -1
  52. package/lib/edge/commonjs/functions/get-block-actions-handler.js.map +1 -1
  53. package/lib/edge/commonjs/functions/get-block-actions.js.map +1 -1
  54. package/lib/edge/module/components/block/components/block-wrapper.js +8 -1
  55. package/lib/edge/module/components/block/components/block-wrapper.js.map +1 -1
  56. package/lib/edge/module/components/block/components/interactive-element.js +8 -1
  57. package/lib/edge/module/components/block/components/interactive-element.js.map +1 -1
  58. package/lib/edge/module/constants/sdk-version.js +1 -1
  59. package/lib/edge/module/functions/evaluate/evaluate.js +3 -2
  60. package/lib/edge/module/functions/evaluate/evaluate.js.map +1 -1
  61. package/lib/edge/module/functions/evaluate/helpers.js +21 -2
  62. package/lib/edge/module/functions/evaluate/helpers.js.map +1 -1
  63. package/lib/edge/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  64. package/lib/edge/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  65. package/lib/edge/module/functions/get-block-actions-handler.js +2 -1
  66. package/lib/edge/module/functions/get-block-actions-handler.js.map +1 -1
  67. package/lib/edge/module/functions/get-block-actions.js.map +1 -1
  68. package/lib/edge/typescript/components/block/components/block-wrapper.d.ts.map +1 -1
  69. package/lib/edge/typescript/components/block/components/interactive-element.d.ts.map +1 -1
  70. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  71. package/lib/edge/typescript/functions/evaluate/evaluate.d.ts +1 -1
  72. package/lib/edge/typescript/functions/evaluate/evaluate.d.ts.map +1 -1
  73. package/lib/edge/typescript/functions/evaluate/helpers.d.ts +9 -1
  74. package/lib/edge/typescript/functions/evaluate/helpers.d.ts.map +1 -1
  75. package/lib/edge/typescript/functions/get-block-actions-handler.d.ts +2 -0
  76. package/lib/edge/typescript/functions/get-block-actions-handler.d.ts.map +1 -1
  77. package/lib/edge/typescript/functions/get-block-actions.d.ts +2 -0
  78. package/lib/edge/typescript/functions/get-block-actions.d.ts.map +1 -1
  79. package/lib/node/commonjs/components/block/components/block-wrapper.js +8 -1
  80. package/lib/node/commonjs/components/block/components/block-wrapper.js.map +1 -1
  81. package/lib/node/commonjs/components/block/components/interactive-element.js +8 -1
  82. package/lib/node/commonjs/components/block/components/interactive-element.js.map +1 -1
  83. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  84. package/lib/node/commonjs/functions/evaluate/evaluate.js +3 -2
  85. package/lib/node/commonjs/functions/evaluate/evaluate.js.map +1 -1
  86. package/lib/node/commonjs/functions/evaluate/helpers.js +21 -2
  87. package/lib/node/commonjs/functions/evaluate/helpers.js.map +1 -1
  88. package/lib/node/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  89. package/lib/node/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  90. package/lib/node/commonjs/functions/get-block-actions-handler.js +2 -1
  91. package/lib/node/commonjs/functions/get-block-actions-handler.js.map +1 -1
  92. package/lib/node/commonjs/functions/get-block-actions.js.map +1 -1
  93. package/lib/node/module/components/block/components/block-wrapper.js +8 -1
  94. package/lib/node/module/components/block/components/block-wrapper.js.map +1 -1
  95. package/lib/node/module/components/block/components/interactive-element.js +8 -1
  96. package/lib/node/module/components/block/components/interactive-element.js.map +1 -1
  97. package/lib/node/module/constants/sdk-version.js +1 -1
  98. package/lib/node/module/functions/evaluate/evaluate.js +3 -2
  99. package/lib/node/module/functions/evaluate/evaluate.js.map +1 -1
  100. package/lib/node/module/functions/evaluate/helpers.js +21 -2
  101. package/lib/node/module/functions/evaluate/helpers.js.map +1 -1
  102. package/lib/node/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  103. package/lib/node/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  104. package/lib/node/module/functions/get-block-actions-handler.js +2 -1
  105. package/lib/node/module/functions/get-block-actions-handler.js.map +1 -1
  106. package/lib/node/module/functions/get-block-actions.js.map +1 -1
  107. package/lib/node/typescript/components/block/components/block-wrapper.d.ts.map +1 -1
  108. package/lib/node/typescript/components/block/components/interactive-element.d.ts.map +1 -1
  109. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  110. package/lib/node/typescript/functions/evaluate/evaluate.d.ts +1 -1
  111. package/lib/node/typescript/functions/evaluate/evaluate.d.ts.map +1 -1
  112. package/lib/node/typescript/functions/evaluate/helpers.d.ts +9 -1
  113. package/lib/node/typescript/functions/evaluate/helpers.d.ts.map +1 -1
  114. package/lib/node/typescript/functions/get-block-actions-handler.d.ts +2 -0
  115. package/lib/node/typescript/functions/get-block-actions-handler.d.ts.map +1 -1
  116. package/lib/node/typescript/functions/get-block-actions.d.ts +2 -0
  117. package/lib/node/typescript/functions/get-block-actions.d.ts.map +1 -1
  118. package/package.json +1 -1
  119. package/src/components/block/components/block-wrapper.tsx +6 -0
  120. package/src/components/block/components/interactive-element.tsx +6 -0
  121. package/src/constants/sdk-version.ts +1 -1
  122. package/src/functions/evaluate/evaluate.ts +3 -2
  123. package/src/functions/evaluate/helpers.ts +29 -2
  124. package/src/functions/evaluate/node-runtime/node-runtime.ts +73 -69
  125. package/src/functions/get-block-actions-handler.ts +4 -1
  126. package/src/functions/get-block-actions.ts +2 -0
@@ -1,2 +1,2 @@
1
- export const SDK_VERSION = "5.0.1";
1
+ export const SDK_VERSION = "5.1.1";
2
2
  //# sourceMappingURL=sdk-version.js.map
@@ -25,7 +25,8 @@ export function evaluate({
25
25
  rootState,
26
26
  rootSetState,
27
27
  event,
28
- isExpression = true
28
+ isExpression = true,
29
+ trackingContext
29
30
  }) {
30
31
  if (code.trim() === '') {
31
32
  return undefined;
@@ -48,7 +49,7 @@ export function evaluate({
48
49
  code: parseCode(code, {
49
50
  isExpression
50
51
  }),
51
- builder: getBuilderGlobals(),
52
+ builder: getBuilderGlobals(trackingContext),
52
53
  context,
53
54
  event,
54
55
  rootSetState,
@@ -1 +1 @@
1
- {"version":3,"names":["logger","get","chooseBrowserOrServerEval","getBuilderGlobals","parseCode","STATE_GETTER_REGEX","VIRTUAL_INDEX_REGEX","getSimpleExpressionGetPath","code","_STATE_GETTER_REGEX$e","_VIRTUAL_INDEX_REGEX$","exec","trim","groups","getPath","slice","evaluate","context","localState","rootState","rootSetState","event","isExpression","undefined","args","builder","newEval","e","error","message"],"sourceRoot":"../../../../../src","sources":["functions/evaluate/evaluate.ts"],"mappings":"AAAA,SAASA,MAAM;AACf,SAASC,GAAG;AACZ,SAASC,yBAAyB;AAElC,SAASC,iBAAiB,EAAEC,SAAS;AAGrC;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,oDAAoD;;AAE/E;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG,2GAA2G;AACvI,OAAO,MAAMC,0BAA0B,GAAIC,IAAY,IAAK;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAC1D,OAAO,EAAAD,qBAAA,GAAAJ,kBAAkB,CAACM,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,cAAAH,qBAAA,gBAAAA,qBAAA,GAApCA,qBAAA,CAAsCI,MAAM,cAAAJ,qBAAA,gBAAAA,qBAAA,GAA5CA,qBAAA,CAA8CK,OAAO,cAAAL,qBAAA,uBAArDA,qBAAA,CAAuDM,KAAK,CAAC,CAAC,CAAC,OAAAL,qBAAA,GAAIJ,mBAAmB,CAACK,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,cAAAF,qBAAA,gBAAAA,qBAAA,GAArCA,qBAAA,CAAuCG,MAAM,cAAAH,qBAAA,gBAAAA,qBAAA,GAA7CA,qBAAA,CAA+CI,OAAO,cAAAJ,qBAAA,uBAAtDA,qBAAA,CAAwDK,KAAK,CAAC,CAAC,CAAC;AAC5I,CAAC;AACD,OAAO,SAASC,QAAQA,CAAC;EACvBR,IAAI;EACJS,OAAO;EACPC,UAAU;EACVC,SAAS;EACTC,YAAY;EACZC,KAAK;EACLC,YAAY,GAAG;AACF,CAAC,EAAa;EAC3B,IAAId,IAAI,CAACI,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAOW,SAAS;EAClB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMT,OAAO,GAAGP,0BAA0B,CAACC,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC;EACvD,IAAIE,OAAO,EAAE;IACX,OAAOb,GAAG,CAAC;MACT,GAAGkB,SAAS;MACZ,GAAGD;IACL,CAAC,EAAEJ,OAAO,CAAC;EACb;EACA,MAAMU,IAAkB,GAAG;IACzBhB,IAAI,EAAEJ,SAAS,CAACI,IAAI,EAAE;MACpBc;IACF,CAAC,CAAC;IACFG,OAAO,EAAEtB,iBAAiB,CAAC,CAAC;IAC5Bc,OAAO;IACPI,KAAK;IACLD,YAAY;IACZD,SAAS;IACTD;EACF,CAAC;EACD,IAAI;IACF,MAAMQ,OAAO,GAAGxB,yBAAyB,CAACsB,IAAI,CAAC;IAC/C,OAAOE,OAAO;EAChB,CAAC,CAAC,OAAOC,CAAM,EAAE;IACf3B,MAAM,CAAC4B,KAAK,CAAC,0BAA0B,GAAGD,CAAC,CAACE,OAAO,EAAE;MACnDrB;IACF,CAAC,CAAC;IACF,OAAOe,SAAS;EAClB;AACF"}
1
+ {"version":3,"names":["logger","get","chooseBrowserOrServerEval","getBuilderGlobals","parseCode","STATE_GETTER_REGEX","VIRTUAL_INDEX_REGEX","getSimpleExpressionGetPath","code","_STATE_GETTER_REGEX$e","_VIRTUAL_INDEX_REGEX$","exec","trim","groups","getPath","slice","evaluate","context","localState","rootState","rootSetState","event","isExpression","trackingContext","undefined","args","builder","newEval","e","error","message"],"sourceRoot":"../../../../../src","sources":["functions/evaluate/evaluate.ts"],"mappings":"AAAA,SAASA,MAAM;AACf,SAASC,GAAG;AACZ,SAASC,yBAAyB;AAElC,SAASC,iBAAiB,EAAEC,SAAS;AAGrC;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,oDAAoD;;AAE/E;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG,2GAA2G;AACvI,OAAO,MAAMC,0BAA0B,GAAIC,IAAY,IAAK;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAC1D,OAAO,EAAAD,qBAAA,GAAAJ,kBAAkB,CAACM,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,cAAAH,qBAAA,gBAAAA,qBAAA,GAApCA,qBAAA,CAAsCI,MAAM,cAAAJ,qBAAA,gBAAAA,qBAAA,GAA5CA,qBAAA,CAA8CK,OAAO,cAAAL,qBAAA,uBAArDA,qBAAA,CAAuDM,KAAK,CAAC,CAAC,CAAC,OAAAL,qBAAA,GAAIJ,mBAAmB,CAACK,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC,cAAAF,qBAAA,gBAAAA,qBAAA,GAArCA,qBAAA,CAAuCG,MAAM,cAAAH,qBAAA,gBAAAA,qBAAA,GAA7CA,qBAAA,CAA+CI,OAAO,cAAAJ,qBAAA,uBAAtDA,qBAAA,CAAwDK,KAAK,CAAC,CAAC,CAAC;AAC5I,CAAC;AACD,OAAO,SAASC,QAAQA,CAAC;EACvBR,IAAI;EACJS,OAAO;EACPC,UAAU;EACVC,SAAS;EACTC,YAAY;EACZC,KAAK;EACLC,YAAY,GAAG,IAAI;EACnBC;AACa,CAAC,EAAa;EAC3B,IAAIf,IAAI,CAACI,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAOY,SAAS;EAClB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMV,OAAO,GAAGP,0BAA0B,CAACC,IAAI,CAACI,IAAI,CAAC,CAAC,CAAC;EACvD,IAAIE,OAAO,EAAE;IACX,OAAOb,GAAG,CAAC;MACT,GAAGkB,SAAS;MACZ,GAAGD;IACL,CAAC,EAAEJ,OAAO,CAAC;EACb;EACA,MAAMW,IAAkB,GAAG;IACzBjB,IAAI,EAAEJ,SAAS,CAACI,IAAI,EAAE;MACpBc;IACF,CAAC,CAAC;IACFI,OAAO,EAAEvB,iBAAiB,CAACoB,eAAe,CAAC;IAC3CN,OAAO;IACPI,KAAK;IACLD,YAAY;IACZD,SAAS;IACTD;EACF,CAAC;EACD,IAAI;IACF,MAAMS,OAAO,GAAGzB,yBAAyB,CAACuB,IAAI,CAAC;IAC/C,OAAOE,OAAO;EAChB,CAAC,CAAC,OAAOC,CAAM,EAAE;IACf5B,MAAM,CAAC6B,KAAK,CAAC,0BAA0B,GAAGD,CAAC,CAACE,OAAO,EAAE;MACnDtB;IACF,CAAC,CAAC;IACF,OAAOgB,SAAS;EAClB;AACF"}
@@ -1,6 +1,7 @@
1
1
  import { isBrowser } from "../is-browser";
2
2
  import { isEditing } from "../is-editing";
3
3
  import { getUserAttributes } from "../track/helpers";
4
+ import { _track } from "../track/index";
4
5
  export const getFunctionArguments = ({
5
6
  builder,
6
7
  context,
@@ -16,11 +17,29 @@ export const getFunctionArguments = ({
16
17
  event
17
18
  });
18
19
  };
19
- export const getBuilderGlobals = () => ({
20
+ export const getBuilderGlobals = trackingContext => ({
20
21
  isEditing: isEditing(),
21
22
  isBrowser: isBrowser(),
22
23
  isServer: !isBrowser(),
23
- getUserAttributes: () => getUserAttributes()
24
+ getUserAttributes: () => getUserAttributes(),
25
+ trackConversion: (amount, customProperties) => {
26
+ if (!(trackingContext !== null && trackingContext !== void 0 && trackingContext.apiKey) || (trackingContext === null || trackingContext === void 0 ? void 0 : trackingContext.canTrack) === false) {
27
+ return;
28
+ }
29
+ _track({
30
+ type: 'conversion',
31
+ apiKey: trackingContext.apiKey,
32
+ canTrack: trackingContext.canTrack ?? true,
33
+ contentId: trackingContext.contentId,
34
+ variationId: trackingContext.variationId !== trackingContext.contentId ? trackingContext.variationId : undefined,
35
+ metadata: {
36
+ ...(customProperties || {}),
37
+ ...(amount !== undefined ? {
38
+ amount
39
+ } : {})
40
+ }
41
+ });
42
+ }
24
43
  });
25
44
  export const parseCode = (code, {
26
45
  isExpression = true
@@ -1 +1 @@
1
- {"version":3,"names":["isBrowser","isEditing","getUserAttributes","getFunctionArguments","builder","context","event","state","Object","entries","Builder","getBuilderGlobals","isServer","parseCode","code","isExpression","useReturn","includes","trim","startsWith","useCode","flattenState","rootState","localState","rootSetState","Proxy","get","target","prop","val","undefined","subState","set","value","Error"],"sourceRoot":"../../../../../src","sources":["functions/evaluate/helpers.ts"],"mappings":"AACA,SAASA,SAAS;AAClB,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAkB1B,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC;AAGF,CAAC,KAAK;EACJ,OAAOC,MAAM,CAACC,OAAO,CAAC;IACpBF,KAAK;IACLG,OAAO,EAAEN,OAAO;IAChB;IACAA,OAAO;IACPC,OAAO;IACPC;EACF,CAAC,CAAC;AACJ,CAAC;AACD,OAAO,MAAMK,iBAAiB,GAAGA,CAAA,MAAuB;EACtDV,SAAS,EAAEA,SAAS,CAAC,CAAC;EACtBD,SAAS,EAAEA,SAAS,CAAC,CAAC;EACtBY,QAAQ,EAAE,CAACZ,SAAS,CAAC,CAAC;EACtBE,iBAAiB,EAAEA,CAAA,KAAMA,iBAAiB,CAAC;AAC7C,CAAC,CAAC;AACF,OAAO,MAAMW,SAAS,GAAGA,CAACC,IAAY,EAAE;EACtCC,YAAY,GAAG;AACoB,CAAC,KAAK;EACzC;EACA;EACA,MAAMC,SAAS;EACf;EACAD,YAAY,IAAI,EAAED,IAAI,CAACG,QAAQ,CAAC,GAAG,CAAC,IAAIH,IAAI,CAACG,QAAQ,CAAC,UAAU,CAAC,IAAIH,IAAI,CAACI,IAAI,CAAC,CAAC,CAACC,UAAU,CAAC,SAAS,CAAC,CAAC;EACvG,MAAMC,OAAO,GAAGJ,SAAS,GAAI,WAAUF,IAAK,IAAG,GAAGA,IAAI;EACtD,OAAOM,OAAO;AAChB,CAAC;AACD,OAAO,SAASC,YAAYA,CAAC;EAC3BC,SAAS;EACTC,UAAU;EACVC;AAKF,CAAC,EAAsB;EACrB,OAAO,IAAIC,KAAK,CAACH,SAAS,EAAE;IAC1BI,GAAG,EAAEA,CAACC,MAAM,EAAEC,IAAI,KAAK;MACrB,IAAIL,UAAU,IAAIK,IAAI,IAAIL,UAAU,EAAE;QACpC,OAAOA,UAAU,CAACK,IAAI,CAAC;MACzB;MACA,MAAMC,GAAG,GAAGF,MAAM,CAACC,IAAI,CAAC;MACxB,IAAI,OAAOC,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;QAC3C,OAAOR,YAAY,CAAC;UAClBC,SAAS,EAAEO,GAAG;UACdN,UAAU,EAAEO,SAAS;UACrBN,YAAY,EAAEA,YAAY,GAAGO,QAAQ,IAAI;YACvCJ,MAAM,CAACC,IAAI,CAAC,GAAGG,QAAQ;YACvBP,YAAY,CAACG,MAAM,CAAC;UACtB,CAAC,GAAGG;QACN,CAAC,CAAC;MACJ;MACA,OAAOD,GAAG;IACZ,CAAC;IACDG,GAAG,EAAEA,CAACL,MAAM,EAAEC,IAAI,EAAEK,KAAK,KAAK;MAC5B,IAAIV,UAAU,IAAIK,IAAI,IAAIL,UAAU,EAAE;QACpC,MAAM,IAAIW,KAAK,CAAC,2DAA2D,CAAC;MAC9E;MACAP,MAAM,CAACC,IAAI,CAAC,GAAGK,KAAK;MACpBT,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAGG,MAAM,CAAC;MACtB,OAAO,IAAI;IACb;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"names":["isBrowser","isEditing","getUserAttributes","_track","getFunctionArguments","builder","context","event","state","Object","entries","Builder","getBuilderGlobals","trackingContext","isServer","trackConversion","amount","customProperties","apiKey","canTrack","type","contentId","variationId","undefined","metadata","parseCode","code","isExpression","useReturn","includes","trim","startsWith","useCode","flattenState","rootState","localState","rootSetState","Proxy","get","target","prop","val","subState","set","value","Error"],"sourceRoot":"../../../../../src","sources":["functions/evaluate/helpers.ts"],"mappings":"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"}
@@ -61,17 +61,23 @@ if (typeof output === 'object' && output !== null) {
61
61
  `;
62
62
  };
63
63
  let IVM_INSTANCE = null;
64
- let IVM_CONTEXT = null;
64
+ // Create fresh isolates per request to prevent memory leaks
65
+ let IVM_OPTIONS = {
66
+ memoryLimit: 128
67
+ };
65
68
 
66
69
  /**
67
70
  * Set the `isolated-vm` instance to be used by the node runtime.
68
71
  * This is useful for environments that are not able to rely on our
69
72
  * `safeDynamicRequire` trick to import the `isolated-vm` package.
70
73
  */
71
- export const setIvm = (ivm, options = {}) => {
74
+ export const setIvm = (ivm, options) => {
72
75
  if (IVM_INSTANCE) return;
73
76
  IVM_INSTANCE = ivm;
74
- setIsolateContext(options);
77
+ // Store options to be used per-request in runInNode
78
+ if (options) {
79
+ IVM_OPTIONS = options;
80
+ }
75
81
  };
76
82
 
77
83
  // only mention the script for SDKs that have it.
@@ -94,30 +100,6 @@ const getIvm = () => {
94
100
  For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
95
101
  throw new Error(ERROR_MESSAGE);
96
102
  };
97
- function setIsolateContext(options = {
98
- memoryLimit: 128
99
- }) {
100
- if (IVM_CONTEXT) return IVM_CONTEXT;
101
- const ivm = getIvm();
102
- const isolate = new ivm.Isolate(options);
103
- const context = isolate.createContextSync();
104
- const jail = context.global;
105
-
106
- // This makes the global object available in the context as `global`. We use `derefInto()` here
107
- // because otherwise `global` would actually be a Reference{} object in the new isolate.
108
- jail.setSync('global', jail.derefInto());
109
-
110
- // We will create a basic `log` function for the new isolate to use.
111
- jail.setSync('log', function (...logArgs) {
112
- console.log(...logArgs);
113
- });
114
- jail.setSync(INJECTED_IVM_GLOBAL, ivm);
115
- IVM_CONTEXT = context;
116
- return context;
117
- }
118
- const getIsolateContext = () => {
119
- return setIsolateContext();
120
- };
121
103
  export const runInNode = ({
122
104
  code,
123
105
  builder,
@@ -128,49 +110,71 @@ export const runInNode = ({
128
110
  rootState
129
111
  }) => {
130
112
  const ivm = getIvm();
131
- const state = fastClone({
132
- ...rootState,
133
- ...localState
134
- });
135
- const args = getFunctionArguments({
136
- builder,
137
- context,
138
- event,
139
- state
140
- });
141
- const isolateContext = getIsolateContext();
142
- const jail = isolateContext.global;
143
113
 
144
- /**
145
- * Propagate state changes back to the reactive root state.
146
- */
147
- jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
148
- // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
149
- // like Qwik.
150
- set(rootState, key, value);
151
- // call the `rootSetState` function if it exists
152
- rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
153
- });
154
- args.forEach(([key, arg]) => {
155
- const val = typeof arg === 'object' ? new ivm.Reference(
156
- // workaround: methods with default values for arguments is not being cloned over
157
- key === 'builder' ? {
158
- ...arg,
159
- getUserAttributes: () => arg.getUserAttributes()
160
- } : arg) : null;
161
- jail.setSync(getSyncValName(key), val);
162
- });
163
- const evalStr = processCode({
164
- code,
165
- args
166
- });
167
- const resultStr = isolateContext.evalClosureSync(evalStr);
114
+ // Use stored options from setIvm, or default to { memoryLimit: 128 }
115
+ let isolate;
168
116
  try {
169
- // returning objects throw errors in isolated vm, so we stringify it and parse it back
170
- const res = JSON.parse(resultStr);
171
- return res;
172
- } catch (_error) {
173
- return resultStr;
117
+ isolate = new ivm.Isolate(IVM_OPTIONS);
118
+ const isolateContext = isolate.createContextSync();
119
+ const jail = isolateContext.global;
120
+
121
+ // Setup the isolate
122
+ jail.setSync('global', jail.derefInto());
123
+ jail.setSync('log', function (...logArgs) {
124
+ console.log(...logArgs);
125
+ });
126
+ jail.setSync(INJECTED_IVM_GLOBAL, ivm);
127
+ const state = fastClone({
128
+ ...rootState,
129
+ ...localState
130
+ });
131
+ const args = getFunctionArguments({
132
+ builder,
133
+ context,
134
+ event,
135
+ state
136
+ });
137
+
138
+ /**
139
+ * Propagate state changes back to the reactive root state.
140
+ */
141
+ jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
142
+ // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
143
+ // like Qwik.
144
+ set(rootState, key, value);
145
+ // call the `rootSetState` function if it exists
146
+ rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
147
+ });
148
+ args.forEach(([key, arg]) => {
149
+ const val = typeof arg === 'object' ? new ivm.Reference(
150
+ // workaround: methods with default values for arguments is not being cloned over
151
+ key === 'builder' ? {
152
+ ...arg,
153
+ getUserAttributes: () => arg.getUserAttributes()
154
+ } : arg) : null;
155
+ jail.setSync(getSyncValName(key), val);
156
+ });
157
+ const evalStr = processCode({
158
+ code,
159
+ args
160
+ });
161
+ const resultStr = isolateContext.evalClosureSync(evalStr);
162
+ try {
163
+ // returning objects throw errors in isolated vm, so we stringify it and parse it back
164
+ const res = JSON.parse(resultStr);
165
+ return res;
166
+ } catch (_error) {
167
+ return resultStr;
168
+ }
169
+ } finally {
170
+ // Destroy the entire VM, this frees ALL memory at the C++ level.
171
+ if (isolate) {
172
+ try {
173
+ isolate.dispose();
174
+ } catch (e) {
175
+ // Ignore disposal errors
176
+ }
177
+ }
174
178
  }
175
179
  };
176
180
  //# sourceMappingURL=node-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_CONTEXT","setIvm","ivm","options","setIsolateContext","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","memoryLimit","isolate","Isolate","context","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","getIsolateContext","runInNode","builder","event","localState","rootSetState","rootState","state","isolateContext","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_OPTIONS","memoryLimit","setIvm","ivm","options","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","runInNode","builder","context","event","localState","rootSetState","rootState","isolate","Isolate","isolateContext","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","state","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error","dispose","e"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
@@ -6,6 +6,7 @@ export const createEventHandler = (value, options) => event => evaluate({
6
6
  rootState: options.rootState,
7
7
  rootSetState: options.rootSetState,
8
8
  event,
9
- isExpression: false
9
+ isExpression: false,
10
+ trackingContext: options.trackingContext
10
11
  });
11
12
  //# sourceMappingURL=get-block-actions-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["evaluate","createEventHandler","value","options","event","code","context","localState","rootState","rootSetState","isExpression"],"sourceRoot":"../../../../src","sources":["functions/get-block-actions-handler.ts"],"mappings":"AAEA,SAASA,QAAQ;AAKjB,OAAO,MAAMC,kBAAkB,GAAGA,CAACC,KAAa,EAAEC,OAAgB,KAAmBC,KAAK,IAAIJ,QAAQ,CAAC;EACrGK,IAAI,EAAEH,KAAK;EACXI,OAAO,EAAEH,OAAO,CAACG,OAAO;EACxBC,UAAU,EAAEJ,OAAO,CAACI,UAAU;EAC9BC,SAAS,EAAEL,OAAO,CAACK,SAAS;EAC5BC,YAAY,EAAEN,OAAO,CAACM,YAAY;EAClCL,KAAK;EACLM,YAAY,EAAE;AAChB,CAAC,CAAC"}
1
+ {"version":3,"names":["evaluate","createEventHandler","value","options","event","code","context","localState","rootState","rootSetState","isExpression","trackingContext"],"sourceRoot":"../../../../src","sources":["functions/get-block-actions-handler.ts"],"mappings":"AAGA,SAASA,QAAQ;AAMjB,OAAO,MAAMC,kBAAkB,GAAGA,CAACC,KAAa,EAAEC,OAAgB,KAAmBC,KAAK,IAAIJ,QAAQ,CAAC;EACrGK,IAAI,EAAEH,KAAK;EACXI,OAAO,EAAEH,OAAO,CAACG,OAAO;EACxBC,UAAU,EAAEJ,OAAO,CAACI,UAAU;EAC9BC,SAAS,EAAEL,OAAO,CAACK,SAAS;EAC5BC,YAAY,EAAEN,OAAO,CAACM,YAAY;EAClCL,KAAK;EACLM,YAAY,EAAE,KAAK;EACnBC,eAAe,EAAER,OAAO,CAACQ;AAC3B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["TARGET","getEventHandlerName","createEventHandler","getBlockActions","options","obj","optionActions","block","actions","key","hasOwnProperty","value","eventHandlerName","stripPrefix","replace"],"sourceRoot":"../../../../src","sources":["functions/get-block-actions.ts"],"mappings":"AAAA,SAASA,MAAM;AAGf,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAI3B,OAAO,SAASC,eAAeA,CAACC,OAG0D,EAAW;EACnG,MAAMC,GAAY,GAAG,CAAC,CAAC;EACvB,MAAMC,aAAa,GAAGF,OAAO,CAACG,KAAK,CAACC,OAAO,IAAI,CAAC,CAAC;EACjD,KAAK,MAAMC,GAAG,IAAIH,aAAa,EAAE;IAC/B;IACA,IAAI,CAACA,aAAa,CAACI,cAAc,CAACD,GAAG,CAAC,EAAE;MACtC;IACF;IACA,MAAME,KAAK,GAAGL,aAAa,CAACG,GAAG,CAAC;IAChC,IAAIG,gBAAgB,GAAGX,mBAAmB,CAACQ,GAAG,CAAC;IAC/C,IAAIL,OAAO,CAACS,WAAW,EAAE;MACvB,QAAQb,MAAM;QACZ,KAAK,KAAK;UACRY,gBAAgB,GAAGA,gBAAgB,CAACE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;UACxD;QACF,KAAK,QAAQ;UACXF,gBAAgB,GAAGA,gBAAgB,CAACE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;UACtD;MACJ;IACF;IACAT,GAAG,CAACO,gBAAgB,CAAC,GAAGV,kBAAkB,CAACS,KAAK,EAAEP,OAAO,CAAC;EAC5D;EACA,OAAOC,GAAG;AACZ"}
1
+ {"version":3,"names":["TARGET","getEventHandlerName","createEventHandler","getBlockActions","options","obj","optionActions","block","actions","key","hasOwnProperty","value","eventHandlerName","stripPrefix","replace"],"sourceRoot":"../../../../src","sources":["functions/get-block-actions.ts"],"mappings":"AAAA,SAASA,MAAM;AAIf,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAI3B,OAAO,SAASC,eAAeA,CAACC,OAI0D,EAAW;EACnG,MAAMC,GAAY,GAAG,CAAC,CAAC;EACvB,MAAMC,aAAa,GAAGF,OAAO,CAACG,KAAK,CAACC,OAAO,IAAI,CAAC,CAAC;EACjD,KAAK,MAAMC,GAAG,IAAIH,aAAa,EAAE;IAC/B;IACA,IAAI,CAACA,aAAa,CAACI,cAAc,CAACD,GAAG,CAAC,EAAE;MACtC;IACF;IACA,MAAME,KAAK,GAAGL,aAAa,CAACG,GAAG,CAAC;IAChC,IAAIG,gBAAgB,GAAGX,mBAAmB,CAACQ,GAAG,CAAC;IAC/C,IAAIL,OAAO,CAACS,WAAW,EAAE;MACvB,QAAQb,MAAM;QACZ,KAAK,KAAK;UACRY,gBAAgB,GAAGA,gBAAgB,CAACE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;UACxD;QACF,KAAK,QAAQ;UACXF,gBAAgB,GAAGA,gBAAgB,CAACE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;UACtD;MACJ;IACF;IACAT,GAAG,CAACO,gBAAgB,CAAC,GAAGV,kBAAkB,CAACS,KAAK,EAAEP,OAAO,CAAC;EAC5D;EACA,OAAOC,GAAG;AACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"block-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/components/block-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF;;GAEG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAoB7C;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"block-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/components/block-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF;;GAEG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBA0B7C;AAED,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-element.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/components/interactive-element.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,uBAAuB,CAAC;IACjC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAItE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAuDzD;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"interactive-element.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/components/interactive-element.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,uBAAuB,CAAC;IACjC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAItE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBA6DzD;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "5.0.1";
1
+ export declare const SDK_VERSION = "5.1.1";
2
2
  //# sourceMappingURL=sdk-version.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { EvaluatorArgs } from './helpers';
2
2
  type EvalValue = unknown;
3
3
  export declare const getSimpleExpressionGetPath: (code: string) => string;
4
- export declare function evaluate({ code, context, localState, rootState, rootSetState, event, isExpression }: EvaluatorArgs): EvalValue;
4
+ export declare function evaluate({ code, context, localState, rootState, rootSetState, event, isExpression, trackingContext }: EvaluatorArgs): EvalValue;
5
5
  export {};
6
6
  //# sourceMappingURL=evaluate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../../../src/functions/evaluate/evaluate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AAE7D,KAAK,SAAS,GAAG,OAAO,CAAC;AAczB,eAAO,MAAM,0BAA0B,SAAU,MAAM,WAEtD,CAAC;AACF,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,EACL,YAAmB,EACpB,EAAE,aAAa,GAAG,SAAS,CAsC3B"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../../../src/functions/evaluate/evaluate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AAE7D,KAAK,SAAS,GAAG,OAAO,CAAC;AAczB,eAAO,MAAM,0BAA0B,SAAU,MAAM,WAEtD,CAAC;AACF,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,EACL,YAAmB,EACnB,eAAe,EAChB,EAAE,aAAa,GAAG,SAAS,CAsC3B"}
@@ -1,14 +1,22 @@
1
1
  import type { BuilderContextInterface, BuilderRenderState } from '../../context/types';
2
2
  import { getUserAttributes } from '../track/helpers';
3
+ export type TrackingContext = {
4
+ apiKey: string | null;
5
+ canTrack?: boolean;
6
+ contentId?: string;
7
+ variationId?: string;
8
+ };
3
9
  export type EvaluatorArgs = Omit<ExecutorArgs, 'builder' | 'event'> & {
4
10
  event?: Event;
5
11
  isExpression?: boolean;
12
+ trackingContext?: TrackingContext;
6
13
  };
7
14
  export type BuilderGlobals = {
8
15
  isEditing: boolean | undefined;
9
16
  isBrowser: boolean | undefined;
10
17
  isServer: boolean | undefined;
11
18
  getUserAttributes: typeof getUserAttributes;
19
+ trackConversion: (amount?: number, customProperties?: Record<string, any>) => void;
12
20
  };
13
21
  export type ExecutorArgs = Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'> & {
14
22
  code: string;
@@ -20,7 +28,7 @@ export type FunctionArguments = ReturnType<typeof getFunctionArguments>;
20
28
  export declare const getFunctionArguments: ({ builder, context, event, state }: Pick<ExecutorArgs, "context" | "builder" | "event"> & {
21
29
  state: BuilderRenderState;
22
30
  }) => [string, Event | BuilderRenderState | import("../../context/types").BuilderRenderContext | BuilderGlobals][];
23
- export declare const getBuilderGlobals: () => BuilderGlobals;
31
+ export declare const getBuilderGlobals: (trackingContext?: TrackingContext) => BuilderGlobals;
24
32
  export declare const parseCode: (code: string, { isExpression }: Pick<EvaluatorArgs, 'isExpression'>) => string;
25
33
  export declare function flattenState({ rootState, localState, rootSetState }: {
26
34
  rootState: Record<string | symbol, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/functions/evaluate/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACpE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;CAC7C,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG;IAClH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,GAAG,CAAC;AACnD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACxE,eAAO,MAAM,oBAAoB;WAMxB,kBAAkB;kHAU1B,CAAC;AACF,eAAO,MAAM,iBAAiB,QAAO,cAKnC,CAAC;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,oBAEnC,KAAK,aAAa,EAAE,cAAc,CAAC,WAQrC,CAAC;AACF,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,UAAU,EACV,YAAY,EACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE,GAAG,kBAAkB,CA4BrB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/functions/evaluate/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACpE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACpF,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG;IAClH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,GAAG,CAAC;AACnD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACxE,eAAO,MAAM,oBAAoB;WAMxB,kBAAkB;kHAU1B,CAAC;AACF,eAAO,MAAM,iBAAiB,qBAAsB,eAAe,KAAG,cAuBpE,CAAC;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,oBAEnC,KAAK,aAAa,EAAE,cAAc,CAAC,WAQrC,CAAC;AACF,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,UAAU,EACV,YAAY,EACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE,GAAG,kBAAkB,CA4BrB"}
@@ -1,7 +1,9 @@
1
1
  import type { BuilderContextInterface } from '../context/types';
2
2
  import type { BuilderBlock } from '../types/builder-block';
3
+ import type { TrackingContext } from './evaluate/helpers';
3
4
  type Options = {
4
5
  block: BuilderBlock;
6
+ trackingContext?: TrackingContext;
5
7
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>;
6
8
  type EventHandler = (event: Event) => any;
7
9
  export declare const createEventHandler: (value: string, options: Options) => EventHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"get-block-actions-handler.d.ts","sourceRoot":"","sources":["../../../../src/functions/get-block-actions-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,CAAC;AAC3F,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;AAC1C,eAAO,MAAM,kBAAkB,UAAW,MAAM,WAAW,OAAO,KAAG,YAQnE,CAAA"}
1
+ {"version":3,"file":"get-block-actions-handler.d.ts","sourceRoot":"","sources":["../../../../src/functions/get-block-actions-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,CAAC;AAC3F,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;AAC1C,eAAO,MAAM,kBAAkB,UAAW,MAAM,WAAW,OAAO,KAAG,YASnE,CAAA"}
@@ -1,11 +1,13 @@
1
1
  import type { BuilderContextInterface } from '../context/types';
2
2
  import type { BuilderBlock } from '../types/builder-block';
3
+ import type { TrackingContext } from './evaluate/helpers';
3
4
  type Actions = {
4
5
  [index: string]: (event: Event) => any;
5
6
  };
6
7
  export declare function getBlockActions(options: {
7
8
  block: BuilderBlock;
8
9
  stripPrefix?: boolean;
10
+ trackingContext?: TrackingContext;
9
11
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>): Actions;
10
12
  export {};
11
13
  //# sourceMappingURL=get-block-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-block-actions.d.ts","sourceRoot":"","sources":["../../../../src/functions/get-block-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,KAAK,OAAO,GAAG;IACb,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;CACxC,CAAC;AACF,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG,OAAO,CAuBnG"}
1
+ {"version":3,"file":"get-block-actions.d.ts","sourceRoot":"","sources":["../../../../src/functions/get-block-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,KAAK,OAAO,GAAG;IACb,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;CACxC,CAAC;AACF,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG,OAAO,CAuBnG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react-native",
3
3
  "description": "Builder.io SDK for React Native",
4
- "version": "5.0.1",
4
+ "version": "5.1.1",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react-native",
6
6
  "repository": {
7
7
  "type": "git",
@@ -33,6 +33,12 @@ function BlockWrapper(props: BlockWrapperProps) {
33
33
  localState: props.context.localState,
34
34
  context: props.context.context,
35
35
  stripPrefix: true,
36
+ trackingContext: {
37
+ apiKey: props.context.apiKey,
38
+ canTrack: props.context.canTrack ?? true,
39
+ contentId: props.context.content?.id,
40
+ variationId: props.context.content?.testVariationId,
41
+ },
36
42
  })}
37
43
  >
38
44
  {props.children}
@@ -36,6 +36,12 @@ function InteractiveElement(props: InteractiveElementProps) {
36
36
  rootSetState: props.context.rootSetState,
37
37
  localState: props.context.localState,
38
38
  context: props.context.context,
39
+ trackingContext: {
40
+ apiKey: props.context.apiKey,
41
+ canTrack: props.context.canTrack ?? true,
42
+ contentId: props.context.content?.id,
43
+ variationId: props.context.content?.testVariationId,
44
+ },
39
45
  }),
40
46
  }
41
47
  : {};
@@ -1 +1 @@
1
- export const SDK_VERSION = "5.0.1"
1
+ export const SDK_VERSION = "5.1.1"
@@ -27,7 +27,8 @@ export function evaluate({
27
27
  rootState,
28
28
  rootSetState,
29
29
  event,
30
- isExpression = true
30
+ isExpression = true,
31
+ trackingContext
31
32
  }: EvaluatorArgs): EvalValue {
32
33
  if (code.trim() === '') {
33
34
  return undefined;
@@ -50,7 +51,7 @@ export function evaluate({
50
51
  code: parseCode(code, {
51
52
  isExpression
52
53
  }),
53
- builder: getBuilderGlobals(),
54
+ builder: getBuilderGlobals(trackingContext),
54
55
  context,
55
56
  event,
56
57
  rootSetState,
@@ -2,15 +2,24 @@ import type { BuilderContextInterface, BuilderRenderState } from '../../context/
2
2
  import { isBrowser } from '../is-browser';
3
3
  import { isEditing } from '../is-editing';
4
4
  import { getUserAttributes } from '../track/helpers';
5
+ import { _track } from '../track/index';
6
+ export type TrackingContext = {
7
+ apiKey: string | null;
8
+ canTrack?: boolean;
9
+ contentId?: string;
10
+ variationId?: string;
11
+ };
5
12
  export type EvaluatorArgs = Omit<ExecutorArgs, 'builder' | 'event'> & {
6
13
  event?: Event;
7
14
  isExpression?: boolean;
15
+ trackingContext?: TrackingContext;
8
16
  };
9
17
  export type BuilderGlobals = {
10
18
  isEditing: boolean | undefined;
11
19
  isBrowser: boolean | undefined;
12
20
  isServer: boolean | undefined;
13
21
  getUserAttributes: typeof getUserAttributes;
22
+ trackConversion: (amount?: number, customProperties?: Record<string, any>) => void;
14
23
  };
15
24
  export type ExecutorArgs = Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'> & {
16
25
  code: string;
@@ -36,11 +45,29 @@ export const getFunctionArguments = ({
36
45
  event
37
46
  });
38
47
  };
39
- export const getBuilderGlobals = (): BuilderGlobals => ({
48
+ export const getBuilderGlobals = (trackingContext?: TrackingContext): BuilderGlobals => ({
40
49
  isEditing: isEditing(),
41
50
  isBrowser: isBrowser(),
42
51
  isServer: !isBrowser(),
43
- getUserAttributes: () => getUserAttributes()
52
+ getUserAttributes: () => getUserAttributes(),
53
+ trackConversion: (amount?: number, customProperties?: Record<string, any>) => {
54
+ if (!trackingContext?.apiKey || trackingContext?.canTrack === false) {
55
+ return;
56
+ }
57
+ _track({
58
+ type: 'conversion',
59
+ apiKey: trackingContext.apiKey,
60
+ canTrack: trackingContext.canTrack ?? true,
61
+ contentId: trackingContext.contentId,
62
+ variationId: trackingContext.variationId !== trackingContext.contentId ? trackingContext.variationId : undefined,
63
+ metadata: {
64
+ ...(customProperties || {}),
65
+ ...(amount !== undefined ? {
66
+ amount
67
+ } : {})
68
+ }
69
+ });
70
+ }
44
71
  });
45
72
  export const parseCode = (code: string, {
46
73
  isExpression = true