@builder.io/sdk-svelte 0.4.5 → 0.5.0

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 (382) hide show
  1. package/package/--package.json +40 -29
  2. package/package/CHANGELOG.md +4 -0
  3. package/package/blocks/BaseText.svelte +1 -1
  4. package/package/blocks/button/button.svelte +18 -33
  5. package/package/blocks/button/button.svelte.d.ts +3 -1
  6. package/package/blocks/button/component-info.d.ts +1 -1
  7. package/package/blocks/button/component-info.js +9 -13
  8. package/package/blocks/columns/columns.svelte +12 -18
  9. package/package/blocks/columns/columns.svelte.d.ts +11 -7
  10. package/package/blocks/columns/component-info.d.ts +1 -1
  11. package/package/blocks/columns/component-info.js +62 -83
  12. package/package/blocks/custom-code/component-info.d.ts +1 -1
  13. package/package/blocks/custom-code/component-info.js +7 -11
  14. package/package/blocks/embed/component-info.d.ts +1 -1
  15. package/package/blocks/embed/component-info.js +8 -15
  16. package/package/blocks/embed/helpers.js +1 -5
  17. package/package/blocks/form/component-info.d.ts +1 -1
  18. package/package/blocks/form/component-info.js +94 -129
  19. package/package/blocks/form/form.svelte +2 -289
  20. package/package/blocks/form/form.svelte.d.ts +1 -57
  21. package/package/blocks/fragment/component-info.d.ts +1 -1
  22. package/package/blocks/fragment/component-info.js +1 -1
  23. package/package/blocks/helpers.d.ts +13 -0
  24. package/package/blocks/helpers.js +40 -0
  25. package/package/blocks/image/component-info.d.ts +1 -1
  26. package/package/blocks/image/component-info.js +33 -63
  27. package/package/blocks/image/image.helpers.js +2 -11
  28. package/package/blocks/image/image.svelte.d.ts +0 -1
  29. package/package/blocks/img/component-info.d.ts +1 -1
  30. package/package/blocks/img/component-info.js +4 -6
  31. package/package/blocks/img/img.svelte +4 -29
  32. package/package/blocks/img/img.svelte.d.ts +3 -1
  33. package/package/blocks/input/component-info.d.ts +1 -1
  34. package/package/blocks/input/component-info.js +15 -40
  35. package/package/blocks/input/input.svelte +4 -29
  36. package/package/blocks/input/input.svelte.d.ts +3 -1
  37. package/package/blocks/raw-text/component-info.d.ts +1 -1
  38. package/package/blocks/raw-text/component-info.js +3 -5
  39. package/package/blocks/raw-text/raw-text.svelte +3 -5
  40. package/package/blocks/raw-text/raw-text.svelte.d.ts +1 -1
  41. package/package/blocks/section/component-info.d.ts +1 -1
  42. package/package/blocks/section/component-info.js +13 -18
  43. package/package/blocks/section/section.svelte +4 -29
  44. package/package/blocks/section/section.svelte.d.ts +3 -1
  45. package/package/blocks/select/component-info.d.ts +1 -1
  46. package/package/blocks/select/component-info.js +22 -34
  47. package/package/blocks/select/select.svelte +4 -29
  48. package/package/blocks/select/select.svelte.d.ts +3 -1
  49. package/package/blocks/submit-button/component-info.d.ts +1 -1
  50. package/package/blocks/submit-button/component-info.js +5 -7
  51. package/package/blocks/submit-button/submit-button.svelte +4 -29
  52. package/package/blocks/submit-button/submit-button.svelte.d.ts +3 -1
  53. package/package/blocks/symbol/component-info.d.ts +1 -1
  54. package/package/blocks/symbol/component-info.js +12 -17
  55. package/package/blocks/symbol/symbol.helpers.d.ts +14 -0
  56. package/package/blocks/symbol/symbol.helpers.js +31 -0
  57. package/package/blocks/symbol/symbol.svelte +37 -87
  58. package/package/blocks/symbol/symbol.svelte.d.ts +13 -7
  59. package/package/blocks/text/component-info.d.ts +1 -1
  60. package/package/blocks/text/component-info.js +6 -7
  61. package/package/blocks/text/text.svelte +1 -1
  62. package/package/blocks/textarea/component-info.d.ts +1 -1
  63. package/package/blocks/textarea/component-info.js +13 -19
  64. package/package/blocks/textarea/textarea.svelte +4 -29
  65. package/package/blocks/textarea/textarea.svelte.d.ts +3 -1
  66. package/package/blocks/video/component-info.d.ts +1 -1
  67. package/package/blocks/video/component-info.js +35 -55
  68. package/package/blocks/video/video.svelte +4 -30
  69. package/package/blocks/video/video.svelte.d.ts +2 -0
  70. package/package/components/block/block.helpers.d.ts +13 -0
  71. package/package/components/{render-block/render-block.helpers.js → block/block.helpers.js} +12 -29
  72. package/package/components/block/block.svelte +135 -0
  73. package/package/components/block/block.svelte.d.ts +26 -0
  74. package/package/components/{render-block → block/components}/block-styles.svelte +20 -22
  75. package/package/components/{render-block → block/components}/block-styles.svelte.d.ts +2 -2
  76. package/package/components/block/components/block-wrapper.svelte +53 -0
  77. package/package/components/block/components/block-wrapper.svelte.d.ts +33 -0
  78. package/package/components/block/components/component-ref/component-ref.helpers.d.ts +36 -0
  79. package/package/components/block/components/component-ref/component-ref.helpers.js +22 -0
  80. package/package/components/block/components/component-ref/component-ref.svelte +37 -0
  81. package/package/components/block/components/component-ref/component-ref.svelte.d.ts +24 -0
  82. package/package/components/block/components/interactive-element.svelte +29 -0
  83. package/package/components/block/components/interactive-element.svelte.d.ts +31 -0
  84. package/package/components/{render-block/render-repeated-block.svelte → block/components/repeated-block.svelte} +4 -3
  85. package/package/components/block/components/repeated-block.svelte.d.ts +25 -0
  86. package/package/components/{render-blocks.svelte → blocks/blocks-wrapper.svelte} +3 -20
  87. package/package/components/blocks/blocks-wrapper.svelte.d.ts +29 -0
  88. package/package/components/blocks/blocks.svelte +26 -0
  89. package/package/components/blocks/blocks.svelte.d.ts +28 -0
  90. package/package/components/{render-content/render-content.svelte → content/components/enable-editor.svelte} +47 -166
  91. package/package/components/content/components/enable-editor.svelte.d.ts +36 -0
  92. package/package/components/{render-content/components/render-styles.helpers.d.ts → content/components/styles.helpers.d.ts} +1 -1
  93. package/package/components/{render-content/components/render-styles.helpers.js → content/components/styles.helpers.js} +3 -4
  94. package/package/components/{render-content/components/render-styles.svelte → content/components/styles.svelte} +2 -2
  95. package/package/components/{render-content/components/render-styles.svelte.d.ts → content/components/styles.svelte.d.ts} +5 -5
  96. package/package/components/content/content.helpers.d.ts +7 -0
  97. package/package/components/content/content.helpers.js +30 -0
  98. package/package/components/content/content.svelte +113 -0
  99. package/package/components/content/content.svelte.d.ts +30 -0
  100. package/package/components/{render-content/render-content.types.d.ts → content/content.types.d.ts} +4 -4
  101. package/package/components/content/index.d.ts +1 -0
  102. package/package/components/content/index.js +1 -0
  103. package/package/components/{render-content-variants/render-content-variants.svelte → content-variants/content-variants.svelte} +20 -19
  104. package/package/components/{render-content-variants/render-content-variants.svelte.d.ts → content-variants/content-variants.svelte.d.ts} +6 -6
  105. package/package/components/{render-content-variants/render-content-variants.types.d.ts → content-variants/content-variants.types.d.ts} +5 -5
  106. package/package/components/{render-content-variants → content-variants}/helpers.d.ts +7 -7
  107. package/package/components/{render-content-variants → content-variants}/helpers.js +13 -22
  108. package/package/constants/builder-registered-components.js +34 -13
  109. package/package/constants/device-sizes.js +9 -8
  110. package/package/constants/sdk-version.d.ts +1 -1
  111. package/package/constants/sdk-version.js +1 -1
  112. package/package/constants/target.d.ts +1 -1
  113. package/package/context/builder.context.d.ts +1 -1
  114. package/package/context/builder.context.js +1 -1
  115. package/package/context/types.d.ts +1 -1
  116. package/package/functions/apply-patch-with-mutation.d.ts +10 -0
  117. package/package/functions/apply-patch-with-mutation.js +54 -0
  118. package/package/functions/evaluate/acorn.d.ts +0 -0
  119. package/package/functions/evaluate/acorn.js +2433 -0
  120. package/package/functions/{evaluate.d.ts → evaluate/evaluate.d.ts} +5 -2
  121. package/package/functions/{evaluate.js → evaluate/evaluate.js} +34 -13
  122. package/package/functions/evaluate/index.d.ts +1 -0
  123. package/package/functions/evaluate/index.js +1 -0
  124. package/package/functions/evaluate/interpreter.d.ts +2 -0
  125. package/package/functions/evaluate/interpreter.js +3853 -0
  126. package/package/functions/evaluate/non-node-runtime.d.ts +2 -0
  127. package/package/functions/evaluate/non-node-runtime.js +84 -0
  128. package/package/functions/evaluate/types.d.ts +10 -0
  129. package/package/functions/extract-text-styles.js +2 -14
  130. package/package/functions/get-block-actions-handler.js +3 -3
  131. package/package/functions/get-block-actions.d.ts +1 -0
  132. package/package/functions/get-block-actions.js +14 -1
  133. package/package/functions/get-block-component-options.js +1 -1
  134. package/package/functions/get-block-properties.d.ts +5 -1
  135. package/package/functions/get-block-properties.js +15 -9
  136. package/package/functions/get-builder-search-params/index.js +3 -7
  137. package/package/functions/get-content/generate-content-url.js +7 -5
  138. package/package/functions/get-content/index.d.ts +2 -6
  139. package/package/functions/get-content/index.js +26 -6
  140. package/package/functions/get-processed-block.d.ts +1 -1
  141. package/package/functions/get-processed-block.js +11 -7
  142. package/package/functions/get-react-native-block-styles.d.ts +1 -1
  143. package/package/functions/get-react-native-block-styles.js +2 -2
  144. package/package/functions/if-target.d.ts +1 -1
  145. package/package/functions/if-target.js +1 -1
  146. package/package/functions/is-editing.js +1 -3
  147. package/package/functions/is-non-node-server.d.ts +4 -0
  148. package/package/functions/is-non-node-server.js +8 -0
  149. package/package/functions/on-change.js +1 -1
  150. package/package/functions/register-component.d.ts +2 -1
  151. package/package/functions/register-component.js +20 -8
  152. package/package/functions/register.js +2 -2
  153. package/package/functions/sanitize-react-native-block-styles.js +13 -5
  154. package/package/functions/set-editor-settings.js +1 -1
  155. package/package/functions/set.js +2 -9
  156. package/package/functions/track/helpers.js +6 -11
  157. package/package/functions/track/index.js +26 -14
  158. package/package/functions/track/interaction.js +15 -16
  159. package/package/helpers/ab-tests.d.ts +2 -2
  160. package/package/helpers/ab-tests.js +42 -30
  161. package/package/helpers/canTrack.js +1 -1
  162. package/package/helpers/cookie.d.ts +2 -2
  163. package/package/helpers/cookie.js +13 -26
  164. package/package/helpers/css.d.ts +1 -1
  165. package/package/helpers/css.js +1 -1
  166. package/package/helpers/flatten.js +8 -8
  167. package/package/helpers/localStorage.d.ts +2 -2
  168. package/package/helpers/localStorage.js +2 -2
  169. package/package/helpers/logger.js +1 -1
  170. package/package/helpers/preview-lru-cache/get.d.ts +1 -0
  171. package/package/helpers/preview-lru-cache/get.js +7 -0
  172. package/package/helpers/preview-lru-cache/helpers.d.ts +1 -0
  173. package/package/helpers/preview-lru-cache/helpers.js +9 -0
  174. package/package/helpers/preview-lru-cache/init.d.ts +6 -0
  175. package/package/helpers/preview-lru-cache/init.js +15 -0
  176. package/package/helpers/preview-lru-cache/set.d.ts +7 -0
  177. package/package/helpers/preview-lru-cache/set.js +9 -0
  178. package/package/helpers/preview-lru-cache/types.d.ts +12 -0
  179. package/package/helpers/preview-lru-cache/types.js +6 -0
  180. package/package/helpers/sessionId.d.ts +2 -2
  181. package/package/helpers/sessionId.js +11 -4
  182. package/package/helpers/uuid.js +1 -1
  183. package/package/helpers/visitorId.d.ts +1 -1
  184. package/package/helpers/visitorId.js +7 -4
  185. package/package/index-helpers/blocks-exports.d.ts +2 -2
  186. package/package/index-helpers/blocks-exports.js +2 -2
  187. package/package/index.d.ts +2 -2
  188. package/package/index.js +1 -1
  189. package/package/scripts/init-editing.js +65 -57
  190. package/package/types/builder-props.d.ts +10 -0
  191. package/package/types/components.d.ts +8 -2
  192. package/package/types/enforced-partials.d.ts +1 -1
  193. package/package/types/targets.d.ts +1 -3
  194. package/package/types/typescript.d.ts +3 -0
  195. package/package.json +2 -2
  196. package/src/blocks/BaseText.svelte +1 -1
  197. package/src/blocks/button/button.svelte +21 -34
  198. package/src/blocks/button/component-info.ts +20 -27
  199. package/src/blocks/columns/columns.svelte +26 -30
  200. package/src/blocks/columns/component-info.ts +205 -240
  201. package/src/blocks/custom-code/component-info.ts +20 -27
  202. package/src/blocks/embed/component-info.ts +34 -51
  203. package/src/blocks/embed/helpers.ts +2 -8
  204. package/src/blocks/form/component-info.ts +204 -253
  205. package/src/blocks/form/form.svelte +1 -368
  206. package/src/blocks/fragment/component-info.ts +3 -5
  207. package/src/blocks/helpers.ts +43 -0
  208. package/src/blocks/image/component-info.ts +113 -161
  209. package/src/blocks/image/image.helpers.ts +5 -33
  210. package/src/blocks/img/component-info.ts +11 -16
  211. package/src/blocks/img/img.svelte +7 -31
  212. package/src/blocks/input/component-info.ts +35 -66
  213. package/src/blocks/input/input.svelte +7 -31
  214. package/src/blocks/raw-text/component-info.ts +8 -12
  215. package/src/blocks/raw-text/raw-text.svelte +2 -5
  216. package/src/blocks/section/component-info.ts +28 -37
  217. package/src/blocks/section/section.svelte +7 -30
  218. package/src/blocks/select/component-info.ts +38 -55
  219. package/src/blocks/select/select.svelte +7 -31
  220. package/src/blocks/submit-button/component-info.ts +10 -15
  221. package/src/blocks/submit-button/submit-button.svelte +7 -30
  222. package/src/blocks/symbol/component-info.ts +31 -39
  223. package/src/blocks/symbol/symbol.helpers.ts +47 -0
  224. package/src/blocks/symbol/symbol.svelte +50 -97
  225. package/src/blocks/text/component-info.ts +14 -18
  226. package/src/blocks/text/text.svelte +1 -1
  227. package/src/blocks/textarea/component-info.ts +26 -36
  228. package/src/blocks/textarea/textarea.svelte +7 -30
  229. package/src/blocks/video/component-info.ts +77 -103
  230. package/src/blocks/video/video.svelte +4 -31
  231. package/src/components/{render-block/render-block.helpers.ts → block/block.helpers.ts} +22 -49
  232. package/src/components/block/block.svelte +158 -0
  233. package/src/components/{render-block → block/components}/block-styles.svelte +23 -24
  234. package/src/components/block/components/block-wrapper.svelte +70 -0
  235. package/src/components/block/components/component-ref/component-ref.helpers.ts +53 -0
  236. package/src/components/block/components/component-ref/component-ref.svelte +41 -0
  237. package/src/components/block/components/interactive-element.svelte +42 -0
  238. package/src/components/block/components/repeated-block.svelte +30 -0
  239. package/src/components/{render-block → block}/types.ts +1 -2
  240. package/src/components/{render-blocks.svelte → blocks/blocks-wrapper.svelte} +14 -32
  241. package/src/components/blocks/blocks.svelte +39 -0
  242. package/src/components/{render-content/render-content.svelte → content/components/enable-editor.svelte} +71 -199
  243. package/src/components/{render-content/components/render-styles.helpers.ts → content/components/styles.helpers.ts} +9 -11
  244. package/src/components/{render-content/components/render-styles.svelte → content/components/styles.svelte} +3 -3
  245. package/src/components/content/content.helpers.ts +42 -0
  246. package/src/components/content/content.svelte +138 -0
  247. package/src/components/{render-content/render-content.types.ts → content/content.types.ts} +5 -9
  248. package/src/components/content/index.ts +1 -0
  249. package/src/components/{render-content → content}/wrap-component-ref.ts +1 -1
  250. package/src/components/{render-content-variants/render-content-variants.svelte → content-variants/content-variants.svelte} +26 -24
  251. package/src/components/{render-content-variants/render-content-variants.types.ts → content-variants/content-variants.types.ts} +9 -11
  252. package/src/components/{render-content-variants → content-variants}/helpers.ts +27 -73
  253. package/src/constants/builder-registered-components.ts +34 -14
  254. package/src/constants/device-sizes.ts +16 -22
  255. package/src/constants/sdk-version.ts +1 -1
  256. package/src/constants/target.ts +3 -1
  257. package/src/context/builder.context.ts +1 -1
  258. package/src/context/types.ts +2 -7
  259. package/src/functions/apply-patch-with-mutation.ts +61 -0
  260. package/src/functions/camel-to-kebab-case.ts +1 -2
  261. package/src/functions/evaluate/acorn.ts +2501 -0
  262. package/src/functions/evaluate/evaluate.ts +90 -0
  263. package/src/functions/evaluate/index.ts +1 -0
  264. package/src/functions/evaluate/interpreter.ts +3887 -0
  265. package/src/functions/evaluate/non-node-runtime.ts +94 -0
  266. package/src/functions/evaluate/types.ts +10 -0
  267. package/src/functions/extract-text-styles.ts +3 -18
  268. package/src/functions/fast-clone.ts +1 -2
  269. package/src/functions/get-block-actions-handler.ts +11 -20
  270. package/src/functions/get-block-actions.ts +22 -14
  271. package/src/functions/get-block-component-options.ts +2 -3
  272. package/src/functions/get-block-properties.ts +24 -17
  273. package/src/functions/get-builder-search-params/index.ts +5 -21
  274. package/src/functions/get-content/generate-content-url.ts +10 -25
  275. package/src/functions/get-content/index.ts +34 -37
  276. package/src/functions/get-content/types.ts +4 -2
  277. package/src/functions/get-fetch.ts +3 -10
  278. package/src/functions/get-global-this.ts +1 -2
  279. package/src/functions/get-processed-block.ts +14 -21
  280. package/src/functions/get-react-native-block-styles.ts +6 -12
  281. package/src/functions/if-target.ts +2 -3
  282. package/src/functions/is-browser.ts +1 -1
  283. package/src/functions/is-editing.ts +2 -7
  284. package/src/functions/is-iframe.ts +1 -2
  285. package/src/functions/is-non-node-server.ts +9 -0
  286. package/src/functions/is-previewing.ts +1 -4
  287. package/src/functions/on-change.ts +2 -2
  288. package/src/functions/register-component.ts +24 -26
  289. package/src/functions/register.ts +6 -8
  290. package/src/functions/sanitize-react-native-block-styles.ts +17 -24
  291. package/src/functions/set-editor-settings.ts +5 -6
  292. package/src/functions/set.ts +3 -15
  293. package/src/functions/track/helpers.ts +8 -24
  294. package/src/functions/track/index.ts +37 -42
  295. package/src/functions/track/interaction.ts +21 -38
  296. package/src/functions/transform-block-properties.ts +1 -1
  297. package/src/functions/transform-block.ts +1 -1
  298. package/src/helpers/ab-tests.ts +64 -79
  299. package/src/helpers/canTrack.ts +2 -4
  300. package/src/helpers/cookie.ts +15 -46
  301. package/src/helpers/css.ts +4 -13
  302. package/src/helpers/flatten.ts +11 -16
  303. package/src/helpers/localStorage.ts +4 -8
  304. package/src/helpers/logger.ts +2 -2
  305. package/src/helpers/nullable.ts +1 -3
  306. package/src/helpers/preview-lru-cache/get.ts +8 -0
  307. package/src/helpers/preview-lru-cache/helpers.ts +9 -0
  308. package/src/helpers/preview-lru-cache/init.ts +17 -0
  309. package/src/helpers/preview-lru-cache/set.ts +18 -0
  310. package/src/helpers/preview-lru-cache/types.ts +12 -0
  311. package/src/helpers/sessionId.ts +12 -13
  312. package/src/helpers/time.ts +1 -3
  313. package/src/helpers/url.ts +1 -2
  314. package/src/helpers/uuid.ts +3 -3
  315. package/src/helpers/visitorId.ts +14 -17
  316. package/src/index-helpers/blocks-exports.ts +2 -2
  317. package/src/index-helpers/top-of-file.ts +1 -1
  318. package/src/index.ts +2 -13
  319. package/src/scripts/init-editing.ts +85 -98
  320. package/src/types/api-version.ts +1 -1
  321. package/src/types/builder-block.ts +1 -3
  322. package/src/types/builder-content.ts +7 -4
  323. package/src/types/builder-props.ts +10 -0
  324. package/src/types/can-track.ts +1 -1
  325. package/src/types/components.ts +17 -13
  326. package/src/types/deep-partial.ts +1 -7
  327. package/src/types/element.ts +1 -3
  328. package/src/types/enforced-partials.ts +6 -20
  329. package/src/types/input.ts +6 -9
  330. package/src/types/targets.ts +1 -6
  331. package/src/types/typescript.ts +9 -9
  332. package/package/blocks/util.d.ts +0 -4
  333. package/package/blocks/util.js +0 -13
  334. package/package/components/render-block/render-block.helpers.d.ts +0 -12
  335. package/package/components/render-block/render-block.svelte +0 -152
  336. package/package/components/render-block/render-block.svelte.d.ts +0 -24
  337. package/package/components/render-block/render-component.svelte +0 -21
  338. package/package/components/render-block/render-component.svelte.d.ts +0 -34
  339. package/package/components/render-block/render-repeated-block.svelte.d.ts +0 -23
  340. package/package/components/render-blocks.svelte.d.ts +0 -26
  341. package/package/components/render-content/builder-editing.svelte +0 -4
  342. package/package/components/render-content/builder-editing.svelte.d.ts +0 -14
  343. package/package/components/render-content/index.d.ts +0 -1
  344. package/package/components/render-content/index.js +0 -1
  345. package/package/components/render-content/render-content.helpers.d.ts +0 -7
  346. package/package/components/render-content/render-content.helpers.js +0 -30
  347. package/package/components/render-content/render-content.svelte.d.ts +0 -30
  348. package/package/functions/evaluate.test.js +0 -17
  349. package/package/functions/get-builder-search-params/fn.test.js +0 -13
  350. package/package/functions/get-content/generate-content-url.test.d.ts +0 -1
  351. package/package/functions/get-content/generate-content-url.test.js +0 -97
  352. package/package/functions/get-processed-block.test.d.ts +0 -1
  353. package/package/functions/get-processed-block.test.js +0 -33
  354. package/package/functions/on-change.test.d.ts +0 -1
  355. package/package/functions/on-change.test.js +0 -20
  356. package/package/functions/set.test.d.ts +0 -1
  357. package/package/functions/set.test.js +0 -16
  358. package/package/helpers/url.test.d.ts +0 -1
  359. package/package/helpers/url.test.js +0 -21
  360. package/src/blocks/util.ts +0 -18
  361. package/src/components/render-block/render-block.svelte +0 -173
  362. package/src/components/render-block/render-component.svelte +0 -40
  363. package/src/components/render-block/render-repeated-block.svelte +0 -25
  364. package/src/components/render-content/builder-editing.svelte +0 -4
  365. package/src/components/render-content/index.ts +0 -1
  366. package/src/components/render-content/render-content.helpers.ts +0 -48
  367. package/src/functions/evaluate.test.ts +0 -21
  368. package/src/functions/evaluate.ts +0 -99
  369. package/src/functions/get-builder-search-params/fn.test.ts +0 -19
  370. package/src/functions/get-content/generate-content-url.test.ts +0 -112
  371. package/src/functions/get-processed-block.test.ts +0 -35
  372. package/src/functions/on-change.test.ts +0 -23
  373. package/src/functions/set.test.ts +0 -19
  374. package/src/helpers/url.test.ts +0 -23
  375. /package/package/components/{render-block → block}/types.d.ts +0 -0
  376. /package/package/components/{render-block → block}/types.js +0 -0
  377. /package/package/components/{render-content/render-content.types.js → content/content.types.js} +0 -0
  378. /package/package/components/{render-content → content}/wrap-component-ref.d.ts +0 -0
  379. /package/package/components/{render-content → content}/wrap-component-ref.js +0 -0
  380. /package/package/components/{render-content-variants/render-content-variants.types.js → content-variants/content-variants.types.js} +0 -0
  381. /package/package/functions/{evaluate.test.d.ts → evaluate/types.js} +0 -0
  382. /package/package/{functions/get-builder-search-params/fn.test.d.ts → types/builder-props.js} +0 -0
