@builder.io/sdk-react-native 2.0.31 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) 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/video/component-info.js +3 -2
  6. package/lib/browser/commonjs/blocks/video/component-info.js.map +1 -1
  7. package/lib/browser/commonjs/components/block/block.helpers.js +17 -6
  8. package/lib/browser/commonjs/components/block/block.helpers.js.map +1 -1
  9. package/lib/browser/commonjs/components/block/block.js +3 -2
  10. package/lib/browser/commonjs/components/block/block.js.map +1 -1
  11. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  12. package/lib/browser/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  13. package/lib/browser/commonjs/components/content/components/enable-editor.js +17 -7
  14. package/lib/browser/commonjs/components/content/components/enable-editor.js.map +1 -1
  15. package/lib/browser/commonjs/components/content/content.js +37 -54
  16. package/lib/browser/commonjs/components/content/content.js.map +1 -1
  17. package/lib/browser/commonjs/constants/file-types.js +9 -0
  18. package/lib/browser/commonjs/constants/file-types.js.map +1 -0
  19. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  20. package/lib/browser/commonjs/constants/sdk-version.js.map +1 -1
  21. package/lib/browser/commonjs/context/builder.context.js +2 -1
  22. package/lib/browser/commonjs/context/builder.context.js.map +1 -1
  23. package/lib/browser/commonjs/functions/extract-localized-values.js +45 -0
  24. package/lib/browser/commonjs/functions/extract-localized-values.js.map +1 -0
  25. package/lib/browser/commonjs/functions/get-content/index.js +10 -15
  26. package/lib/browser/commonjs/functions/get-content/index.js.map +1 -1
  27. package/lib/browser/commonjs/functions/get-processed-block.js +3 -1
  28. package/lib/browser/commonjs/functions/get-processed-block.js.map +1 -1
  29. package/lib/browser/commonjs/functions/register-component.js +4 -1
  30. package/lib/browser/commonjs/functions/register-component.js.map +1 -1
  31. package/lib/browser/commonjs/functions/traverse.js +69 -0
  32. package/lib/browser/commonjs/functions/traverse.js.map +1 -0
  33. package/lib/browser/module/blocks/image/component-info.js +2 -1
  34. package/lib/browser/module/blocks/image/component-info.js.map +1 -1
  35. package/lib/browser/module/blocks/img/component-info.js +2 -1
  36. package/lib/browser/module/blocks/img/component-info.js.map +1 -1
  37. package/lib/browser/module/blocks/video/component-info.js +3 -2
  38. package/lib/browser/module/blocks/video/component-info.js.map +1 -1
  39. package/lib/browser/module/components/block/block.helpers.js +17 -6
  40. package/lib/browser/module/components/block/block.helpers.js.map +1 -1
  41. package/lib/browser/module/components/block/block.js +3 -2
  42. package/lib/browser/module/components/block/block.js.map +1 -1
  43. package/lib/browser/module/components/content/components/enable-editor.helpers.js +17 -0
  44. package/lib/browser/module/components/content/components/enable-editor.helpers.js.map +1 -0
  45. package/lib/browser/module/components/content/components/enable-editor.js +17 -7
  46. package/lib/browser/module/components/content/components/enable-editor.js.map +1 -1
  47. package/lib/browser/module/components/content/content.js +37 -54
  48. package/lib/browser/module/components/content/content.js.map +1 -1
  49. package/lib/browser/module/constants/file-types.js +3 -0
  50. package/lib/browser/module/constants/file-types.js.map +1 -0
  51. package/lib/browser/module/constants/sdk-version.js +1 -1
  52. package/lib/browser/module/constants/sdk-version.js.map +1 -1
  53. package/lib/browser/module/context/builder.context.js +2 -1
  54. package/lib/browser/module/context/builder.context.js.map +1 -1
  55. package/lib/browser/module/functions/extract-localized-values.js +39 -0
  56. package/lib/browser/module/functions/extract-localized-values.js.map +1 -0
  57. package/lib/browser/module/functions/get-content/index.js +10 -15
  58. package/lib/browser/module/functions/get-content/index.js.map +1 -1
  59. package/lib/browser/module/functions/get-processed-block.js +3 -1
  60. package/lib/browser/module/functions/get-processed-block.js.map +1 -1
  61. package/lib/browser/module/functions/register-component.js +4 -1
  62. package/lib/browser/module/functions/register-component.js.map +1 -1
  63. package/lib/browser/module/functions/traverse.js +63 -0
  64. package/lib/browser/module/functions/traverse.js.map +1 -0
  65. package/lib/browser/typescript/blocks/image/component-info.d.ts.map +1 -1
  66. package/lib/browser/typescript/components/block/block.d.ts.map +1 -1
  67. package/lib/browser/typescript/components/block/block.helpers.d.ts +6 -3
  68. package/lib/browser/typescript/components/block/block.helpers.d.ts.map +1 -1
  69. package/lib/browser/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  70. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  71. package/lib/browser/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  72. package/lib/browser/typescript/components/content/content.d.ts.map +1 -1
  73. package/lib/browser/typescript/constants/file-types.d.ts +3 -0
  74. package/lib/browser/typescript/constants/file-types.d.ts.map +1 -0
  75. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  76. package/lib/browser/typescript/constants/sdk-version.d.ts.map +1 -1
  77. package/lib/browser/typescript/context/builder.context.d.ts.map +1 -1
  78. package/lib/browser/typescript/context/types.d.ts +1 -0
  79. package/lib/browser/typescript/context/types.d.ts.map +1 -1
  80. package/lib/browser/typescript/functions/extract-localized-values.d.ts +3 -0
  81. package/lib/browser/typescript/functions/extract-localized-values.d.ts.map +1 -0
  82. package/lib/browser/typescript/functions/get-content/index.d.ts.map +1 -1
  83. package/lib/browser/typescript/functions/get-processed-block.d.ts.map +1 -1
  84. package/lib/browser/typescript/functions/register-component.d.ts.map +1 -1
  85. package/lib/browser/typescript/functions/traverse.d.ts +35 -0
  86. package/lib/browser/typescript/functions/traverse.d.ts.map +1 -0
  87. package/lib/browser/typescript/types/components.d.ts +3 -0
  88. package/lib/browser/typescript/types/components.d.ts.map +1 -1
  89. package/lib/edge/commonjs/blocks/image/component-info.js +2 -1
  90. package/lib/edge/commonjs/blocks/image/component-info.js.map +1 -1
  91. package/lib/edge/commonjs/blocks/img/component-info.js +2 -1
  92. package/lib/edge/commonjs/blocks/img/component-info.js.map +1 -1
  93. package/lib/edge/commonjs/blocks/video/component-info.js +3 -2
  94. package/lib/edge/commonjs/blocks/video/component-info.js.map +1 -1
  95. package/lib/edge/commonjs/components/block/block.helpers.js +17 -6
  96. package/lib/edge/commonjs/components/block/block.helpers.js.map +1 -1
  97. package/lib/edge/commonjs/components/block/block.js +3 -2
  98. package/lib/edge/commonjs/components/block/block.js.map +1 -1
  99. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  100. package/lib/edge/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  101. package/lib/edge/commonjs/components/content/components/enable-editor.js +17 -7
  102. package/lib/edge/commonjs/components/content/components/enable-editor.js.map +1 -1
  103. package/lib/edge/commonjs/components/content/content.js +37 -54
  104. package/lib/edge/commonjs/components/content/content.js.map +1 -1
  105. package/lib/edge/commonjs/constants/file-types.js +9 -0
  106. package/lib/edge/commonjs/constants/file-types.js.map +1 -0
  107. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  108. package/lib/edge/commonjs/constants/sdk-version.js.map +1 -1
  109. package/lib/edge/commonjs/context/builder.context.js +2 -1
  110. package/lib/edge/commonjs/context/builder.context.js.map +1 -1
  111. package/lib/edge/commonjs/functions/extract-localized-values.js +45 -0
  112. package/lib/edge/commonjs/functions/extract-localized-values.js.map +1 -0
  113. package/lib/edge/commonjs/functions/get-content/index.js +10 -15
  114. package/lib/edge/commonjs/functions/get-content/index.js.map +1 -1
  115. package/lib/edge/commonjs/functions/get-processed-block.js +3 -1
  116. package/lib/edge/commonjs/functions/get-processed-block.js.map +1 -1
  117. package/lib/edge/commonjs/functions/register-component.js +4 -1
  118. package/lib/edge/commonjs/functions/register-component.js.map +1 -1
  119. package/lib/edge/commonjs/functions/traverse.js +69 -0
  120. package/lib/edge/commonjs/functions/traverse.js.map +1 -0
  121. package/lib/edge/module/blocks/image/component-info.js +2 -1
  122. package/lib/edge/module/blocks/image/component-info.js.map +1 -1
  123. package/lib/edge/module/blocks/img/component-info.js +2 -1
  124. package/lib/edge/module/blocks/img/component-info.js.map +1 -1
  125. package/lib/edge/module/blocks/video/component-info.js +3 -2
  126. package/lib/edge/module/blocks/video/component-info.js.map +1 -1
  127. package/lib/edge/module/components/block/block.helpers.js +17 -6
  128. package/lib/edge/module/components/block/block.helpers.js.map +1 -1
  129. package/lib/edge/module/components/block/block.js +3 -2
  130. package/lib/edge/module/components/block/block.js.map +1 -1
  131. package/lib/edge/module/components/content/components/enable-editor.helpers.js +17 -0
  132. package/lib/edge/module/components/content/components/enable-editor.helpers.js.map +1 -0
  133. package/lib/edge/module/components/content/components/enable-editor.js +17 -7
  134. package/lib/edge/module/components/content/components/enable-editor.js.map +1 -1
  135. package/lib/edge/module/components/content/content.js +37 -54
  136. package/lib/edge/module/components/content/content.js.map +1 -1
  137. package/lib/edge/module/constants/file-types.js +3 -0
  138. package/lib/edge/module/constants/file-types.js.map +1 -0
  139. package/lib/edge/module/constants/sdk-version.js +1 -1
  140. package/lib/edge/module/constants/sdk-version.js.map +1 -1
  141. package/lib/edge/module/context/builder.context.js +2 -1
  142. package/lib/edge/module/context/builder.context.js.map +1 -1
  143. package/lib/edge/module/functions/extract-localized-values.js +39 -0
  144. package/lib/edge/module/functions/extract-localized-values.js.map +1 -0
  145. package/lib/edge/module/functions/get-content/index.js +10 -15
  146. package/lib/edge/module/functions/get-content/index.js.map +1 -1
  147. package/lib/edge/module/functions/get-processed-block.js +3 -1
  148. package/lib/edge/module/functions/get-processed-block.js.map +1 -1
  149. package/lib/edge/module/functions/register-component.js +4 -1
  150. package/lib/edge/module/functions/register-component.js.map +1 -1
  151. package/lib/edge/module/functions/traverse.js +63 -0
  152. package/lib/edge/module/functions/traverse.js.map +1 -0
  153. package/lib/edge/typescript/blocks/image/component-info.d.ts.map +1 -1
  154. package/lib/edge/typescript/components/block/block.d.ts.map +1 -1
  155. package/lib/edge/typescript/components/block/block.helpers.d.ts +6 -3
  156. package/lib/edge/typescript/components/block/block.helpers.d.ts.map +1 -1
  157. package/lib/edge/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  158. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  159. package/lib/edge/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  160. package/lib/edge/typescript/components/content/content.d.ts.map +1 -1
  161. package/lib/edge/typescript/constants/file-types.d.ts +3 -0
  162. package/lib/edge/typescript/constants/file-types.d.ts.map +1 -0
  163. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  164. package/lib/edge/typescript/constants/sdk-version.d.ts.map +1 -1
  165. package/lib/edge/typescript/context/builder.context.d.ts.map +1 -1
  166. package/lib/edge/typescript/context/types.d.ts +1 -0
  167. package/lib/edge/typescript/context/types.d.ts.map +1 -1
  168. package/lib/edge/typescript/functions/extract-localized-values.d.ts +3 -0
  169. package/lib/edge/typescript/functions/extract-localized-values.d.ts.map +1 -0
  170. package/lib/edge/typescript/functions/get-content/index.d.ts.map +1 -1
  171. package/lib/edge/typescript/functions/get-processed-block.d.ts.map +1 -1
  172. package/lib/edge/typescript/functions/register-component.d.ts.map +1 -1
  173. package/lib/edge/typescript/functions/traverse.d.ts +35 -0
  174. package/lib/edge/typescript/functions/traverse.d.ts.map +1 -0
  175. package/lib/edge/typescript/types/components.d.ts +3 -0
  176. package/lib/edge/typescript/types/components.d.ts.map +1 -1
  177. package/lib/node/commonjs/blocks/image/component-info.js +2 -1
  178. package/lib/node/commonjs/blocks/image/component-info.js.map +1 -1
  179. package/lib/node/commonjs/blocks/img/component-info.js +2 -1
  180. package/lib/node/commonjs/blocks/img/component-info.js.map +1 -1
  181. package/lib/node/commonjs/blocks/video/component-info.js +3 -2
  182. package/lib/node/commonjs/blocks/video/component-info.js.map +1 -1
  183. package/lib/node/commonjs/components/block/block.helpers.js +17 -6
  184. package/lib/node/commonjs/components/block/block.helpers.js.map +1 -1
  185. package/lib/node/commonjs/components/block/block.js +3 -2
  186. package/lib/node/commonjs/components/block/block.js.map +1 -1
  187. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js +24 -0
  188. package/lib/node/commonjs/components/content/components/enable-editor.helpers.js.map +1 -0
  189. package/lib/node/commonjs/components/content/components/enable-editor.js +17 -7
  190. package/lib/node/commonjs/components/content/components/enable-editor.js.map +1 -1
  191. package/lib/node/commonjs/components/content/content.js +37 -54
  192. package/lib/node/commonjs/components/content/content.js.map +1 -1
  193. package/lib/node/commonjs/constants/file-types.js +9 -0
  194. package/lib/node/commonjs/constants/file-types.js.map +1 -0
  195. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  196. package/lib/node/commonjs/constants/sdk-version.js.map +1 -1
  197. package/lib/node/commonjs/context/builder.context.js +2 -1
  198. package/lib/node/commonjs/context/builder.context.js.map +1 -1
  199. package/lib/node/commonjs/functions/extract-localized-values.js +45 -0
  200. package/lib/node/commonjs/functions/extract-localized-values.js.map +1 -0
  201. package/lib/node/commonjs/functions/get-content/index.js +10 -15
  202. package/lib/node/commonjs/functions/get-content/index.js.map +1 -1
  203. package/lib/node/commonjs/functions/get-processed-block.js +3 -1
  204. package/lib/node/commonjs/functions/get-processed-block.js.map +1 -1
  205. package/lib/node/commonjs/functions/register-component.js +4 -1
  206. package/lib/node/commonjs/functions/register-component.js.map +1 -1
  207. package/lib/node/commonjs/functions/traverse.js +69 -0
  208. package/lib/node/commonjs/functions/traverse.js.map +1 -0
  209. package/lib/node/module/blocks/image/component-info.js +2 -1
  210. package/lib/node/module/blocks/image/component-info.js.map +1 -1
  211. package/lib/node/module/blocks/img/component-info.js +2 -1
  212. package/lib/node/module/blocks/img/component-info.js.map +1 -1
  213. package/lib/node/module/blocks/video/component-info.js +3 -2
  214. package/lib/node/module/blocks/video/component-info.js.map +1 -1
  215. package/lib/node/module/components/block/block.helpers.js +17 -6
  216. package/lib/node/module/components/block/block.helpers.js.map +1 -1
  217. package/lib/node/module/components/block/block.js +3 -2
  218. package/lib/node/module/components/block/block.js.map +1 -1
  219. package/lib/node/module/components/content/components/enable-editor.helpers.js +17 -0
  220. package/lib/node/module/components/content/components/enable-editor.helpers.js.map +1 -0
  221. package/lib/node/module/components/content/components/enable-editor.js +17 -7
  222. package/lib/node/module/components/content/components/enable-editor.js.map +1 -1
  223. package/lib/node/module/components/content/content.js +37 -54
  224. package/lib/node/module/components/content/content.js.map +1 -1
  225. package/lib/node/module/constants/file-types.js +3 -0
  226. package/lib/node/module/constants/file-types.js.map +1 -0
  227. package/lib/node/module/constants/sdk-version.js +1 -1
  228. package/lib/node/module/constants/sdk-version.js.map +1 -1
  229. package/lib/node/module/context/builder.context.js +2 -1
  230. package/lib/node/module/context/builder.context.js.map +1 -1
  231. package/lib/node/module/functions/extract-localized-values.js +39 -0
  232. package/lib/node/module/functions/extract-localized-values.js.map +1 -0
  233. package/lib/node/module/functions/get-content/index.js +10 -15
  234. package/lib/node/module/functions/get-content/index.js.map +1 -1
  235. package/lib/node/module/functions/get-processed-block.js +3 -1
  236. package/lib/node/module/functions/get-processed-block.js.map +1 -1
  237. package/lib/node/module/functions/register-component.js +4 -1
  238. package/lib/node/module/functions/register-component.js.map +1 -1
  239. package/lib/node/module/functions/traverse.js +63 -0
  240. package/lib/node/module/functions/traverse.js.map +1 -0
  241. package/lib/node/typescript/blocks/image/component-info.d.ts.map +1 -1
  242. package/lib/node/typescript/components/block/block.d.ts.map +1 -1
  243. package/lib/node/typescript/components/block/block.helpers.d.ts +6 -3
  244. package/lib/node/typescript/components/block/block.helpers.d.ts.map +1 -1
  245. package/lib/node/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  246. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts +12 -0
  247. package/lib/node/typescript/components/content/components/enable-editor.helpers.d.ts.map +1 -0
  248. package/lib/node/typescript/components/content/content.d.ts.map +1 -1
  249. package/lib/node/typescript/constants/file-types.d.ts +3 -0
  250. package/lib/node/typescript/constants/file-types.d.ts.map +1 -0
  251. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  252. package/lib/node/typescript/constants/sdk-version.d.ts.map +1 -1
  253. package/lib/node/typescript/context/builder.context.d.ts.map +1 -1
  254. package/lib/node/typescript/context/types.d.ts +1 -0
  255. package/lib/node/typescript/context/types.d.ts.map +1 -1
  256. package/lib/node/typescript/functions/extract-localized-values.d.ts +3 -0
  257. package/lib/node/typescript/functions/extract-localized-values.d.ts.map +1 -0
  258. package/lib/node/typescript/functions/get-content/index.d.ts.map +1 -1
  259. package/lib/node/typescript/functions/get-processed-block.d.ts.map +1 -1
  260. package/lib/node/typescript/functions/register-component.d.ts.map +1 -1
  261. package/lib/node/typescript/functions/traverse.d.ts +35 -0
  262. package/lib/node/typescript/functions/traverse.d.ts.map +1 -0
  263. package/lib/node/typescript/types/components.d.ts +3 -0
  264. package/lib/node/typescript/types/components.d.ts.map +1 -1
  265. package/package.json +1 -1
  266. package/src/blocks/image/component-info.ts +2 -1
  267. package/src/blocks/img/component-info.ts +2 -1
  268. package/src/blocks/video/component-info.ts +3 -2
  269. package/src/components/block/block.helpers.ts +18 -6
  270. package/src/components/block/block.tsx +3 -1
  271. package/src/components/content/components/enable-editor.helpers.ts +18 -0
  272. package/src/components/content/components/enable-editor.tsx +25 -5
  273. package/src/components/content/content.tsx +3 -10
  274. package/src/constants/file-types.ts +2 -0
  275. package/src/constants/sdk-version.ts +1 -1
  276. package/src/context/builder.context.ts +1 -0
  277. package/src/context/types.ts +1 -0
  278. package/src/functions/extract-localized-values.ts +38 -0
  279. package/src/functions/get-content/index.ts +10 -15
  280. package/src/functions/get-processed-block.ts +3 -1
  281. package/src/functions/register-component.ts +4 -1
  282. package/src/functions/traverse.ts +64 -0
  283. package/src/types/components.ts +3 -0
