@builder.io/sdk-react-native 3.0.0 → 3.0.2

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 (351) hide show
  1. package/lib/browser/commonjs/blocks/image/component-info.js +2 -1
  2. package/lib/browser/commonjs/blocks/image/component-info.js.map +1 -1
  3. package/lib/browser/commonjs/blocks/img/component-info.js +2 -1
  4. package/lib/browser/commonjs/blocks/img/component-info.js.map +1 -1
  5. package/lib/browser/commonjs/blocks/text/text.js +3 -17
  6. package/lib/browser/commonjs/blocks/text/text.js.map +1 -1
  7. package/lib/browser/commonjs/blocks/video/component-info.js +3 -2
  8. package/lib/browser/commonjs/blocks/video/component-info.js.map +1 -1
  9. package/lib/browser/commonjs/components/block/block.helpers.js +17 -6
  10. package/lib/browser/commonjs/components/block/block.helpers.js.map +1 -1
  11. package/lib/browser/commonjs/components/block/block.js +5 -5
  12. package/lib/browser/commonjs/components/block/block.js.map +1 -1
  13. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  14. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  15. package/lib/browser/commonjs/components/content/components/enable-editor.js +35 -13
  16. package/lib/browser/commonjs/components/content/components/enable-editor.js.map +1 -1
  17. package/lib/browser/commonjs/components/content/content.js +37 -54
  18. package/lib/browser/commonjs/components/content/content.js.map +1 -1
  19. package/lib/browser/commonjs/constants/file-types.js +9 -0
  20. package/lib/browser/commonjs/constants/file-types.js.map +1 -0
  21. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  22. package/lib/browser/commonjs/context/builder.context.js +2 -1
  23. package/lib/browser/commonjs/context/builder.context.js.map +1 -1
  24. package/lib/browser/commonjs/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  25. package/lib/browser/commonjs/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  26. package/lib/browser/commonjs/functions/extract-localized-values.js +45 -0
  27. package/lib/browser/commonjs/functions/extract-localized-values.js.map +1 -0
  28. package/lib/browser/commonjs/functions/get-block-component-options.js +19 -2
  29. package/lib/browser/commonjs/functions/get-block-component-options.js.map +1 -1
  30. package/lib/browser/commonjs/functions/get-content/generate-content-url.js +29 -2
  31. package/lib/browser/commonjs/functions/get-content/generate-content-url.js.map +1 -1
  32. package/lib/browser/commonjs/functions/get-processed-block.js +10 -13
  33. package/lib/browser/commonjs/functions/get-processed-block.js.map +1 -1
  34. package/lib/browser/commonjs/functions/register-component.js +4 -1
  35. package/lib/browser/commonjs/functions/register-component.js.map +1 -1
  36. package/lib/browser/commonjs/functions/traverse.js +69 -0
  37. package/lib/browser/commonjs/functions/traverse.js.map +1 -0
  38. package/lib/browser/commonjs/helpers/flatten.js +24 -0
  39. package/lib/browser/commonjs/helpers/flatten.js.map +1 -1
  40. package/lib/browser/module/blocks/image/component-info.js +2 -1
  41. package/lib/browser/module/blocks/image/component-info.js.map +1 -1
  42. package/lib/browser/module/blocks/img/component-info.js +2 -1
  43. package/lib/browser/module/blocks/img/component-info.js.map +1 -1
  44. package/lib/browser/module/blocks/text/text.js +3 -17
  45. package/lib/browser/module/blocks/text/text.js.map +1 -1
  46. package/lib/browser/module/blocks/video/component-info.js +3 -2
  47. package/lib/browser/module/blocks/video/component-info.js.map +1 -1
  48. package/lib/browser/module/components/block/block.helpers.js +17 -6
  49. package/lib/browser/module/components/block/block.helpers.js.map +1 -1
  50. package/lib/browser/module/components/block/block.js +5 -5
  51. package/lib/browser/module/components/block/block.js.map +1 -1
  52. package/lib/browser/module/components/content/components/enable-editor.helpers.js +17 -0
  53. package/lib/browser/module/components/content/components/enable-editor.helpers.js.map +1 -0
  54. package/lib/browser/module/components/content/components/enable-editor.js +35 -13
  55. package/lib/browser/module/components/content/components/enable-editor.js.map +1 -1
  56. package/lib/browser/module/components/content/content.js +37 -54
  57. package/lib/browser/module/components/content/content.js.map +1 -1
  58. package/lib/browser/module/constants/file-types.js +3 -0
  59. package/lib/browser/module/constants/file-types.js.map +1 -0
  60. package/lib/browser/module/constants/sdk-version.js +1 -1
  61. package/lib/browser/module/context/builder.context.js +2 -1
  62. package/lib/browser/module/context/builder.context.js.map +1 -1
  63. package/lib/browser/module/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  64. package/lib/browser/module/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  65. package/lib/browser/module/functions/extract-localized-values.js +39 -0
  66. package/lib/browser/module/functions/extract-localized-values.js.map +1 -0
  67. package/lib/browser/module/functions/get-block-component-options.js +19 -2
  68. package/lib/browser/module/functions/get-block-component-options.js.map +1 -1
  69. package/lib/browser/module/functions/get-content/generate-content-url.js +30 -3
  70. package/lib/browser/module/functions/get-content/generate-content-url.js.map +1 -1
  71. package/lib/browser/module/functions/get-processed-block.js +10 -13
  72. package/lib/browser/module/functions/get-processed-block.js.map +1 -1
  73. package/lib/browser/module/functions/register-component.js +4 -1
  74. package/lib/browser/module/functions/register-component.js.map +1 -1
  75. package/lib/browser/module/functions/traverse.js +63 -0
  76. package/lib/browser/module/functions/traverse.js.map +1 -0
  77. package/lib/browser/module/helpers/flatten.js +23 -0
  78. package/lib/browser/module/helpers/flatten.js.map +1 -1
  79. package/lib/browser/typescript/blocks/image/component-info.d.ts.map +1 -1
  80. package/lib/browser/typescript/blocks/text/text.d.ts.map +1 -1
  81. package/lib/browser/typescript/components/block/block.d.ts.map +1 -1
  82. package/lib/browser/typescript/components/block/block.helpers.d.ts +6 -3
  83. package/lib/browser/typescript/components/block/block.helpers.d.ts.map +1 -1
  84. package/lib/browser/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  85. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  86. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  87. package/lib/browser/typescript/components/content/content.d.ts.map +1 -1
  88. package/lib/browser/typescript/constants/file-types.d.ts +3 -0
  89. package/lib/browser/typescript/constants/file-types.d.ts.map +1 -0
  90. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  91. package/lib/browser/typescript/context/builder.context.d.ts.map +1 -1
  92. package/lib/browser/typescript/context/types.d.ts +1 -0
  93. package/lib/browser/typescript/context/types.d.ts.map +1 -1
  94. package/lib/browser/typescript/functions/extract-localized-values.d.ts +3 -0
  95. package/lib/browser/typescript/functions/extract-localized-values.d.ts.map +1 -0
  96. package/lib/browser/typescript/functions/get-block-component-options.d.ts +2 -1
  97. package/lib/browser/typescript/functions/get-block-component-options.d.ts.map +1 -1
  98. package/lib/browser/typescript/functions/get-content/generate-content-url.d.ts.map +1 -1
  99. package/lib/browser/typescript/functions/get-processed-block.d.ts +1 -6
  100. package/lib/browser/typescript/functions/get-processed-block.d.ts.map +1 -1
  101. package/lib/browser/typescript/functions/register-component.d.ts.map +1 -1
  102. package/lib/browser/typescript/functions/traverse.d.ts +35 -0
  103. package/lib/browser/typescript/functions/traverse.d.ts.map +1 -0
  104. package/lib/browser/typescript/helpers/flatten.d.ts +6 -0
  105. package/lib/browser/typescript/helpers/flatten.d.ts.map +1 -1
  106. package/lib/browser/typescript/server-index.d.ts +1 -1
  107. package/lib/browser/typescript/server-index.d.ts.map +1 -1
  108. package/lib/browser/typescript/types/components.d.ts +3 -0
  109. package/lib/browser/typescript/types/components.d.ts.map +1 -1
  110. package/lib/edge/commonjs/blocks/image/component-info.js +2 -1
  111. package/lib/edge/commonjs/blocks/image/component-info.js.map +1 -1
  112. package/lib/edge/commonjs/blocks/img/component-info.js +2 -1
  113. package/lib/edge/commonjs/blocks/img/component-info.js.map +1 -1
  114. package/lib/edge/commonjs/blocks/text/text.js +3 -17
  115. package/lib/edge/commonjs/blocks/text/text.js.map +1 -1
  116. package/lib/edge/commonjs/blocks/video/component-info.js +3 -2
  117. package/lib/edge/commonjs/blocks/video/component-info.js.map +1 -1
  118. package/lib/edge/commonjs/components/block/block.helpers.js +17 -6
  119. package/lib/edge/commonjs/components/block/block.helpers.js.map +1 -1
  120. package/lib/edge/commonjs/components/block/block.js +5 -5
  121. package/lib/edge/commonjs/components/block/block.js.map +1 -1
  122. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  123. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  124. package/lib/edge/commonjs/components/content/components/enable-editor.js +35 -13
  125. package/lib/edge/commonjs/components/content/components/enable-editor.js.map +1 -1
  126. package/lib/edge/commonjs/components/content/content.js +37 -54
  127. package/lib/edge/commonjs/components/content/content.js.map +1 -1
  128. package/lib/edge/commonjs/constants/file-types.js +9 -0
  129. package/lib/edge/commonjs/constants/file-types.js.map +1 -0
  130. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  131. package/lib/edge/commonjs/context/builder.context.js +2 -1
  132. package/lib/edge/commonjs/context/builder.context.js.map +1 -1
  133. package/lib/edge/commonjs/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  134. package/lib/edge/commonjs/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  135. package/lib/edge/commonjs/functions/extract-localized-values.js +45 -0
  136. package/lib/edge/commonjs/functions/extract-localized-values.js.map +1 -0
  137. package/lib/edge/commonjs/functions/get-block-component-options.js +19 -2
  138. package/lib/edge/commonjs/functions/get-block-component-options.js.map +1 -1
  139. package/lib/edge/commonjs/functions/get-content/generate-content-url.js +29 -2
  140. package/lib/edge/commonjs/functions/get-content/generate-content-url.js.map +1 -1
  141. package/lib/edge/commonjs/functions/get-processed-block.js +10 -13
  142. package/lib/edge/commonjs/functions/get-processed-block.js.map +1 -1
  143. package/lib/edge/commonjs/functions/register-component.js +4 -1
  144. package/lib/edge/commonjs/functions/register-component.js.map +1 -1
  145. package/lib/edge/commonjs/functions/traverse.js +69 -0
  146. package/lib/edge/commonjs/functions/traverse.js.map +1 -0
  147. package/lib/edge/commonjs/helpers/flatten.js +24 -0
  148. package/lib/edge/commonjs/helpers/flatten.js.map +1 -1
  149. package/lib/edge/module/blocks/image/component-info.js +2 -1
  150. package/lib/edge/module/blocks/image/component-info.js.map +1 -1
  151. package/lib/edge/module/blocks/img/component-info.js +2 -1
  152. package/lib/edge/module/blocks/img/component-info.js.map +1 -1
  153. package/lib/edge/module/blocks/text/text.js +3 -17
  154. package/lib/edge/module/blocks/text/text.js.map +1 -1
  155. package/lib/edge/module/blocks/video/component-info.js +3 -2
  156. package/lib/edge/module/blocks/video/component-info.js.map +1 -1
  157. package/lib/edge/module/components/block/block.helpers.js +17 -6
  158. package/lib/edge/module/components/block/block.helpers.js.map +1 -1
  159. package/lib/edge/module/components/block/block.js +5 -5
  160. package/lib/edge/module/components/block/block.js.map +1 -1
  161. package/lib/edge/module/components/content/components/enable-editor.helpers.js +17 -0
  162. package/lib/edge/module/components/content/components/enable-editor.helpers.js.map +1 -0
  163. package/lib/edge/module/components/content/components/enable-editor.js +35 -13
  164. package/lib/edge/module/components/content/components/enable-editor.js.map +1 -1
  165. package/lib/edge/module/components/content/content.js +37 -54
  166. package/lib/edge/module/components/content/content.js.map +1 -1
  167. package/lib/edge/module/constants/file-types.js +3 -0
  168. package/lib/edge/module/constants/file-types.js.map +1 -0
  169. package/lib/edge/module/constants/sdk-version.js +1 -1
  170. package/lib/edge/module/context/builder.context.js +2 -1
  171. package/lib/edge/module/context/builder.context.js.map +1 -1
  172. package/lib/edge/module/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  173. package/lib/edge/module/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  174. package/lib/edge/module/functions/extract-localized-values.js +39 -0
  175. package/lib/edge/module/functions/extract-localized-values.js.map +1 -0
  176. package/lib/edge/module/functions/get-block-component-options.js +19 -2
  177. package/lib/edge/module/functions/get-block-component-options.js.map +1 -1
  178. package/lib/edge/module/functions/get-content/generate-content-url.js +30 -3
  179. package/lib/edge/module/functions/get-content/generate-content-url.js.map +1 -1
  180. package/lib/edge/module/functions/get-processed-block.js +10 -13
  181. package/lib/edge/module/functions/get-processed-block.js.map +1 -1
  182. package/lib/edge/module/functions/register-component.js +4 -1
  183. package/lib/edge/module/functions/register-component.js.map +1 -1
  184. package/lib/edge/module/functions/traverse.js +63 -0
  185. package/lib/edge/module/functions/traverse.js.map +1 -0
  186. package/lib/edge/module/helpers/flatten.js +23 -0
  187. package/lib/edge/module/helpers/flatten.js.map +1 -1
  188. package/lib/edge/typescript/blocks/image/component-info.d.ts.map +1 -1
  189. package/lib/edge/typescript/blocks/text/text.d.ts.map +1 -1
  190. package/lib/edge/typescript/components/block/block.d.ts.map +1 -1
  191. package/lib/edge/typescript/components/block/block.helpers.d.ts +6 -3
  192. package/lib/edge/typescript/components/block/block.helpers.d.ts.map +1 -1
  193. package/lib/edge/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  194. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  195. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  196. package/lib/edge/typescript/components/content/content.d.ts.map +1 -1
  197. package/lib/edge/typescript/constants/file-types.d.ts +3 -0
  198. package/lib/edge/typescript/constants/file-types.d.ts.map +1 -0
  199. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  200. package/lib/edge/typescript/context/builder.context.d.ts.map +1 -1
  201. package/lib/edge/typescript/context/types.d.ts +1 -0
  202. package/lib/edge/typescript/context/types.d.ts.map +1 -1
  203. package/lib/edge/typescript/functions/extract-localized-values.d.ts +3 -0
  204. package/lib/edge/typescript/functions/extract-localized-values.d.ts.map +1 -0
  205. package/lib/edge/typescript/functions/get-block-component-options.d.ts +2 -1
  206. package/lib/edge/typescript/functions/get-block-component-options.d.ts.map +1 -1
  207. package/lib/edge/typescript/functions/get-content/generate-content-url.d.ts.map +1 -1
  208. package/lib/edge/typescript/functions/get-processed-block.d.ts +1 -6
  209. package/lib/edge/typescript/functions/get-processed-block.d.ts.map +1 -1
  210. package/lib/edge/typescript/functions/register-component.d.ts.map +1 -1
  211. package/lib/edge/typescript/functions/traverse.d.ts +35 -0
  212. package/lib/edge/typescript/functions/traverse.d.ts.map +1 -0
  213. package/lib/edge/typescript/helpers/flatten.d.ts +6 -0
  214. package/lib/edge/typescript/helpers/flatten.d.ts.map +1 -1
  215. package/lib/edge/typescript/server-index.d.ts +1 -1
  216. package/lib/edge/typescript/server-index.d.ts.map +1 -1
  217. package/lib/edge/typescript/types/components.d.ts +3 -0
  218. package/lib/edge/typescript/types/components.d.ts.map +1 -1
  219. package/lib/node/commonjs/blocks/image/component-info.js +2 -1
  220. package/lib/node/commonjs/blocks/image/component-info.js.map +1 -1
  221. package/lib/node/commonjs/blocks/img/component-info.js +2 -1
  222. package/lib/node/commonjs/blocks/img/component-info.js.map +1 -1
  223. package/lib/node/commonjs/blocks/text/text.js +3 -17
  224. package/lib/node/commonjs/blocks/text/text.js.map +1 -1
  225. package/lib/node/commonjs/blocks/video/component-info.js +3 -2
  226. package/lib/node/commonjs/blocks/video/component-info.js.map +1 -1
  227. package/lib/node/commonjs/components/block/block.helpers.js +17 -6
  228. package/lib/node/commonjs/components/block/block.helpers.js.map +1 -1
  229. package/lib/node/commonjs/components/block/block.js +5 -5
  230. package/lib/node/commonjs/components/block/block.js.map +1 -1
  231. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  232. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  233. package/lib/node/commonjs/components/content/components/enable-editor.js +35 -13
  234. package/lib/node/commonjs/components/content/components/enable-editor.js.map +1 -1
  235. package/lib/node/commonjs/components/content/content.js +37 -54
  236. package/lib/node/commonjs/components/content/content.js.map +1 -1
  237. package/lib/node/commonjs/constants/file-types.js +9 -0
  238. package/lib/node/commonjs/constants/file-types.js.map +1 -0
  239. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  240. package/lib/node/commonjs/context/builder.context.js +2 -1
  241. package/lib/node/commonjs/context/builder.context.js.map +1 -1
  242. package/lib/node/commonjs/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  243. package/lib/node/commonjs/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  244. package/lib/node/commonjs/functions/extract-localized-values.js +45 -0
  245. package/lib/node/commonjs/functions/extract-localized-values.js.map +1 -0
  246. package/lib/node/commonjs/functions/get-block-component-options.js +19 -2
  247. package/lib/node/commonjs/functions/get-block-component-options.js.map +1 -1
  248. package/lib/node/commonjs/functions/get-content/generate-content-url.js +29 -2
  249. package/lib/node/commonjs/functions/get-content/generate-content-url.js.map +1 -1
  250. package/lib/node/commonjs/functions/get-processed-block.js +10 -13
  251. package/lib/node/commonjs/functions/get-processed-block.js.map +1 -1
  252. package/lib/node/commonjs/functions/register-component.js +4 -1
  253. package/lib/node/commonjs/functions/register-component.js.map +1 -1
  254. package/lib/node/commonjs/functions/traverse.js +69 -0
  255. package/lib/node/commonjs/functions/traverse.js.map +1 -0
  256. package/lib/node/commonjs/helpers/flatten.js +24 -0
  257. package/lib/node/commonjs/helpers/flatten.js.map +1 -1
  258. package/lib/node/module/blocks/image/component-info.js +2 -1
  259. package/lib/node/module/blocks/image/component-info.js.map +1 -1
  260. package/lib/node/module/blocks/img/component-info.js +2 -1
  261. package/lib/node/module/blocks/img/component-info.js.map +1 -1
  262. package/lib/node/module/blocks/text/text.js +3 -17
  263. package/lib/node/module/blocks/text/text.js.map +1 -1
  264. package/lib/node/module/blocks/video/component-info.js +3 -2
  265. package/lib/node/module/blocks/video/component-info.js.map +1 -1
  266. package/lib/node/module/components/block/block.helpers.js +17 -6
  267. package/lib/node/module/components/block/block.helpers.js.map +1 -1
  268. package/lib/node/module/components/block/block.js +5 -5
  269. package/lib/node/module/components/block/block.js.map +1 -1
  270. package/lib/node/module/components/content/components/enable-editor.helpers.js +17 -0
  271. package/lib/node/module/components/content/components/enable-editor.helpers.js.map +1 -0
  272. package/lib/node/module/components/content/components/enable-editor.js +35 -13
  273. package/lib/node/module/components/content/components/enable-editor.js.map +1 -1
  274. package/lib/node/module/components/content/content.js +37 -54
  275. package/lib/node/module/components/content/content.js.map +1 -1
  276. package/lib/node/module/constants/file-types.js +3 -0
  277. package/lib/node/module/constants/file-types.js.map +1 -0
  278. package/lib/node/module/constants/sdk-version.js +1 -1
  279. package/lib/node/module/context/builder.context.js +2 -1
  280. package/lib/node/module/context/builder.context.js.map +1 -1
  281. package/lib/node/module/functions/evaluate/edge-runtime/edge-runtime.js +1 -5
  282. package/lib/node/module/functions/evaluate/edge-runtime/edge-runtime.js.map +1 -1
  283. package/lib/node/module/functions/extract-localized-values.js +39 -0
  284. package/lib/node/module/functions/extract-localized-values.js.map +1 -0
  285. package/lib/node/module/functions/get-block-component-options.js +19 -2
  286. package/lib/node/module/functions/get-block-component-options.js.map +1 -1
  287. package/lib/node/module/functions/get-content/generate-content-url.js +30 -3
  288. package/lib/node/module/functions/get-content/generate-content-url.js.map +1 -1
  289. package/lib/node/module/functions/get-processed-block.js +10 -13
  290. package/lib/node/module/functions/get-processed-block.js.map +1 -1
  291. package/lib/node/module/functions/register-component.js +4 -1
  292. package/lib/node/module/functions/register-component.js.map +1 -1
  293. package/lib/node/module/functions/traverse.js +63 -0
  294. package/lib/node/module/functions/traverse.js.map +1 -0
  295. package/lib/node/module/helpers/flatten.js +23 -0
  296. package/lib/node/module/helpers/flatten.js.map +1 -1
  297. package/lib/node/typescript/blocks/image/component-info.d.ts.map +1 -1
  298. package/lib/node/typescript/blocks/text/text.d.ts.map +1 -1
  299. package/lib/node/typescript/components/block/block.d.ts.map +1 -1
  300. package/lib/node/typescript/components/block/block.helpers.d.ts +6 -3
  301. package/lib/node/typescript/components/block/block.helpers.d.ts.map +1 -1
  302. package/lib/node/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  303. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  304. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  305. package/lib/node/typescript/components/content/content.d.ts.map +1 -1
  306. package/lib/node/typescript/constants/file-types.d.ts +3 -0
  307. package/lib/node/typescript/constants/file-types.d.ts.map +1 -0
  308. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  309. package/lib/node/typescript/context/builder.context.d.ts.map +1 -1
  310. package/lib/node/typescript/context/types.d.ts +1 -0
  311. package/lib/node/typescript/context/types.d.ts.map +1 -1
  312. package/lib/node/typescript/functions/extract-localized-values.d.ts +3 -0
  313. package/lib/node/typescript/functions/extract-localized-values.d.ts.map +1 -0
  314. package/lib/node/typescript/functions/get-block-component-options.d.ts +2 -1
  315. package/lib/node/typescript/functions/get-block-component-options.d.ts.map +1 -1
  316. package/lib/node/typescript/functions/get-content/generate-content-url.d.ts.map +1 -1
  317. package/lib/node/typescript/functions/get-processed-block.d.ts +1 -6
  318. package/lib/node/typescript/functions/get-processed-block.d.ts.map +1 -1
  319. package/lib/node/typescript/functions/register-component.d.ts.map +1 -1
  320. package/lib/node/typescript/functions/traverse.d.ts +35 -0
  321. package/lib/node/typescript/functions/traverse.d.ts.map +1 -0
  322. package/lib/node/typescript/helpers/flatten.d.ts +6 -0
  323. package/lib/node/typescript/helpers/flatten.d.ts.map +1 -1
  324. package/lib/node/typescript/server-index.d.ts +1 -1
  325. package/lib/node/typescript/server-index.d.ts.map +1 -1
  326. package/lib/node/typescript/types/components.d.ts +3 -0
  327. package/lib/node/typescript/types/components.d.ts.map +1 -1
  328. package/package.json +1 -1
  329. package/src/blocks/image/component-info.ts +2 -1
  330. package/src/blocks/img/component-info.ts +2 -1
  331. package/src/blocks/text/text.tsx +3 -25
  332. package/src/blocks/video/component-info.ts +3 -2
  333. package/src/components/block/block.helpers.ts +18 -6
  334. package/src/components/block/block.tsx +4 -3
  335. package/src/components/content/components/enable-editor.helpers.ts +18 -0
  336. package/src/components/content/components/enable-editor.tsx +51 -13
  337. package/src/components/content/content.tsx +3 -10
  338. package/src/constants/file-types.ts +2 -0
  339. package/src/constants/sdk-version.ts +1 -1
  340. package/src/context/builder.context.ts +1 -0
  341. package/src/context/types.ts +1 -0
  342. package/src/functions/evaluate/edge-runtime/edge-runtime.ts +1 -5
  343. package/src/functions/extract-localized-values.ts +38 -0
  344. package/src/functions/get-block-component-options.ts +19 -2
  345. package/src/functions/get-content/generate-content-url.ts +30 -3
  346. package/src/functions/get-processed-block.ts +10 -18
  347. package/src/functions/register-component.ts +4 -1
  348. package/src/functions/traverse.ts +64 -0
  349. package/src/helpers/flatten.ts +23 -0
  350. package/src/server-index.ts +1 -1
  351. package/src/types/components.ts +3 -0
