@makeswift/runtime 0.25.0-canary.8 → 0.25.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 (777) hide show
  1. package/dist/cjs/api/react.js +10 -14
  2. package/dist/cjs/api/react.js.map +1 -1
  3. package/dist/cjs/api/site-version/index.js +103 -0
  4. package/dist/cjs/api/site-version/index.js.map +1 -0
  5. package/dist/cjs/api-handler/handlers/manifest.js +3 -4
  6. package/dist/cjs/api-handler/handlers/manifest.js.map +1 -1
  7. package/dist/cjs/api-handler/handlers/redirect-live.js +52 -0
  8. package/dist/cjs/api-handler/handlers/redirect-live.js.map +1 -0
  9. package/dist/cjs/api-handler/index.js +6 -5
  10. package/dist/cjs/api-handler/index.js.map +1 -1
  11. package/dist/cjs/api-handler/node-request-response.js +99 -0
  12. package/dist/cjs/api-handler/node-request-response.js.map +1 -0
  13. package/dist/cjs/{next/preview-mode.js → api-handler/preview.js} +12 -18
  14. package/dist/cjs/api-handler/preview.js.map +1 -0
  15. package/dist/cjs/api-handler/request-response.js +9 -0
  16. package/dist/cjs/api-handler/request-response.js.map +1 -1
  17. package/dist/cjs/client/index.js +67 -59
  18. package/dist/cjs/client/index.js.map +1 -1
  19. package/dist/cjs/components/builtin/Box/animations.js.map +1 -1
  20. package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  21. package/dist/cjs/components/builtin/Image/Image.js +4 -26
  22. package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
  23. package/dist/cjs/components/builtin/Root/Root.js +4 -4
  24. package/dist/cjs/components/builtin/Root/Root.js.map +1 -1
  25. package/dist/cjs/components/builtin/Slot/Slot.js +1 -1
  26. package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -1
  27. package/dist/cjs/components/builtin/Video/Video.js +3 -13
  28. package/dist/cjs/components/builtin/Video/Video.js.map +1 -1
  29. package/dist/cjs/components/hooks/useMediaQuery.js +1 -2
  30. package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
  31. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +3 -13
  32. package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  33. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js +4 -14
  34. package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  35. package/dist/cjs/components/shared/Link/index.js +15 -40
  36. package/dist/cjs/components/shared/Link/index.js.map +1 -1
  37. package/dist/cjs/{next/components/Slot.js → components/shared/react-player.js} +9 -18
  38. package/dist/cjs/components/shared/react-player.js.map +1 -0
  39. package/dist/cjs/components/utils/responsive-style.js.map +1 -1
  40. package/dist/cjs/css/border-radius.js.map +1 -1
  41. package/dist/cjs/css/border.js.map +1 -1
  42. package/dist/cjs/css/margin.js.map +1 -1
  43. package/dist/cjs/css/padding.js.map +1 -1
  44. package/dist/cjs/next/api-handler/config/app-router.js +12 -10
  45. package/dist/cjs/next/api-handler/config/app-router.js.map +1 -1
  46. package/dist/cjs/next/api-handler/config/pages-router.js +9 -69
  47. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  48. package/dist/cjs/next/api-handler/handlers/{redirect-draft.js → app-router-redirect-preview.js} +30 -26
  49. package/dist/cjs/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  50. package/dist/cjs/next/api-handler/handlers/{redirect-preview.js → pages-router-redirect-preview.js} +29 -22
  51. package/dist/cjs/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  52. package/dist/cjs/next/api-handler/index.js +4 -3
  53. package/dist/cjs/next/api-handler/index.js.map +1 -1
  54. package/dist/cjs/next/api-handler/{draft.js → preview.js} +13 -11
  55. package/dist/cjs/next/api-handler/preview.js.map +1 -0
  56. package/dist/cjs/next/app-router-site-version.js +40 -0
  57. package/dist/cjs/next/app-router-site-version.js.map +1 -0
  58. package/dist/cjs/next/client.js +9 -3
  59. package/dist/cjs/next/client.js.map +1 -1
  60. package/dist/cjs/next/components/framework-provider/app-router/index.js.map +1 -1
  61. package/dist/cjs/next/components/framework-provider/index.js +20 -2
  62. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  63. package/dist/cjs/next/components/framework-provider/link.js +69 -0
  64. package/dist/cjs/next/components/framework-provider/link.js.map +1 -0
  65. package/dist/cjs/next/components/framework-provider/pages-router/index.js.map +1 -1
  66. package/dist/cjs/next/components/page.js +1 -1
  67. package/dist/cjs/next/components/page.js.map +1 -1
  68. package/dist/cjs/next/components/tests/__fixtures__/element-data/box-component.js +124 -0
  69. package/dist/cjs/next/components/tests/__fixtures__/element-data/box-component.js.map +1 -0
  70. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js +109 -0
  71. package/dist/cjs/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  72. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js +193 -0
  73. package/dist/cjs/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -0
  74. package/dist/cjs/{api-handler/handlers/clear-draft.js → next/components/tests/__fixtures__/resources/files.js} +17 -19
  75. package/dist/cjs/next/components/tests/__fixtures__/resources/files.js.map +1 -0
  76. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js +27 -0
  77. package/dist/cjs/next/components/tests/__fixtures__/resources/index.js.map +1 -0
  78. package/dist/cjs/next/components/tests/__fixtures__/resources/page-pathname-slices.js +33 -0
  79. package/dist/cjs/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  80. package/dist/cjs/next/components/tests/__fixtures__/resources/swatches.js +35 -0
  81. package/dist/cjs/next/components/tests/__fixtures__/resources/swatches.js.map +1 -0
  82. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +1 -1
  83. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  84. package/dist/cjs/next/document.js +2 -1
  85. package/dist/cjs/next/document.js.map +1 -1
  86. package/dist/cjs/next/index.js +2 -2
  87. package/dist/cjs/next/index.js.map +1 -1
  88. package/dist/cjs/next/middleware/request-utils.js +11 -17
  89. package/dist/cjs/next/middleware/request-utils.js.map +1 -1
  90. package/dist/cjs/next/root-style-registry.js +10 -25
  91. package/dist/cjs/next/root-style-registry.js.map +1 -1
  92. package/dist/cjs/next/server.js +2 -2
  93. package/dist/cjs/next/server.js.map +1 -1
  94. package/dist/cjs/next/testing/page-rendering.js +16 -3
  95. package/dist/cjs/next/testing/page-rendering.js.map +1 -1
  96. package/dist/cjs/next/testing/react-provider.js +2 -2
  97. package/dist/cjs/next/testing/react-provider.js.map +1 -1
  98. package/dist/cjs/next/tests/test-utils.js +7 -5
  99. package/dist/cjs/next/tests/test-utils.js.map +1 -1
  100. package/dist/cjs/{next → runtimes/react}/components/MakeswiftComponent.js +4 -4
  101. package/dist/cjs/runtimes/react/components/MakeswiftComponent.js.map +1 -0
  102. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +9 -7
  103. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  104. package/dist/cjs/runtimes/react/components/Slot.js +38 -0
  105. package/dist/cjs/runtimes/react/components/Slot.js.map +1 -0
  106. package/dist/cjs/{next → runtimes/react}/components/SlotProvider.js +3 -3
  107. package/dist/cjs/runtimes/react/components/SlotProvider.js.map +1 -0
  108. package/dist/cjs/runtimes/react/components/framework-context.js +38 -3
  109. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  110. package/dist/cjs/runtimes/react/components/page/index.js +18 -16
  111. package/dist/cjs/runtimes/react/components/page/index.js.map +1 -1
  112. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +12 -22
  113. package/dist/cjs/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  114. package/dist/cjs/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +17 -9
  115. package/dist/cjs/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  116. package/dist/cjs/runtimes/react/controls/style.js.map +1 -1
  117. package/dist/cjs/runtimes/react/hooks/makeswift-api.js +9 -10
  118. package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
  119. package/dist/cjs/runtimes/react/hooks/use-selector.js +1 -1
  120. package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -1
  121. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  122. package/dist/cjs/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  123. package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  124. package/dist/cjs/runtimes/react/host-api-client.js +7 -2
  125. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  126. package/dist/cjs/runtimes/react/root-style-registry.js +39 -13
  127. package/dist/cjs/runtimes/react/root-style-registry.js.map +1 -1
  128. package/dist/cjs/runtimes/react/use-global-style.js +1 -1
  129. package/dist/cjs/runtimes/react/use-global-style.js.map +1 -1
  130. package/dist/cjs/runtimes/react/use-style.js +3 -3
  131. package/dist/cjs/runtimes/react/use-style.js.map +1 -1
  132. package/dist/cjs/state/actions.js +6 -0
  133. package/dist/cjs/state/actions.js.map +1 -1
  134. package/dist/cjs/state/makeswift-api-client.js +42 -57
  135. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  136. package/dist/cjs/state/mixins/setup-teardown.js.map +1 -1
  137. package/dist/cjs/state/modules/api-resources.js +2 -0
  138. package/dist/cjs/state/modules/api-resources.js.map +1 -1
  139. package/dist/cjs/state/modules/box-models.js +2 -0
  140. package/dist/cjs/state/modules/box-models.js.map +1 -1
  141. package/dist/cjs/state/modules/breakpoints.js +3 -1
  142. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  143. package/dist/cjs/state/modules/builder-edit-mode.js +2 -0
  144. package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -1
  145. package/dist/cjs/state/modules/components-meta.js +2 -0
  146. package/dist/cjs/state/modules/components-meta.js.map +1 -1
  147. package/dist/cjs/state/modules/element-imperative-handles.js +2 -0
  148. package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -1
  149. package/dist/cjs/state/modules/element-trees.js +2 -0
  150. package/dist/cjs/state/modules/element-trees.js.map +1 -1
  151. package/dist/cjs/state/modules/is-in-builder.js +2 -0
  152. package/dist/cjs/state/modules/is-in-builder.js.map +1 -1
  153. package/dist/cjs/state/modules/is-preview.js +3 -0
  154. package/dist/cjs/state/modules/is-preview.js.map +1 -1
  155. package/dist/cjs/state/modules/localized-resources-map.js +2 -0
  156. package/dist/cjs/state/modules/localized-resources-map.js.map +1 -1
  157. package/dist/cjs/state/modules/pointer.js +2 -0
  158. package/dist/cjs/state/modules/pointer.js.map +1 -1
  159. package/dist/cjs/state/modules/prop-controller-handles.js +2 -0
  160. package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -1
  161. package/dist/cjs/state/modules/prop-controllers.js +2 -0
  162. package/dist/cjs/state/modules/prop-controllers.js.map +1 -1
  163. package/dist/cjs/state/modules/react-components.js +2 -0
  164. package/dist/cjs/state/modules/react-components.js.map +1 -1
  165. package/dist/cjs/state/modules/read-only-documents.js +2 -0
  166. package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
  167. package/dist/cjs/state/modules/read-write-documents.js +2 -0
  168. package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
  169. package/dist/cjs/state/react-builder-preview.js +32 -38
  170. package/dist/cjs/state/react-builder-preview.js.map +1 -1
  171. package/dist/cjs/state/react-page.js +15 -19
  172. package/dist/cjs/state/react-page.js.map +1 -1
  173. package/dist/cjs/state/toolkit.js +54 -0
  174. package/dist/cjs/state/toolkit.js.map +1 -0
  175. package/dist/cjs/testing/fixtures.js +38 -0
  176. package/dist/cjs/testing/fixtures.js.map +1 -0
  177. package/dist/cjs/utils/esm-compat.js +29 -0
  178. package/dist/cjs/utils/esm-compat.js.map +1 -0
  179. package/dist/esm/api/react.js +10 -14
  180. package/dist/esm/api/react.js.map +1 -1
  181. package/dist/esm/api/site-version/index.js +75 -0
  182. package/dist/esm/api/site-version/index.js.map +1 -0
  183. package/dist/esm/api-handler/handlers/manifest.js +3 -4
  184. package/dist/esm/api-handler/handlers/manifest.js.map +1 -1
  185. package/dist/esm/api-handler/handlers/redirect-live.js +27 -0
  186. package/dist/esm/api-handler/handlers/redirect-live.js.map +1 -0
  187. package/dist/esm/api-handler/index.js +7 -6
  188. package/dist/esm/api-handler/index.js.map +1 -1
  189. package/dist/esm/api-handler/node-request-response.js +73 -0
  190. package/dist/esm/api-handler/node-request-response.js.map +1 -0
  191. package/dist/esm/api-handler/preview.js +9 -0
  192. package/dist/esm/api-handler/preview.js.map +1 -0
  193. package/dist/esm/api-handler/request-response.js +9 -0
  194. package/dist/esm/api-handler/request-response.js.map +1 -1
  195. package/dist/esm/client/index.js +65 -58
  196. package/dist/esm/client/index.js.map +1 -1
  197. package/dist/esm/components/builtin/Box/animations.js.map +1 -1
  198. package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -1
  199. package/dist/esm/components/builtin/Image/Image.js +4 -16
  200. package/dist/esm/components/builtin/Image/Image.js.map +1 -1
  201. package/dist/esm/components/builtin/Root/Root.js +4 -4
  202. package/dist/esm/components/builtin/Root/Root.js.map +1 -1
  203. package/dist/esm/components/builtin/Slot/Slot.js +1 -1
  204. package/dist/esm/components/builtin/Slot/Slot.js.map +1 -1
  205. package/dist/esm/components/builtin/Video/Video.js +1 -1
  206. package/dist/esm/components/builtin/Video/Video.js.map +1 -1
  207. package/dist/esm/components/hooks/useMediaQuery.js +1 -2
  208. package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
  209. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -1
  210. package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
  211. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js +4 -14
  212. package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -1
  213. package/dist/esm/components/shared/Link/index.js +13 -28
  214. package/dist/esm/components/shared/Link/index.js.map +1 -1
  215. package/dist/esm/components/shared/react-player.js +7 -0
  216. package/dist/esm/components/shared/react-player.js.map +1 -0
  217. package/dist/esm/components/utils/responsive-style.js.map +1 -1
  218. package/dist/esm/css/border-radius.js.map +1 -1
  219. package/dist/esm/css/border.js.map +1 -1
  220. package/dist/esm/css/margin.js.map +1 -1
  221. package/dist/esm/css/padding.js.map +1 -1
  222. package/dist/esm/next/api-handler/config/app-router.js +12 -10
  223. package/dist/esm/next/api-handler/config/app-router.js.map +1 -1
  224. package/dist/esm/next/api-handler/config/pages-router.js +9 -69
  225. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  226. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js +64 -0
  227. package/dist/esm/next/api-handler/handlers/app-router-redirect-preview.js.map +1 -0
  228. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js +52 -0
  229. package/dist/esm/next/api-handler/handlers/pages-router-redirect-preview.js.map +1 -0
  230. package/dist/esm/next/api-handler/index.js +4 -3
  231. package/dist/esm/next/api-handler/index.js.map +1 -1
  232. package/dist/esm/next/api-handler/preview.js +15 -0
  233. package/dist/esm/next/api-handler/preview.js.map +1 -0
  234. package/dist/esm/next/app-router-site-version.js +16 -0
  235. package/dist/esm/next/app-router-site-version.js.map +1 -0
  236. package/dist/esm/next/client.js +10 -4
  237. package/dist/esm/next/client.js.map +1 -1
  238. package/dist/esm/next/components/framework-provider/app-router/index.js.map +1 -1
  239. package/dist/esm/next/components/framework-provider/index.js +13 -2
  240. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  241. package/dist/esm/next/components/framework-provider/link.js +35 -0
  242. package/dist/esm/next/components/framework-provider/link.js.map +1 -0
  243. package/dist/esm/next/components/framework-provider/pages-router/index.js.map +1 -1
  244. package/dist/esm/next/components/page.js +2 -4
  245. package/dist/esm/next/components/page.js.map +1 -1
  246. package/dist/esm/next/components/tests/__fixtures__/element-data/box-component.js +99 -0
  247. package/dist/esm/next/components/tests/__fixtures__/element-data/box-component.js.map +1 -0
  248. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js +83 -0
  249. package/dist/esm/next/components/tests/__fixtures__/element-data/button-component.js.map +1 -0
  250. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js +169 -0
  251. package/dist/esm/next/components/tests/__fixtures__/element-data/image-component.js.map +1 -0
  252. package/dist/esm/next/components/tests/__fixtures__/resources/files.js +15 -0
  253. package/dist/esm/next/components/tests/__fixtures__/resources/files.js.map +1 -0
  254. package/dist/esm/next/components/tests/__fixtures__/resources/index.js +4 -0
  255. package/dist/esm/next/components/tests/__fixtures__/resources/index.js.map +1 -0
  256. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js +9 -0
  257. package/dist/esm/next/components/tests/__fixtures__/resources/page-pathname-slices.js.map +1 -0
  258. package/dist/esm/next/components/tests/__fixtures__/resources/swatches.js +11 -0
  259. package/dist/esm/next/components/tests/__fixtures__/resources/swatches.js.map +1 -0
  260. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +1 -1
  261. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  262. package/dist/esm/next/document.js +2 -1
  263. package/dist/esm/next/document.js.map +1 -1
  264. package/dist/esm/next/index.js +2 -2
  265. package/dist/esm/next/index.js.map +1 -1
  266. package/dist/esm/next/middleware/request-utils.js +14 -17
  267. package/dist/esm/next/middleware/request-utils.js.map +1 -1
  268. package/dist/esm/next/root-style-registry.js +11 -23
  269. package/dist/esm/next/root-style-registry.js.map +1 -1
  270. package/dist/esm/next/server.js +1 -1
  271. package/dist/esm/next/server.js.map +1 -1
  272. package/dist/esm/next/testing/page-rendering.js +14 -2
  273. package/dist/esm/next/testing/page-rendering.js.map +1 -1
  274. package/dist/esm/next/testing/react-provider.js +2 -2
  275. package/dist/esm/next/testing/react-provider.js.map +1 -1
  276. package/dist/esm/next/tests/test-utils.js +7 -5
  277. package/dist/esm/next/tests/test-utils.js.map +1 -1
  278. package/dist/esm/{next → runtimes/react}/components/MakeswiftComponent.js +6 -4
  279. package/dist/esm/runtimes/react/components/MakeswiftComponent.js.map +1 -0
  280. package/dist/esm/runtimes/react/components/RuntimeProvider.js +9 -7
  281. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  282. package/dist/esm/{next → runtimes/react}/components/Slot.js +3 -5
  283. package/dist/esm/runtimes/react/components/Slot.js.map +1 -0
  284. package/dist/esm/{next → runtimes/react}/components/SlotProvider.js +1 -2
  285. package/dist/esm/runtimes/react/components/SlotProvider.js.map +1 -0
  286. package/dist/esm/runtimes/react/components/framework-context.js +41 -3
  287. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  288. package/dist/esm/runtimes/react/components/page/index.js +19 -17
  289. package/dist/esm/runtimes/react/components/page/index.js.map +1 -1
  290. package/dist/esm/runtimes/react/components/{draft-switcher/draft-switcher.js → preview-switcher/preview-switcher.js} +8 -18
  291. package/dist/esm/runtimes/react/components/preview-switcher/preview-switcher.js.map +1 -0
  292. package/dist/esm/runtimes/react/components/{draft-switcher/draft-toolbar.js → preview-switcher/preview-toolbar.js} +13 -5
  293. package/dist/esm/runtimes/react/components/preview-switcher/preview-toolbar.js.map +1 -0
  294. package/dist/esm/runtimes/react/controls/style.js.map +1 -1
  295. package/dist/esm/runtimes/react/hooks/makeswift-api.js +1 -2
  296. package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
  297. package/dist/esm/runtimes/react/hooks/use-selector.js +1 -1
  298. package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -1
  299. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js +1 -1
  300. package/dist/esm/runtimes/react/hooks/use-stylesheet-factory.js.map +1 -1
  301. package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -1
  302. package/dist/esm/runtimes/react/host-api-client.js +7 -2
  303. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  304. package/dist/esm/runtimes/react/root-style-registry.js +37 -13
  305. package/dist/esm/runtimes/react/root-style-registry.js.map +1 -1
  306. package/dist/esm/runtimes/react/use-global-style.js +1 -1
  307. package/dist/esm/runtimes/react/use-global-style.js.map +1 -1
  308. package/dist/esm/runtimes/react/use-style.js +1 -1
  309. package/dist/esm/runtimes/react/use-style.js.map +1 -1
  310. package/dist/esm/state/actions.js +5 -0
  311. package/dist/esm/state/actions.js.map +1 -1
  312. package/dist/esm/state/makeswift-api-client.js +42 -58
  313. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  314. package/dist/esm/state/mixins/setup-teardown.js.map +1 -1
  315. package/dist/esm/state/modules/api-resources.js +3 -1
  316. package/dist/esm/state/modules/api-resources.js.map +1 -1
  317. package/dist/esm/state/modules/box-models.js +3 -1
  318. package/dist/esm/state/modules/box-models.js.map +1 -1
  319. package/dist/esm/state/modules/breakpoints.js +4 -2
  320. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  321. package/dist/esm/state/modules/builder-edit-mode.js +3 -1
  322. package/dist/esm/state/modules/builder-edit-mode.js.map +1 -1
  323. package/dist/esm/state/modules/components-meta.js +3 -1
  324. package/dist/esm/state/modules/components-meta.js.map +1 -1
  325. package/dist/esm/state/modules/element-imperative-handles.js +3 -1
  326. package/dist/esm/state/modules/element-imperative-handles.js.map +1 -1
  327. package/dist/esm/state/modules/element-trees.js +3 -1
  328. package/dist/esm/state/modules/element-trees.js.map +1 -1
  329. package/dist/esm/state/modules/is-in-builder.js +3 -1
  330. package/dist/esm/state/modules/is-in-builder.js.map +1 -1
  331. package/dist/esm/state/modules/is-preview.js +3 -0
  332. package/dist/esm/state/modules/is-preview.js.map +1 -1
  333. package/dist/esm/state/modules/localized-resources-map.js +3 -1
  334. package/dist/esm/state/modules/localized-resources-map.js.map +1 -1
  335. package/dist/esm/state/modules/pointer.js +3 -1
  336. package/dist/esm/state/modules/pointer.js.map +1 -1
  337. package/dist/esm/state/modules/prop-controller-handles.js +3 -1
  338. package/dist/esm/state/modules/prop-controller-handles.js.map +1 -1
  339. package/dist/esm/state/modules/prop-controllers.js +3 -1
  340. package/dist/esm/state/modules/prop-controllers.js.map +1 -1
  341. package/dist/esm/state/modules/react-components.js +3 -1
  342. package/dist/esm/state/modules/react-components.js.map +1 -1
  343. package/dist/esm/state/modules/read-only-documents.js +6 -1
  344. package/dist/esm/state/modules/read-only-documents.js.map +1 -1
  345. package/dist/esm/state/modules/read-write-documents.js +3 -1
  346. package/dist/esm/state/modules/read-write-documents.js.map +1 -1
  347. package/dist/esm/state/react-builder-preview.js +33 -40
  348. package/dist/esm/state/react-builder-preview.js.map +1 -1
  349. package/dist/esm/state/react-page.js +16 -21
  350. package/dist/esm/state/react-page.js.map +1 -1
  351. package/dist/esm/state/toolkit.js +28 -0
  352. package/dist/esm/state/toolkit.js.map +1 -0
  353. package/dist/esm/testing/fixtures.js +13 -0
  354. package/dist/esm/testing/fixtures.js.map +1 -0
  355. package/dist/esm/utils/esm-compat.js +5 -0
  356. package/dist/esm/utils/esm-compat.js.map +1 -0
  357. package/dist/types/api/graphql/documents/queries.d.ts +7 -7
  358. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  359. package/dist/types/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  360. package/dist/types/api/react.d.ts +3 -4
  361. package/dist/types/api/react.d.ts.map +1 -1
  362. package/dist/types/api/site-version/index.d.ts +19 -0
  363. package/dist/types/api/site-version/index.d.ts.map +1 -0
  364. package/dist/types/api/site-version/site-version.test.d.ts +2 -0
  365. package/dist/types/api/site-version/site-version.test.d.ts.map +1 -0
  366. package/dist/types/api-handler/handlers/manifest.d.ts +1 -3
  367. package/dist/types/api-handler/handlers/manifest.d.ts.map +1 -1
  368. package/dist/types/api-handler/handlers/redirect-live.d.ts +6 -0
  369. package/dist/types/api-handler/handlers/redirect-live.d.ts.map +1 -0
  370. package/dist/types/api-handler/index.d.ts +5 -5
  371. package/dist/types/api-handler/index.d.ts.map +1 -1
  372. package/dist/types/api-handler/node-request-response.d.ts +8 -0
  373. package/dist/types/api-handler/node-request-response.d.ts.map +1 -0
  374. package/dist/types/api-handler/node-request-response.test.d.ts +2 -0
  375. package/dist/types/api-handler/node-request-response.test.d.ts.map +1 -0
  376. package/dist/types/api-handler/preview.d.ts +5 -0
  377. package/dist/types/api-handler/preview.d.ts.map +1 -0
  378. package/dist/types/api-handler/request-response.d.ts +1 -0
  379. package/dist/types/api-handler/request-response.d.ts.map +1 -1
  380. package/dist/types/client/index.d.ts +174 -165
  381. package/dist/types/client/index.d.ts.map +1 -1
  382. package/dist/types/components/builtin/Box/Box.d.ts +15 -147
  383. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  384. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts +0 -1
  385. package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  386. package/dist/types/components/builtin/Button/Button.d.ts +4 -70
  387. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  388. package/dist/types/components/builtin/Carousel/Carousel.d.ts +0 -1
  389. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  390. package/dist/types/components/builtin/Countdown/Countdown.d.ts +0 -1
  391. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  392. package/dist/types/components/builtin/Divider/Divider.d.ts +0 -1
  393. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  394. package/dist/types/components/builtin/Embed/Embed.d.ts +0 -1
  395. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  396. package/dist/types/components/builtin/Form/Form.d.ts +0 -1
  397. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  398. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  399. package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  400. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +0 -1
  401. package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  402. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +0 -1
  403. package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  404. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts +0 -1
  405. package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  406. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +0 -1
  407. package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  408. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +0 -1
  409. package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  410. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +0 -1
  411. package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  412. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +0 -1
  413. package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  414. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +1 -1
  415. package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  416. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +0 -1
  417. package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  418. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +0 -1
  419. package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  420. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts +0 -1
  421. package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  422. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +0 -1
  423. package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  424. package/dist/types/components/builtin/Form/components/Field/index.d.ts +0 -1
  425. package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -1
  426. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts +1 -1
  427. package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -1
  428. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +0 -1
  429. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  430. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts +0 -1
  431. package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  432. package/dist/types/components/builtin/Form/context/FormContext.d.ts +0 -1
  433. package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
  434. package/dist/types/components/builtin/Image/Image.d.ts +0 -1
  435. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  436. package/dist/types/components/builtin/Navigation/Navigation.d.ts +0 -1
  437. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  438. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +0 -1
  439. package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  440. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +0 -1
  441. package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  442. package/dist/types/components/builtin/Root/Root.d.ts +1 -2
  443. package/dist/types/components/builtin/Root/Root.d.ts.map +1 -1
  444. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts +0 -1
  445. package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  446. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +0 -1
  447. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  448. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +0 -1
  449. package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  450. package/dist/types/components/builtin/Text/Text.d.ts +0 -1
  451. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  452. package/dist/types/components/builtin/Video/Video.d.ts +0 -1
  453. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
  454. package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -1
  455. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -1
  456. package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  457. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -1
  458. package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  459. package/dist/types/components/shared/ErrorBoundary.d.ts +0 -1
  460. package/dist/types/components/shared/ErrorBoundary.d.ts.map +1 -1
  461. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts +0 -1
  462. package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  463. package/dist/types/components/shared/Link/index.d.ts.map +1 -1
  464. package/dist/types/components/shared/react-player.d.ts +3 -0
  465. package/dist/types/components/shared/react-player.d.ts.map +1 -0
  466. package/dist/types/components/utils/columns.d.ts.map +1 -1
  467. package/dist/types/components/utils/responsive-style.d.ts +1 -1
  468. package/dist/types/components/utils/responsive-style.d.ts.map +1 -1
  469. package/dist/types/controls/control.d.ts +1 -25
  470. package/dist/types/controls/control.d.ts.map +1 -1
  471. package/dist/types/controls/link.d.ts +3 -3
  472. package/dist/types/controls/link.d.ts.map +1 -1
  473. package/dist/types/controls/rich-text/control.d.ts.map +1 -1
  474. package/dist/types/controls/rich-text-v2/control.d.ts +13 -13
  475. package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -1
  476. package/dist/types/controls/rich-text-v2/plugin.d.ts +2 -2
  477. package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -1
  478. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +556 -12
  479. package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
  480. package/dist/types/css/border-radius.d.ts +1 -1
  481. package/dist/types/css/border-radius.d.ts.map +1 -1
  482. package/dist/types/css/border.d.ts +1 -1
  483. package/dist/types/css/border.d.ts.map +1 -1
  484. package/dist/types/css/margin.d.ts +1 -1
  485. package/dist/types/css/margin.d.ts.map +1 -1
  486. package/dist/types/css/padding.d.ts +1 -1
  487. package/dist/types/css/padding.d.ts.map +1 -1
  488. package/dist/types/next/api-handler/config/app-router.d.ts +10 -8
  489. package/dist/types/next/api-handler/config/app-router.d.ts.map +1 -1
  490. package/dist/types/next/api-handler/config/pages-router.d.ts +3 -2
  491. package/dist/types/next/api-handler/config/pages-router.d.ts.map +1 -1
  492. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts +5 -0
  493. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.d.ts.map +1 -0
  494. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts +2 -0
  495. package/dist/types/next/api-handler/handlers/app-router-redirect-preview.test.d.ts.map +1 -0
  496. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts +4 -0
  497. package/dist/types/next/api-handler/handlers/pages-router-redirect-preview.d.ts.map +1 -0
  498. package/dist/types/next/api-handler/index.d.ts +1 -1
  499. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  500. package/dist/types/next/api-handler/preview.d.ts +8 -0
  501. package/dist/types/next/api-handler/preview.d.ts.map +1 -0
  502. package/dist/types/next/app-router-site-version.d.ts +3 -0
  503. package/dist/types/next/app-router-site-version.d.ts.map +1 -0
  504. package/dist/types/next/client.d.ts +3 -3
  505. package/dist/types/next/client.d.ts.map +1 -1
  506. package/dist/types/next/components/framework-provider/app-router/index.d.ts +1 -1
  507. package/dist/types/next/components/framework-provider/app-router/index.d.ts.map +1 -1
  508. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  509. package/dist/types/next/components/framework-provider/link.d.ts +2 -0
  510. package/dist/types/next/components/framework-provider/link.d.ts.map +1 -0
  511. package/dist/types/next/components/framework-provider/pages-router/index.d.ts +1 -1
  512. package/dist/types/next/components/framework-provider/pages-router/index.d.ts.map +1 -1
  513. package/dist/types/next/components/page.d.ts +2 -7
  514. package/dist/types/next/components/page.d.ts.map +1 -1
  515. package/dist/types/next/components/tests/__fixtures__/element-data/box-component.d.ts +8 -0
  516. package/dist/types/next/components/tests/__fixtures__/element-data/box-component.d.ts.map +1 -0
  517. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts +9 -0
  518. package/dist/types/next/components/tests/__fixtures__/element-data/button-component.d.ts.map +1 -0
  519. package/dist/types/next/components/tests/__fixtures__/element-data/image-component.d.ts +7 -0
  520. package/dist/types/next/components/tests/__fixtures__/element-data/image-component.d.ts.map +1 -0
  521. package/dist/types/next/components/tests/__fixtures__/resources/files.d.ts +3 -0
  522. package/dist/types/next/components/tests/__fixtures__/resources/files.d.ts.map +1 -0
  523. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts +4 -0
  524. package/dist/types/next/components/tests/__fixtures__/resources/index.d.ts.map +1 -0
  525. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts +3 -0
  526. package/dist/types/next/components/tests/__fixtures__/resources/page-pathname-slices.d.ts.map +1 -0
  527. package/dist/types/next/components/tests/__fixtures__/resources/swatches.d.ts +3 -0
  528. package/dist/types/next/components/tests/__fixtures__/resources/swatches.d.ts.map +1 -0
  529. package/dist/types/next/components/tests/components/box-component-rendering.test.d.ts +3 -0
  530. package/dist/types/next/components/tests/components/box-component-rendering.test.d.ts.map +1 -0
  531. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts +3 -0
  532. package/dist/types/next/components/tests/components/button-component-rendering.test.d.ts.map +1 -0
  533. package/dist/types/next/components/tests/components/image-component-rendering.test.d.ts +3 -0
  534. package/dist/types/next/components/tests/components/image-component-rendering.test.d.ts.map +1 -0
  535. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  536. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  537. package/dist/types/next/components/tests/controls/style-control/fixtures.d.ts.map +1 -1
  538. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +3 -16
  539. package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
  540. package/dist/types/next/document.d.ts.map +1 -1
  541. package/dist/types/next/index.d.ts +3 -3
  542. package/dist/types/next/index.d.ts.map +1 -1
  543. package/dist/types/next/middleware/request-utils.d.ts +1 -0
  544. package/dist/types/next/middleware/request-utils.d.ts.map +1 -1
  545. package/dist/types/next/root-style-registry.d.ts +3 -12
  546. package/dist/types/next/root-style-registry.d.ts.map +1 -1
  547. package/dist/types/next/server.d.ts +1 -1
  548. package/dist/types/next/server.d.ts.map +1 -1
  549. package/dist/types/next/testing/element-data.d.ts +13 -13
  550. package/dist/types/next/testing/page-rendering.d.ts +3 -0
  551. package/dist/types/next/testing/page-rendering.d.ts.map +1 -1
  552. package/dist/types/next/testing/react-provider.d.ts +3 -3
  553. package/dist/types/next/testing/react-provider.d.ts.map +1 -1
  554. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts +2 -0
  555. package/dist/types/next/tests/server.api-handler-app-router-redirect-preview.test.d.ts.map +1 -0
  556. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts +2 -0
  557. package/dist/types/next/tests/server.api-handler-pages-router-redirect-preview.test.d.ts.map +1 -0
  558. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts +2 -0
  559. package/dist/types/next/tests/server.api-handler-redirect-live.test.d.ts.map +1 -0
  560. package/dist/types/next/tests/test-utils.d.ts.map +1 -1
  561. package/dist/types/runtimes/react/components/Document.d.ts +0 -1
  562. package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
  563. package/dist/types/runtimes/react/components/DocumentRoot.d.ts +0 -1
  564. package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -1
  565. package/dist/types/runtimes/react/components/Element.d.ts +0 -1
  566. package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
  567. package/dist/types/runtimes/react/components/ElementData.d.ts +0 -1
  568. package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -1
  569. package/dist/types/runtimes/react/components/ElementReference.d.ts +0 -1
  570. package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
  571. package/dist/types/{next → runtimes/react}/components/MakeswiftComponent.d.ts +1 -2
  572. package/dist/types/runtimes/react/components/MakeswiftComponent.d.ts.map +1 -0
  573. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +3 -2
  574. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  575. package/dist/types/{next → runtimes/react}/components/Slot.d.ts +2 -2
  576. package/dist/types/runtimes/react/components/Slot.d.ts.map +1 -0
  577. package/dist/types/{next → runtimes/react}/components/SlotProvider.d.ts +1 -2
  578. package/dist/types/runtimes/react/components/SlotProvider.d.ts.map +1 -0
  579. package/dist/types/runtimes/react/components/framework-context.d.ts +25 -1
  580. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  581. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts +0 -1
  582. package/dist/types/runtimes/react/components/page/HeadSnippet.d.ts.map +1 -1
  583. package/dist/types/runtimes/react/components/page/Page.d.ts +0 -1
  584. package/dist/types/runtimes/react/components/page/Page.d.ts.map +1 -1
  585. package/dist/types/runtimes/react/components/page/PageHead.d.ts +0 -1
  586. package/dist/types/runtimes/react/components/page/PageHead.d.ts.map +1 -1
  587. package/dist/types/runtimes/react/components/page/index.d.ts +23 -3
  588. package/dist/types/runtimes/react/components/page/index.d.ts.map +1 -1
  589. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts +4 -0
  590. package/dist/types/runtimes/react/components/preview-switcher/preview-switcher.d.ts.map +1 -0
  591. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts +2 -0
  592. package/dist/types/runtimes/react/components/preview-switcher/preview-toolbar.d.ts.map +1 -0
  593. package/dist/types/runtimes/react/components/render-hook.d.ts +0 -1
  594. package/dist/types/runtimes/react/components/render-hook.d.ts.map +1 -1
  595. package/dist/types/runtimes/react/controls/control.d.ts +0 -1
  596. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  597. package/dist/types/runtimes/react/controls/group.d.ts +0 -1
  598. package/dist/types/runtimes/react/controls/group.d.ts.map +1 -1
  599. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +0 -1
  600. package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
  601. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts +0 -1
  602. package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
  603. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +0 -1
  604. package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  605. package/dist/types/runtimes/react/controls/style.d.ts +1 -1
  606. package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
  607. package/dist/types/runtimes/react/controls.d.ts +0 -1
  608. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  609. package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
  610. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts +0 -1
  611. package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts.map +1 -1
  612. package/dist/types/runtimes/react/hooks/use-document-context.d.ts +0 -1
  613. package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -1
  614. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts +0 -1
  615. package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts.map +1 -1
  616. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +0 -1
  617. package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -1
  618. package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -1
  619. package/dist/types/runtimes/react/hooks/use-store.d.ts +25 -2
  620. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  621. package/dist/types/runtimes/react/hooks/use-stylesheet-factory.d.ts.map +1 -1
  622. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +1 -1
  623. package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -1
  624. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  625. package/dist/types/runtimes/react/legacy-controls.d.ts +0 -1
  626. package/dist/types/runtimes/react/legacy-controls.d.ts.map +1 -1
  627. package/dist/types/runtimes/react/root-style-registry.d.ts +30 -10
  628. package/dist/types/runtimes/react/root-style-registry.d.ts.map +1 -1
  629. package/dist/types/runtimes/react/use-global-style.d.ts.map +1 -1
  630. package/dist/types/runtimes/react/use-style.d.ts +1 -1
  631. package/dist/types/runtimes/react/use-style.d.ts.map +1 -1
  632. package/dist/types/slate/BlockPlugin/index.d.ts +5 -5
  633. package/dist/types/slate/BlockPlugin/utils/location.d.ts.map +1 -1
  634. package/dist/types/slate/InlineModePlugin/index.d.ts +41 -41
  635. package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -1
  636. package/dist/types/slate/InlinePlugin/index.d.ts +5 -6
  637. package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
  638. package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -1
  639. package/dist/types/slate/LinkPlugin/getValue.d.ts +1 -1
  640. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  641. package/dist/types/slate/LinkPlugin/index.d.ts +3 -4
  642. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  643. package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -1
  644. package/dist/types/slate/TextAlignPlugin/index.d.ts +5 -6
  645. package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
  646. package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
  647. package/dist/types/slate/TypographyPlugin/index.d.ts +2 -3
  648. package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
  649. package/dist/types/slate/test-helpers/editor-v1.d.ts +0 -1
  650. package/dist/types/slate/test-helpers/editor-v1.d.ts.map +1 -1
  651. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts +0 -1
  652. package/dist/types/slate/test-helpers/editor-v2-inline.d.ts.map +1 -1
  653. package/dist/types/slate/test-helpers/editor-v2.d.ts +0 -1
  654. package/dist/types/slate/test-helpers/editor-v2.d.ts.map +1 -1
  655. package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
  656. package/dist/types/slate/test-helpers/slate-test-helper.d.ts.map +1 -1
  657. package/dist/types/slate/test-helpers/test-elements.d.ts +8 -64
  658. package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -1
  659. package/dist/types/slate/utils/editor.d.ts.map +1 -1
  660. package/dist/types/slate/utils/element.d.ts.map +1 -1
  661. package/dist/types/slate/utils/location.d.ts.map +1 -1
  662. package/dist/types/slate/utils/responsive.d.ts.map +1 -1
  663. package/dist/types/state/__tests__/actions.test.d.ts +2 -0
  664. package/dist/types/state/__tests__/actions.test.d.ts.map +1 -0
  665. package/dist/types/state/actions.d.ts +3 -2
  666. package/dist/types/state/actions.d.ts.map +1 -1
  667. package/dist/types/state/makeswift-api-client.d.ts +19 -11
  668. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  669. package/dist/types/state/mixins/setup-teardown.d.ts +1 -1
  670. package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -1
  671. package/dist/types/state/modules/api-resources.d.ts +2 -2
  672. package/dist/types/state/modules/api-resources.d.ts.map +1 -1
  673. package/dist/types/state/modules/box-models.d.ts +2 -2
  674. package/dist/types/state/modules/box-models.d.ts.map +1 -1
  675. package/dist/types/state/modules/breakpoints.d.ts +2 -2
  676. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  677. package/dist/types/state/modules/builder-edit-mode.d.ts +2 -2
  678. package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -1
  679. package/dist/types/state/modules/components-meta.d.ts +2 -2
  680. package/dist/types/state/modules/components-meta.d.ts.map +1 -1
  681. package/dist/types/state/modules/element-imperative-handles.d.ts +2 -2
  682. package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -1
  683. package/dist/types/state/modules/element-trees.d.ts +2 -2
  684. package/dist/types/state/modules/element-trees.d.ts.map +1 -1
  685. package/dist/types/state/modules/is-in-builder.d.ts +2 -2
  686. package/dist/types/state/modules/is-in-builder.d.ts.map +1 -1
  687. package/dist/types/state/modules/is-preview.d.ts +2 -2
  688. package/dist/types/state/modules/is-preview.d.ts.map +1 -1
  689. package/dist/types/state/modules/localized-resources-map.d.ts +2 -2
  690. package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -1
  691. package/dist/types/state/modules/pointer.d.ts +2 -2
  692. package/dist/types/state/modules/pointer.d.ts.map +1 -1
  693. package/dist/types/state/modules/prop-controller-handles.d.ts +2 -2
  694. package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
  695. package/dist/types/state/modules/prop-controllers.d.ts +2 -2
  696. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -1
  697. package/dist/types/state/modules/react-components.d.ts +2 -2
  698. package/dist/types/state/modules/react-components.d.ts.map +1 -1
  699. package/dist/types/state/modules/read-only-documents.d.ts +2 -2
  700. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
  701. package/dist/types/state/modules/read-write-documents.d.ts +2 -2
  702. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
  703. package/dist/types/state/react-builder-preview.d.ts +57 -10
  704. package/dist/types/state/react-builder-preview.d.ts.map +1 -1
  705. package/dist/types/state/react-page.d.ts +67 -36
  706. package/dist/types/state/react-page.d.ts.map +1 -1
  707. package/dist/types/state/toolkit.d.ts +11 -0
  708. package/dist/types/state/toolkit.d.ts.map +1 -0
  709. package/dist/types/testing/fixtures.d.ts +7 -0
  710. package/dist/types/testing/fixtures.d.ts.map +1 -0
  711. package/dist/types/utils/clamp.d.ts.map +1 -1
  712. package/dist/types/utils/esm-compat.d.ts +2 -0
  713. package/dist/types/utils/esm-compat.d.ts.map +1 -0
  714. package/dist/types/utils/keys.d.ts.map +1 -1
  715. package/package.json +14 -15
  716. package/dist/cjs/api/site-version.js +0 -42
  717. package/dist/cjs/api/site-version.js.map +0 -1
  718. package/dist/cjs/api-handler/handlers/clear-draft.js.map +0 -1
  719. package/dist/cjs/next/api-handler/draft.js.map +0 -1
  720. package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +0 -1
  721. package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +0 -1
  722. package/dist/cjs/next/components/MakeswiftComponent.js.map +0 -1
  723. package/dist/cjs/next/components/Slot.js.map +0 -1
  724. package/dist/cjs/next/components/SlotProvider.js.map +0 -1
  725. package/dist/cjs/next/draft-mode/index.js +0 -56
  726. package/dist/cjs/next/draft-mode/index.js.map +0 -1
  727. package/dist/cjs/next/preview-mode.js.map +0 -1
  728. package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  729. package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  730. package/dist/esm/api/site-version.js +0 -15
  731. package/dist/esm/api/site-version.js.map +0 -1
  732. package/dist/esm/api-handler/handlers/clear-draft.js +0 -17
  733. package/dist/esm/api-handler/handlers/clear-draft.js.map +0 -1
  734. package/dist/esm/next/api-handler/draft.js +0 -14
  735. package/dist/esm/next/api-handler/draft.js.map +0 -1
  736. package/dist/esm/next/api-handler/handlers/redirect-draft.js +0 -52
  737. package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +0 -1
  738. package/dist/esm/next/api-handler/handlers/redirect-preview.js +0 -37
  739. package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +0 -1
  740. package/dist/esm/next/components/MakeswiftComponent.js.map +0 -1
  741. package/dist/esm/next/components/Slot.js.map +0 -1
  742. package/dist/esm/next/components/SlotProvider.js.map +0 -1
  743. package/dist/esm/next/draft-mode/index.js +0 -30
  744. package/dist/esm/next/draft-mode/index.js.map +0 -1
  745. package/dist/esm/next/preview-mode.js +0 -16
  746. package/dist/esm/next/preview-mode.js.map +0 -1
  747. package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +0 -1
  748. package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js.map +0 -1
  749. package/dist/types/api/site-version.d.ts +0 -7
  750. package/dist/types/api/site-version.d.ts.map +0 -1
  751. package/dist/types/api-handler/handlers/clear-draft.d.ts +0 -7
  752. package/dist/types/api-handler/handlers/clear-draft.d.ts.map +0 -1
  753. package/dist/types/next/api-handler/draft.d.ts +0 -8
  754. package/dist/types/next/api-handler/draft.d.ts.map +0 -1
  755. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +0 -6
  756. package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +0 -1
  757. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts +0 -2
  758. package/dist/types/next/api-handler/handlers/redirect-draft.test.d.ts.map +0 -1
  759. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +0 -5
  760. package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +0 -1
  761. package/dist/types/next/components/MakeswiftComponent.d.ts.map +0 -1
  762. package/dist/types/next/components/Slot.d.ts.map +0 -1
  763. package/dist/types/next/components/SlotProvider.d.ts.map +0 -1
  764. package/dist/types/next/draft-mode/index.d.ts +0 -15
  765. package/dist/types/next/draft-mode/index.d.ts.map +0 -1
  766. package/dist/types/next/preview-mode.d.ts +0 -17
  767. package/dist/types/next/preview-mode.d.ts.map +0 -1
  768. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts +0 -2
  769. package/dist/types/next/tests/server.api-handler-clear-draft.test.d.ts.map +0 -1
  770. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts +0 -2
  771. package/dist/types/next/tests/server.api-handler-redirect-draft.test.d.ts.map +0 -1
  772. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts +0 -2
  773. package/dist/types/next/tests/server.api-handler-redirect-preview.test.d.ts.map +0 -1
  774. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts +0 -4
  775. package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +0 -1
  776. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts +0 -6
  777. package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts.map +0 -1