@@ -8,14 +8,7 @@ export const set = (obj, _path, value) => {
8
8
  if (Object(obj) !== obj) {
9
9
  return obj;
10
10
  }
11
- const path = Array.isArray(_path)
12
- ? _path
13
- : _path.toString().match(/[^.[\]]+/g);
14
- path
15
- .slice(0, -1)
16
- .reduce((a, c, i) => Object(a[c]) === a[c]
17
- ? a[c]
18
- : (a[c] =
19
- Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}), obj)[path[path.length - 1]] = value;
11
+ const path = Array.isArray(_path) ? _path : _path.toString().match(/[^.[\]]+/g);
12
+ path.slice(0, -1).reduce((a, c, i) => Object(a[c]) === a[c] ? a[c] : a[c] = Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}, obj)[path[path.length - 1]] = value;
20
13
  return obj;
21
14
  };
@@ -1,5 +1,5 @@
1
- import { TARGET } from '../../constants/target';
2
- import { isBrowser } from '../is-browser';
1
+ import { TARGET } from '../../constants/target.js';
2
+ import { isBrowser } from '../is-browser.js';
3
3
  const getLocation = () => {
4
4
  if (TARGET === 'reactNative') {
5
5
  return null;
@@ -18,7 +18,7 @@ const getLocation = () => {
18
18
  return null;
19
19
  }
20
20
  };
21
- const getUserAgent = () => (typeof navigator === 'object' && navigator.userAgent) || '';
21
+ const getUserAgent = () => typeof navigator === 'object' && navigator.userAgent || '';
22
22
  export const getUserAttributes = () => {
23
23
  const userAgent = getUserAgent();
24
24
  const isMobile = {
@@ -38,19 +38,14 @@ export const getUserAttributes = () => {
38
38
  return userAgent.match(/IEMobile/i) || userAgent.match(/WPDesktop/i);
39
39
  },
40
40
  any() {
41
- return (isMobile.Android() ||
42
- isMobile.BlackBerry() ||
43
- isMobile.iOS() ||
44
- isMobile.Opera() ||
45
- isMobile.Windows() ||
46
- TARGET === 'reactNative');
47
- },
41
+ return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows() || TARGET === 'reactNative';
42
+ }
48
43
  };
49
44
  const isTablet = userAgent.match(/Tablet|iPad/i);
50
45
  const url = getLocation();
51
46
  return {
52
47
  urlPath: url?.pathname,
53
48
  host: url?.host || url?.hostname,
54
- device: isTablet ? 'tablet' : isMobile.any() ? 'mobile' : 'desktop',
49
+ device: isTablet ? 'tablet' : isMobile.any() ? 'mobile' : 'desktop'
55
50
  };
56
51
  };
