@makeswift/runtime 0.26.4 → 0.26.5

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 (353) hide show
  1. package/dist/cjs/api/client.js +252 -0
  2. package/dist/cjs/api/client.js.map +1 -0
  3. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  4. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js +62 -0
  5. package/dist/cjs/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  6. package/dist/cjs/builder/serialization.js +78 -0
  7. package/dist/cjs/builder/serialization.js.map +1 -0
  8. package/dist/cjs/client/index.js +3 -3
  9. package/dist/cjs/controls/serialization/base/index.js +78 -0
  10. package/dist/cjs/controls/serialization/base/index.js.map +1 -0
  11. package/dist/cjs/controls/serialization/base/visitor.js +59 -0
  12. package/dist/cjs/controls/serialization/base/visitor.js.map +1 -0
  13. package/dist/cjs/controls/serialization/index.js +55 -0
  14. package/dist/cjs/controls/serialization/index.js.map +1 -0
  15. package/dist/cjs/controls/serialization/message-port/function-serialization.js +79 -0
  16. package/dist/cjs/controls/serialization/message-port/function-serialization.js.map +1 -0
  17. package/dist/cjs/controls/serialization/message-port/index.js +25 -0
  18. package/dist/cjs/controls/serialization/message-port/index.js.map +1 -0
  19. package/dist/cjs/controls/serialization/message-port/visitor.js +48 -0
  20. package/dist/cjs/controls/serialization/message-port/visitor.js.map +1 -0
  21. package/dist/cjs/next/api-handler/config/pages-router.js +1 -1
  22. package/dist/cjs/next/api-handler/config/pages-router.js.map +1 -1
  23. package/dist/cjs/next/fetch.js +30 -0
  24. package/dist/cjs/next/fetch.js.map +1 -0
  25. package/dist/cjs/next/runtime.js +35 -0
  26. package/dist/cjs/next/runtime.js.map +1 -0
  27. package/dist/cjs/next/testing/react-runtime.js +29 -0
  28. package/dist/cjs/next/testing/react-runtime.js.map +1 -0
  29. package/dist/cjs/prop-controllers/serialization.js +355 -0
  30. package/dist/cjs/prop-controllers/serialization.js.map +1 -0
  31. package/dist/cjs/runtimes/react/components/GoogleFontLink.js +55 -0
  32. package/dist/cjs/runtimes/react/components/GoogleFontLink.js.map +1 -0
  33. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js +33 -0
  34. package/dist/cjs/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  35. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  36. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  37. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js +39 -0
  38. package/dist/cjs/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  39. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js +33 -0
  40. package/dist/cjs/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  41. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js +59 -0
  42. package/dist/cjs/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  43. package/dist/cjs/runtimes/react/testing/react-runtime.js +33 -0
  44. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -0
  45. package/dist/cjs/runtimes/react/utils/google-fonts-url.js +49 -0
  46. package/dist/cjs/runtimes/react/utils/google-fonts-url.js.map +1 -0
  47. package/dist/cjs/state/actions/internal/index.js +34 -0
  48. package/dist/cjs/state/actions/internal/index.js.map +1 -0
  49. package/dist/cjs/state/actions/internal/read-only-actions.js +195 -0
  50. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -0
  51. package/dist/cjs/state/actions/internal/read-write-actions.js +76 -0
  52. package/dist/cjs/state/actions/internal/read-write-actions.js.map +1 -0
  53. package/dist/cjs/state/builder-api/api.js +17 -0
  54. package/dist/cjs/state/builder-api/api.js.map +1 -0
  55. package/dist/cjs/state/builder-api/navigation-listener.js +110 -0
  56. package/dist/cjs/state/builder-api/navigation-listener.js.map +1 -0
  57. package/dist/cjs/state/middleware/makeswift-api-client-sync.js +37 -0
  58. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  59. package/dist/cjs/state/middleware/read-only-element-tree.js +52 -0
  60. package/dist/cjs/state/middleware/read-only-element-tree.js.map +1 -0
  61. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js +40 -0
  62. package/dist/cjs/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  63. package/dist/cjs/state/middleware/read-write/builder-api/index.js +85 -0
  64. package/dist/cjs/state/middleware/read-write/builder-api/index.js.map +1 -0
  65. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js +281 -0
  66. package/dist/cjs/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  67. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  68. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  69. package/dist/cjs/state/middleware/read-write/measure-box-models.js +71 -0
  70. package/dist/cjs/state/middleware/read-write/measure-box-models.js.map +1 -0
  71. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js +114 -0
  72. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  73. package/dist/cjs/state/middleware/read-write/update-element-tree.js +59 -0
  74. package/dist/cjs/state/middleware/read-write/update-element-tree.js.map +1 -0
  75. package/dist/cjs/state/mixins/breakpoint-watch.js +72 -0
  76. package/dist/cjs/state/mixins/breakpoint-watch.js.map +1 -0
  77. package/dist/cjs/state/modules/is-read-only.js +50 -0
  78. package/dist/cjs/state/modules/is-read-only.js.map +1 -0
  79. package/dist/cjs/state/modules/locale.js +50 -0
  80. package/dist/cjs/state/modules/locale.js.map +1 -0
  81. package/dist/cjs/state/modules/read-write/box-models.js +144 -0
  82. package/dist/cjs/state/modules/read-write/box-models.js.map +1 -0
  83. package/dist/cjs/state/modules/read-write/element-imperative-handles.js +61 -0
  84. package/dist/cjs/state/modules/read-write/element-imperative-handles.js.map +1 -0
  85. package/dist/cjs/state/modules/read-write/pointer.js +48 -0
  86. package/dist/cjs/state/modules/read-write/pointer.js.map +1 -0
  87. package/dist/cjs/state/modules/read-write/read-write-documents.js +98 -0
  88. package/dist/cjs/state/modules/read-write/read-write-documents.js.map +1 -0
  89. package/dist/cjs/state/modules/site-version.js +47 -0
  90. package/dist/cjs/state/modules/site-version.js.map +1 -0
  91. package/dist/cjs/state/ops/copy-element-tree.js +67 -0
  92. package/dist/cjs/state/ops/copy-element-tree.js.map +1 -0
  93. package/dist/cjs/state/ops/merge-element.js +73 -0
  94. package/dist/cjs/state/ops/merge-element.js.map +1 -0
  95. package/dist/cjs/state/read-only-state.js +231 -0
  96. package/dist/cjs/state/read-only-state.js.map +1 -0
  97. package/dist/cjs/state/read-write-state.js +128 -0
  98. package/dist/cjs/state/read-write-state.js.map +1 -0
  99. package/dist/cjs/state/store.js +219 -0
  100. package/dist/cjs/state/store.js.map +1 -0
  101. package/dist/cjs/state/unified-state.js +17 -0
  102. package/dist/cjs/state/unified-state.js.map +1 -0
  103. package/dist/cjs/translations/index.js +32 -0
  104. package/dist/cjs/translations/index.js.map +1 -0
  105. package/dist/cjs/utils/deferred.js +39 -0
  106. package/dist/cjs/utils/deferred.js.map +1 -0
  107. package/dist/cjs/utils/ref-counted-map.js +120 -0
  108. package/dist/cjs/utils/ref-counted-map.js.map +1 -0
  109. package/dist/esm/api/client.js +219 -0
  110. package/dist/esm/api/client.js.map +1 -0
  111. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  112. package/dist/esm/api-handler/handlers/webhook/diff-projection.js +38 -0
  113. package/dist/esm/api-handler/handlers/webhook/diff-projection.js.map +1 -0
  114. package/dist/esm/builder/serialization.js +59 -0
  115. package/dist/esm/builder/serialization.js.map +1 -0
  116. package/dist/esm/client/index.js +3 -3
  117. package/dist/esm/controls/serialization/base/index.js +78 -0
  118. package/dist/esm/controls/serialization/base/index.js.map +1 -0
  119. package/dist/esm/controls/serialization/base/visitor.js +39 -0
  120. package/dist/esm/controls/serialization/base/visitor.js.map +1 -0
  121. package/dist/esm/controls/serialization/index.js +30 -0
  122. package/dist/esm/controls/serialization/index.js.map +1 -0
  123. package/dist/esm/controls/serialization/message-port/function-serialization.js +52 -0
  124. package/dist/esm/controls/serialization/message-port/function-serialization.js.map +1 -0
  125. package/dist/esm/controls/serialization/message-port/index.js +3 -0
  126. package/dist/esm/controls/serialization/message-port/index.js.map +1 -0
  127. package/dist/esm/controls/serialization/message-port/visitor.js +24 -0
  128. package/dist/esm/controls/serialization/message-port/visitor.js.map +1 -0
  129. package/dist/esm/next/api-handler/config/pages-router.js +1 -1
  130. package/dist/esm/next/api-handler/config/pages-router.js.map +1 -1
  131. package/dist/esm/next/fetch.js +6 -0
  132. package/dist/esm/next/fetch.js.map +1 -0
  133. package/dist/esm/next/runtime.js +11 -0
  134. package/dist/esm/next/runtime.js.map +1 -0
  135. package/dist/esm/next/testing/react-runtime.js +5 -0
  136. package/dist/esm/next/testing/react-runtime.js.map +1 -0
  137. package/dist/esm/prop-controllers/serialization.js +338 -0
  138. package/dist/esm/prop-controllers/serialization.js.map +1 -0
  139. package/dist/esm/runtimes/react/components/GoogleFontLink.js +35 -0
  140. package/dist/esm/runtimes/react/components/GoogleFontLink.js.map +1 -0
  141. package/dist/esm/runtimes/react/components/MakeswiftFonts.js +9 -0
  142. package/dist/esm/runtimes/react/components/MakeswiftFonts.js.map +1 -0
  143. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  144. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  145. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js +15 -0
  146. package/dist/esm/runtimes/react/hooks/use-current-breakpoint.js.map +1 -0
  147. package/dist/esm/runtimes/react/hooks/use-is-read-only.js +9 -0
  148. package/dist/esm/runtimes/react/hooks/use-is-read-only.js.map +1 -0
  149. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js +38 -0
  150. package/dist/esm/runtimes/react/lib/resolved-style-to-css.js.map +1 -0
  151. package/dist/esm/runtimes/react/testing/react-runtime.js +9 -0
  152. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -0
  153. package/dist/esm/runtimes/react/utils/google-fonts-url.js +23 -0
  154. package/dist/esm/runtimes/react/utils/google-fonts-url.js.map +1 -0
  155. package/dist/esm/state/actions/internal/index.js +10 -0
  156. package/dist/esm/state/actions/internal/index.js.map +1 -0
  157. package/dist/esm/state/actions/internal/read-only-actions.js +153 -0
  158. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -0
  159. package/dist/esm/state/actions/internal/read-write-actions.js +46 -0
  160. package/dist/esm/state/actions/internal/read-write-actions.js.map +1 -0
  161. package/dist/esm/state/builder-api/api.js +1 -0
  162. package/dist/esm/state/builder-api/api.js.map +1 -0
  163. package/dist/esm/state/builder-api/navigation-listener.js +86 -0
  164. package/dist/esm/state/builder-api/navigation-listener.js.map +1 -0
  165. package/dist/esm/state/middleware/makeswift-api-client-sync.js +13 -0
  166. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  167. package/dist/esm/state/middleware/read-only-element-tree.js +28 -0
  168. package/dist/esm/state/middleware/read-only-element-tree.js.map +1 -0
  169. package/dist/esm/state/middleware/read-write/builder-api/element-size.js +16 -0
  170. package/dist/esm/state/middleware/read-write/builder-api/element-size.js.map +1 -0
  171. package/dist/esm/state/middleware/read-write/builder-api/index.js +61 -0
  172. package/dist/esm/state/middleware/read-write/builder-api/index.js.map +1 -0
  173. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js +254 -0
  174. package/dist/esm/state/middleware/read-write/builder-api/initialize-connection.js.map +1 -0
  175. package/dist/esm/state/middleware/read-write/index.js +16 -0
  176. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  177. package/dist/esm/state/middleware/read-write/measure-box-models.js +37 -0
  178. package/dist/esm/state/middleware/read-write/measure-box-models.js.map +1 -0
  179. package/dist/esm/state/middleware/read-write/prop-controller-handles.js +80 -0
  180. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  181. package/dist/esm/state/middleware/read-write/update-element-tree.js +35 -0
  182. package/dist/esm/state/middleware/read-write/update-element-tree.js.map +1 -0
  183. package/dist/esm/state/mixins/breakpoint-watch.js +48 -0
  184. package/dist/esm/state/mixins/breakpoint-watch.js.map +1 -0
  185. package/dist/esm/state/modules/is-read-only.js +24 -0
  186. package/dist/esm/state/modules/is-read-only.js.map +1 -0
  187. package/dist/esm/state/modules/locale.js +24 -0
  188. package/dist/esm/state/modules/locale.js.map +1 -0
  189. package/dist/esm/state/modules/read-write/box-models.js +114 -0
  190. package/dist/esm/state/modules/read-write/box-models.js.map +1 -0
  191. package/dist/esm/state/modules/read-write/element-imperative-handles.js +36 -0
  192. package/dist/esm/state/modules/read-write/element-imperative-handles.js.map +1 -0
  193. package/dist/esm/state/modules/read-write/pointer.js +23 -0
  194. package/dist/esm/state/modules/read-write/pointer.js.map +1 -0
  195. package/dist/esm/state/modules/read-write/read-write-documents.js +60 -0
  196. package/dist/esm/state/modules/read-write/read-write-documents.js.map +1 -0
  197. package/dist/esm/state/modules/site-version.js +21 -0
  198. package/dist/esm/state/modules/site-version.js.map +1 -0
  199. package/dist/esm/state/ops/copy-element-tree.js +37 -0
  200. package/dist/esm/state/ops/copy-element-tree.js.map +1 -0
  201. package/dist/esm/state/ops/merge-element.js +39 -0
  202. package/dist/esm/state/ops/merge-element.js.map +1 -0
  203. package/dist/esm/state/read-only-state.js +176 -0
  204. package/dist/esm/state/read-only-state.js.map +1 -0
  205. package/dist/esm/state/read-write-state.js +82 -0
  206. package/dist/esm/state/read-write-state.js.map +1 -0
  207. package/dist/esm/state/store.js +188 -0
  208. package/dist/esm/state/store.js.map +1 -0
  209. package/dist/esm/state/unified-state.js +1 -0
  210. package/dist/esm/state/unified-state.js.map +1 -0
  211. package/dist/esm/translations/index.js +7 -0
  212. package/dist/esm/translations/index.js.map +1 -0
  213. package/dist/esm/utils/deferred.js +15 -0
  214. package/dist/esm/utils/deferred.js.map +1 -0
  215. package/dist/esm/utils/ref-counted-map.js +96 -0
  216. package/dist/esm/utils/ref-counted-map.js.map +1 -0
  217. package/dist/types/api/client.d.ts +81 -0
  218. package/dist/types/api/client.d.ts.map +1 -0
  219. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts +201 -0
  220. package/dist/types/api-handler/handlers/webhook/diff-projection.d.ts.map +1 -0
  221. package/dist/types/builder/serialization.d.ts +23 -0
  222. package/dist/types/builder/serialization.d.ts.map +1 -0
  223. package/dist/types/builder/serialization.test.d.ts +2 -0
  224. package/dist/types/builder/serialization.test.d.ts.map +1 -0
  225. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts +2 -0
  226. package/dist/types/client/tests/client.get-component-snapshots.test.d.ts.map +1 -0
  227. package/dist/types/client/tests/client.get-fonts.test.d.ts +2 -0
  228. package/dist/types/client/tests/client.get-fonts.test.d.ts.map +1 -0
  229. package/dist/types/client/tests/client.introspect-many.test.d.ts +2 -0
  230. package/dist/types/client/tests/client.introspect-many.test.d.ts.map +1 -0
  231. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts +3 -0
  232. package/dist/types/components/hooks/__tests__/useMediaQuery.test.d.ts.map +1 -0
  233. package/dist/types/controls/serialization/base/index.d.ts +10 -0
  234. package/dist/types/controls/serialization/base/index.d.ts.map +1 -0
  235. package/dist/types/controls/serialization/base/visitor.d.ts +7 -0
  236. package/dist/types/controls/serialization/base/visitor.d.ts.map +1 -0
  237. package/dist/types/controls/serialization/index.d.ts +10 -0
  238. package/dist/types/controls/serialization/index.d.ts.map +1 -0
  239. package/dist/types/controls/serialization/message-port/function-serialization.d.ts +16 -0
  240. package/dist/types/controls/serialization/message-port/function-serialization.d.ts.map +1 -0
  241. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts +2 -0
  242. package/dist/types/controls/serialization/message-port/function-serialization.test.d.ts.map +1 -0
  243. package/dist/types/controls/serialization/message-port/index.d.ts +3 -0
  244. package/dist/types/controls/serialization/message-port/index.d.ts.map +1 -0
  245. package/dist/types/controls/serialization/message-port/visitor.d.ts +7 -0
  246. package/dist/types/controls/serialization/message-port/visitor.d.ts.map +1 -0
  247. package/dist/types/next/api-handler/config/pages-router.test.d.ts +2 -0
  248. package/dist/types/next/api-handler/config/pages-router.test.d.ts.map +1 -0
  249. package/dist/types/next/components/tests/controls/code-control.test.d.ts +2 -0
  250. package/dist/types/next/components/tests/controls/code-control.test.d.ts.map +1 -0
  251. package/dist/types/next/fetch.d.ts +3 -0
  252. package/dist/types/next/fetch.d.ts.map +1 -0
  253. package/dist/types/next/runtime.d.ts +10 -0
  254. package/dist/types/next/runtime.d.ts.map +1 -0
  255. package/dist/types/next/testing/react-runtime.d.ts +2 -0
  256. package/dist/types/next/testing/react-runtime.d.ts.map +1 -0
  257. package/dist/types/prop-controllers/serialization.d.ts +228 -0
  258. package/dist/types/prop-controllers/serialization.d.ts.map +1 -0
  259. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts +14 -0
  260. package/dist/types/runtimes/react/components/GoogleFontLink.d.ts.map +1 -0
  261. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts +7 -0
  262. package/dist/types/runtimes/react/components/MakeswiftFonts.d.ts.map +1 -0
  263. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  264. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  265. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  266. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  267. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts +3 -0
  268. package/dist/types/runtimes/react/hooks/use-current-breakpoint.d.ts.map +1 -0
  269. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts +2 -0
  270. package/dist/types/runtimes/react/hooks/use-is-read-only.d.ts.map +1 -0
  271. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts +4 -0
  272. package/dist/types/runtimes/react/lib/resolved-style-to-css.d.ts.map +1 -0
  273. package/dist/types/runtimes/react/testing/react-runtime.d.ts +6 -0
  274. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -0
  275. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts +6 -0
  276. package/dist/types/runtimes/react/utils/google-fonts-url.d.ts.map +1 -0
  277. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts +5 -0
  278. package/dist/types/state/__tests__/fixtures/serialized-descriptors-from-builder.d.ts.map +1 -0
  279. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts +3 -0
  280. package/dist/types/state/__tests__/fixtures/translatable-content-sample.d.ts.map +1 -0
  281. package/dist/types/state/__tests__/get-translatable-content.test.d.ts +2 -0
  282. package/dist/types/state/__tests__/get-translatable-content.test.d.ts.map +1 -0
  283. package/dist/types/state/__tests__/merge-element.test.d.ts +2 -0
  284. package/dist/types/state/__tests__/merge-element.test.d.ts.map +1 -0
  285. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  286. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  287. package/dist/types/state/__tests__/test-store.d.ts +31 -0
  288. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  289. package/dist/types/state/actions/internal/index.d.ts +29 -0
  290. package/dist/types/state/actions/internal/index.d.ts.map +1 -0
  291. package/dist/types/state/actions/internal/read-only-actions.d.ts +171 -0
  292. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -0
  293. package/dist/types/state/actions/internal/read-write-actions.d.ts +53 -0
  294. package/dist/types/state/actions/internal/read-write-actions.d.ts.map +1 -0
  295. package/dist/types/state/builder-api/api.d.ts +9 -0
  296. package/dist/types/state/builder-api/api.d.ts.map +1 -0
  297. package/dist/types/state/builder-api/navigation-listener.d.ts +3 -0
  298. package/dist/types/state/builder-api/navigation-listener.d.ts.map +1 -0
  299. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  300. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  301. package/dist/types/state/middleware/read-only-element-tree.d.ts +4 -0
  302. package/dist/types/state/middleware/read-only-element-tree.d.ts.map +1 -0
  303. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts +12 -0
  304. package/dist/types/state/middleware/read-write/builder-api/element-size.d.ts.map +1 -0
  305. package/dist/types/state/middleware/read-write/builder-api/index.d.ts +5 -0
  306. package/dist/types/state/middleware/read-write/builder-api/index.d.ts.map +1 -0
  307. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts +6 -0
  308. package/dist/types/state/middleware/read-write/builder-api/initialize-connection.d.ts.map +1 -0
  309. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  310. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  311. package/dist/types/state/middleware/read-write/measure-box-models.d.ts +4 -0
  312. package/dist/types/state/middleware/read-write/measure-box-models.d.ts.map +1 -0
  313. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts +4 -0
  314. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  315. package/dist/types/state/middleware/read-write/update-element-tree.d.ts +4 -0
  316. package/dist/types/state/middleware/read-write/update-element-tree.d.ts.map +1 -0
  317. package/dist/types/state/mixins/breakpoint-watch.d.ts +11 -0
  318. package/dist/types/state/mixins/breakpoint-watch.d.ts.map +1 -0
  319. package/dist/types/state/modules/is-read-only.d.ts +6 -0
  320. package/dist/types/state/modules/is-read-only.d.ts.map +1 -0
  321. package/dist/types/state/modules/locale.d.ts +6 -0
  322. package/dist/types/state/modules/locale.d.ts.map +1 -0
  323. package/dist/types/state/modules/read-write/box-models.d.ts +26 -0
  324. package/dist/types/state/modules/read-write/box-models.d.ts.map +1 -0
  325. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts +6 -0
  326. package/dist/types/state/modules/read-write/element-imperative-handles.d.ts.map +1 -0
  327. package/dist/types/state/modules/read-write/pointer.d.ts +11 -0
  328. package/dist/types/state/modules/read-write/pointer.d.ts.map +1 -0
  329. package/dist/types/state/modules/read-write/read-write-documents.d.ts +14 -0
  330. package/dist/types/state/modules/read-write/read-write-documents.d.ts.map +1 -0
  331. package/dist/types/state/modules/site-version.d.ts +7 -0
  332. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  333. package/dist/types/state/ops/copy-element-tree.d.ts +37 -0
  334. package/dist/types/state/ops/copy-element-tree.d.ts.map +1 -0
  335. package/dist/types/state/ops/merge-element.d.ts +4 -0
  336. package/dist/types/state/ops/merge-element.d.ts.map +1 -0
  337. package/dist/types/state/read-only-state.d.ts +131 -0
  338. package/dist/types/state/read-only-state.d.ts.map +1 -0
  339. package/dist/types/state/read-write-state.d.ts +62 -0
  340. package/dist/types/state/read-write-state.d.ts.map +1 -0
  341. package/dist/types/state/store.d.ts +86 -0
  342. package/dist/types/state/store.d.ts.map +1 -0
  343. package/dist/types/state/unified-state.d.ts +9 -0
  344. package/dist/types/state/unified-state.d.ts.map +1 -0
  345. package/dist/types/translations/index.d.ts +6 -0
  346. package/dist/types/translations/index.d.ts.map +1 -0
  347. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts +2 -0
  348. package/dist/types/utils/__tests__/ref-counted-map.test.d.ts.map +1 -0
  349. package/dist/types/utils/deferred.d.ts +7 -0
  350. package/dist/types/utils/deferred.d.ts.map +1 -0
  351. package/dist/types/utils/ref-counted-map.d.ts +32 -0
  352. package/dist/types/utils/ref-counted-map.d.ts.map +1 -0
  353. package/package.json +2 -2