@@ -0,0 +1,35 @@
1
+ type TraverseCallback = (value: any, update: (newValue: any) => void) => void;
2
+ /**
3
+ * Recursively traverses an object or array, invoking a callback on each value.
4
+ *
5
+ * @param {any} obj - The object or array to traverse. Can also handle primitives, null, or undefined.
6
+ * @param {TraverseCallback} callback - The function to invoke on each value. Receives the current value
7
+ * and an `update` function to modify the value in its parent container.
8
+ * @param {any} [parent=null] - The parent object or array of the current value. Used internally.
9
+ * @param {any} [key=null] - The key or index of the current value in its parent. Used internally.
10
+ * @param {WeakSet} [visited=new WeakSet()] - Tracks visited objects to handle circular references. Used internally.
11
+ *
12
+ * @example
13
+ * // Example: Doubling all numbers in an object
14
+ * const obj = { a: 1, b: [2, 3, { c: 4 }] };
15
+ * traverse(obj, (value, update) => {
16
+ * if (typeof value === 'number') {
17
+ * update(value * 2);
18
+ * }
19
+ * });
20
+ * console.log(obj); // { a: 2, b: [4, 6, { c: 8 }] }
21
+ *
22
+ * @example
23
+ * // Example: Handling circular references
24
+ * const obj = { a: 1 };
25
+ * obj.self = obj;
26
+ * traverse(obj, (value, update) => {
27
+ * if (typeof value === 'number') {
28
+ * update(value * 2);
29
+ * }
30
+ * });
31
+ * console.log(obj.a); // 2
32
+ */
33
+ export declare function traverse(obj: any, callback: TraverseCallback, parent?: any, key?: any, visited?: WeakSet<object>): void;
34
+ export {};
35
+ //# sourceMappingURL=traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../../src/functions/traverse.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAE,GAAU,EAAE,GAAG,GAAE,GAAU,EAAE,OAAO,kBAAgB,GAAG,IAAI,CA8BjI"}
@@ -14,4 +14,10 @@ export declare function flatten<T extends Record<string, any>>(object: T, path?:
14
14
  export declare function flattenMongoQuery(obj: any, _current?: any, _res?: any): {
15
15
  [key: string]: string;
16
16
  };
17
+ /**
18
+ * Unflatten a flat object with dot-separated keys back into a nested object.
19
+ *
20
+ * { 'foo.bar': 'baz' } -> { foo: { bar: 'baz' }}
21
+ */
22
+ export declare function unflatten(obj: any): any;
17
23
  //# sourceMappingURL=flatten.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/helpers/flatten.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,EAAE,SAAS,SAAM,GAAG,CAAC,CAahH;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,GAAG;IAC3E,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAWA"}
1
+ {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/helpers/flatten.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,EAAE,SAAS,SAAM,GAAG,CAAC,CAahH;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,GAAG;IAC3E,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAWA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAgBvC"}
@@ -15,7 +15,7 @@ export type { ContentVariantsPrps as ContentProps } from './components/content-v
15
15
  /**
16
16
  * General Builder types
17
17
  */
18
- export type { RegisteredComponent } from './context/types';
18
+ export type { BuilderContextInterface, RegisteredComponent, RegisteredComponents } from './context/types';
19
19
  export type { BuilderBlock } from './types/builder-block';
20
20
  export type { BuilderContent } from './types/builder-content';
21
21
  export type { ComponentInfo } from './types/components';
@@ -1 +1 @@
1
- {"version":3,"file":"server-index.d.ts","sourceRoot":"","sources":["../../../src/server-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAE5C;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEhH;;GAEG;AACH,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnG,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"server-index.d.ts","sourceRoot":"","sources":["../../../src/server-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAE5C;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEhH;;GAEG;AACH,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1G,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnG,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA"}
@@ -146,6 +146,9 @@ export interface ComponentInfo {
146
146
  */
147
147
  builderLinkComponent?: boolean;
148
148
  };
149
+ meta?: {
150
+ [key: string]: any;
151
+ };
149
152
  }
150
153
  type Permission = 'read' | 'publish' | 'editCode' | 'editDesigns' | 'admin' | 'create';
151
154
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/types/components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;IACpD,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnC,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAClC,CAAC;IACF;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,+FAA+F;QAC/F,OAAO,EAAE,MAAM,CAAC;QAChB,mEAAmE;QACnE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;;;;;;;WASG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,2GAA2G;QAC3G,OAAO,EAAE,MAAM,CAAC;QAChB,uFAAuF;QACvF,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;;;;;;;;WASG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAGxC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,yBAAyB,CAAC,EAAE;QAC1B;;;;WAIG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAE5B;;;;WAIG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AACD,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/types/components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;IACpD,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnC,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAClC,CAAC;IACF;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,+FAA+F;QAC/F,OAAO,EAAE,MAAM,CAAC;QAChB,mEAAmE;QACnE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;;;;;;;WASG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,2GAA2G;QAC3G,OAAO,EAAE,MAAM,CAAC;QAChB,uFAAuF;QACvF,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;;;;;;;;WASG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAGxC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,yBAAyB,CAAC,EAAE;QAC1B;;;;WAIG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAE5B;;;;WAIG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,IAAI,CAAC,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AACD,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAA"}
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": "3.0.0",
4
+ "version": "3.0.2",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react-native",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1,3 +1,4 @@
1
+ import { IMAGE_FILE_TYPES } from '../../constants/file-types';
1
2
  import type { ComponentInfo } from '../../types/components';
2
3
  export const componentInfo: ComponentInfo = {
3
4
  name: 'Image',
@@ -14,7 +15,7 @@ export const componentInfo: ComponentInfo = {
14
15
  name: 'image',
15
16
  type: 'file',
16
17
  bubble: true,
17
- allowedFileTypes: ['jpeg', 'jpg', 'png', 'svg', 'webp'],
18
+ allowedFileTypes: IMAGE_FILE_TYPES,
18
19
  required: true,
19
20
  defaultValue: 'https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a',
20
21
  onChange: (options: Map<string, any>): void | Promise<void> => {
@@ -1,3 +1,4 @@
1
+ import { IMAGE_FILE_TYPES } from '../../constants/file-types';
1
2
  import type { ComponentInfo } from '../../types/components';
2
3
  export const componentInfo: ComponentInfo = {
3
4
  // friendlyName?
@@ -8,7 +9,7 @@ export const componentInfo: ComponentInfo = {
8
9
  name: 'image',
9
10
  bubble: true,
10
11
  type: 'file',
11
- allowedFileTypes: ['jpeg', 'jpg', 'png', 'svg', 'gif', 'webp'],
12
+ allowedFileTypes: IMAGE_FILE_TYPES,
12
13
  required: true
13
14
  }],
14
15
  noWrap: true,
@@ -1,8 +1,7 @@
1
+ import { RenderHTML } from '@builder.io/react-native-render-html';
1
2
  import * as React from 'react';
2
3
  import { useWindowDimensions } from 'react-native';
3
- import { RenderHTML } from '@builder.io/react-native-render-html';
4
4
  import BuilderContext from '../../context/builder.context';
5
- import { evaluate } from '../../functions/evaluate/index';
6
5
 
7
6
  /**
8
7
  * @typedef {{}} BuilderBlock
@@ -90,38 +89,17 @@ function getCss(block, inheritedStyles) {
90
89
  /**
91
90
  *
92
91
  * @param {{ text: string; builderBlock: BuilderBlock, builderContext: BuilderContext}} props
93
- * @returns
92
+ * @returns
94
93
  */
95
94
  export default function Text(props) {
96
95
  const { width } = useWindowDimensions();
97
96
  const context = React.useContext(BuilderContext);
98
- const {
99
- context: contextContext,
100
- localState,
101
- rootState,
102
- rootSetState,
103
- } = context;
104
-
105
- const processedText = String(props.text?.toString() || '').replace(
106
- /{{([^}]+)}}/g,
107
- (match, group) => evaluate({
108
- code: group,
109
- context: contextContext,
110
- localState,
111
- rootState,
112
- rootSetState,
113
-
114
- }).toString()
115
- );
116
97
 
117
98
  return (
118
99
  <RenderHTML
119
100
  contentWidth={width}
120
101
  source={{
121
- html: `<div style="${getCss(
122
- props.builderBlock,
123
- context.inheritedStyles
124
- )}">${processedText}</div>`,
102
+ html: `<div style="${getCss(props.builderBlock, context.inheritedStyles)}">${props.text?.toString() || ''}</div>`,
125
103
  }}
126
104
  />
127
105
  );
@@ -1,3 +1,4 @@
1
+ import { IMAGE_FILE_TYPES, VIDEO_FILE_TYPES } from '../../constants/file-types';
1
2
  import type { ComponentInfo } from '../../types/components';
2
3
  export const componentInfo: ComponentInfo = {
3
4
  name: 'Video',
@@ -10,14 +11,14 @@ export const componentInfo: ComponentInfo = {
10
11
  inputs: [{
11
12
  name: 'video',
12
13
  type: 'file',
13
- allowedFileTypes: ['mp4'],
14
+ allowedFileTypes: VIDEO_FILE_TYPES,
14
15
  bubble: true,
15
16
  defaultValue: 'https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fd27731a526464deba0016216f5f9e570%2Fcompressed?apiKey=YJIGb4i01jvw0SRdL5Bt&token=d27731a526464deba0016216f5f9e570&alt=media&optimized=true',
16
17
  required: true
17
18
  }, {
18
19
  name: 'posterImage',
19
20
  type: 'file',
20
- allowedFileTypes: ['jpeg', 'png'],
21
+ allowedFileTypes: IMAGE_FILE_TYPES,
21
22
  helperText: 'Image to show before the video plays'
22
23
  }, {
23
24
  name: 'autoPlay',
@@ -4,19 +4,26 @@ import { extractTextStyles } from '../../functions/extract-text-styles';
4
4
  import { getStyle } from '../../functions/get-style';
5
5
  import type { BuilderBlock } from '../../types/builder-block';
6
6
  import type { RepeatData } from './types';
7
+ const checkIsComponentRestricted = (component: RegisteredComponent | null | undefined, model: string) => {
8
+ if (!component) return true;
9
+ if (!model) return false;
10
+ return component.models && component.models.length > 0 && !component.models.includes(model);
11
+ };
7
12
  export const getComponent = ({
8
13
  block,
9
- registeredComponents
14
+ registeredComponents,
15
+ model
10
16
  }: {
11
17
  block: BuilderBlock;
12
18
  registeredComponents: RegisteredComponents;
19
+ model: string;
13
20
  }) => {
14
21
  const componentName = block.component?.name;
15
22
  if (!componentName) {
16
23
  return null;
17
24
  }
18
25
  const ref = registeredComponents[componentName];
19
- if (!ref) {
26
+ if (!ref || checkIsComponentRestricted(ref, model)) {
20
27
  // TODO: Public doc page with more info about this message
21
28
  console.warn(`
22
29
  Could not find a registered component named "${componentName}".
@@ -93,10 +100,15 @@ export const provideLinkComponent = (block: RegisteredComponent | null | undefin
93
100
  };
94
101
  return {};
95
102
  };
96
- export const provideRegisteredComponents = (block: RegisteredComponent | null | undefined, registeredComponents: RegisteredComponents) => {
97
- if (block?.shouldReceiveBuilderProps?.builderComponents) return {
98
- builderComponents: registeredComponents
99
- };
103
+ export const provideRegisteredComponents = (block: RegisteredComponent | null | undefined, registeredComponents: RegisteredComponents, model: string) => {
104
+ if (block?.shouldReceiveBuilderProps?.builderComponents) {
105
+ const filteredRegisteredComponents = Object.fromEntries(Object.entries(registeredComponents).filter(([_, component]) => {
106
+ return !checkIsComponentRestricted(component, model);
107
+ }));
108
+ return {
109
+ builderComponents: filteredRegisteredComponents
110
+ };
111
+ }
100
112
  return {};
101
113
  };
102
114
  export const provideBuilderBlock = (block: RegisteredComponent | null | undefined, builderBlock: BuilderBlock) => {
@@ -72,7 +72,6 @@ function Block(props: BlockProps) {
72
72
  rootState: props.context.rootState,
73
73
  rootSetState: props.context.rootSetState,
74
74
  context: props.context.context,
75
- shouldEvaluateBindings: true,
76
75
  });
77
76
  _processedBlock.value = blockToUse;
78
77
  _processedBlock.update = false;
@@ -83,6 +82,7 @@ function Block(props: BlockProps) {
83
82
  return getComponent({
84
83
  block: processedBlock(),
85
84
  registeredComponents: props.registeredComponents,
85
+ model: props.context.model,
86
86
  });
87
87
  }
88
88
 
@@ -128,13 +128,14 @@ function Block(props: BlockProps) {
128
128
  blockChildren: processedBlock().children ?? [],
129
129
  componentRef: blockComponent?.()?.component,
130
130
  componentOptions: {
131
- ...getBlockComponentOptions(processedBlock()),
131
+ ...getBlockComponentOptions(processedBlock(), props.context),
132
132
  ...provideBuilderBlock(blockComponent(), processedBlock()),
133
133
  ...provideBuilderContext(blockComponent(), props.context),
134
134
  ...provideLinkComponent(blockComponent(), props.linkComponent),
135
135
  ...provideRegisteredComponents(
136
136
  blockComponent(),
137
- props.registeredComponents
137
+ props.registeredComponents,
138
+ props.context.model
138
139
  ),
139
140
  },
140
141
  context: {
@@ -0,0 +1,18 @@
1
+ import { TARGET } from '../../../constants/target';
2
+ import { isEditing } from '../../../functions/is-editing';
3
+ import { isPreviewing } from '../../../functions/is-previewing';
4
+ import type { Target } from '../../../types/targets';
5
+
6
+ /**
7
+ * SDKS that use the elementRef approach to enable visual editing.
8
+ * We don't need to render the div for other SDKs as they attach event listeners to the window.
9
+ */
10
+ export const SDKS_USING_ELEMENT_REF_APPROACH = (['svelte', 'qwik', 'vue'] as Target[]);
11
+
12
+ /**
13
+ * We need to attach this div only when content exists or isPreviewing/isEditing even when content is null,
14
+ * as we need to set the elementRef and allow previewing and visual editing
15
+ */
16
+ export const needsElementRefDivForEditing = () => {
17
+ return SDKS_USING_ELEMENT_REF_APPROACH.includes(TARGET) && (isEditing() || isPreviewing());
18
+ }
@@ -55,6 +55,7 @@ import type {
55
55
  BuilderComponentStateChange,
56
56
  ContentProps,
57
57
  } from "../content.types";
58
+ import { needsElementRefDivForEditing } from "./enable-editor.helpers";
58
59
  import { getWrapperClassName } from "./styles.helpers";
59
60
 
60
61
  function EnableEditor(props: BuilderEditorProps) {
@@ -249,8 +250,14 @@ function EnableEditor(props: BuilderEditorProps) {
249
250
  Object.values<ComponentInfo>(
250
251
  props.builderContextSignal.componentInfos
251
252
  ).forEach((registeredComponent) => {
252
- const message = createRegisterComponentMessage(registeredComponent);
253
- window.parent?.postMessage(message, "*");
253
+ if (
254
+ !props.model ||
255
+ !registeredComponent.models?.length ||
256
+ registeredComponent.models.includes(props.model)
257
+ ) {
258
+ const message = createRegisterComponentMessage(registeredComponent);
259
+ window.parent?.postMessage(message, "*");
260
+ }
254
261
  });
255
262
  window.addEventListener(
256
263
  "builder:component:stateChangeListenerActivated",
@@ -275,14 +282,23 @@ function EnableEditor(props: BuilderEditorProps) {
275
282
  * TO-DO: should we only update the state when there is a change?
276
283
  **/
277
284
  if (
278
- searchParamPreviewModel === props.model &&
279
- previewApiKey === props.apiKey &&
280
- (!props.content || searchParamPreviewId === props.content.id)
285
+ searchParamPreviewModel === "BUILDER_STUDIO" ||
286
+ (searchParamPreviewModel === props.model &&
287
+ previewApiKey === props.apiKey &&
288
+ (!props.content || searchParamPreviewId === props.content.id))
281
289
  ) {
282
290
  fetchOneEntry({
283
- model: props.model,
291
+ model: props.model || "",
284
292
  apiKey: props.apiKey,
285
293
  apiVersion: props.builderContextSignal.apiVersion,
294
+ ...(searchParamPreviewModel === "BUILDER_STUDIO" &&
295
+ props.context?.symbolId
296
+ ? {
297
+ query: {
298
+ id: props.context.symbolId,
299
+ },
300
+ }
301
+ : {}),
286
302
  }).then((content) => {
287
303
  if (content) {
288
304
  mergeNewContent(content);
@@ -323,8 +339,14 @@ function EnableEditor(props: BuilderEditorProps) {
323
339
  Object.values<ComponentInfo>(
324
340
  props.builderContextSignal.componentInfos
325
341
  ).forEach((registeredComponent) => {
326
- const message = createRegisterComponentMessage(registeredComponent);
327
- window.parent?.postMessage(message, "*");
342
+ if (
343
+ !props.model ||
344
+ !registeredComponent.models?.length ||
345
+ registeredComponent.models.includes(props.model)
346
+ ) {
347
+ const message = createRegisterComponentMessage(registeredComponent);
348
+ window.parent?.postMessage(message, "*");
349
+ }
328
350
  });
329
351
  window.addEventListener(
330
352
  "builder:component:stateChangeListenerActivated",
@@ -369,14 +391,23 @@ function EnableEditor(props: BuilderEditorProps) {
369
391
  * TO-DO: should we only update the state when there is a change?
370
392
  **/
371
393
  if (
372
- searchParamPreviewModel === props.model &&
373
- previewApiKey === props.apiKey &&
374
- (!props.content || searchParamPreviewId === props.content.id)
394
+ searchParamPreviewModel === "BUILDER_STUDIO" ||
395
+ (searchParamPreviewModel === props.model &&
396
+ previewApiKey === props.apiKey &&
397
+ (!props.content || searchParamPreviewId === props.content.id))
375
398
  ) {
376
399
  fetchOneEntry({
377
- model: props.model,
400
+ model: props.model || "",
378
401
  apiKey: props.apiKey,
379
402
  apiVersion: props.builderContextSignal.apiVersion,
403
+ ...(searchParamPreviewModel === "BUILDER_STUDIO" &&
404
+ props.context?.symbolId
405
+ ? {
406
+ query: {
407
+ id: props.context.symbolId,
408
+ },
409
+ }
410
+ : {}),
380
411
  }).then((content) => {
381
412
  if (content) {
382
413
  mergeNewContent(content);
@@ -422,13 +453,20 @@ function EnableEditor(props: BuilderEditorProps) {
422
453
 
423
454
  return (
424
455
  <builderContext.Provider value={props.builderContextSignal}>
425
- {props.builderContextSignal.content ? (
456
+ {props.builderContextSignal.content || needsElementRefDivForEditing() ? (
426
457
  <ContentWrapper
427
458
  {...{}}
428
459
  ref={elementRef}
429
460
  onClick={(event) => onClick(event)}
430
461
  builder-content-id={props.builderContextSignal.content?.id}
431
462
  builder-model={props.model}
463
+ style={{
464
+ display:
465
+ !props.builderContextSignal.content &&
466
+ needsElementRefDivForEditing()
467
+ ? "none"
468
+ : undefined,
469
+ }}
432
470
  {...{
433
471
  // currently, we can't set the actual ID here. // we don't need it right now, we just need to identify content divs for testing.
434
472
  dataSet: {
@@ -59,11 +59,7 @@ function ContentComponent(props: ContentProps) {
59
59
  const [registeredComponents, setRegisteredComponents] = useState(() =>
60
60
  [
61
61
  ...getDefaultRegisteredComponents(),
62
- ...(props.customComponents?.filter(({ models }) => {
63
- if (!models?.length) return true;
64
- if (!props.model) return true;
65
- return models.includes(props.model);
66
- }) || []),
62
+ ...(props.customComponents || []),
67
63
  ].reduce<RegisteredComponents>(
68
64
  (acc, { component, ...info }) => ({
69
65
  ...acc,
@@ -96,11 +92,7 @@ function ContentComponent(props: ContentProps) {
96
92
  apiVersion: props.apiVersion,
97
93
  componentInfos: [
98
94
  ...getDefaultRegisteredComponents(),
99
- ...(props.customComponents?.filter(({ models }) => {
100
- if (!models?.length) return true;
101
- if (!props.model) return true;
102
- return models.includes(props.model);
103
- }) || []),
95
+ ...(props.customComponents || []),
104
96
  ].reduce<Dictionary<ComponentInfo>>(
105
97
  (acc, { component: _, ...info }) => ({
106
98
  ...acc,
@@ -112,6 +104,7 @@ function ContentComponent(props: ContentProps) {
112
104
  BlocksWrapper: props.blocksWrapper || ScrollView,
113
105
  BlocksWrapperProps: props.blocksWrapperProps || {},
114
106
  nonce: props.nonce || "",
107
+ model: props.model || "",
115
108
  }));
116
109
 
117
110
  const hasInitialized = useRef(false);
@@ -0,0 +1,2 @@
1
+ export const IMAGE_FILE_TYPES = ['jpeg', 'jpg', 'png', 'svg', 'webp', 'gif', 'jfif', 'pjpeg', 'pjp', 'apng', 'avif', 'tif', 'tiff', 'heif', 'bmp', 'eps', 'raw', 'cr2', 'nef', 'orf', 'sr2', 'psd', 'heic', 'dib', 'ai'];
2
+ export const VIDEO_FILE_TYPES = ['mp4', 'webm', 'mkv', 'flv', 'vob', 'ogv', 'ogg', 'drc', 'gif', 'gifv', 'mng', 'avi', 'mov', 'qt', 'mts', 'm2ts', 'ts', 'wmv', 'yuv', 'rm', 'rmvb', 'viv', 'asf', 'amv', 'm4p', 'mpeg', 'mpe', 'm2v', 'm4v', 'svi', '3gp', '3g2', 'mxf', 'roq', 'nsv', 'f4v', 'f4p', 'f4a', 'f4b']
@@ -1 +1 @@
1
- export const SDK_VERSION = "3.0.0"
1
+ export const SDK_VERSION = "3.0.2"
@@ -13,4 +13,5 @@ export default createContext<any>({
13
13
  BlocksWrapper: "div",
14
14
  BlocksWrapperProps: {},
15
15
  nonce: "",
16
+ model: "",
16
17
  });
@@ -37,5 +37,6 @@ export interface BuilderContextInterface extends Pick<BlocksWrapperProps, 'Block
37
37
  // Used to recursively store all CSS coming from a parent that would apply to a Text block
38
38
  inheritedStyles: Record<string, unknown>;
39
39
  nonce: string;
40
+ model: string;
40
41
  canTrack?: boolean;
41
42
  }
@@ -1,4 +1,3 @@
1
- import { logger } from '../../../helpers/logger';
2
1
  import type { ExecutorArgs } from '../helpers';
3
2
  import { flattenState, getFunctionArguments } from '../helpers';
4
3
  import Interpreter from './acorn-interpreter';
@@ -95,10 +94,7 @@ export const runInEdge = ({
95
94
  return `var ${key} = ${jsonValName} === undefined ? undefined : JSON.parse(${jsonValName});`;
96
95
  }).join('\n');
97
96
  const cleanedCode = processCode(code);
98
- if (cleanedCode === '') {
99
- logger.warn('Skipping evaluation of empty code block.');
100
- return;
101
- }
97
+ if (cleanedCode === '') return;
102
98
  const transformed = `
103
99
  function theFunction() {
104
100
  ${prependedCode}
@@ -0,0 +1,38 @@
1
+ import type { BuilderBlock } from '../types/builder-block';
2
+ import { traverse } from './traverse';
3
+ function isLocalizedField(value: any) {
4
+ return value && typeof value === 'object' && value['@type'] === '@builder.io/core:LocalizedValue';
5
+ }
6
+ function containsLocalizedValues(data: Record<string, any>) {
7
+ if (!data || !Object.getOwnPropertyNames(data).length) {
8
+ return false;
9
+ }
10
+ let hasLocalizedValues = false;
11
+ traverse(data, value => {
12
+ if (isLocalizedField(value)) {
13
+ hasLocalizedValues = true;
14
+ return;
15
+ }
16
+ });
17
+ return hasLocalizedValues;
18
+ }
19
+ function extractLocalizedValues(data: Record<string, any>, locale: string) {
20
+ if (!data || !Object.getOwnPropertyNames(data).length) {
21
+ return {};
22
+ }
23
+ traverse(data, (value, update) => {
24
+ if (isLocalizedField(value)) {
25
+ update(value[locale] ?? undefined);
26
+ }
27
+ });
28
+ return data;
29
+ }
30
+ export function resolveLocalizedValues(block: BuilderBlock, locale: string | undefined) {
31
+ if (block.component?.options && containsLocalizedValues(block.component?.options)) {
32
+ if (!locale) {
33
+ console.warn('[Builder.io] In order to use localized fields in Builder, you must pass a locale prop to the BuilderComponent or to options object while fetching the content to resolve localized fields. Learn more: https://www.builder.io/c/docs/localization-inline#targeting-and-inline-localization');
34
+ }
35
+ block.component.options = extractLocalizedValues(block.component.options, locale ?? 'Default');
36
+ }
37
+ return block;
38
+ }
@@ -1,7 +1,24 @@
1
+ import type { BuilderContextInterface } from '../context/types';
1
2
  import type { BuilderBlock } from '../types/builder-block';
2
- export function getBlockComponentOptions(block: BuilderBlock) {
3
+ import { evaluate } from './evaluate/evaluate';
4
+ export function getBlockComponentOptions(block: BuilderBlock, context: Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>) {
3
5
  return {
4
6
  ...block.component?.options,
5
- ...(block as any).options
7
+ ...(block as any).options,
8
+ ...evaluateTextComponentTextOption(block, context)
6
9
  };
10
+ }
11
+ const evaluateTextComponentTextOption = (block: BuilderBlock, context: Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>) => {
12
+ if (block.component?.name === 'Text' && block.component.options?.text && typeof block.component.options.text === 'string') {
13
+ return {
14
+ ...block.component.options,
15
+ text: block.component.options.text.replace(/{{([^}]+)}}/g, (_match: string, group: string) => (evaluate({
16
+ code: group,
17
+ context,
18
+ localState: context.localState,
19
+ rootState: context.rootState,
20
+ rootSetState: context.rootSetState
21
+ }) as string))
22
+ };
23
+ }
7
24
  }
@@ -1,7 +1,8 @@
1
- import { flatten, flattenMongoQuery } from '../../helpers/flatten';
1
+ import { flatten, flattenMongoQuery, unflatten } from '../../helpers/flatten';
2
2
  import { normalizeSearchParams } from '../../helpers/search/search';
3
3
  import { DEFAULT_API_VERSION } from '../../types/api-version';
4
4
  import { getBuilderSearchParamsFromWindow } from '../get-builder-search-params/index';
5
+ import { isBrowser } from '../is-browser';
5
6
  import type { GetContentOptions } from './types';
6
7
  const isPositiveNumber = (thing: unknown) => typeof thing === 'number' && !isNaN(thing) && thing >= 0;
7
8
  export const generateContentUrl = (options: GetContentOptions): URL => {
@@ -39,7 +40,7 @@ export const generateContentUrl = (options: GetContentOptions): URL => {
39
40
  url.searchParams.set('noTraverse', String(noTraverse));
40
41
  url.searchParams.set('includeRefs', String(true));
41
42
  const finalLocale = locale || userAttributes?.locale;
42
- let finalUserAttributes = userAttributes;
43
+ let finalUserAttributes: Record<string, any> = userAttributes || {};
43
44
  if (finalLocale) {
44
45
  url.searchParams.set('locale', finalLocale);
45
46
  finalUserAttributes = {
@@ -79,11 +80,15 @@ export const generateContentUrl = (options: GetContentOptions): URL => {
79
80
  ...getBuilderSearchParamsFromWindow(),
80
81
  ...normalizeSearchParams(options.options || {})
81
82
  };
83
+ finalUserAttributes = {
84
+ ...finalUserAttributes,
85
+ ...getUserAttributesAsJSON(queryOptions)
86
+ };
82
87
  const flattened = flatten(queryOptions);
83
88
  for (const key in flattened) {
84
89
  url.searchParams.set(key, String(flattened[key]));
85
90
  }
86
- if (finalUserAttributes) {
91
+ if (Object.keys(finalUserAttributes).length > 0) {
87
92
  url.searchParams.set('userAttributes', JSON.stringify(finalUserAttributes));
88
93
  }
89
94
  if (query) {
@@ -95,4 +100,26 @@ export const generateContentUrl = (options: GetContentOptions): URL => {
95
100
  }
96
101
  }
97
102
  return url;
103
+ };
104
+ const getUserAttributesFromQueryOptions = (queryOptions: any) => {
105
+ const newUserAttributes: any = {};
106
+ for (const key in queryOptions) {
107
+ if (key.startsWith('userAttributes.')) {
108
+ newUserAttributes[key] = queryOptions[key];
109
+ delete queryOptions[key];
110
+ }
111
+ }
112
+ return newUserAttributes;
113
+ };
114
+ const getUserAttributesAsJSON = (queryOptions: any) => {
115
+ if (isBrowser() && queryOptions['preview'] === 'BUILDER_STUDIO') {
116
+ queryOptions['userAttributes.urlPath'] = window.location.pathname;
117
+ queryOptions['userAttributes.host'] = window.location.host;
118
+ const queryOptionsForUserAttributes = getUserAttributesFromQueryOptions(queryOptions);
119
+ const {
120
+ userAttributes
121
+ } = unflatten(queryOptionsForUserAttributes);
122
+ return userAttributes;
123
+ }
124
+ return {};
98
125
  }