@@ -5,15 +5,22 @@ import { getVisitorId } from '../../helpers/visitorId.js';
5
5
  import { isBrowser } from '../is-browser.js';
6
6
  import { isEditing } from '../is-editing.js';
7
7
  import { getUserAttributes } from './helpers.js';
8
- const getTrackingEventData = async ({ canTrack, }) => {
8
+ const getTrackingEventData = async ({ canTrack }) => {
9
9
  if (!canTrack) {
10
- return { visitorId: undefined, sessionId: undefined };
10
+ return {
11
+ visitorId: undefined,
12
+ sessionId: undefined
13
+ };
11
14
  }
12
- const sessionId = await getSessionId({ canTrack });
13
- const visitorId = getVisitorId({ canTrack });
15
+ const sessionId = await getSessionId({
16
+ canTrack
17
+ });
18
+ const visitorId = getVisitorId({
19
+ canTrack
20
+ });
14
21
  return {
15
22
  sessionId,
16
- visitorId,
23
+ visitorId
17
24
  };
18
25
  };
19
26
  const createEvent = async ({ type: eventType, canTrack, apiKey, metadata, ...properties }) => ({
@@ -22,12 +29,14 @@ const createEvent = async ({ type: eventType, canTrack, apiKey, metadata, ...pro
22
29
  ...properties,
23
30
  metadata: {
24
31
  url: location.href,
25
- ...metadata,
32
+ ...metadata
26
33
  },
27
- ...(await getTrackingEventData({ canTrack })),
34
+ ...(await getTrackingEventData({
35
+ canTrack
36
+ })),
28
37
  userAttributes: getUserAttributes(),
29
- ownerId: apiKey,
30
- },
38
+ ownerId: apiKey
39
+ }
31
40
  });
32
41
  export async function _track(eventProps) {
33
42
  if (!eventProps.apiKey) {
@@ -46,14 +55,17 @@ export async function _track(eventProps) {
46
55
  return fetch(`https://cdn.builder.io/api/v1/track`, {
47
56
  method: 'POST',
48
57
  body: JSON.stringify({
49
- events: [await createEvent(eventProps)],
58
+ events: [await createEvent(eventProps)]
50
59
  }),
51
60
  headers: {
52
- 'content-type': 'application/json',
61
+ 'content-type': 'application/json'
53
62
  },
54
- mode: 'cors',
55
- }).catch((err) => {
63
+ mode: 'cors'
64
+ }).catch(err => {
56
65
  console.error('Failed to track: ', err);
57
66
  });
58
67
  }
59
- export const track = (args) => _track({ ...args, canTrack: true });
68
+ export const track = (args) => _track({
69
+ ...args,
70
+ canTrack: true
71
+ });
@@ -14,14 +14,14 @@ const findParentElement = (target, callback, checkElement = true) => {
14
14
  if (matches) {
15
15
  return parent;
16
16
  }
17
- } while ((parent = parent.parentElement));
17
+ } while (parent = parent.parentElement);
18
18
  return null;
19
19
  };
20
- const findBuilderParent = (target) => findParentElement(target, (el) => {
20
+ const findBuilderParent = (target) => findParentElement(target, el => {
21
21
  const id = el.getAttribute('builder-id') || el.id;
22
22
  return Boolean(id?.indexOf('builder-') === 0);
23
23
  });
24
- const computeOffset = ({ event, target, }) => {
24
+ const computeOffset = ({ event, target }) => {
25
25
  const targetRect = target.getBoundingClientRect();
26
26
  const xOffset = event.clientX - targetRect.left;
27
27
  const yOffset = event.clientY - targetRect.top;
@@ -29,26 +29,25 @@ const computeOffset = ({ event, target, }) => {
29
29
  const yRatio = round(yOffset / targetRect.height);
30
30
  return {
31
31
  x: xRatio,
32
- y: yRatio,
32
+ y: yRatio
33
33
  };
34
34
  };
35
35
  export const getInteractionPropertiesForEvent = (event) => {
36
36
  const target = event.target;
37
37
  const targetBuilderElement = target && findBuilderParent(target);
38
- const builderId = targetBuilderElement?.getAttribute('builder-id') ||
39
- targetBuilderElement?.id;
38
+ const builderId = targetBuilderElement?.getAttribute('builder-id') || targetBuilderElement?.id;
40
39
  return {
41
40
  targetBuilderElement: builderId || undefined,
42
41
  metadata: {
43
- targetOffset: target ? computeOffset({ event, target }) : undefined,
44
- builderTargetOffset: targetBuilderElement
45
- ? computeOffset({ event, target: targetBuilderElement })
46
- : undefined,
47
- builderElementIndex: targetBuilderElement && builderId
48
- ? [].slice
49
- .call(document.getElementsByClassName(builderId))
50
- .indexOf(targetBuilderElement)
51
- : undefined,
52
- },
42
+ targetOffset: target ? computeOffset({
43
+ event,
44
+ target
45
+ }) : undefined,
46
+ builderTargetOffset: targetBuilderElement ? computeOffset({
47
+ event,
48
+ target: targetBuilderElement
49
+ }) : undefined,
50
+ builderElementIndex: targetBuilderElement && builderId ? [].slice.call(document.getElementsByClassName(builderId)).indexOf(targetBuilderElement) : undefined
51
+ }
53
52
  };
54
53
  };
@@ -1,9 +1,9 @@
1
1
  import type { CanTrack } from '../types/can-track.js';
2
2
  import type { BuilderContent } from '../types/builder-content.js';
3
3
  import type { Nullable } from '../types/typescript.js';
4
- export declare const handleABTestingSync: ({ item, canTrack, }: {
4
+ export declare const handleABTestingSync: ({ item, canTrack }: {
5
5
  item: Nullable<BuilderContent>;
6
6
  } & CanTrack) => Nullable<BuilderContent>;
7
- export declare const handleABTesting: ({ item, canTrack, }: {
7
+ export declare const handleABTesting: ({ item, canTrack }: {
8
8
  item: BuilderContent;
9
9
  } & CanTrack) => Promise<BuilderContent>;
@@ -4,16 +4,24 @@ import { logger } from './logger.js';
4
4
  import { TARGET } from '../constants/target.js';
5
5
  const BUILDER_STORE_PREFIX = 'builder.tests';
6
6
  const getContentTestKey = (id) => `${BUILDER_STORE_PREFIX}.${id}`;
7
- const getContentVariationCookie = ({ contentId }) => getCookie({ name: getContentTestKey(contentId), canTrack: true });
8
- const getContentVariationCookieSync = ({ contentId }) => getCookieSync({ name: getContentTestKey(contentId), canTrack: true });
9
- const setContentVariationCookie = ({ contentId, value, }) => setCookie({ name: getContentTestKey(contentId), value, canTrack: true });
10
- const checkIsBuilderContentWithVariations = (item) => checkIsDefined(item.id) &&
11
- checkIsDefined(item.variations) &&
12
- Object.keys(item.variations).length > 0;
7
+ const getContentVariationCookie = ({ contentId }) => getCookie({
8
+ name: getContentTestKey(contentId),
9
+ canTrack: true
10
+ });
11
+ const getContentVariationCookieSync = ({ contentId }) => getCookieSync({
12
+ name: getContentTestKey(contentId),
13
+ canTrack: true
14
+ });
15
+ const setContentVariationCookie = ({ contentId, value }) => setCookie({
16
+ name: getContentTestKey(contentId),
17
+ value,
18
+ canTrack: true
19
+ });
20
+ const checkIsBuilderContentWithVariations = (item) => checkIsDefined(item.id) && checkIsDefined(item.variations) && Object.keys(item.variations).length > 0;
13
21
  /**
14
22
  * Randomly assign a variation to a user
15
23
  */
16
- const getRandomVariationId = ({ id, variations, }) => {
24
+ const getRandomVariationId = ({ id, variations }) => {
17
25
  let n = 0;
18
26
  const random = Math.random();
19
27
  // loop over variations test ratios, incrementing a counter,
@@ -35,31 +43,31 @@ const getAndSetVariantId = (args) => {
35
43
  // store variation in cookies/storage
36
44
  setContentVariationCookie({
37
45
  contentId: args.id,
38
- value: randomVariationId,
39
- }).catch((err) => {
46
+ value: randomVariationId
47
+ }).catch(err => {
40
48
  logger.error('could not store A/B test variation: ', err);
41
49
  });
42
50
  return randomVariationId;
43
51
  };
44
- const getTestFields = ({ item, testGroupId, }) => {
52
+ const getTestFields = ({ item, testGroupId }) => {
45
53
  const variationValue = item.variations[testGroupId];
46
54
  if (testGroupId === item.id ||
47
55
  // handle edge-case where `testGroupId` points to non-existing variation
48
56
  !variationValue) {
49
57
  return {
50
58
  testVariationId: item.id,
51
- testVariationName: 'Default',
59
+ testVariationName: 'Default'
52
60
  };
53
61
  }
54
62
  else {
55
63
  return {
56
64
  data: variationValue.data,
57
65
  testVariationId: variationValue.id,
58
- testVariationName: variationValue.name || (variationValue.id === item.id ? 'Default' : ''),
66
+ testVariationName: variationValue.name || (variationValue.id === item.id ? 'Default' : '')
59
67
  };
60
68
  }
61
69
  };
62
- export const handleABTestingSync = ({ item, canTrack, }) => {
70
+ export const handleABTestingSync = ({ item, canTrack }) => {
63
71
  /**
64
72
  * We cannot SSR in React-Native.
65
73
  */
@@ -75,19 +83,21 @@ export const handleABTestingSync = ({ item, canTrack, }) => {
75
83
  return item;
76
84
  }
77
85
  const testGroupId = getContentVariationCookieSync({
78
- contentId: item.id,
79
- }) ||
80
- getAndSetVariantId({
81
- variations: item.variations,
82
- id: item.id,
83
- });
84
- const variationValue = getTestFields({ item, testGroupId });
86
+ contentId: item.id
87
+ }) || getAndSetVariantId({
88
+ variations: item.variations,
89
+ id: item.id
90
+ });
91
+ const variationValue = getTestFields({
92
+ item,
93
+ testGroupId
94
+ });
85
95
  return {
86
96
  ...item,
87
- ...variationValue,
97
+ ...variationValue
88
98
  };
89
99
  };
90
- export const handleABTesting = async ({ item, canTrack, }) => {
100
+ export const handleABTesting = async ({ item, canTrack }) => {
91
101
  if (!canTrack) {
92
102
  return item;
93
103
  }
@@ -95,16 +105,18 @@ export const handleABTesting = async ({ item, canTrack, }) => {
95
105
  return item;
96
106
  }
97
107
  const cookieValue = await getContentVariationCookie({
98
- contentId: item.id,
108
+ contentId: item.id
109
+ });
110
+ const testGroupId = cookieValue || getAndSetVariantId({
111
+ variations: item.variations,
112
+ id: item.id
113
+ });
114
+ const variationValue = getTestFields({
115
+ item,
116
+ testGroupId
99
117
  });
100
- const testGroupId = cookieValue ||
101
- getAndSetVariantId({
102
- variations: item.variations,
103
- id: item.id,
104
- });
105
- const variationValue = getTestFields({ item, testGroupId });
106
118
  return {
107
119
  ...item,
108
- ...variationValue,
120
+ ...variationValue
109
121
  };
110
122
  };
@@ -1,2 +1,2 @@
1
- import { checkIsDefined } from './nullable';
1
+ import { checkIsDefined } from './nullable.js';
2
2
  export const getDefaultCanTrack = (canTrack) => checkIsDefined(canTrack) ? canTrack : true;
@@ -2,7 +2,7 @@ import type { CanTrack } from '../types/can-track.js';
2
2
  type GetCookieArgs = {
3
3
  name: string;
4
4
  } & CanTrack;
5
- export declare const getCookieSync: ({ name, canTrack, }: GetCookieArgs) => string | undefined;
5
+ export declare const getCookieSync: ({ name, canTrack }: GetCookieArgs) => string | undefined;
6
6
  /**
7
7
  * NOTE: This function is `async` because its react-native override is async. Do not remove the `async` keyword!
8
8
  * The sync version is only safe to use in code blocks that `react-native` is guaranteed not to not run.
@@ -11,7 +11,7 @@ export declare const getCookie: (args: GetCookieArgs) => Promise<string | undefi
11
11
  /**
12
12
  * NOTE: This function is `async` because its react-native override is async. Do not remove the `async` keyword!
13
13
  */
14
- export declare const setCookie: ({ name, value, expires, canTrack, }: {
14
+ export declare const setCookie: ({ name, value, expires, canTrack }: {
15
15
  name: string;
16
16
  value: string;
17
17
  expires?: Date | undefined;
@@ -2,7 +2,7 @@ import { isBrowser } from '../functions/is-browser.js';
2
2
  import { logger } from './logger.js';
3
3
  import { checkIsDefined } from './nullable.js';
4
4
  import { getTopLevelDomain } from './url.js';
5
- export const getCookieSync = ({ name, canTrack, }) => {
5
+ export const getCookieSync = ({ name, canTrack }) => {
6
6
  try {
7
7
  if (!canTrack) {
8
8
  return undefined;
@@ -11,10 +11,7 @@ export const getCookieSync = ({ name, canTrack, }) => {
11
11
  * Extracted from MDN docs
12
12
  * https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#example_2_get_a_sample_cookie_named_test2
13
13
  */
14
- return document.cookie
15
- .split('; ')
16
- .find((row) => row.startsWith(`${name}=`))
17
- ?.split('=')[1];
14
+ return document.cookie.split('; ').find(row => row.startsWith(`${name}=`))?.split('=')[1];
18
15
  }
19
16
  catch (err) {
20
17
  logger.warn('[COOKIE] GET error: ', err?.message || err);
@@ -26,40 +23,30 @@ export const getCookieSync = ({ name, canTrack, }) => {
26
23
  * The sync version is only safe to use in code blocks that `react-native` is guaranteed not to not run.
27
24
  */
28
25
  export const getCookie = async (args) => getCookieSync(args);
29
- const stringifyCookie = (cookie) => cookie
30
- .map(([key, value]) => (value ? `${key}=${value}` : key))
31
- .filter(checkIsDefined)
32
- .join('; ');
33
- const SECURE_CONFIG = [
34
- ['secure', ''],
35
- ['SameSite', 'None'],
36
- ];
37
- const createCookieString = ({ name, value, expires, }) => {
26
+ const stringifyCookie = (cookie) => cookie.map(([key, value]) => value ? `${key}=${value}` : key).filter(checkIsDefined).join('; ');
27
+ const SECURE_CONFIG = [['secure', ''], ['SameSite', 'None']];
28
+ const createCookieString = ({ name, value, expires }) => {
38
29
  const secure = isBrowser() ? location.protocol === 'https:' : true;
39
30
  const secureObj = secure ? SECURE_CONFIG : [[]];
40
31
  // TODO: need to know if secure server side
41
- const expiresObj = expires
42
- ? [['expires', expires.toUTCString()]]
43
- : [[]];
44
- const cookieValue = [
45
- [name, value],
46
- ...expiresObj,
47
- ['path', '/'],
48
- ['domain', getTopLevelDomain(window.location.hostname)],
49
- ...secureObj,
50
- ];
32
+ const expiresObj = expires ? [['expires', expires.toUTCString()]] : [[]];
33
+ const cookieValue = [[name, value], ...expiresObj, ['path', '/'], ['domain', getTopLevelDomain(window.location.hostname)], ...secureObj];
51
34
  const cookie = stringifyCookie(cookieValue);
52
35
  return cookie;
53
36
  };
54
37
  /**
55
38
  * NOTE: This function is `async` because its react-native override is async. Do not remove the `async` keyword!
56
39
  */
57
- export const setCookie = async ({ name, value, expires, canTrack, }) => {
40
+ export const setCookie = async ({ name, value, expires, canTrack }) => {
58
41
  try {
59
42
  if (!canTrack) {
60
43
  return;
61
44
  }
62
- const cookie = createCookieString({ name, value, expires });
45
+ const cookie = createCookieString({
46
+ name,
47
+ value,
48
+ expires
49
+ });
63
50
  document.cookie = cookie;
64
51
  }
65
52
  catch (err) {
@@ -1,6 +1,6 @@
1
1
  export declare const convertStyleMapToCSSArray: (style: Partial<CSSStyleDeclaration>) => string[];
2
2
  export declare const convertStyleMapToCSS: (style: Partial<CSSStyleDeclaration>) => string;
3
- export declare const createCssClass: ({ mediaQuery, className, styles, }: {
3
+ export declare const createCssClass: ({ mediaQuery, className, styles }: {
4
4
  mediaQuery?: string | undefined;
5
5
  className: string;
6
6
  styles: Partial<CSSStyleDeclaration>;
@@ -12,7 +12,7 @@ export const convertStyleMapToCSSArray = (style) => {
12
12
  return cssProps.filter(checkIsDefined);
13
13
  };
14
14
  export const convertStyleMapToCSS = (style) => convertStyleMapToCSSArray(style).join('\n');
15
- export const createCssClass = ({ mediaQuery, className, styles, }) => {
15
+ export const createCssClass = ({ mediaQuery, className, styles }) => {
16
16
  const cssClass = `.${className} {
17
17
  ${convertStyleMapToCSS(styles)}
18
18
  }`;
@@ -7,13 +7,13 @@ export function flatten(object, path = null, separator = '.') {
7
7
  return Object.keys(object).reduce((acc, key) => {
8
8
  const value = object[key];
9
9
  const newPath = [path, key].filter(Boolean).join(separator);
10
- const isObject = [
11
- typeof value === 'object',
12
- value !== null,
13
- !(Array.isArray(value) && value.length === 0),
14
- ].every(Boolean);
15
- return isObject
16
- ? { ...acc, ...flatten(value, newPath, separator) }
17
- : { ...acc, [newPath]: value };
10
+ const isObject = [typeof value === 'object', value !== null, !(Array.isArray(value) && value.length === 0)].every(Boolean);
11
+ return isObject ? {
12
+ ...acc,
13
+ ...flatten(value, newPath, separator)
14
+ } : {
15
+ ...acc,
16
+ [newPath]: value
17
+ };
18
18
  }, {});
19
19
  }
@@ -1,9 +1,9 @@
1
1
  import type { CanTrack } from '../types/can-track.js';
2
2
  import type { Nullable } from './nullable.js';
3
- export declare const getLocalStorageItem: ({ key, canTrack, }: {
3
+ export declare const getLocalStorageItem: ({ key, canTrack }: {
4
4
  key: string;
5
5
  } & CanTrack) => Nullable<string>;
6
- export declare const setLocalStorageItem: ({ key, canTrack, value, }: {
6
+ export declare const setLocalStorageItem: ({ key, canTrack, value }: {
7
7
  key: string;
8
8
  value: string;
9
9
  } & CanTrack) => void;
@@ -1,6 +1,6 @@
1
1
  import { isBrowser } from '../functions/is-browser.js';
2
2
  const getLocalStorage = () => isBrowser() && typeof localStorage !== 'undefined' ? localStorage : undefined;
3
- export const getLocalStorageItem = ({ key, canTrack, }) => {
3
+ export const getLocalStorageItem = ({ key, canTrack }) => {
4
4
  try {
5
5
  if (canTrack) {
6
6
  return getLocalStorage()?.getItem(key);
@@ -12,7 +12,7 @@ export const getLocalStorageItem = ({ key, canTrack, }) => {
12
12
  return undefined;
13
13
  }
14
14
  };
15
- export const setLocalStorageItem = ({ key, canTrack, value, }) => {
15
+ export const setLocalStorageItem = ({ key, canTrack, value }) => {
16
16
  try {
17
17
  if (canTrack) {
18
18
  getLocalStorage()?.setItem(key, value);
@@ -3,5 +3,5 @@ export const logger = {
3
3
  log: (...message) => console.log(MSG_PREFIX, ...message),
4
4
  error: (...message) => console.error(MSG_PREFIX, ...message),
5
5
  warn: (...message) => console.warn(MSG_PREFIX, ...message),
6
- debug: (...message) => console.debug(MSG_PREFIX, ...message),
6
+ debug: (...message) => console.debug(MSG_PREFIX, ...message)
7
7
  };
@@ -0,0 +1 @@
1
+ export declare function getPreviewContent(searchParams: URLSearchParams): import("../../types/builder-content").BuilderContent | undefined;
@@ -0,0 +1,7 @@
1
+ import { getIdFromSearchParams } from './helpers';
2
+ import { init } from './init';
3
+ export function getPreviewContent(searchParams) {
4
+ init();
5
+ const id = getIdFromSearchParams(searchParams);
6
+ return typeof id === 'string' ? globalThis._BUILDER_PREVIEW_LRU_CACHE.get(id) : undefined;
7
+ }
@@ -0,0 +1 @@
1
+ export declare const getIdFromSearchParams: (searchParams: URLSearchParams) => string | null;
@@ -0,0 +1,9 @@
1
+ import { logger } from '../logger';
2
+ export const getIdFromSearchParams = (searchParams) => {
3
+ const previewedModel = searchParams.get('preview');
4
+ const previewedId = searchParams.get('overrides.' + previewedModel);
5
+ if (!previewedId) {
6
+ logger.warn('No previewed ID found in search params.');
7
+ }
8
+ return previewedId;
9
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This is an LRU cache to hold preview content on the server-side.
3
+ *
4
+ * Note: This logic is only used by the NextJS SDK.
5
+ */
6
+ export declare function init(): void;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This is an LRU cache to hold preview content on the server-side.
3
+ *
4
+ * Note: This logic is only used by the NextJS SDK.
5
+ */
6
+ import { LRUCache } from 'lru-cache';
7
+ export function init() {
8
+ if (!globalThis._BUILDER_PREVIEW_LRU_CACHE) {
9
+ globalThis._BUILDER_PREVIEW_LRU_CACHE = new LRUCache({
10
+ max: 500,
11
+ // how long to live in ms
12
+ ttl: 1000 * 60 * 5
13
+ });
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ import type { BuilderContent } from '../../types/builder-content';
2
+ export declare function postPreviewContent({ key, value }: {
3
+ key: string;
4
+ value: BuilderContent;
5
+ }): Promise<{
6
+ [x: string]: BuilderContent;
7
+ }>;
@@ -0,0 +1,9 @@
1
+ 'use server';
2
+ import { init } from './init';
3
+ export async function postPreviewContent({ key, value }) {
4
+ init();
5
+ globalThis._BUILDER_PREVIEW_LRU_CACHE.set(key, value);
6
+ return {
7
+ [key]: value
8
+ };
9
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This is an LRU cache to hold preview content on the server-side.
3
+ *
4
+ * Note: This logic is only used by the NextJS SDK.
5
+ */
6
+ import type { LRUCache } from 'lru-cache';
7
+ import type { BuilderContent } from '../../types/builder-content';
8
+ type BuilderLRUCache = LRUCache<string, BuilderContent>;
9
+ export type GlobalWCache = typeof globalThis & {
10
+ _BUILDER_PREVIEW_LRU_CACHE: BuilderLRUCache;
11
+ };
12
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This is an LRU cache to hold preview content on the server-side.
3
+ *
4
+ * Note: This logic is only used by the NextJS SDK.
5
+ */
6
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type { CanTrack } from '../types/can-track.js';
2
- export declare const getSessionId: ({ canTrack, }: CanTrack) => Promise<string | undefined>;
2
+ export declare const getSessionId: ({ canTrack }: CanTrack) => Promise<string | undefined>;
3
3
  export declare const createSessionId: () => string;
4
- export declare const setSessionId: ({ id, canTrack, }: {
4
+ export declare const setSessionId: ({ id, canTrack }: {
5
5
  id: string;
6
6
  } & CanTrack) => Promise<void>;
@@ -2,22 +2,29 @@ import { getCookie, setCookie } from './cookie.js';
2
2
  import { checkIsDefined } from './nullable.js';
3
3
  import { uuid } from './uuid.js';
4
4
  const SESSION_LOCAL_STORAGE_KEY = 'builderSessionId';
5
- export const getSessionId = async ({ canTrack, }) => {
5
+ export const getSessionId = async ({ canTrack }) => {
6
6
  if (!canTrack) {
7
7
  return undefined;
8
8
  }
9
9
  const sessionId = await getCookie({
10
10
  name: SESSION_LOCAL_STORAGE_KEY,
11
- canTrack,
11
+ canTrack
12
12
  });
13
13
  if (checkIsDefined(sessionId)) {
14
14
  return sessionId;
15
15
  }
16
16
  else {
17
17
  const newSessionId = createSessionId();
18
- setSessionId({ id: newSessionId, canTrack });
18
+ setSessionId({
19
+ id: newSessionId,
20
+ canTrack
21
+ });
19
22
  return newSessionId;
20
23
  }
21
24
  };
22
25
  export const createSessionId = () => uuid();
23
- export const setSessionId = ({ id, canTrack, }) => setCookie({ name: SESSION_LOCAL_STORAGE_KEY, value: id, canTrack });
26
+ export const setSessionId = ({ id, canTrack }) => setCookie({
27
+ name: SESSION_LOCAL_STORAGE_KEY,
28
+ value: id,
29
+ canTrack
30
+ });
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export function uuidv4() {
5
5
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
6
- const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
6
+ const r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;
7
7
  return v.toString(16);
8
8
  });
9
9
  }