@@ -0,0 +1,78 @@
1
+ import {
2
+ ShapeV2Definition,
3
+ deserializeRecord
4
+ } from "@makeswift/controls";
5
+ import {
6
+ CheckboxDefinition,
7
+ CodeDefinition,
8
+ ColorDefinition,
9
+ ComboboxDefinition,
10
+ FontDefinition,
11
+ GroupDefinition,
12
+ IconRadioGroupDefinition,
13
+ ImageDefinition,
14
+ LinkDefinition,
15
+ ListDefinition,
16
+ NumberDefinition,
17
+ RichTextV1Definition,
18
+ RichTextV2Definition,
19
+ SelectDefinition,
20
+ ShapeDefinition,
21
+ SliderDefinition,
22
+ SlotDefinition,
23
+ StyleDefinition,
24
+ StyleV2Definition,
25
+ TextAreaDefinition,
26
+ TextInputDefinition,
27
+ unstable_TypographyDefinition
28
+ } from "../../index";
29
+ function serializeControls(controls, visitor) {
30
+ return Object.entries(controls).reduce(
31
+ (acc, [key, control]) => {
32
+ return { ...acc, [key]: control.accept(visitor) };
33
+ },
34
+ {}
35
+ );
36
+ }
37
+ function deserializeControl(serializedControl, options) {
38
+ const plugins = options?.plugins ?? [];
39
+ return deserializeUnifiedControlDef(deserializeRecord(serializedControl, plugins));
40
+ }
41
+ function deserializeUnifiedControlDef(record) {
42
+ const deserializeMethod = {
43
+ [CheckboxDefinition.type]: CheckboxDefinition.deserialize,
44
+ [CodeDefinition.type]: CodeDefinition.deserialize,
45
+ [ColorDefinition.type]: ColorDefinition.deserialize,
46
+ [ComboboxDefinition.type]: ComboboxDefinition.deserialize,
47
+ [FontDefinition.type]: FontDefinition.deserialize,
48
+ [GroupDefinition.type]: (record2) => GroupDefinition.deserialize(record2, deserializeUnifiedControlDef),
49
+ [IconRadioGroupDefinition.type]: IconRadioGroupDefinition.deserialize,
50
+ [ImageDefinition.type]: ImageDefinition.deserialize,
51
+ [LinkDefinition.type]: LinkDefinition.deserialize,
52
+ [ListDefinition.type]: (record2) => ListDefinition.deserialize(record2, deserializeUnifiedControlDef),
53
+ [NumberDefinition.type]: NumberDefinition.deserialize,
54
+ [RichTextV1Definition.type]: RichTextV1Definition.deserialize,
55
+ [RichTextV2Definition.type]: (record2) => RichTextV2Definition.deserialize(record2, deserializeUnifiedControlDef),
56
+ [SelectDefinition.type]: SelectDefinition.deserialize,
57
+ [ShapeDefinition.type]: (record2) => ShapeDefinition.deserialize(record2, deserializeUnifiedControlDef),
58
+ [SliderDefinition.type]: SliderDefinition.deserialize,
59
+ [ShapeV2Definition.type]: (record2) => ShapeV2Definition.deserialize(record2, deserializeUnifiedControlDef),
60
+ [SlotDefinition.type]: SlotDefinition.deserialize,
61
+ [StyleDefinition.type]: StyleDefinition.deserialize,
62
+ [StyleV2Definition.type]: (record2) => StyleV2Definition.deserialize(record2, deserializeUnifiedControlDef),
63
+ [TextAreaDefinition.type]: TextAreaDefinition.deserialize,
64
+ [TextInputDefinition.type]: TextInputDefinition.deserialize,
65
+ [unstable_TypographyDefinition.type]: unstable_TypographyDefinition.deserialize
66
+ };
67
+ const deserialize = deserializeMethod[record.type] ?? null;
68
+ if (deserialize == null) {
69
+ throw new Error(`Unknown control type: ${record.type}`);
70
+ }
71
+ return deserialize(record);
72
+ }
73
+ export {
74
+ deserializeControl,
75
+ deserializeUnifiedControlDef,
76
+ serializeControls
77
+ };
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/serialization/base/index.ts"],"sourcesContent":["import {\n ControlDefinition,\n type SerializedRecord,\n type DeserializedRecord,\n ShapeV2Definition,\n DeserializationPlugin,\n deserializeRecord,\n} from '@makeswift/controls'\n\nimport {\n CheckboxDefinition,\n CodeDefinition,\n ColorDefinition,\n ComboboxDefinition,\n FontDefinition,\n GroupDefinition,\n IconRadioGroupDefinition,\n ImageDefinition,\n LinkDefinition,\n ListDefinition,\n NumberDefinition,\n RichTextV1Definition,\n RichTextV2Definition,\n SelectDefinition,\n ShapeDefinition,\n SliderDefinition,\n SlotDefinition,\n StyleDefinition,\n StyleV2Definition,\n TextAreaDefinition,\n TextInputDefinition,\n unstable_TypographyDefinition,\n} from '../../index'\n\nimport { BaseControlSerializationVisitor } from './visitor'\n\nexport { type SerializedRecord, type DeserializedRecord } from '@makeswift/controls'\n\nexport function serializeControls(\n controls: Record<string, ControlDefinition>,\n visitor: BaseControlSerializationVisitor,\n): Record<string, SerializedRecord> {\n return Object.entries(controls).reduce<Record<string, SerializedRecord>>(\n (acc, [key, control]) => {\n return { ...acc, [key]: control.accept(visitor) }\n },\n {},\n )\n}\n\nexport type DeserializeControlOptions = {\n plugins: DeserializationPlugin<any>[]\n}\n\nexport function deserializeControl(\n serializedControl: SerializedRecord,\n options: DeserializeControlOptions,\n): ControlDefinition {\n const plugins = options?.plugins ?? []\n\n return deserializeUnifiedControlDef(deserializeRecord(serializedControl, plugins))\n}\n\nexport function deserializeUnifiedControlDef(record: DeserializedRecord): ControlDefinition {\n type DeserializeMethod = (data: DeserializedRecord) => ControlDefinition\n const deserializeMethod: Record<string, DeserializeMethod> = {\n [CheckboxDefinition.type]: CheckboxDefinition.deserialize,\n [CodeDefinition.type]: CodeDefinition.deserialize,\n [ColorDefinition.type]: ColorDefinition.deserialize,\n [ComboboxDefinition.type]: ComboboxDefinition.deserialize,\n [FontDefinition.type]: FontDefinition.deserialize,\n [GroupDefinition.type]: record =>\n GroupDefinition.deserialize(record, deserializeUnifiedControlDef),\n [IconRadioGroupDefinition.type]: IconRadioGroupDefinition.deserialize,\n [ImageDefinition.type]: ImageDefinition.deserialize,\n [LinkDefinition.type]: LinkDefinition.deserialize,\n [ListDefinition.type]: record =>\n ListDefinition.deserialize(record, deserializeUnifiedControlDef),\n [NumberDefinition.type]: NumberDefinition.deserialize,\n [RichTextV1Definition.type]: RichTextV1Definition.deserialize,\n [RichTextV2Definition.type]: record =>\n RichTextV2Definition.deserialize(record, deserializeUnifiedControlDef),\n [SelectDefinition.type]: SelectDefinition.deserialize,\n [ShapeDefinition.type]: record =>\n ShapeDefinition.deserialize(record, deserializeUnifiedControlDef),\n [SliderDefinition.type]: SliderDefinition.deserialize,\n [ShapeV2Definition.type]: record =>\n ShapeV2Definition.deserialize(record, deserializeUnifiedControlDef),\n [SlotDefinition.type]: SlotDefinition.deserialize,\n [StyleDefinition.type]: StyleDefinition.deserialize,\n [StyleV2Definition.type]: record =>\n StyleV2Definition.deserialize(record, deserializeUnifiedControlDef),\n [TextAreaDefinition.type]: TextAreaDefinition.deserialize,\n [TextInputDefinition.type]: TextInputDefinition.deserialize,\n [unstable_TypographyDefinition.type]: unstable_TypographyDefinition.deserialize,\n } as const\n\n const deserialize = deserializeMethod[record.type] ?? null\n if (deserialize == null) {\n throw new Error(`Unknown control type: ${record.type}`)\n }\n\n return deserialize(record)\n}\n"],"mappings":"AAAA;AAAA,EAIE;AAAA,EAEA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMA,SAAS,kBACd,UACA,SACkC;AAClC,SAAO,OAAO,QAAQ,QAAQ,EAAE;AAAA,IAC9B,CAAC,KAAK,CAAC,KAAK,OAAO,MAAM;AACvB,aAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,OAAO,OAAO,EAAE;AAAA,IAClD;AAAA,IACA,CAAC;AAAA,EACH;AACF;AAMO,SAAS,mBACd,mBACA,SACmB;AACnB,QAAM,UAAU,SAAS,WAAW,CAAC;AAErC,SAAO,6BAA6B,kBAAkB,mBAAmB,OAAO,CAAC;AACnF;AAEO,SAAS,6BAA6B,QAA+C;AAE1F,QAAM,oBAAuD;AAAA,IAC3D,CAAC,mBAAmB,IAAI,GAAG,mBAAmB;AAAA,IAC9C,CAAC,eAAe,IAAI,GAAG,eAAe;AAAA,IACtC,CAAC,gBAAgB,IAAI,GAAG,gBAAgB;AAAA,IACxC,CAAC,mBAAmB,IAAI,GAAG,mBAAmB;AAAA,IAC9C,CAAC,eAAe,IAAI,GAAG,eAAe;AAAA,IACtC,CAAC,gBAAgB,IAAI,GAAG,CAAAA,YACtB,gBAAgB,YAAYA,SAAQ,4BAA4B;AAAA,IAClE,CAAC,yBAAyB,IAAI,GAAG,yBAAyB;AAAA,IAC1D,CAAC,gBAAgB,IAAI,GAAG,gBAAgB;AAAA,IACxC,CAAC,eAAe,IAAI,GAAG,eAAe;AAAA,IACtC,CAAC,eAAe,IAAI,GAAG,CAAAA,YACrB,eAAe,YAAYA,SAAQ,4BAA4B;AAAA,IACjE,CAAC,iBAAiB,IAAI,GAAG,iBAAiB;AAAA,IAC1C,CAAC,qBAAqB,IAAI,GAAG,qBAAqB;AAAA,IAClD,CAAC,qBAAqB,IAAI,GAAG,CAAAA,YAC3B,qBAAqB,YAAYA,SAAQ,4BAA4B;AAAA,IACvE,CAAC,iBAAiB,IAAI,GAAG,iBAAiB;AAAA,IAC1C,CAAC,gBAAgB,IAAI,GAAG,CAAAA,YACtB,gBAAgB,YAAYA,SAAQ,4BAA4B;AAAA,IAClE,CAAC,iBAAiB,IAAI,GAAG,iBAAiB;AAAA,IAC1C,CAAC,kBAAkB,IAAI,GAAG,CAAAA,YACxB,kBAAkB,YAAYA,SAAQ,4BAA4B;AAAA,IACpE,CAAC,eAAe,IAAI,GAAG,eAAe;AAAA,IACtC,CAAC,gBAAgB,IAAI,GAAG,gBAAgB;AAAA,IACxC,CAAC,kBAAkB,IAAI,GAAG,CAAAA,YACxB,kBAAkB,YAAYA,SAAQ,4BAA4B;AAAA,IACpE,CAAC,mBAAmB,IAAI,GAAG,mBAAmB;AAAA,IAC9C,CAAC,oBAAoB,IAAI,GAAG,oBAAoB;AAAA,IAChD,CAAC,8BAA8B,IAAI,GAAG,8BAA8B;AAAA,EACtE;AAEA,QAAM,cAAc,kBAAkB,OAAO,IAAI,KAAK;AACtD,MAAI,eAAe,MAAM;AACvB,UAAM,IAAI,MAAM,yBAAyB,OAAO,IAAI,EAAE;AAAA,EACxD;AAEA,SAAO,YAAY,MAAM;AAC3B;","names":["record"]}
@@ -0,0 +1,39 @@
1
+ import {
2
+ ControlDefinition,
3
+ serializeObject,
4
+ ControlSerializationVisitor
5
+ } from "@makeswift/controls";
6
+ import { RichTextV2Definition } from "../../rich-text-v2";
7
+ class BaseControlSerializationVisitor extends ControlSerializationVisitor {
8
+ constructor(plugins) {
9
+ const serializeDefinitionPlugin = {
10
+ match: (val) => val instanceof ControlDefinition,
11
+ serialize: (val) => val.accept(this)
12
+ };
13
+ super([serializeDefinitionPlugin, ...plugins]);
14
+ }
15
+ visitRichTextV2(def) {
16
+ const { plugins, ...config } = def.config;
17
+ const pluginDefs = plugins.map(
18
+ ({ control }) => control ? {
19
+ control: {
20
+ definition: control.definition,
21
+ // FIXME: remove getValue/onChange stubs once we released a version of the builder
22
+ // built against the runtime where these can be optional
23
+ getValue: () => void 0,
24
+ onChange: () => {
25
+ }
26
+ }
27
+ } : {}
28
+ );
29
+ const serialized = serializeObject(
30
+ { config: { ...config, plugins: pluginDefs } },
31
+ this.serializationPlugins
32
+ );
33
+ return { ...serialized, type: RichTextV2Definition.type };
34
+ }
35
+ }
36
+ export {
37
+ BaseControlSerializationVisitor
38
+ };
39
+ //# sourceMappingURL=visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/serialization/base/visitor.ts"],"sourcesContent":["import {\n ControlDefinition,\n SerializedRecord,\n serializeObject,\n SerializationPlugin,\n ControlSerializationVisitor,\n} from '@makeswift/controls'\n\nimport { RichTextV2Definition } from '../../rich-text-v2'\n\nexport class BaseControlSerializationVisitor extends ControlSerializationVisitor {\n constructor(plugins: SerializationPlugin<any>[]) {\n const serializeDefinitionPlugin: SerializationPlugin<ControlDefinition> = {\n match: (val: unknown) => val instanceof ControlDefinition,\n serialize: (val: ControlDefinition) => val.accept(this),\n }\n\n super([serializeDefinitionPlugin, ...plugins])\n }\n\n visitRichTextV2(def: RichTextV2Definition): SerializedRecord {\n const { plugins, ...config } = def.config\n\n // serialize only the plugin control definition, if any\n const pluginDefs = plugins.map(({ control }) =>\n control\n ? {\n control: {\n definition: control.definition,\n // FIXME: remove getValue/onChange stubs once we released a version of the builder\n // built against the runtime where these can be optional\n getValue: () => undefined,\n onChange: () => {},\n },\n }\n : {},\n )\n\n const serialized = serializeObject(\n { config: { ...config, plugins: pluginDefs } },\n this.serializationPlugins,\n ) as SerializedRecord\n\n return { ...serialized, type: RichTextV2Definition.type }\n }\n}\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EAEA;AAAA,OACK;AAEP,SAAS,4BAA4B;AAE9B,MAAM,wCAAwC,4BAA4B;AAAA,EAC/E,YAAY,SAAqC;AAC/C,UAAM,4BAAoE;AAAA,MACxE,OAAO,CAAC,QAAiB,eAAe;AAAA,MACxC,WAAW,CAAC,QAA2B,IAAI,OAAO,IAAI;AAAA,IACxD;AAEA,UAAM,CAAC,2BAA2B,GAAG,OAAO,CAAC;AAAA,EAC/C;AAAA,EAEA,gBAAgB,KAA6C;AAC3D,UAAM,EAAE,SAAS,GAAG,OAAO,IAAI,IAAI;AAGnC,UAAM,aAAa,QAAQ;AAAA,MAAI,CAAC,EAAE,QAAQ,MACxC,UACI;AAAA,QACE,SAAS;AAAA,UACP,YAAY,QAAQ;AAAA;AAAA;AAAA,UAGpB,UAAU,MAAM;AAAA,UAChB,UAAU,MAAM;AAAA,UAAC;AAAA,QACnB;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAEA,UAAM,aAAa;AAAA,MACjB,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,WAAW,EAAE;AAAA,MAC7C,KAAK;AAAA,IACP;AAEA,WAAO,EAAE,GAAG,YAAY,MAAM,qBAAqB,KAAK;AAAA,EAC1D;AACF;","names":[]}
@@ -0,0 +1,30 @@
1
+ function isSerializedRecord(r) {
2
+ return r != null && typeof r === "object" && "type" in r && typeof r.type === "string";
3
+ }
4
+ function deserializeControlRecords(serializedControls, deserialize, { onError, plugins } = {}) {
5
+ return Object.entries(serializedControls).reduce(
6
+ (deserializedControls, [key, serializedControl]) => {
7
+ try {
8
+ if (!isSerializedRecord(serializedControl)) {
9
+ throw new Error(
10
+ `Expected serialized control data, got ${JSON.stringify(serializedControl)}`
11
+ );
12
+ }
13
+ const deserializedControl = deserialize(serializedControl, { plugins });
14
+ return { ...deserializedControls, [key]: deserializedControl };
15
+ } catch (err) {
16
+ const error = err instanceof Error ? new Error(`Could not deserialize control for "${key}": ${err.message}`, {
17
+ cause: err
18
+ }) : new Error(`Could not deserialize control for "${key}", unknown error: ${err}`);
19
+ onError?.(error, { key, serializedControl });
20
+ return deserializedControls;
21
+ }
22
+ },
23
+ {}
24
+ );
25
+ }
26
+ export {
27
+ deserializeControlRecords,
28
+ isSerializedRecord
29
+ };
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/controls/serialization/index.ts"],"sourcesContent":["import { type SerializedRecord, type DeserializeControlOptions } from './base'\n\nexport function isSerializedRecord(r: unknown): r is SerializedRecord {\n return r != null && typeof r === 'object' && 'type' in r && typeof r.type === 'string'\n}\n\nexport type DeserializeControlRecordsOptions = {\n onError?: (err: Error, context: { key: string; serializedControl: unknown }) => void\n} & Partial<Pick<DeserializeControlOptions, 'plugins'>>\n\nexport function deserializeControlRecords<T>(\n serializedControls: Record<string, unknown>,\n deserialize: (\n serializedControl: SerializedRecord,\n options?: Partial<DeserializeControlOptions>,\n ) => T,\n { onError, plugins }: DeserializeControlRecordsOptions = {},\n): Record<string, T> {\n return Object.entries(serializedControls).reduce<Record<string, T>>(\n (deserializedControls, [key, serializedControl]) => {\n try {\n if (!isSerializedRecord(serializedControl)) {\n throw new Error(\n `Expected serialized control data, got ${JSON.stringify(serializedControl)}`,\n )\n }\n const deserializedControl = deserialize(serializedControl, { plugins })\n return { ...deserializedControls, [key]: deserializedControl }\n } catch (err: unknown) {\n const error =\n err instanceof Error\n ? new Error(`Could not deserialize control for \"${key}\": ${err.message}`, {\n cause: err,\n })\n : new Error(`Could not deserialize control for \"${key}\", unknown error: ${err}`)\n\n onError?.(error, { key, serializedControl })\n\n return deserializedControls\n }\n },\n {},\n )\n}\n"],"mappings":"AAEO,SAAS,mBAAmB,GAAmC;AACpE,SAAO,KAAK,QAAQ,OAAO,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE,SAAS;AAChF;AAMO,SAAS,0BACd,oBACA,aAIA,EAAE,SAAS,QAAQ,IAAsC,CAAC,GACvC;AACnB,SAAO,OAAO,QAAQ,kBAAkB,EAAE;AAAA,IACxC,CAAC,sBAAsB,CAAC,KAAK,iBAAiB,MAAM;AAClD,UAAI;AACF,YAAI,CAAC,mBAAmB,iBAAiB,GAAG;AAC1C,gBAAM,IAAI;AAAA,YACR,yCAAyC,KAAK,UAAU,iBAAiB,CAAC;AAAA,UAC5E;AAAA,QACF;AACA,cAAM,sBAAsB,YAAY,mBAAmB,EAAE,QAAQ,CAAC;AACtE,eAAO,EAAE,GAAG,sBAAsB,CAAC,GAAG,GAAG,oBAAoB;AAAA,MAC/D,SAAS,KAAc;AACrB,cAAM,QACJ,eAAe,QACX,IAAI,MAAM,sCAAsC,GAAG,MAAM,IAAI,OAAO,IAAI;AAAA,UACtE,OAAO;AAAA,QACT,CAAC,IACD,IAAI,MAAM,sCAAsC,GAAG,qBAAqB,GAAG,EAAE;AAEnF,kBAAU,OAAO,EAAE,KAAK,kBAAkB,CAAC;AAE3C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,52 @@
1
+ function isSerializedFunction(value) {
2
+ return value instanceof MessagePort;
3
+ }
4
+ function serializeFunction(func) {
5
+ const messageChannel = new MessageChannel();
6
+ messageChannel.port1.onmessage = ({ data: [callId, args] }) => {
7
+ Promise.resolve().then(() => func.apply(null, args)).then((result) => messageChannel.port1.postMessage([callId, result]));
8
+ };
9
+ return messageChannel.port2;
10
+ }
11
+ function onmessageHandler() {
12
+ let nextCallId = 0;
13
+ const calls = /* @__PURE__ */ new Map();
14
+ const result = ({ data: [callId, result2] }) => {
15
+ calls.get(callId)?.(result2);
16
+ calls.delete(callId);
17
+ };
18
+ result.newCall = (resolve) => {
19
+ const callId = nextCallId++;
20
+ calls.set(callId, resolve);
21
+ return callId;
22
+ };
23
+ return result;
24
+ }
25
+ function deserializeFunction(serializedFunction) {
26
+ if (serializedFunction.onmessage == null) {
27
+ serializedFunction.onmessage = onmessageHandler();
28
+ }
29
+ return function deserializedFunction(...args) {
30
+ return new Promise((resolve) => {
31
+ const { newCall } = serializedFunction.onmessage;
32
+ if (newCall == null) {
33
+ throw new Error(
34
+ `Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`
35
+ );
36
+ }
37
+ const callId = newCall(resolve);
38
+ serializedFunction.postMessage([callId, args]);
39
+ });
40
+ };
41
+ }
42
+ const functionDeserializationPlugin = {
43
+ match: isSerializedFunction,
44
+ deserialize: (value) => deserializeFunction(value)
45
+ };
46
+ export {
47
+ deserializeFunction,
48
+ functionDeserializationPlugin,
49
+ isSerializedFunction,
50
+ serializeFunction
51
+ };
52
+ //# sourceMappingURL=function-serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/serialization/message-port/function-serialization.ts"],"sourcesContent":["import {\n DeserializationPlugin,\n type AnyFunction,\n type SerializedFunctionReturnType,\n type DeserializedFunction,\n} from '@makeswift/controls'\n\nexport { type DeserializedFunction } from '@makeswift/controls'\n\ndeclare const SerializedFunctionTag: unique symbol\n\ntype ResolveCallPromise<T extends AnyFunction> = (value: SerializedFunctionReturnType<T>) => void\n\ntype OnMessageHandler<T extends AnyFunction> = MessagePort['onmessage'] & {\n newCall?(resolve: ResolveCallPromise<T>): number\n}\n\nexport type SerializedFunction<T extends AnyFunction> = MessagePort & {\n onmessage: OnMessageHandler<T>\n readonly [SerializedFunctionTag]: T\n}\n\nexport function isSerializedFunction(value: any): value is SerializedFunction<AnyFunction> {\n return value instanceof MessagePort\n}\n\ntype CallID = number\n\nexport function serializeFunction<T extends AnyFunction>(func: T): SerializedFunction<T> {\n type CallMessageEvent = MessageEvent<[CallID, Parameters<T>]>\n\n const messageChannel = new MessageChannel()\n\n messageChannel.port1.onmessage = ({ data: [callId, args] }: CallMessageEvent) => {\n Promise.resolve()\n .then(() => func.apply(null, args))\n .then(result => messageChannel.port1.postMessage([callId, result]))\n }\n\n return messageChannel.port2 as SerializedFunction<T>\n}\n\nfunction onmessageHandler<T extends AnyFunction>(): OnMessageHandler<T> {\n type ResultMessageEvent = MessageEvent<[CallID, SerializedFunctionReturnType<T>]>\n let nextCallId = 0\n const calls = new Map<CallID, ResolveCallPromise<T>>()\n\n const result: OnMessageHandler<T> = ({ data: [callId, result] }: ResultMessageEvent) => {\n calls.get(callId)?.(result)\n calls.delete(callId)\n }\n\n result.newCall = (resolve: ResolveCallPromise<T>) => {\n const callId = nextCallId++\n calls.set(callId, resolve)\n return callId\n }\n\n return result\n}\n\nexport function deserializeFunction<T extends AnyFunction>(\n serializedFunction: SerializedFunction<T>,\n): DeserializedFunction<T> {\n if (serializedFunction.onmessage == null) {\n serializedFunction.onmessage = onmessageHandler<T>()\n }\n\n return function deserializedFunction(...args) {\n return new Promise(resolve => {\n const { newCall } = serializedFunction.onmessage\n if (newCall == null) {\n throw new Error(\n `Deserialized function call failed: 'onmessage' handler is missing 'newCall' method`,\n )\n }\n\n const callId = newCall(resolve)\n serializedFunction.postMessage([callId, args])\n })\n }\n}\n\nexport const functionDeserializationPlugin: DeserializationPlugin<\n SerializedFunction<AnyFunction>,\n DeserializedFunction<AnyFunction>\n> = {\n match: isSerializedFunction,\n deserialize: value => deserializeFunction(value),\n}\n"],"mappings":"AAsBO,SAAS,qBAAqB,OAAsD;AACzF,SAAO,iBAAiB;AAC1B;AAIO,SAAS,kBAAyC,MAAgC;AAGvF,QAAM,iBAAiB,IAAI,eAAe;AAE1C,iBAAe,MAAM,YAAY,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,MAAwB;AAC/E,YAAQ,QAAQ,EACb,KAAK,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC,EACjC,KAAK,YAAU,eAAe,MAAM,YAAY,CAAC,QAAQ,MAAM,CAAC,CAAC;AAAA,EACtE;AAEA,SAAO,eAAe;AACxB;AAEA,SAAS,mBAA+D;AAEtE,MAAI,aAAa;AACjB,QAAM,QAAQ,oBAAI,IAAmC;AAErD,QAAM,SAA8B,CAAC,EAAE,MAAM,CAAC,QAAQA,OAAM,EAAE,MAA0B;AACtF,UAAM,IAAI,MAAM,IAAIA,OAAM;AAC1B,UAAM,OAAO,MAAM;AAAA,EACrB;AAEA,SAAO,UAAU,CAAC,YAAmC;AACnD,UAAM,SAAS;AACf,UAAM,IAAI,QAAQ,OAAO;AACzB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,oBACd,oBACyB;AACzB,MAAI,mBAAmB,aAAa,MAAM;AACxC,uBAAmB,YAAY,iBAAoB;AAAA,EACrD;AAEA,SAAO,SAAS,wBAAwB,MAAM;AAC5C,WAAO,IAAI,QAAQ,aAAW;AAC5B,YAAM,EAAE,QAAQ,IAAI,mBAAmB;AACvC,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,YAAM,SAAS,QAAQ,OAAO;AAC9B,yBAAmB,YAAY,CAAC,QAAQ,IAAI,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;AAEO,MAAM,gCAGT;AAAA,EACF,OAAO;AAAA,EACP,aAAa,WAAS,oBAAoB,KAAK;AACjD;","names":["result"]}
@@ -0,0 +1,3 @@
1
+ export * from "./function-serialization";
2
+ export * from "./visitor";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/serialization/message-port/index.ts"],"sourcesContent":["export * from './function-serialization'\nexport * from './visitor'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { isFunction } from "@makeswift/controls";
2
+ import { BaseControlSerializationVisitor } from "../base/visitor";
3
+ import { serializeFunction } from "./function-serialization";
4
+ class ClientMessagePortSerializationVisitor extends BaseControlSerializationVisitor {
5
+ transferables = [];
6
+ constructor() {
7
+ const serializeFunctionPlugin = {
8
+ match: isFunction,
9
+ serialize: (val) => {
10
+ const r = serializeFunction(val);
11
+ this.transferables.push(r);
12
+ return r;
13
+ }
14
+ };
15
+ super([serializeFunctionPlugin]);
16
+ }
17
+ getTransferables() {
18
+ return [...this.transferables];
19
+ }
20
+ }
21
+ export {
22
+ ClientMessagePortSerializationVisitor
23
+ };
24
+ //# sourceMappingURL=visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/controls/serialization/message-port/visitor.ts"],"sourcesContent":["import { AnyFunction, SerializationPlugin, isFunction } from '@makeswift/controls'\n\nimport { BaseControlSerializationVisitor } from '../base/visitor'\nimport { serializeFunction } from './function-serialization'\n\nexport class ClientMessagePortSerializationVisitor extends BaseControlSerializationVisitor {\n private transferables: Transferable[] = []\n\n constructor() {\n const serializeFunctionPlugin: SerializationPlugin<AnyFunction> = {\n match: isFunction,\n serialize: (val: AnyFunction) => {\n const r = serializeFunction(val)\n this.transferables.push(r)\n return r\n },\n }\n\n super([serializeFunctionPlugin])\n }\n\n getTransferables(): Transferable[] {\n return [...this.transferables]\n }\n}\n"],"mappings":"AAAA,SAA2C,kBAAkB;AAE7D,SAAS,uCAAuC;AAChD,SAAS,yBAAyB;AAE3B,MAAM,8CAA8C,gCAAgC;AAAA,EACjF,gBAAgC,CAAC;AAAA,EAEzC,cAAc;AACZ,UAAM,0BAA4D;AAAA,MAChE,OAAO;AAAA,MACP,WAAW,CAAC,QAAqB;AAC/B,cAAM,IAAI,kBAAkB,GAAG;AAC/B,aAAK,cAAc,KAAK,CAAC;AACzB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,CAAC,uBAAuB,CAAC;AAAA,EACjC;AAAA,EAEA,mBAAmC;AACjC,WAAO,CAAC,GAAG,KAAK,aAAa;AAAA,EAC/B;AACF;","names":[]}
@@ -16,7 +16,7 @@ async function config({
16
16
  sendResponse: (apiResponse) => pipeResponseTo(apiResponse, res),
17
17
  revalidationHandler: async (path) => {
18
18
  if (path != null) {
19
- res.revalidate(path);
19
+ await res.revalidate(path);
20
20
  } else {
21
21
  }
22
22
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/next/api-handler/config/pages-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { NextApiRequest, NextApiResponse } from 'next'\n\nimport { type ApiResponse } from '../../../api-handler/request-response'\nimport { toApiRequest, pipeResponseTo } from '../../../api-handler/node-request-response'\n\nimport { pagesRouterRedirectPreviewHandler } from '../handlers/pages-router-redirect-preview'\nimport { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE } from '../preview'\n\nimport { validateApiRoute, type ApiHandlerConfig } from './base'\nimport { MakeswiftClient } from '../../../client'\n\nexport type ApiHandlerArgs = [NextApiRequest, NextApiResponse]\nexport const argsPattern = [P.any, P.any] as const\n\nexport async function config({\n req,\n res,\n client,\n}: {\n req: NextApiRequest\n res: NextApiResponse\n client: MakeswiftClient\n}): Promise<ApiHandlerConfig> {\n return {\n req: toApiRequest(req),\n route: validateApiRoute(await apiRequestParams(req)),\n previewCookieNames: [PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE],\n\n sendResponse: (apiResponse: ApiResponse): Promise<Response | void> =>\n pipeResponseTo(apiResponse, res),\n\n revalidationHandler: async (path?: string): Promise<void> => {\n if (path != null) {\n res.revalidate(path)\n } else {\n // No-op, Pages Router does not support tag-based revalidation\n }\n },\n\n customRoutes: async (route: string) => {\n if (route === '/redirect-preview') {\n return { res: await pagesRouterRedirectPreviewHandler(req, res, client) }\n }\n\n return null\n },\n }\n}\n\nfunction apiRequestParams(request: NextApiRequest): Promise<NextApiRequest['query']> {\n // `NextApiRequest.query` prop became async in Next.js 15, but it's not reflected in the type definition;\n // force-casting it to a `Promise` manually\n return Promise.resolve(request.query)\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAIlB,SAAS,cAAc,sBAAsB;AAE7C,SAAS,yCAAyC;AAClD,SAAS,yBAAyB,2BAA2B;AAE7D,SAAS,wBAA+C;AAIjD,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG;AAExC,eAAsB,OAAO;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAI8B;AAC5B,SAAO;AAAA,IACL,KAAK,aAAa,GAAG;AAAA,IACrB,OAAO,iBAAiB,MAAM,iBAAiB,GAAG,CAAC;AAAA,IACnD,oBAAoB,CAAC,yBAAyB,mBAAmB;AAAA,IAEjE,cAAc,CAAC,gBACb,eAAe,aAAa,GAAG;AAAA,IAEjC,qBAAqB,OAAO,SAAiC;AAC3D,UAAI,QAAQ,MAAM;AAChB,YAAI,WAAW,IAAI;AAAA,MACrB,OAAO;AAAA,MAEP;AAAA,IACF;AAAA,IAEA,cAAc,OAAO,UAAkB;AACrC,UAAI,UAAU,qBAAqB;AACjC,eAAO,EAAE,KAAK,MAAM,kCAAkC,KAAK,KAAK,MAAM,EAAE;AAAA,MAC1E;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAA2D;AAGnF,SAAO,QAAQ,QAAQ,QAAQ,KAAK;AACtC;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/next/api-handler/config/pages-router.ts"],"sourcesContent":["import { P } from 'ts-pattern'\nimport { NextApiRequest, NextApiResponse } from 'next'\n\nimport { type ApiResponse } from '../../../api-handler/request-response'\nimport { toApiRequest, pipeResponseTo } from '../../../api-handler/node-request-response'\n\nimport { pagesRouterRedirectPreviewHandler } from '../handlers/pages-router-redirect-preview'\nimport { PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE } from '../preview'\n\nimport { validateApiRoute, type ApiHandlerConfig } from './base'\nimport { MakeswiftClient } from '../../../client'\n\nexport type ApiHandlerArgs = [NextApiRequest, NextApiResponse]\nexport const argsPattern = [P.any, P.any] as const\n\nexport async function config({\n req,\n res,\n client,\n}: {\n req: NextApiRequest\n res: NextApiResponse\n client: MakeswiftClient\n}): Promise<ApiHandlerConfig> {\n return {\n req: toApiRequest(req),\n route: validateApiRoute(await apiRequestParams(req)),\n previewCookieNames: [PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE],\n\n sendResponse: (apiResponse: ApiResponse): Promise<Response | void> =>\n pipeResponseTo(apiResponse, res),\n\n revalidationHandler: async (path?: string): Promise<void> => {\n if (path != null) {\n await res.revalidate(path)\n } else {\n // No-op, Pages Router does not support tag-based revalidation\n }\n },\n\n customRoutes: async (route: string) => {\n if (route === '/redirect-preview') {\n return { res: await pagesRouterRedirectPreviewHandler(req, res, client) }\n }\n\n return null\n },\n }\n}\n\nfunction apiRequestParams(request: NextApiRequest): Promise<NextApiRequest['query']> {\n // `NextApiRequest.query` prop became async in Next.js 15, but it's not reflected in the type definition;\n // force-casting it to a `Promise` manually\n return Promise.resolve(request.query)\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAIlB,SAAS,cAAc,sBAAsB;AAE7C,SAAS,yCAAyC;AAClD,SAAS,yBAAyB,2BAA2B;AAE7D,SAAS,wBAA+C;AAIjD,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG;AAExC,eAAsB,OAAO;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAI8B;AAC5B,SAAO;AAAA,IACL,KAAK,aAAa,GAAG;AAAA,IACrB,OAAO,iBAAiB,MAAM,iBAAiB,GAAG,CAAC;AAAA,IACnD,oBAAoB,CAAC,yBAAyB,mBAAmB;AAAA,IAEjE,cAAc,CAAC,gBACb,eAAe,aAAa,GAAG;AAAA,IAEjC,qBAAqB,OAAO,SAAiC;AAC3D,UAAI,QAAQ,MAAM;AAChB,cAAM,IAAI,WAAW,IAAI;AAAA,MAC3B,OAAO;AAAA,MAEP;AAAA,IACF;AAAA,IAEA,cAAc,OAAO,UAAkB;AACrC,UAAI,UAAU,qBAAqB;AACjC,eAAO,EAAE,KAAK,MAAM,kCAAkC,KAAK,KAAK,MAAM,EAAE;AAAA,MAC1E;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAA2D;AAGnF,SAAO,QAAQ,QAAQ,QAAQ,KAAK;AACtC;","names":[]}
@@ -0,0 +1,6 @@
1
+ import { MAKESWIFT_CACHE_TAG } from "./cache";
2
+ const fetch = (url, init) => globalThis.fetch(url, { ...init, next: { tags: [MAKESWIFT_CACHE_TAG] } });
3
+ export {
4
+ fetch
5
+ };
6
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/fetch.ts"],"sourcesContent":["import { type HttpFetch } from '../state/makeswift-api-client'\n\nimport { MAKESWIFT_CACHE_TAG } from './cache'\n\nexport const fetch: HttpFetch = (url, init) =>\n globalThis.fetch(url, { ...init, next: { tags: [MAKESWIFT_CACHE_TAG] } })\n"],"mappings":"AAEA,SAAS,2BAA2B;AAE7B,MAAM,QAAmB,CAAC,KAAK,SACpC,WAAW,MAAM,KAAK,EAAE,GAAG,MAAM,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;","names":[]}
@@ -0,0 +1,11 @@
1
+ import { ReactRuntime } from "../runtimes/react/react-runtime";
2
+ import { fetch } from "./fetch";
3
+ class NextReactRuntime extends ReactRuntime {
4
+ constructor(args = {}) {
5
+ super({ ...args, fetch });
6
+ }
7
+ }
8
+ export {
9
+ NextReactRuntime
10
+ };
11
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/runtime.ts"],"sourcesContent":["import { ReactRuntime } from '../runtimes/react/react-runtime'\nimport { type BreakpointsInput } from '../state/modules/breakpoints'\n\nimport { fetch } from './fetch'\n\nexport class NextReactRuntime extends ReactRuntime {\n constructor(\n args: { appOrigin?: string; apiOrigin?: string; breakpoints?: BreakpointsInput } = {},\n ) {\n super({ ...args, fetch })\n }\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAG7B,SAAS,aAAa;AAEf,MAAM,yBAAyB,aAAa;AAAA,EACjD,YACE,OAAmF,CAAC,GACpF;AACA,UAAM,EAAE,GAAG,MAAM,MAAM,CAAC;AAAA,EAC1B;AACF;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { createReactRuntime } from "../../runtimes/react/testing/react-runtime";
2
+ export {
3
+ createReactRuntime
4
+ };
5
+ //# sourceMappingURL=react-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/next/testing/react-runtime.tsx"],"sourcesContent":["export { createReactRuntime } from '../../runtimes/react/testing/react-runtime'\n"],"mappings":"AAAA,SAAS,0BAA0B;","names":[]}