@@ -45,13 +45,13 @@ const CacheData = {
45
45
  }
46
46
  };
47
47
  class MakeswiftHostApiClient {
48
- siteVersion;
49
48
  graphqlClient;
50
49
  makeswiftApiClient;
51
50
  subscribe;
51
+ fetch;
52
52
  constructor({
53
53
  uri,
54
- siteVersion,
54
+ fetch,
55
55
  cacheData,
56
56
  locale
57
57
  }) {
@@ -60,7 +60,7 @@ class MakeswiftHostApiClient {
60
60
  serializedState: cacheData,
61
61
  defaultLocale: locale
62
62
  });
63
- this.siteVersion = siteVersion;
63
+ this.fetch = fetch;
64
64
  this.subscribe = this.makeswiftApiClient.subscribe;
65
65
  }
66
66
  readSwatch(swatchId) {
@@ -72,7 +72,7 @@ class MakeswiftHostApiClient {
72
72
  }
73
73
  async fetchSwatch(swatchId) {
74
74
  return await this.makeswiftApiClient.dispatch(
75
- MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.Swatch, swatchId, this.siteVersion)
75
+ MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.Swatch, swatchId, this.fetch)
76
76
  );
77
77
  }
78
78
  resolveSwatch(swatchId) {
@@ -91,7 +91,7 @@ class MakeswiftHostApiClient {
91
91
  }
92
92
  async fetchFile(fileId) {
93
93
  return await this.makeswiftApiClient.dispatch(
94
- MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.File, fileId, this.siteVersion)
94
+ MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.File, fileId, this.fetch)
95
95
  );