@@ -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 = "2.0.31"
1
+ export const SDK_VERSION = "3.0.1"
@@ -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
  }
@@ -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
+ }
@@ -88,20 +88,15 @@ export const _processContentResult = async (options: GetContentOptions, content:
88
88
  * Returns a paginated array of entries that match the given options.
89
89
  */
90
90
  export async function fetchEntries(options: GetContentOptions) {
91
- try {
92
- const url = generateContentUrl(options);
93
- const content = await _fetchContent(options);
94
- if (!checkContentHasResults(content)) {
95
- logger.error('Error fetching data. ', {
96
- url,
97
- content,
98
- options
99
- });
100
- return null;
101
- }
102
- return _processContentResult(options, content);
103
- } catch (error) {
104
- logger.error('Error fetching data. ', error);
105
- return null;
91
+ const url = generateContentUrl(options);
92
+ const content = await _fetchContent(options);
93
+ if (!checkContentHasResults(content)) {
94
+ logger.error('Error fetching data. ', {
95
+ url,
96
+ content,
97
+ options
98
+ });
99
+ throw content;
106
100
  }
101
+ return _processContentResult(options, content);
107
102
  }
@@ -3,6 +3,7 @@ import type { BuilderContextInterface } from '../context/types';
3
3
  import { omit } from '../helpers/omit';
4
4
  import type { BuilderBlock } from '../types/builder-block';
5
5
  import { evaluate } from './evaluate/index';
6
+ import { resolveLocalizedValues } from './extract-localized-values';
6
7
  import { fastClone } from './fast-clone';
7
8
  import { set } from './set';
8
9
  import { transformBlock } from './transform-block';
@@ -96,7 +97,8 @@ export function getProcessedBlock({
96
97
  */
97
98
  shouldEvaluateBindings: boolean;
98
99
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>): BuilderBlock {
99
- const transformedBlock = transformBlock(block);
100
+ let transformedBlock = resolveLocalizedValues(block, (rootState.locale as string | undefined));
101
+ transformedBlock = transformBlock(transformedBlock);
100
102
  if (shouldEvaluateBindings) {
101
103
  return evaluateBindings({
102
104
  block: transformedBlock,
@@ -13,8 +13,11 @@ const serializeFn = (fnValue: Function) => {
13
13
  // 2. `name(args) => {code}`
14
14
  // 3. `(args) => {}`
15
15
  // 4. `args => {}`
16
+ // 5. `async function(args) {code}`
17
+ // 6. `async (args) => {}`
18
+ // 7. `async args => {}`
16
19
  const isArrowWithoutParens = /^[a-zA-Z0-9_]+\s*=>/i.test(fnStr);
17
- const appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('(') && !isArrowWithoutParens;
20
+ const appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('async') && !fnStr.startsWith('(') && !isArrowWithoutParens;
18
21
  return `return (${appendFunction ? 'function ' : ''}${fnStr}).apply(this, arguments)`;
19
22
  };
20
23
  export function serializeIncludingFunctions(info: ComponentInfo) {
@@ -0,0 +1,64 @@
1
+ type TraverseCallback = (value: any, update: (newValue: any) => void) => void;
2
+
3
+ /**
4
+ * Recursively traverses an object or array, invoking a callback on each value.
5
+ *
6
+ * @param {any} obj - The object or array to traverse. Can also handle primitives, null, or undefined.
7
+ * @param {TraverseCallback} callback - The function to invoke on each value. Receives the current value
8
+ * and an `update` function to modify the value in its parent container.
9
+ * @param {any} [parent=null] - The parent object or array of the current value. Used internally.
10
+ * @param {any} [key=null] - The key or index of the current value in its parent. Used internally.
11
+ * @param {WeakSet} [visited=new WeakSet()] - Tracks visited objects to handle circular references. Used internally.
12
+ *
13
+ * @example
14
+ * // Example: Doubling all numbers in an object
15
+ * const obj = { a: 1, b: [2, 3, { c: 4 }] };
16
+ * traverse(obj, (value, update) => {
17
+ * if (typeof value === 'number') {
18
+ * update(value * 2);
19
+ * }
20
+ * });
21
+ * console.log(obj); // { a: 2, b: [4, 6, { c: 8 }] }
22
+ *
23
+ * @example
24
+ * // Example: Handling circular references
25
+ * const obj = { a: 1 };
26
+ * obj.self = obj;
27
+ * traverse(obj, (value, update) => {
28
+ * if (typeof value === 'number') {
29
+ * update(value * 2);
30
+ * }
31
+ * });
32
+ * console.log(obj.a); // 2
33
+ */
34
+ export function traverse(obj: any, callback: TraverseCallback, parent: any = null, key: any = null, visited = new WeakSet()): void {
35
+ if (obj == null || typeof obj !== 'object') {
36
+ callback(obj, (newValue: any) => {
37
+ if (parent !== null && key !== null) {
38
+ parent[key] = newValue;
39
+ }
40
+ });
41
+ return;
42
+ }
43
+ if (visited.has(obj)) {
44
+ return;
45
+ }
46
+ visited.add(obj);
47
+ if (Array.isArray(obj)) {
48
+ obj.forEach((item, index) => {
49
+ const update = (newValue: any) => {
50
+ obj[index] = newValue;
51
+ };
52
+ callback(item, update);
53
+ traverse(item, callback, obj, index, visited);
54
+ });
55
+ } else {
56
+ Object.entries(obj).forEach(([key, value]) => {
57
+ const update = (newValue: any) => {
58
+ obj[key] = newValue;
59
+ };
60
+ callback(value, update);
61
+ traverse(value, callback, obj, key, visited);
62
+ });
63
+ }
64
+ }
@@ -161,5 +161,8 @@ export interface ComponentInfo {
161
161
  */
162
162
  builderLinkComponent?: boolean;
163
163
  };
164
+ meta?: {
165
+ [key: string]: any;
166
+ };
164
167
  }
165
168
  type Permission = 'read' | 'publish' | 'editCode' | 'editDesigns' | 'admin' | 'create'