96
96
  }
97
97
  resolveFile(fileId) {
@@ -110,11 +110,7 @@ class MakeswiftHostApiClient {
110
110
  }
111
111
  async fetchTypography(typographyId) {
112
112
  return await this.makeswiftApiClient.dispatch(
113
- MakeswiftApiClient.fetchAPIResource(
114
- import_types.APIResourceType.Typography,
115
- typographyId,
116
- this.siteVersion
117
- )
113
+ MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.Typography, typographyId, this.fetch)
118
114
  );
119
115
  }
120
116
  resolveTypography(typographyId) {
@@ -136,7 +132,7 @@ class MakeswiftHostApiClient {
136
132
  MakeswiftApiClient.fetchAPIResource(
137
133
  import_types.APIResourceType.GlobalElement,
138
134
  globalElementId,
139
- this.siteVersion
135
+ this.fetch
140
136
  )
141
137
  );
142
138
  }
@@ -159,7 +155,7 @@ class MakeswiftHostApiClient {
159
155
  MakeswiftApiClient.fetchAPIResource(
160
156
  import_types.APIResourceType.LocalizedGlobalElement,
161
157
  globalElementId,
162
- this.siteVersion,
158
+ this.fetch,
163
159
  locale
164
160
  )
165
161
  );
@@ -183,7 +179,7 @@ class MakeswiftHostApiClient {
183
179
  MakeswiftApiClient.fetchAPIResource(
184
180
  import_types.APIResourceType.PagePathnameSlice,
185
181
  pageId,
186
- this.siteVersion,
182
+ this.fetch,
187
183
  locale
188
184
  )
189
185
  );
@@ -224,7 +220,7 @@ class MakeswiftHostApiClient {
224
220
  }
225
221
  async fetchTable(tableId) {
226
222
  return await this.makeswiftApiClient.dispatch(
227
- MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.Table, tableId, this.siteVersion)
223
+ MakeswiftApiClient.fetchAPIResource(import_types.APIResourceType.Table, tableId, this.fetch)
228
224
  );
229
225
  }
230
226
  async createTableRecord(tableId, columns) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/react.ts"],"sourcesContent":["import { type FetchableValue } from '@makeswift/controls'\nimport * as MakeswiftApiClient from '../state/makeswift-api-client'\nimport {\n APIResourceType,\n File,\n GlobalElement,\n LocalizedGlobalElement,\n Page,\n PagePathnameSlice,\n Site,\n Snippet,\n Swatch,\n Table,\n Typography,\n} from './types'\nimport { GraphQLClient } from './graphql/client'\nimport { CreateTableRecordMutation } from './graphql/documents'\nimport {\n CreateTableRecordMutationResult,\n CreateTableRecordMutationVariables,\n} from './graphql/generated/types'\nimport { MakeswiftSiteVersion } from './site-version'\n\nexport type CacheData = MakeswiftApiClient.SerializedState\n\nexport const CacheData = {\n empty(): CacheData {\n return {\n apiResources: {},\n localizedResourcesMap: {},\n }\n },\n}\n\n/**\n * NOTE(miguel): This \"client\" is used to fetch Makeswift API resources needed for the host. For\n * example, swatches, files, typographies, etc. Ideally it's internal to the runtime and is only\n * used by controls to transform API references to API resources.\n *\n * Moreover, its use should be reserved for the builder only, since for live pages all Makeswift\n * API resources should be embedded in the \"page snapshot\". In the builder, this client serves the\n * purpose of sending requests for API resources and keeping a cache so that changes that happen in\n * the builder, like modifying a swatch, can be sent via `postMessage` to the host and the cache can\n * immediately update the value and re-render.\n *\n * Furthermore, the API resources requested shouldn't be requested directly from the Makeswift API\n * as that would require those resources to not be authenticated since the requests come from the\n * browser when running the host. Instead, the requests should go to the host directly, at the\n * Makeswift API endpoint (i.g., `/api/makeswift/[...makeswift]` dynamic route) where the host's\n * API key can be used, securely, in the server. For this reason, this client should really be a\n * client of the host's API, not Makeswift's, intended to build and continuously maintain a realtime\n * snapshot for use in the builder, not the lives pages.\n */\nexport class MakeswiftHostApiClient {\n siteVersion: MakeswiftSiteVersion\n graphqlClient: GraphQLClient\n makeswiftApiClient: MakeswiftApiClient.Store\n subscribe: MakeswiftApiClient.Store['subscribe']\n\n constructor({\n uri,\n siteVersion,\n cacheData,\n locale,\n }: {\n uri: string\n siteVersion: MakeswiftSiteVersion\n cacheData?: CacheData\n locale?: string\n }) {\n this.graphqlClient = new GraphQLClient(uri)\n this.makeswiftApiClient = MakeswiftApiClient.configureStore({\n serializedState: cacheData,\n defaultLocale: locale,\n })\n this.siteVersion = siteVersion\n this.subscribe = this.makeswiftApiClient.subscribe\n }\n\n readSwatch(swatchId: string): Swatch | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Swatch,\n swatchId,\n )\n }\n\n async fetchSwatch(swatchId: string): Promise<Swatch | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.Swatch, swatchId, this.siteVersion),\n )\n }\n\n resolveSwatch(swatchId: string | undefined): FetchableValue<Swatch | null> {\n return this.resolveResource(APIResourceType.Swatch, {\n id: swatchId,\n read: id => this.readSwatch(id),\n fetch: id => this.fetchSwatch(id),\n })\n }\n\n readFile(fileId: string): File | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.File,\n fileId,\n )\n }\n\n async fetchFile(fileId: string): Promise<File | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.File, fileId, this.siteVersion),\n )\n }\n\n resolveFile(fileId: string | undefined): FetchableValue<File | null> {\n return this.resolveResource(APIResourceType.File, {\n id: fileId,\n read: id => this.readFile(id),\n fetch: id => this.fetchFile(id),\n })\n }\n\n readTypography(typographyId: string): Typography | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Typography,\n typographyId,\n )\n }\n\n async fetchTypography(typographyId: string): Promise<Typography | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.Typography,\n typographyId,\n this.siteVersion,\n ),\n )\n }\n\n resolveTypography(typographyId: string | undefined): FetchableValue<Typography | null> {\n return this.resolveResource(APIResourceType.Typography, {\n id: typographyId,\n read: id => this.readTypography(id),\n fetch: id => this.fetchTypography(id),\n })\n }\n\n readGlobalElement(globalElementId: string): GlobalElement | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.GlobalElement,\n globalElementId,\n )\n }\n\n async fetchGlobalElement(globalElementId: string): Promise<GlobalElement | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.GlobalElement,\n globalElementId,\n this.siteVersion,\n ),\n )\n }\n\n readLocalizedGlobalElement({\n globalElementId,\n locale,\n }: {\n globalElementId: string\n locale: string\n }): LocalizedGlobalElement | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.LocalizedGlobalElement,\n globalElementId,\n locale,\n )\n }\n\n async fetchLocalizedGlobalElement({\n globalElementId,\n locale,\n }: {\n globalElementId: string\n locale: string\n }): Promise<LocalizedGlobalElement | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.LocalizedGlobalElement,\n globalElementId,\n this.siteVersion,\n locale,\n ),\n )\n }\n\n readPagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string\n locale: string | null\n }): PagePathnameSlice | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.PagePathnameSlice,\n pageId,\n locale,\n )\n }\n\n async fetchPagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string\n locale: string | null\n }): Promise<PagePathnameSlice | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.PagePathnameSlice,\n pageId,\n this.siteVersion,\n locale,\n ),\n )\n }\n\n resolvePagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string | undefined\n locale: string | null\n }): FetchableValue<PagePathnameSlice | null> {\n return this.resolveResource(APIResourceType.PagePathnameSlice, {\n id: pageId,\n read: id => this.readPagePathnameSlice({ pageId: id, locale }),\n fetch: id => this.fetchPagePathnameSlice({ pageId: id, locale }),\n })\n }\n\n resolveResource<R>(\n type: APIResourceType,\n {\n id,\n read,\n fetch,\n }: {\n id: string | undefined\n read: (id: string) => R | null\n fetch: (id: string) => Promise<R | null>\n },\n ): FetchableValue<R | null> {\n const _read = () => (id != null ? read(id) : null)\n let lastValue: R | null = null\n return {\n name: `${type}:${id}`,\n readStable: () => (lastValue = _read()),\n subscribe: (onUpdate: () => void) =>\n this.subscribe(() => {\n if (_read() !== lastValue) onUpdate()\n }),\n fetch: async () => (id != null ? fetch(id) : null),\n }\n }\n\n readTable(tableId: string): Table | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Table,\n tableId,\n )\n }\n\n async fetchTable(tableId: string): Promise<Table | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.Table, tableId, this.siteVersion),\n )\n }\n\n async createTableRecord(tableId: string, columns: any): Promise<void> {\n await this.graphqlClient.request<\n CreateTableRecordMutationResult,\n CreateTableRecordMutationVariables\n >(CreateTableRecordMutation, { input: { data: { tableId, columns } } })\n }\n\n readSite(siteId: string): Site | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Site,\n siteId,\n )\n }\n\n readPage(pageId: string): Page | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Page,\n pageId,\n )\n }\n\n readSnippet(snippetId: string): Snippet | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Snippet,\n snippetId,\n )\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/api/react.ts"],"sourcesContent":["import { type FetchableValue } from '@makeswift/controls'\nimport * as MakeswiftApiClient from '../state/makeswift-api-client'\nimport {\n APIResourceType,\n File,\n GlobalElement,\n LocalizedGlobalElement,\n Page,\n PagePathnameSlice,\n Site,\n Snippet,\n Swatch,\n Table,\n Typography,\n} from './types'\nimport { GraphQLClient } from './graphql/client'\nimport { CreateTableRecordMutation } from './graphql/documents'\nimport {\n CreateTableRecordMutationResult,\n CreateTableRecordMutationVariables,\n} from './graphql/generated/types'\n\nexport type CacheData = MakeswiftApiClient.SerializedState\n\nexport const CacheData = {\n empty(): CacheData {\n return {\n apiResources: {},\n localizedResourcesMap: {},\n }\n },\n}\n\n/**\n * NOTE(miguel): This \"client\" is used to fetch Makeswift API resources needed for the host. For\n * example, swatches, files, typographies, etc. Ideally it's internal to the runtime and is only\n * used by controls to transform API references to API resources.\n *\n * Moreover, its use should be reserved for the builder only, since for live pages all Makeswift\n * API resources should be embedded in the \"page snapshot\". In the builder, this client serves the\n * purpose of sending requests for API resources and keeping a cache so that changes that happen in\n * the builder, like modifying a swatch, can be sent via `postMessage` to the host and the cache can\n * immediately update the value and re-render.\n *\n * Furthermore, the API resources requested shouldn't be requested directly from the Makeswift API\n * as that would require those resources to not be authenticated since the requests come from the\n * browser when running the host. Instead, the requests should go to the host directly, at the\n * Makeswift API endpoint (i.g., `/api/makeswift/[...makeswift]` dynamic route) where the host's\n * API key can be used, securely, in the server. For this reason, this client should really be a\n * client of the host's API, not Makeswift's, intended to build and continuously maintain a realtime\n * snapshot for use in the builder, not the lives pages.\n */\nexport class MakeswiftHostApiClient {\n graphqlClient: GraphQLClient\n makeswiftApiClient: MakeswiftApiClient.Store\n subscribe: MakeswiftApiClient.Store['subscribe']\n fetch: MakeswiftApiClient.HttpFetch\n\n constructor({\n uri,\n fetch,\n cacheData,\n locale,\n }: {\n uri: string\n fetch: MakeswiftApiClient.HttpFetch\n cacheData?: CacheData\n locale?: string\n }) {\n this.graphqlClient = new GraphQLClient(uri)\n this.makeswiftApiClient = MakeswiftApiClient.configureStore({\n serializedState: cacheData,\n defaultLocale: locale,\n })\n this.fetch = fetch\n this.subscribe = this.makeswiftApiClient.subscribe\n }\n\n readSwatch(swatchId: string): Swatch | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Swatch,\n swatchId,\n )\n }\n\n async fetchSwatch(swatchId: string): Promise<Swatch | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.Swatch, swatchId, this.fetch),\n )\n }\n\n resolveSwatch(swatchId: string | undefined): FetchableValue<Swatch | null> {\n return this.resolveResource(APIResourceType.Swatch, {\n id: swatchId,\n read: id => this.readSwatch(id),\n fetch: id => this.fetchSwatch(id),\n })\n }\n\n readFile(fileId: string): File | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.File,\n fileId,\n )\n }\n\n async fetchFile(fileId: string): Promise<File | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.File, fileId, this.fetch),\n )\n }\n\n resolveFile(fileId: string | undefined): FetchableValue<File | null> {\n return this.resolveResource(APIResourceType.File, {\n id: fileId,\n read: id => this.readFile(id),\n fetch: id => this.fetchFile(id),\n })\n }\n\n readTypography(typographyId: string): Typography | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Typography,\n typographyId,\n )\n }\n\n async fetchTypography(typographyId: string): Promise<Typography | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.Typography, typographyId, this.fetch),\n )\n }\n\n resolveTypography(typographyId: string | undefined): FetchableValue<Typography | null> {\n return this.resolveResource(APIResourceType.Typography, {\n id: typographyId,\n read: id => this.readTypography(id),\n fetch: id => this.fetchTypography(id),\n })\n }\n\n readGlobalElement(globalElementId: string): GlobalElement | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.GlobalElement,\n globalElementId,\n )\n }\n\n async fetchGlobalElement(globalElementId: string): Promise<GlobalElement | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.GlobalElement,\n globalElementId,\n this.fetch,\n ),\n )\n }\n\n readLocalizedGlobalElement({\n globalElementId,\n locale,\n }: {\n globalElementId: string\n locale: string\n }): LocalizedGlobalElement | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.LocalizedGlobalElement,\n globalElementId,\n locale,\n )\n }\n\n async fetchLocalizedGlobalElement({\n globalElementId,\n locale,\n }: {\n globalElementId: string\n locale: string\n }): Promise<LocalizedGlobalElement | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.LocalizedGlobalElement,\n globalElementId,\n this.fetch,\n locale,\n ),\n )\n }\n\n readPagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string\n locale: string | null\n }): PagePathnameSlice | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.PagePathnameSlice,\n pageId,\n locale,\n )\n }\n\n async fetchPagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string\n locale: string | null\n }): Promise<PagePathnameSlice | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(\n APIResourceType.PagePathnameSlice,\n pageId,\n this.fetch,\n locale,\n ),\n )\n }\n\n resolvePagePathnameSlice({\n pageId,\n locale,\n }: {\n pageId: string | undefined\n locale: string | null\n }): FetchableValue<PagePathnameSlice | null> {\n return this.resolveResource(APIResourceType.PagePathnameSlice, {\n id: pageId,\n read: id => this.readPagePathnameSlice({ pageId: id, locale }),\n fetch: id => this.fetchPagePathnameSlice({ pageId: id, locale }),\n })\n }\n\n resolveResource<R>(\n type: APIResourceType,\n {\n id,\n read,\n fetch,\n }: {\n id: string | undefined\n read: (id: string) => R | null\n fetch: (id: string) => Promise<R | null>\n },\n ): FetchableValue<R | null> {\n const _read = () => (id != null ? read(id) : null)\n let lastValue: R | null = null\n return {\n name: `${type}:${id}`,\n readStable: () => (lastValue = _read()),\n subscribe: (onUpdate: () => void) =>\n this.subscribe(() => {\n if (_read() !== lastValue) onUpdate()\n }),\n fetch: async () => (id != null ? fetch(id) : null),\n }\n }\n\n readTable(tableId: string): Table | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Table,\n tableId,\n )\n }\n\n async fetchTable(tableId: string): Promise<Table | null> {\n return await this.makeswiftApiClient.dispatch(\n MakeswiftApiClient.fetchAPIResource(APIResourceType.Table, tableId, this.fetch),\n )\n }\n\n async createTableRecord(tableId: string, columns: any): Promise<void> {\n await this.graphqlClient.request<\n CreateTableRecordMutationResult,\n CreateTableRecordMutationVariables\n >(CreateTableRecordMutation, { input: { data: { tableId, columns } } })\n }\n\n readSite(siteId: string): Site | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Site,\n siteId,\n )\n }\n\n readPage(pageId: string): Page | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Page,\n pageId,\n )\n }\n\n readSnippet(snippetId: string): Snippet | null {\n return MakeswiftApiClient.getAPIResource(\n this.makeswiftApiClient.getState(),\n APIResourceType.Snippet,\n snippetId,\n )\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var site_version_exports = {};
20
+ __export(site_version_exports, {
21
+ ApiHandlerHeaders: () => ApiHandlerHeaders,
22
+ deserializeSiteVersion: () => deserializeSiteVersion,
23
+ secondsUntilSiteVersionExpiration: () => secondsUntilSiteVersionExpiration,
24
+ serializeSiteVersion: () => serializeSiteVersion,
25
+ siteVersionSchema: () => siteVersionSchema
26
+ });
27
+ module.exports = __toCommonJS(site_version_exports);
28
+ var import_zod = require("zod");
29
+ var import_jwt_decode = require("jwt-decode");
30
+ const ApiHandlerHeaders = {
31
+ SiteVersion: "X-Makeswift-Site-Version"
32
+ };
33
+ const decodedTokenPayloadSchema = import_zod.z.object({
34
+ exp: import_zod.z.number()
35
+ });
36
+ const siteVersionSchema = import_zod.z.object({
37
+ version: import_zod.z.string(),
38
+ token: import_zod.z.string()
39
+ });
40
+ function millisecondsToSeconds(ms) {
41
+ return Math.floor(ms / 1e3);
42
+ }
43
+ function serializeSiteVersion(data) {
44
+ const jsonString = JSON.stringify({ version: data.version, token: data.token });
45
+ return jsonString;
46
+ }
47
+ function parseSerializedSiteVersion(input) {
48
+ try {
49
+ return siteVersionSchema.parse(JSON.parse(input));
50
+ } catch {
51
+ console.error("Failed to parse serialized site version:", input);
52
+ return null;
53
+ }
54
+ }
55
+ function getSiteVersionTokenPayload(siteVersion) {
56
+ try {
57
+ const decoded = (0, import_jwt_decode.jwtDecode)(siteVersion.token);
58
+ return decodedTokenPayloadSchema.parse(decoded);
59
+ } catch (error) {
60
+ console.error("Invalid site version token");
61
+ throw error;
62
+ }
63
+ }
64
+ function secondsUntilTokenExpiration(tokenPayload) {
65
+ const currentTime = millisecondsToSeconds(Date.now());
66
+ return Math.max(tokenPayload.exp - currentTime, 0);
67
+ }
68
+ function secondsUntilSiteVersionExpiration(siteVersion) {
69
+ try {
70
+ const tokenPayload = getSiteVersionTokenPayload(siteVersion);
71
+ return secondsUntilTokenExpiration(tokenPayload);
72
+ } catch (error) {
73
+ console.error("Failed to check site version expiration:", error);
74
+ return 0;
75
+ }
76
+ }
77
+ function isSiteVersionExpired(siteVersion) {
78
+ return secondsUntilSiteVersionExpiration(siteVersion) <= 0;
79
+ }
80
+ function deserializeSiteVersion(input) {
81
+ try {
82
+ const parsedSiteVersion = parseSerializedSiteVersion(input);
83
+ if (parsedSiteVersion == null)
84
+ return null;
85
+ if (isSiteVersionExpired(parsedSiteVersion)) {
86
+ console.error("Site version token is expired");
87
+ return null;
88
+ }
89
+ return parsedSiteVersion;
90
+ } catch {
91
+ console.error("Failed to deserialize site version:", input);
92
+ return null;
93
+ }
94
+ }
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ ApiHandlerHeaders,
98
+ deserializeSiteVersion,
99
+ secondsUntilSiteVersionExpiration,
100
+ serializeSiteVersion,
101
+ siteVersionSchema
102
+ });
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/api/site-version/index.ts"],"sourcesContent":["import { z } from 'zod'\nimport { jwtDecode } from 'jwt-decode'\n\nexport const ApiHandlerHeaders = {\n SiteVersion: 'X-Makeswift-Site-Version',\n}\n\nconst decodedTokenPayloadSchema = z.object({\n exp: z.number(),\n})\n\ntype DecodedTokenPayload = z.infer<typeof decodedTokenPayloadSchema>\n\nexport const siteVersionSchema = z.object({\n version: z.string(),\n token: z.string(),\n})\n\nexport type SiteVersion = z.infer<typeof siteVersionSchema>\n\nfunction millisecondsToSeconds(ms: number): number {\n return Math.floor(ms / 1000)\n}\n\nexport function serializeSiteVersion(data: SiteVersion): string {\n const jsonString = JSON.stringify({ version: data.version, token: data.token })\n return jsonString\n}\n\nfunction parseSerializedSiteVersion(input: string): SiteVersion | null {\n try {\n return siteVersionSchema.parse(JSON.parse(input))\n } catch {\n console.error('Failed to parse serialized site version:', input)\n return null\n }\n}\n\nfunction getSiteVersionTokenPayload(siteVersion: SiteVersion): DecodedTokenPayload {\n try {\n const decoded = jwtDecode<DecodedTokenPayload>(siteVersion.token)\n return decodedTokenPayloadSchema.parse(decoded)\n } catch (error) {\n console.error('Invalid site version token')\n throw error\n }\n}\n\nfunction secondsUntilTokenExpiration(tokenPayload: DecodedTokenPayload): number {\n const currentTime = millisecondsToSeconds(Date.now())\n return Math.max(tokenPayload.exp - currentTime, 0)\n}\n\nexport function secondsUntilSiteVersionExpiration(siteVersion: SiteVersion): number {\n try {\n const tokenPayload = getSiteVersionTokenPayload(siteVersion)\n return secondsUntilTokenExpiration(tokenPayload)\n } catch (error) {\n console.error('Failed to check site version expiration:', error)\n return 0\n }\n}\n\nfunction isSiteVersionExpired(siteVersion: SiteVersion): boolean {\n return secondsUntilSiteVersionExpiration(siteVersion) <= 0\n}\n\nexport function deserializeSiteVersion(input: string): SiteVersion | null {\n try {\n const parsedSiteVersion = parseSerializedSiteVersion(input)\n if (parsedSiteVersion == null) return null\n\n if (isSiteVersionExpired(parsedSiteVersion)) {\n console.error('Site version token is expired')\n return null\n }\n return parsedSiteVersion\n } catch {\n console.error('Failed to deserialize site version:', input)\n return null\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,wBAA0B;AAEnB,MAAM,oBAAoB;AAAA,EAC/B,aAAa;AACf;AAEA,MAAM,4BAA4B,aAAE,OAAO;AAAA,EACzC,KAAK,aAAE,OAAO;AAChB,CAAC;AAIM,MAAM,oBAAoB,aAAE,OAAO;AAAA,EACxC,SAAS,aAAE,OAAO;AAAA,EAClB,OAAO,aAAE,OAAO;AAClB,CAAC;AAID,SAAS,sBAAsB,IAAoB;AACjD,SAAO,KAAK,MAAM,KAAK,GAAI;AAC7B;AAEO,SAAS,qBAAqB,MAA2B;AAC9D,QAAM,aAAa,KAAK,UAAU,EAAE,SAAS,KAAK,SAAS,OAAO,KAAK,MAAM,CAAC;AAC9E,SAAO;AACT;AAEA,SAAS,2BAA2B,OAAmC;AACrE,MAAI;AACF,WAAO,kBAAkB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,EAClD,QAAQ;AACN,YAAQ,MAAM,4CAA4C,KAAK;AAC/D,WAAO;AAAA,EACT;AACF;AAEA,SAAS,2BAA2B,aAA+C;AACjF,MAAI;AACF,UAAM,cAAU,6BAA+B,YAAY,KAAK;AAChE,WAAO,0BAA0B,MAAM,OAAO;AAAA,EAChD,SAAS,OAAO;AACd,YAAQ,MAAM,4BAA4B;AAC1C,UAAM;AAAA,EACR;AACF;AAEA,SAAS,4BAA4B,cAA2C;AAC9E,QAAM,cAAc,sBAAsB,KAAK,IAAI,CAAC;AACpD,SAAO,KAAK,IAAI,aAAa,MAAM,aAAa,CAAC;AACnD;AAEO,SAAS,kCAAkC,aAAkC;AAClF,MAAI;AACF,UAAM,eAAe,2BAA2B,WAAW;AAC3D,WAAO,4BAA4B,YAAY;AAAA,EACjD,SAAS,OAAO;AACd,YAAQ,MAAM,4CAA4C,KAAK;AAC/D,WAAO;AAAA,EACT;AACF;AAEA,SAAS,qBAAqB,aAAmC;AAC/D,SAAO,kCAAkC,WAAW,KAAK;AAC3D;AAEO,SAAS,uBAAuB,OAAmC;AACxE,MAAI;AACF,UAAM,oBAAoB,2BAA2B,KAAK;AAC1D,QAAI,qBAAqB;AAAM,aAAO;AAEtC,QAAI,qBAAqB,iBAAiB,GAAG;AAC3C,cAAQ,MAAM,+BAA+B;AAC7C,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,QAAQ;AACN,YAAQ,MAAM,uCAAuC,KAAK;AAC1D,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -28,9 +28,7 @@ async function manifestHandler(req, { apiKey, manifest }) {
28
28
  return import_request_response.ApiResponse.json({ message: "Unauthorized" }, { status: 401 });
29
29
  }
30
30
  return import_request_response.ApiResponse.json({
31
- version: "0.25.0-canary.8",
32
- previewMode: false,
33
- draftMode: false,
31
+ version: "0.25.0",
34
32
  interactionMode: true,
35
33
  clientSideNavigation: false,
36
34
  elementFromPoint: false,
@@ -40,7 +38,8 @@ async function manifestHandler(req, { apiKey, manifest }) {
40
38
  localizedPageSSR: true,
41
39
  webhook: true,
42
40
  localizedPagesOnlineByDefault: true,
43
- ...manifest
41
+ previewToken: true,
42
+ ...manifest ?? {}
44
43
  });
45
44
  }
46
45
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api-handler/handlers/manifest.ts"],"sourcesContent":["import {\n type ApiRequest,\n type ErrorResponseBody,\n ApiResponse,\n searchParams,\n} from '../request-response'\n\nexport type Manifest = {\n version: string\n previewMode: boolean\n draftMode: boolean\n interactionMode: boolean\n clientSideNavigation: boolean\n elementFromPoint: boolean\n customBreakpoints: boolean\n siteVersions: boolean\n unstable_siteVersions: boolean\n localizedPageSSR: boolean\n webhook: boolean\n localizedPagesOnlineByDefault: boolean\n}\n\nexport async function manifestHandler(\n req: ApiRequest,\n { apiKey, manifest }: { apiKey: string; manifest: Partial<Manifest> },\n): Promise<ApiResponse<Manifest | ErrorResponseBody>> {\n const secret = searchParams(req).get('secret')\n\n if (secret !== apiKey) {\n return ApiResponse.json({ message: 'Unauthorized' }, { status: 401 })\n }\n\n return ApiResponse.json({\n version: PACKAGE_VERSION,\n previewMode: false,\n draftMode: false,\n interactionMode: true,\n clientSideNavigation: false,\n elementFromPoint: false,\n customBreakpoints: true,\n siteVersions: true,\n unstable_siteVersions: true,\n localizedPageSSR: true,\n webhook: true,\n localizedPagesOnlineByDefault: true,\n ...manifest,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAKO;AAiBP,eAAsB,gBACpB,KACA,EAAE,QAAQ,SAAS,GACiC;AACpD,QAAM,aAAS,sCAAa,GAAG,EAAE,IAAI,QAAQ;AAE7C,MAAI,WAAW,QAAQ;AACrB,WAAO,oCAAY,KAAK,EAAE,SAAS,eAAe,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EACtE;AAEA,SAAO,oCAAY,KAAK;AAAA,IACtB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,+BAA+B;AAAA,IAC/B,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/api-handler/handlers/manifest.ts"],"sourcesContent":["import {\n type ApiRequest,\n type ErrorResponseBody,\n ApiResponse,\n searchParams,\n} from '../request-response'\n\nexport type Manifest = {\n version: string\n interactionMode: boolean\n clientSideNavigation: boolean\n elementFromPoint: boolean\n customBreakpoints: boolean\n siteVersions: boolean\n unstable_siteVersions: boolean\n localizedPageSSR: boolean\n webhook: boolean\n localizedPagesOnlineByDefault: boolean\n}\n\nexport async function manifestHandler(\n req: ApiRequest,\n { apiKey, manifest }: { apiKey: string; manifest?: Partial<Manifest> },\n): Promise<ApiResponse<Manifest | ErrorResponseBody>> {\n const secret = searchParams(req).get('secret')\n\n if (secret !== apiKey) {\n return ApiResponse.json({ message: 'Unauthorized' }, { status: 401 })\n }\n\n return ApiResponse.json({\n version: PACKAGE_VERSION,\n interactionMode: true,\n clientSideNavigation: false,\n elementFromPoint: false,\n customBreakpoints: true,\n siteVersions: true,\n unstable_siteVersions: true,\n localizedPageSSR: true,\n webhook: true,\n localizedPagesOnlineByDefault: true,\n previewToken: true,\n ...(manifest ?? {}),\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAKO;AAeP,eAAsB,gBACpB,KACA,EAAE,QAAQ,SAAS,GACiC;AACpD,QAAM,aAAS,sCAAa,GAAG,EAAE,IAAI,QAAQ;AAE7C,MAAI,WAAW,QAAQ;AACrB,WAAO,oCAAY,KAAK,EAAE,SAAS,eAAe,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EACtE;AAEA,SAAO,oCAAY,KAAK;AAAA,IACtB,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,+BAA+B;AAAA,IAC/B,cAAc;AAAA,IACd,GAAI,YAAY,CAAC;AAAA,EACnB,CAAC;AACH;","names":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var redirect_live_exports = {};
20
+ __export(redirect_live_exports, {
21
+ REDIRECT_SEARCH_PARAM: () => REDIRECT_SEARCH_PARAM,
22
+ redirectLiveHandler: () => redirectLiveHandler
23
+ });
24
+ module.exports = __toCommonJS(redirect_live_exports);
25
+ var import_cookie = require("cookie");
26
+ var import_request_response = require("../request-response");
27
+ var import_cookies = require("../cookies");
28
+ const REDIRECT_SEARCH_PARAM = "makeswift-redirect-live";
29
+ async function redirectLiveHandler(req, { previewCookieNames }) {
30
+ const params = (0, import_request_response.searchParams)(req);
31
+ const redirectDestination = params.get(REDIRECT_SEARCH_PARAM) ?? "/";
32
+ const redirectDestinationUrl = new URL(
33
+ decodeURIComponent(redirectDestination),
34
+ "http://localhost"
35
+ );
36
+ redirectDestinationUrl.searchParams.delete(REDIRECT_SEARCH_PARAM);
37
+ const destinationPath = `${redirectDestinationUrl.pathname}${redirectDestinationUrl.search}${redirectDestinationUrl.hash}`;
38
+ const headers = new Headers();
39
+ previewCookieNames.forEach((name) => {
40
+ headers.append(
41
+ import_cookies.SET_COOKIE_HEADER,
42
+ (0, import_cookie.serialize)(name, "", { ...import_cookies.cookieSettingOptions, expires: /* @__PURE__ */ new Date(0), maxAge: 0 })
43
+ );
44
+ });
45
+ return import_request_response.ApiResponse.redirect(destinationPath, { headers });
46
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ REDIRECT_SEARCH_PARAM,
50
+ redirectLiveHandler
51
+ });
52
+ //# sourceMappingURL=redirect-live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/api-handler/handlers/redirect-live.ts"],"sourcesContent":["import { serialize as serializeCookie } from 'cookie'\nimport { type ApiRequest, ApiResponse, searchParams } from '../request-response'\nimport { SET_COOKIE_HEADER, cookieSettingOptions } from '../cookies'\n\nexport const REDIRECT_SEARCH_PARAM = 'makeswift-redirect-live'\n\nexport async function redirectLiveHandler(\n req: ApiRequest,\n { previewCookieNames }: { previewCookieNames: string[] },\n): Promise<ApiResponse<null>> {\n const params = searchParams(req)\n const redirectDestination = params.get(REDIRECT_SEARCH_PARAM) ?? '/'\n\n const redirectDestinationUrl = new URL(\n decodeURIComponent(redirectDestination),\n 'http://localhost',\n )\n redirectDestinationUrl.searchParams.delete(REDIRECT_SEARCH_PARAM)\n\n const destinationPath = `${redirectDestinationUrl.pathname}${redirectDestinationUrl.search}${redirectDestinationUrl.hash}`\n\n const headers = new Headers()\n\n previewCookieNames.forEach(name => {\n headers.append(\n SET_COOKIE_HEADER,\n serializeCookie(name, '', { ...cookieSettingOptions, expires: new Date(0), maxAge: 0 }),\n )\n })\n\n return ApiResponse.redirect(destinationPath, { headers })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6C;AAC7C,8BAA2D;AAC3D,qBAAwD;AAEjD,MAAM,wBAAwB;AAErC,eAAsB,oBACpB,KACA,EAAE,mBAAmB,GACO;AAC5B,QAAM,aAAS,sCAAa,GAAG;AAC/B,QAAM,sBAAsB,OAAO,IAAI,qBAAqB,KAAK;AAEjE,QAAM,yBAAyB,IAAI;AAAA,IACjC,mBAAmB,mBAAmB;AAAA,IACtC;AAAA,EACF;AACA,yBAAuB,aAAa,OAAO,qBAAqB;AAEhE,QAAM,kBAAkB,GAAG,uBAAuB,QAAQ,GAAG,uBAAuB,MAAM,GAAG,uBAAuB,IAAI;AAExH,QAAM,UAAU,IAAI,QAAQ;AAE5B,qBAAmB,QAAQ,UAAQ;AACjC,YAAQ;AAAA,MACN;AAAA,UACA,cAAAA,WAAgB,MAAM,IAAI,EAAE,GAAG,qCAAsB,SAAS,oBAAI,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;AAAA,IACxF;AAAA,EACF,CAAC;AAED,SAAO,oCAAY,SAAS,iBAAiB,EAAE,QAAQ,CAAC;AAC1D;","names":["serializeCookie"]}
@@ -23,7 +23,7 @@ __export(api_handler_exports, {
23
23
  module.exports = __toCommonJS(api_handler_exports);
24
24
  var import_path_to_regexp = require("path-to-regexp");
25
25
  var import_site_version = require("../api/site-version");
26
- var import_clear_draft = require("./handlers/clear-draft");
26
+ var import_redirect_live = require("./handlers/redirect-live");
27
27
  var import_element_tree = require("./handlers/element-tree");
28
28
  var import_fonts = require("./handlers/fonts");
29
29
  var import_manifest = require("./handlers/manifest");
@@ -41,7 +41,7 @@ function createApiHandler(apiKey, {
41
41
  client,
42
42
  manifest,
43
43
  revalidationHandler,
44
- draftCookieNames
44
+ previewCookieNames
45
45
  }) {
46
46
  if (typeof apiKey !== "string") {
47
47
  throw new Error(
@@ -57,10 +57,11 @@ function createApiHandler(apiKey, {
57
57
  return res;
58
58
  };
59
59
  async function apiRouteHandler(req, route) {
60
- const siteVersion = (0, import_site_version.parseSiteVersion)(req.headers.get(import_site_version.API_HANDLER_SITE_VERSION_HEADER));
60
+ const versionHeader = req.headers.get(import_site_version.ApiHandlerHeaders.SiteVersion);
61
+ const siteVersion = versionHeader != null ? (0, import_site_version.deserializeSiteVersion)(versionHeader) : null;
61
62
  const matches = (pattern) => (0, import_path_to_regexp.match)(pattern, { decode: decodeURIComponent })(route);
62
- if (matches("/clear-draft"))
63
- return (0, import_clear_draft.clearDraftHandler)(req, { draftCookieNames });
63
+ if (matches("/redirect-live"))
64
+ return (0, import_redirect_live.redirectLiveHandler)(req, { previewCookieNames });
64
65
  if (matches("/element-tree"))
65
66
  return (0, import_element_tree.elementTreeHandler)(req, { runtime });
66
67
  if (matches("/fonts"))
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api-handler/index.ts"],"sourcesContent":["import { Match, match as matchPattern } from 'path-to-regexp'\n\nimport { APIResource } from '../api'\nimport { API_HANDLER_SITE_VERSION_HEADER, parseSiteVersion } from '../api/site-version'\n\nimport { MakeswiftClient } from '../client'\nimport { ReactRuntime } from '../react'\n\nimport { clearDraftHandler } from './handlers/clear-draft'\nimport { elementTreeHandler } from './handlers/element-tree'\nimport { fontsHandler, type Font, type GetFonts } from './handlers/fonts'\nimport { manifestHandler, type Manifest } from './handlers/manifest'\nimport { mergeTranslatedDataHandler } from './handlers/merge-translated-data'\nimport { revalidateHandler } from './handlers/revalidate'\nimport { translatableDataHandler } from './handlers/translatable-data'\nimport { webhookHandler } from './handlers/webhook'\nimport { type OnPublish } from './handlers/webhook/types'\n\nimport {\n type ApiRequest,\n type ErrorResponseBody,\n ApiResponse,\n searchParams,\n} from './request-response'\n\nimport { applyCorsHeaders } from './cors'\n\nexport type { Manifest, Font }\n\ntype Events = { onPublish: OnPublish }\n\nexport type ApiHandlerUserConfig = {\n runtime: ReactRuntime\n appOrigin?: string\n apiOrigin?: string\n getFonts?: GetFonts\n events?: Events\n}\n\nexport type ApiHandlerInternalConfig = {\n client: MakeswiftClient\n manifest: Partial<Manifest>\n revalidationHandler: (path?: string) => Promise<void>\n draftCookieNames: string[]\n}\n\ntype ApiHandlerConfig = ApiHandlerUserConfig & ApiHandlerInternalConfig\n\ntype ResponseType =\n | Awaited<\n | ReturnType<typeof clearDraftHandler>\n | ReturnType<typeof elementTreeHandler>\n | ReturnType<typeof fontsHandler>\n | ReturnType<typeof manifestHandler>\n | ReturnType<typeof mergeTranslatedDataHandler>\n | ReturnType<typeof revalidateHandler>\n | ReturnType<typeof translatableDataHandler>\n | ReturnType<typeof webhookHandler>\n >\n | ApiResponse<APIResource>\n | ApiResponse<ErrorResponseBody>\n | Response\n\ntype ApiHandler = (req: ApiRequest, route: string) => Promise<ResponseType>\n\nexport function createApiHandler(\n apiKey: string,\n {\n runtime,\n appOrigin = 'https://app.makeswift.com',\n getFonts,\n events,\n client,\n manifest,\n revalidationHandler,\n draftCookieNames,\n }: ApiHandlerConfig,\n): ApiHandler {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift API handler must be passed a valid Makeswift site API key. ' +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function (req: ApiRequest, route: string): Promise<ResponseType> {\n const res =\n req.method.toUpperCase() !== 'OPTIONS'\n ? await apiRouteHandler(req, route)\n : new Response(null, { status: 204, headers: [['Content-Length', '0']] })\n\n applyCorsHeaders(res.headers, {\n origin: appOrigin,\n allowedHeaders: ['Content-Type', 'Authorization'],\n })\n\n return res\n }\n\n async function apiRouteHandler(req: ApiRequest, route: string): Promise<ResponseType> {\n const siteVersion = parseSiteVersion(req.headers.get(API_HANDLER_SITE_VERSION_HEADER))\n const matches = <T extends object>(pattern: string): Match<T> =>\n matchPattern<T>(pattern, { decode: decodeURIComponent })(route)\n\n if (matches('/clear-draft')) return clearDraftHandler(req, { draftCookieNames })\n if (matches('/element-tree')) return elementTreeHandler(req, { runtime })\n if (matches('/fonts')) return fontsHandler(req, { getFonts })\n if (matches('/manifest')) return manifestHandler(req, { apiKey, manifest })\n if (matches('/merge-translated-data')) return mergeTranslatedDataHandler(req, { client })\n if (matches('/revalidate')) {\n return revalidateHandler(req, { apiKey, revalidatePath: revalidationHandler })\n }\n\n if (matches('/translatable-data')) return translatableDataHandler(req, { client })\n if (matches('/webhook')) {\n return webhookHandler(req, { apiKey, events, revalidate: revalidationHandler })\n }\n\n const handleResource = <T extends APIResource>(\n resource: T | null,\n ): ApiResponse<APIResource | ErrorResponseBody> => {\n return resource !== null\n ? ApiResponse.json(resource)\n : ApiResponse.json({ message: 'Not Found' }, { status: 404 })\n }\n\n let m\n\n if ((m = matches<{ id: string }>('/swatches/:id'))) {\n return client.getSwatch(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/files/:id'))) {\n return client.getFile(m.params.id).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/typographies/:id'))) {\n return client.getTypography(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/global-elements/:id'))) {\n return client.getGlobalElement(m.params.id, siteVersion).then(handleResource)\n }\n\n if (\n (m = matches<{ globalElementId: string; locale: string }>(\n '/localized-global-elements/:globalElementId/:locale',\n ))\n ) {\n return client\n .getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion)\n .then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/page-pathname-slices/:id'))) {\n const localeParam = searchParams(req).get('locale')\n const locale = typeof localeParam === 'string' ? localeParam : undefined\n\n return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/tables/:id'))) {\n return client.getTable(m.params.id).then(handleResource)\n }\n\n return ApiResponse.json({ message: 'Not Found' }, { status: 404 })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA6C;AAG7C,0BAAkE;AAKlE,yBAAkC;AAClC,0BAAmC;AACnC,mBAAuD;AACvD,sBAA+C;AAC/C,mCAA2C;AAC3C,wBAAkC;AAClC,+BAAwC;AACxC,qBAA+B;AAG/B,8BAKO;AAEP,kBAAiC;AAwC1B,SAAS,iBACd,QACA;AAAA,EACE;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACY;AACZ,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,IAAI;AAAA,MACR,sFACe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO,eAAgB,KAAiB,OAAsC;AAC5E,UAAM,MACJ,IAAI,OAAO,YAAY,MAAM,YACzB,MAAM,gBAAgB,KAAK,KAAK,IAChC,IAAI,SAAS,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;AAE5E,sCAAiB,IAAI,SAAS;AAAA,MAC5B,QAAQ;AAAA,MACR,gBAAgB,CAAC,gBAAgB,eAAe;AAAA,IAClD,CAAC;AAED,WAAO;AAAA,EACT;AAEA,iBAAe,gBAAgB,KAAiB,OAAsC;AACpF,UAAM,kBAAc,sCAAiB,IAAI,QAAQ,IAAI,mDAA+B,CAAC;AACrF,UAAM,UAAU,CAAmB,gBACjC,sBAAAA,OAAgB,SAAS,EAAE,QAAQ,mBAAmB,CAAC,EAAE,KAAK;AAEhE,QAAI,QAAQ,cAAc;AAAG,iBAAO,sCAAkB,KAAK,EAAE,iBAAiB,CAAC;AAC/E,QAAI,QAAQ,eAAe;AAAG,iBAAO,wCAAmB,KAAK,EAAE,QAAQ,CAAC;AACxE,QAAI,QAAQ,QAAQ;AAAG,iBAAO,2BAAa,KAAK,EAAE,SAAS,CAAC;AAC5D,QAAI,QAAQ,WAAW;AAAG,iBAAO,iCAAgB,KAAK,EAAE,QAAQ,SAAS,CAAC;AAC1E,QAAI,QAAQ,wBAAwB;AAAG,iBAAO,yDAA2B,KAAK,EAAE,OAAO,CAAC;AACxF,QAAI,QAAQ,aAAa,GAAG;AAC1B,iBAAO,qCAAkB,KAAK,EAAE,QAAQ,gBAAgB,oBAAoB,CAAC;AAAA,IAC/E;AAEA,QAAI,QAAQ,oBAAoB;AAAG,iBAAO,kDAAwB,KAAK,EAAE,OAAO,CAAC;AACjF,QAAI,QAAQ,UAAU,GAAG;AACvB,iBAAO,+BAAe,KAAK,EAAE,QAAQ,QAAQ,YAAY,oBAAoB,CAAC;AAAA,IAChF;AAEA,UAAM,iBAAiB,CACrB,aACiD;AACjD,aAAO,aAAa,OAChB,oCAAY,KAAK,QAAQ,IACzB,oCAAY,KAAK,EAAE,SAAS,YAAY,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAChE;AAEA,QAAI;AAEJ,QAAK,IAAI,QAAwB,eAAe,GAAI;AAClD,aAAO,OAAO,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IACvE;AAEA,QAAK,IAAI,QAAwB,YAAY,GAAI;AAC/C,aAAO,OAAO,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,cAAc;AAAA,IACxD;AAEA,QAAK,IAAI,QAAwB,mBAAmB,GAAI;AACtD,aAAO,OAAO,cAAc,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IAC3E;AAEA,QAAK,IAAI,QAAwB,sBAAsB,GAAI;AACzD,aAAO,OAAO,iBAAiB,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IAC9E;AAEA,QACG,IAAI;AAAA,MACH;AAAA,IACF,GACA;AACA,aAAO,OACJ,0BAA0B,EAAE,OAAO,iBAAiB,EAAE,OAAO,QAAQ,WAAW,EAChF,KAAK,cAAc;AAAA,IACxB;AAEA,QAAK,IAAI,QAAwB,2BAA2B,GAAI;AAC9D,YAAM,kBAAc,sCAAa,GAAG,EAAE,IAAI,QAAQ;AAClD,YAAM,SAAS,OAAO,gBAAgB,WAAW,cAAc;AAE/D,aAAO,OAAO,qBAAqB,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,CAAC,EAAE,KAAK,cAAc;AAAA,IAC9F;AAEA,QAAK,IAAI,QAAwB,aAAa,GAAI;AAChD,aAAO,OAAO,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,cAAc;AAAA,IACzD;AAEA,WAAO,oCAAY,KAAK,EAAE,SAAS,YAAY,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EACnE;AACF;","names":["matchPattern"]}
1
+ {"version":3,"sources":["../../../src/api-handler/index.ts"],"sourcesContent":["import { Match, match as matchPattern } from 'path-to-regexp'\n\nimport { APIResource } from '../api'\nimport { ApiHandlerHeaders, deserializeSiteVersion } from '../api/site-version'\n\nimport { MakeswiftClient } from '../client'\nimport { ReactRuntime } from '../react'\n\nimport { redirectLiveHandler } from './handlers/redirect-live'\nimport { elementTreeHandler } from './handlers/element-tree'\nimport { fontsHandler, type Font, type GetFonts } from './handlers/fonts'\nimport { manifestHandler, type Manifest } from './handlers/manifest'\nimport { mergeTranslatedDataHandler } from './handlers/merge-translated-data'\nimport { revalidateHandler } from './handlers/revalidate'\nimport { translatableDataHandler } from './handlers/translatable-data'\nimport { webhookHandler } from './handlers/webhook'\nimport { type OnPublish } from './handlers/webhook/types'\n\nimport {\n type ApiRequest,\n type ErrorResponseBody,\n ApiResponse,\n searchParams,\n} from './request-response'\n\nimport { applyCorsHeaders } from './cors'\n\nexport type { Manifest, Font }\n\ntype Events = { onPublish: OnPublish }\n\nexport type ApiHandlerUserConfig = {\n runtime: ReactRuntime\n appOrigin?: string\n apiOrigin?: string\n getFonts?: GetFonts\n events?: Events\n}\n\nexport type ApiHandlerInternalConfig = {\n client: MakeswiftClient\n manifest?: Partial<Manifest>\n revalidationHandler: (path?: string) => Promise<void>\n previewCookieNames: string[]\n}\n\ntype ApiHandlerConfig = ApiHandlerUserConfig & ApiHandlerInternalConfig\n\ntype ResponseType =\n | Awaited<\n | ReturnType<typeof redirectLiveHandler>\n | ReturnType<typeof elementTreeHandler>\n | ReturnType<typeof fontsHandler>\n | ReturnType<typeof manifestHandler>\n | ReturnType<typeof mergeTranslatedDataHandler>\n | ReturnType<typeof revalidateHandler>\n | ReturnType<typeof translatableDataHandler>\n | ReturnType<typeof webhookHandler>\n >\n | ApiResponse<APIResource>\n | ApiResponse<ErrorResponseBody>\n | Response\n\ntype ApiHandler = (req: ApiRequest, route: string) => Promise<ResponseType>\n\nexport function createApiHandler(\n apiKey: string,\n {\n runtime,\n appOrigin = 'https://app.makeswift.com',\n getFonts,\n events,\n client,\n manifest,\n revalidationHandler,\n previewCookieNames,\n }: ApiHandlerConfig,\n): ApiHandler {\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift API handler must be passed a valid Makeswift site API key. ' +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n return async function (req: ApiRequest, route: string): Promise<ResponseType> {\n const res =\n req.method.toUpperCase() !== 'OPTIONS'\n ? await apiRouteHandler(req, route)\n : new Response(null, { status: 204, headers: [['Content-Length', '0']] })\n\n applyCorsHeaders(res.headers, {\n origin: appOrigin,\n allowedHeaders: ['Content-Type', 'Authorization'],\n })\n\n return res\n }\n\n async function apiRouteHandler(req: ApiRequest, route: string): Promise<ResponseType> {\n const versionHeader = req.headers.get(ApiHandlerHeaders.SiteVersion)\n\n const siteVersion = versionHeader != null ? deserializeSiteVersion(versionHeader) : null\n\n const matches = <T extends object>(pattern: string): Match<T> =>\n matchPattern<T>(pattern, { decode: decodeURIComponent })(route)\n\n if (matches('/redirect-live')) return redirectLiveHandler(req, { previewCookieNames })\n if (matches('/element-tree')) return elementTreeHandler(req, { runtime })\n if (matches('/fonts')) return fontsHandler(req, { getFonts })\n if (matches('/manifest')) return manifestHandler(req, { apiKey, manifest })\n if (matches('/merge-translated-data')) return mergeTranslatedDataHandler(req, { client })\n if (matches('/revalidate')) {\n return revalidateHandler(req, { apiKey, revalidatePath: revalidationHandler })\n }\n\n if (matches('/translatable-data')) return translatableDataHandler(req, { client })\n if (matches('/webhook')) {\n return webhookHandler(req, { apiKey, events, revalidate: revalidationHandler })\n }\n\n const handleResource = <T extends APIResource>(\n resource: T | null,\n ): ApiResponse<APIResource | ErrorResponseBody> => {\n return resource !== null\n ? ApiResponse.json(resource)\n : ApiResponse.json({ message: 'Not Found' }, { status: 404 })\n }\n\n let m\n\n if ((m = matches<{ id: string }>('/swatches/:id'))) {\n return client.getSwatch(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/files/:id'))) {\n return client.getFile(m.params.id).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/typographies/:id'))) {\n return client.getTypography(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/global-elements/:id'))) {\n return client.getGlobalElement(m.params.id, siteVersion).then(handleResource)\n }\n\n if (\n (m = matches<{ globalElementId: string; locale: string }>(\n '/localized-global-elements/:globalElementId/:locale',\n ))\n ) {\n return client\n .getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion)\n .then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/page-pathname-slices/:id'))) {\n const localeParam = searchParams(req).get('locale')\n const locale = typeof localeParam === 'string' ? localeParam : undefined\n\n return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/tables/:id'))) {\n return client.getTable(m.params.id).then(handleResource)\n }\n\n return ApiResponse.json({ message: 'Not Found' }, { status: 404 })\n }\n}\n"],"mappings":"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","names":["matchPattern"]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var node_request_response_exports = {};
20
+ __export(node_request_response_exports, {
21
+ pipeResponseTo: () => pipeResponseTo,
22
+ requestHeaders: () => requestHeaders,
23
+ toApiRequest: () => toApiRequest
24
+ });
25
+ module.exports = __toCommonJS(node_request_response_exports);
26
+ function requestHeaders(headers) {
27
+ const result = new Headers();
28
+ for (const [key, value] of Object.entries(headers)) {
29
+ if (value != null) {
30
+ if (Array.isArray(value)) {
31
+ value.forEach((v) => result.append(key, v));
32
+ } else {
33
+ result.append(key, value);
34
+ }
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ function toApiRequest(req) {
40
+ return {
41
+ headers: requestHeaders(req.headers),
42
+ method: req.method ?? "GET",
43
+ url: req.url ?? "",
44
+ json() {
45
+ return req.body;
46
+ }
47
+ };
48
+ }
49
+ async function pipeResponseTo(apiResponse, res) {
50
+ const headers = responseHeaders(apiResponse.headers);
51
+ Object.entries(headers).forEach(([key, value]) => {
52
+ res.setHeader(key, value);
53
+ });
54
+ res.statusCode = apiResponse.status;
55
+ try {
56
+ if (apiResponse.body) {
57
+ await pipeTo(apiResponse.body, res);
58
+ }
59
+ res.end();
60
+ } catch (error) {
61
+ if (!res.headersSent) {
62
+ res.statusCode = 500;
63
+ res.end();
64
+ } else {
65
+ res.destroy(error instanceof Error ? error : new Error(`${error}`));
66
+ }
67
+ }
68
+ }
69
+ function responseHeaders(headers) {
70
+ return [...headers.entries()].reduce((acc, [key, value]) => {
71
+ if (key in acc) {
72
+ const existingValue = acc[key];
73
+ if (Array.isArray(existingValue)) {
74
+ existingValue.push(value);
75
+ } else {
76
+ acc[key] = [existingValue, value];
77
+ }
78
+ } else {
79
+ acc[key] = value;
80
+ }
81
+ return acc;
82
+ }, {});
83
+ }
84
+ async function pipeTo(stream, res) {
85
+ const reader = stream.getReader();
86
+ while (true) {
87
+ const { done, value } = await reader.read();
88
+ if (done)
89
+ break;
90
+ res.write(value);
91
+ }
92
+ }
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ pipeResponseTo,
96
+ requestHeaders,
97
+ toApiRequest
98
+ });
99
+ //# sourceMappingURL=node-request-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/api-handler/node-request-response.ts"],"sourcesContent":["import { type IncomingMessage, type ServerResponse } from 'node:http'\nimport { type ApiRequest, type ApiResponse } from '../api-handler/request-response'\n\nexport function requestHeaders(headers: IncomingMessage['headers']): Headers {\n const result = new Headers()\n for (const [key, value] of Object.entries(headers)) {\n if (value != null) {\n if (Array.isArray(value)) {\n value.forEach(v => result.append(key, v))\n } else {\n result.append(key, value)\n }\n }\n }\n\n return result\n}\n\nexport function toApiRequest(req: IncomingMessage & { body: any }): ApiRequest {\n return {\n headers: requestHeaders(req.headers),\n method: req.method ?? 'GET',\n url: req.url ?? '',\n json() {\n return req.body\n },\n }\n}\n\nexport async function pipeResponseTo(apiResponse: ApiResponse, res: ServerResponse): Promise<void> {\n const headers = responseHeaders(apiResponse.headers)\n Object.entries(headers).forEach(([key, value]) => {\n res.setHeader(key, value)\n })\n\n res.statusCode = apiResponse.status\n\n try {\n if (apiResponse.body) {\n await pipeTo(apiResponse.body, res)\n }\n\n res.end()\n } catch (error) {\n if (!res.headersSent) {\n res.statusCode = 500\n res.end()\n } else {\n res.destroy(error instanceof Error ? error : new Error(`${error}`))\n }\n }\n}\n\nfunction responseHeaders(headers: Headers): Record<string, string | string[]> {\n return [...headers.entries()].reduce<Record<string, string | string[]>>((acc, [key, value]) => {\n if (key in acc) {\n const existingValue = acc[key]\n if (Array.isArray(existingValue)) {\n existingValue.push(value)\n } else {\n acc[key] = [existingValue, value]\n }\n } else {\n acc[key] = value\n }\n return acc\n }, {})\n}\n\nasync function pipeTo(stream: ReadableStream<Uint8Array>, res: ServerResponse): Promise<void> {\n const reader = stream.getReader()\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n res.write(value)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,eAAe,SAA8C;AAC3E,QAAM,SAAS,IAAI,QAAQ;AAC3B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,QAAI,SAAS,MAAM;AACjB,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,cAAM,QAAQ,OAAK,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,MAC1C,OAAO;AACL,eAAO,OAAO,KAAK,KAAK;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,aAAa,KAAkD;AAC7E,SAAO;AAAA,IACL,SAAS,eAAe,IAAI,OAAO;AAAA,IACnC,QAAQ,IAAI,UAAU;AAAA,IACtB,KAAK,IAAI,OAAO;AAAA,IAChB,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AACF;AAEA,eAAsB,eAAe,aAA0B,KAAoC;AACjG,QAAM,UAAU,gBAAgB,YAAY,OAAO;AACnD,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChD,QAAI,UAAU,KAAK,KAAK;AAAA,EAC1B,CAAC;AAED,MAAI,aAAa,YAAY;AAE7B,MAAI;AACF,QAAI,YAAY,MAAM;AACpB,YAAM,OAAO,YAAY,MAAM,GAAG;AAAA,IACpC;AAEA,QAAI,IAAI;AAAA,EACV,SAAS,OAAO;AACd,QAAI,CAAC,IAAI,aAAa;AACpB,UAAI,aAAa;AACjB,UAAI,IAAI;AAAA,IACV,OAAO;AACL,UAAI,QAAQ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AACF;AAEA,SAAS,gBAAgB,SAAqD;AAC5E,SAAO,CAAC,GAAG,QAAQ,QAAQ,CAAC,EAAE,OAA0C,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAC7F,QAAI,OAAO,KAAK;AACd,YAAM,gBAAgB,IAAI,GAAG;AAC7B,UAAI,MAAM,QAAQ,aAAa,GAAG;AAChC,sBAAc,KAAK,KAAK;AAAA,MAC1B,OAAO;AACL,YAAI,GAAG,IAAI,CAAC,eAAe,KAAK;AAAA,MAClC;AAAA,IACF,OAAO;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;AAEA,eAAe,OAAO,QAAoC,KAAoC;AAC5F,QAAM,SAAS,OAAO,UAAU;AAChC,SAAO,MAAM;AACX,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,QAAI;AAAM;AACV,QAAI,MAAM,KAAK;AAAA,EACjB;AACF;","names":[]}
@@ -16,25 +16,19 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var preview_mode_exports = {};
20
- __export(preview_mode_exports, {
21
- getMakeswiftSiteVersion: () => getMakeswiftSiteVersion
19
+ var preview_exports = {};
20
+ __export(preview_exports, {
21
+ MAKESWIFT_SITE_VERSION_COOKIE: () => MAKESWIFT_SITE_VERSION_COOKIE,
22
+ SearchParams: () => SearchParams
22
23
  });
23
- module.exports = __toCommonJS(preview_mode_exports);
24
- var import_zod = require("zod");
25
- var import_site_version = require("../api/site-version");
26
- const makeswiftPreviewDataSchema = import_zod.z.object({
27
- makeswift: import_zod.z.literal(true),
28
- siteVersion: import_site_version.makeswiftSiteVersionSchema
29
- });
30
- function getMakeswiftSiteVersion(previewData) {
31
- const result = makeswiftPreviewDataSchema.safeParse(previewData);
32
- if (result.success)
33
- return result.data.siteVersion;
34
- return null;
35
- }
24
+ module.exports = __toCommonJS(preview_exports);
25
+ const MAKESWIFT_SITE_VERSION_COOKIE = "makeswift-site-version";
26
+ const SearchParams = {
27
+ PreviewToken: "makeswift-preview-token"
28
+ };
36
29
  // Annotate the CommonJS export names for ESM import in node:
37
30
  0 && (module.exports = {
38
- getMakeswiftSiteVersion
31
+ MAKESWIFT_SITE_VERSION_COOKIE,
32
+ SearchParams
39
33
  });
40
- //# sourceMappingURL=preview-mode.js.map
34
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/api-handler/preview.ts"],"sourcesContent":["export const MAKESWIFT_SITE_VERSION_COOKIE = 'makeswift-site-version'\n\nexport const SearchParams = {\n PreviewToken: 'makeswift-preview-token',\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,gCAAgC;AAEtC,MAAM,eAAe;AAAA,EAC1B,cAAc;AAChB;","names":[]}
@@ -33,6 +33,15 @@ const ApiResponse = {
33
33
  ...init,
34
34
  headers
35
35
  });
36
+ },
37
+ redirect(location, init) {
38
+ const headers = new Headers(init?.headers);
39
+ headers.set("Location", location.toString());
40
+ return new Response(null, {
41
+ status: 307,
42
+ ...init,
43
+ headers
44
+ });
36
45
  }
37
46
  };
38
47
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api-handler/request-response.ts"],"sourcesContent":["export type ApiRequest = Pick<Request, 'method' | 'json' | 'headers' | 'url'>\n\nexport function searchParams(req: ApiRequest): URLSearchParams {\n // provide a placeholder domain to enable parsing of relative URLs\n return new URL(req.url, 'http://localhost').searchParams\n}\n\nexport interface ApiResponse<R extends unknown = unknown> extends Response {\n readonly __responseType?: R // prevent unsafe assignment between instances with incompatible `R`\n}\n\nexport const ApiResponse = {\n json<T>(body: T, init?: ResponseInit): ApiResponse<T> {\n const headers = new Headers(init?.headers)\n headers.set('Content-Type', 'application/json')\n\n return new Response(JSON.stringify(body), {\n ...init,\n headers,\n }) as ApiResponse<T>\n },\n} as const\n\nexport type ErrorResponseBody = { message: string }\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,aAAa,KAAkC;AAE7D,SAAO,IAAI,IAAI,IAAI,KAAK,kBAAkB,EAAE;AAC9C;AAMO,MAAM,cAAc;AAAA,EACzB,KAAQ,MAAS,MAAqC;AACpD,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,YAAQ,IAAI,gBAAgB,kBAAkB;AAE9C,WAAO,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG;AAAA,MACxC,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/api-handler/request-response.ts"],"sourcesContent":["export type ApiRequest = Pick<Request, 'method' | 'json' | 'headers' | 'url'>\n\nexport function searchParams(req: ApiRequest): URLSearchParams {\n // provide a placeholder domain to enable parsing of relative URLs\n return new URL(req.url, 'http://localhost').searchParams\n}\n\nexport interface ApiResponse<R extends unknown = unknown> extends Response {\n readonly __responseType?: R // prevent unsafe assignment between instances with incompatible `R`\n}\n\nexport const ApiResponse = {\n json<T>(body: T, init?: ResponseInit): ApiResponse<T> {\n const headers = new Headers(init?.headers)\n headers.set('Content-Type', 'application/json')\n\n return new Response(JSON.stringify(body), {\n ...init,\n headers,\n }) as ApiResponse<T>\n },\n\n redirect(location: string | URL, init?: ResponseInit): ApiResponse<null> {\n const headers = new Headers(init?.headers)\n headers.set('Location', location.toString())\n\n // Manually constructing a redirect response. We can’t use the\n // `Response.redirect` shorthand here, since it doesn’t allow passing custom\n // headers; see\n // https://community.cloudflare.com/t/make-redirect-with-additional-headers/249365\n return new Response(null, {\n status: 307,\n ...init,\n headers,\n }) as ApiResponse<null>\n },\n} as const\n\nexport type ErrorResponseBody = { message: string }\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,aAAa,KAAkC;AAE7D,SAAO,IAAI,IAAI,IAAI,KAAK,kBAAkB,EAAE;AAC9C;AAMO,MAAM,cAAc;AAAA,EACzB,KAAQ,MAAS,MAAqC;AACpD,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,YAAQ,IAAI,gBAAgB,kBAAkB;AAE9C,WAAO,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG;AAAA,MACxC,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,SAAS,UAAwB,MAAwC;AACvE,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,YAAQ,IAAI,YAAY,SAAS,SAAS,CAAC;AAM3C,WAAO,IAAI,SAAS,MAAM;AAAA,MACxB,QAAQ;AAAA,MACR,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}