@makeswift/runtime 0.26.4-canary.0 → 0.27.0-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/cjs/api/client.js +2 -4
  2. package/dist/cjs/api/client.js.map +1 -1
  3. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  4. package/dist/cjs/api-handler/index.js +1 -2
  5. package/dist/cjs/api-handler/index.js.map +1 -1
  6. package/dist/cjs/client/index.js +8 -13
  7. package/dist/cjs/client/index.js.map +1 -1
  8. package/dist/cjs/next/api-handler/index.js +2 -2
  9. package/dist/cjs/next/api-handler/index.js.map +1 -1
  10. package/dist/cjs/next/components/framework-provider/index.js +1 -3
  11. package/dist/cjs/next/components/framework-provider/index.js.map +1 -1
  12. package/dist/cjs/next/components/tests/controls/style-control/fixtures.js.map +1 -1
  13. package/dist/cjs/next/index.js +3 -0
  14. package/dist/cjs/next/index.js.map +1 -1
  15. package/dist/cjs/next/runtime.js +38 -0
  16. package/dist/cjs/next/runtime.js.map +1 -0
  17. package/dist/cjs/next/tests/test-utils.js +3 -6
  18. package/dist/cjs/next/tests/test-utils.js.map +1 -1
  19. package/dist/cjs/react/index.js +0 -3
  20. package/dist/cjs/react/index.js.map +1 -1
  21. package/dist/cjs/runtimes/react/components/RuntimeProvider.js +13 -32
  22. package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
  23. package/dist/cjs/runtimes/react/components/framework-context.js +3 -14
  24. package/dist/cjs/runtimes/react/components/framework-context.js.map +1 -1
  25. package/dist/cjs/runtimes/react/hooks/use-async-effect.js +55 -0
  26. package/dist/cjs/runtimes/react/hooks/use-async-effect.js.map +1 -0
  27. package/dist/cjs/runtimes/react/hooks/use-store.js +2 -9
  28. package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
  29. package/dist/cjs/runtimes/react/host-api-client.js +2 -24
  30. package/dist/cjs/runtimes/react/host-api-client.js.map +1 -1
  31. package/dist/cjs/runtimes/react/index.js +0 -5
  32. package/dist/cjs/runtimes/react/index.js.map +1 -1
  33. package/dist/cjs/runtimes/react/react-runtime-core.js +0 -3
  34. package/dist/cjs/runtimes/react/react-runtime-core.js.map +1 -1
  35. package/dist/cjs/runtimes/react/react-runtime.js +2 -2
  36. package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
  37. package/dist/cjs/runtimes/react/runtime-core.js +42 -3
  38. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  39. package/dist/cjs/runtimes/react/testing/react-runtime.js +2 -1
  40. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -1
  41. package/dist/cjs/state/actions/internal/read-only-actions.js +15 -1
  42. package/dist/cjs/state/actions/internal/read-only-actions.js.map +1 -1
  43. package/dist/cjs/state/makeswift-api-client.js +32 -18
  44. package/dist/cjs/state/makeswift-api-client.js.map +1 -1
  45. package/dist/cjs/state/middleware/{read-write/makeswift-api-client-sync.js → makeswift-api-client-sync.js} +1 -1
  46. package/dist/cjs/state/middleware/makeswift-api-client-sync.js.map +1 -0
  47. package/dist/cjs/state/middleware/read-write/index.js +40 -0
  48. package/dist/cjs/state/middleware/read-write/index.js.map +1 -0
  49. package/dist/cjs/state/middleware/{prop-controller-handles.js → read-write/prop-controller-handles.js} +8 -8
  50. package/dist/cjs/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  51. package/dist/cjs/state/modules/locale.js +53 -0
  52. package/dist/cjs/state/modules/locale.js.map +1 -0
  53. package/dist/cjs/state/modules/site-version.js +50 -0
  54. package/dist/cjs/state/modules/site-version.js.map +1 -0
  55. package/dist/cjs/state/read-only-state.js +2 -0
  56. package/dist/cjs/state/read-only-state.js.map +1 -1
  57. package/dist/cjs/state/read-write-state.js +9 -2
  58. package/dist/cjs/state/read-write-state.js.map +1 -1
  59. package/dist/cjs/state/store.js +184 -0
  60. package/dist/cjs/state/store.js.map +1 -0
  61. package/dist/cjs/state/unified-state.js +17 -0
  62. package/dist/cjs/state/unified-state.js.map +1 -0
  63. package/dist/cjs/unstable-framework-support/index.js +2 -4
  64. package/dist/cjs/unstable-framework-support/index.js.map +1 -1
  65. package/dist/cjs/{state/mixins/setup-teardown.js → utils/deferred.js} +15 -11
  66. package/dist/cjs/utils/deferred.js.map +1 -0
  67. package/dist/esm/api/client.js +2 -4
  68. package/dist/esm/api/client.js.map +1 -1
  69. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  70. package/dist/esm/api-handler/index.js +1 -2
  71. package/dist/esm/api-handler/index.js.map +1 -1
  72. package/dist/esm/client/index.js +8 -13
  73. package/dist/esm/client/index.js.map +1 -1
  74. package/dist/esm/next/api-handler/index.js +2 -2
  75. package/dist/esm/next/api-handler/index.js.map +1 -1
  76. package/dist/esm/next/components/framework-provider/index.js +2 -7
  77. package/dist/esm/next/components/framework-provider/index.js.map +1 -1
  78. package/dist/esm/next/components/tests/controls/style-control/fixtures.js.map +1 -1
  79. package/dist/esm/next/index.js +2 -0
  80. package/dist/esm/next/index.js.map +1 -1
  81. package/dist/esm/next/runtime.js +14 -0
  82. package/dist/esm/next/runtime.js.map +1 -0
  83. package/dist/esm/next/tests/test-utils.js +3 -6
  84. package/dist/esm/next/tests/test-utils.js.map +1 -1
  85. package/dist/esm/react/index.js +0 -2
  86. package/dist/esm/react/index.js.map +1 -1
  87. package/dist/esm/runtimes/react/components/RuntimeProvider.js +14 -23
  88. package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
  89. package/dist/esm/runtimes/react/components/framework-context.js +2 -15
  90. package/dist/esm/runtimes/react/components/framework-context.js.map +1 -1
  91. package/dist/esm/runtimes/react/hooks/use-async-effect.js +31 -0
  92. package/dist/esm/runtimes/react/hooks/use-async-effect.js.map +1 -0
  93. package/dist/esm/runtimes/react/hooks/use-store.js +2 -8
  94. package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
  95. package/dist/esm/runtimes/react/host-api-client.js +2 -23
  96. package/dist/esm/runtimes/react/host-api-client.js.map +1 -1
  97. package/dist/esm/runtimes/react/index.js +1 -4
  98. package/dist/esm/runtimes/react/index.js.map +1 -1
  99. package/dist/esm/runtimes/react/react-runtime-core.js +0 -3
  100. package/dist/esm/runtimes/react/react-runtime-core.js.map +1 -1
  101. package/dist/esm/runtimes/react/react-runtime.js +2 -2
  102. package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
  103. package/dist/esm/runtimes/react/runtime-core.js +45 -2
  104. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  105. package/dist/esm/runtimes/react/testing/react-runtime.js +2 -1
  106. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -1
  107. package/dist/esm/state/actions/internal/read-only-actions.js +13 -1
  108. package/dist/esm/state/actions/internal/read-only-actions.js.map +1 -1
  109. package/dist/esm/state/makeswift-api-client.js +32 -18
  110. package/dist/esm/state/makeswift-api-client.js.map +1 -1
  111. package/dist/esm/state/middleware/{read-write/makeswift-api-client-sync.js → makeswift-api-client-sync.js} +1 -1
  112. package/dist/esm/state/middleware/makeswift-api-client-sync.js.map +1 -0
  113. package/dist/esm/state/middleware/read-write/index.js +16 -0
  114. package/dist/esm/state/middleware/read-write/index.js.map +1 -0
  115. package/dist/esm/state/middleware/{prop-controller-handles.js → read-write/prop-controller-handles.js} +8 -8
  116. package/dist/esm/state/middleware/read-write/prop-controller-handles.js.map +1 -0
  117. package/dist/esm/state/modules/locale.js +27 -0
  118. package/dist/esm/state/modules/locale.js.map +1 -0
  119. package/dist/esm/state/modules/site-version.js +24 -0
  120. package/dist/esm/state/modules/site-version.js.map +1 -0
  121. package/dist/esm/state/read-only-state.js +2 -0
  122. package/dist/esm/state/read-only-state.js.map +1 -1
  123. package/dist/esm/state/read-write-state.js +7 -1
  124. package/dist/esm/state/read-write-state.js.map +1 -1
  125. package/dist/esm/state/store.js +153 -0
  126. package/dist/esm/state/store.js.map +1 -0
  127. package/dist/esm/state/unified-state.js +1 -0
  128. package/dist/esm/state/unified-state.js.map +1 -0
  129. package/dist/esm/unstable-framework-support/index.js +2 -4
  130. package/dist/esm/unstable-framework-support/index.js.map +1 -1
  131. package/dist/esm/utils/deferred.js +15 -0
  132. package/dist/esm/utils/deferred.js.map +1 -0
  133. package/dist/types/api/client.d.ts +1 -2
  134. package/dist/types/api/client.d.ts.map +1 -1
  135. package/dist/types/api-handler/handlers/webhook/types.d.ts +4 -4
  136. package/dist/types/api-handler/index.d.ts +1 -3
  137. package/dist/types/api-handler/index.d.ts.map +1 -1
  138. package/dist/types/client/index.d.ts +10 -11
  139. package/dist/types/client/index.d.ts.map +1 -1
  140. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  141. package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  142. package/dist/types/next/api-handler/index.d.ts +1 -1
  143. package/dist/types/next/api-handler/index.d.ts.map +1 -1
  144. package/dist/types/next/components/framework-provider/index.d.ts.map +1 -1
  145. package/dist/types/next/components/tests/controls/style-control/fixtures.d.ts +1 -1
  146. package/dist/types/next/components/tests/controls/style-control/fixtures.d.ts.map +1 -1
  147. package/dist/types/next/index.d.ts +1 -0
  148. package/dist/types/next/index.d.ts.map +1 -1
  149. package/dist/types/next/runtime.d.ts +10 -0
  150. package/dist/types/next/runtime.d.ts.map +1 -0
  151. package/dist/types/next/tests/test-utils.d.ts.map +1 -1
  152. package/dist/types/react/index.d.ts +0 -1
  153. package/dist/types/react/index.d.ts.map +1 -1
  154. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +2 -4
  155. package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
  156. package/dist/types/runtimes/react/components/framework-context.d.ts +0 -4
  157. package/dist/types/runtimes/react/components/framework-context.d.ts.map +1 -1
  158. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts +2 -0
  159. package/dist/types/runtimes/react/hooks/__tests__/use-async-effect.test.d.ts.map +1 -0
  160. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts +3 -0
  161. package/dist/types/runtimes/react/hooks/use-async-effect.d.ts.map +1 -0
  162. package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -26
  163. package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
  164. package/dist/types/runtimes/react/host-api-client.d.ts +0 -5
  165. package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -1
  166. package/dist/types/runtimes/react/index.d.ts +1 -2
  167. package/dist/types/runtimes/react/index.d.ts.map +1 -1
  168. package/dist/types/runtimes/react/react-runtime-core.d.ts +0 -4
  169. package/dist/types/runtimes/react/react-runtime-core.d.ts.map +1 -1
  170. package/dist/types/runtimes/react/react-runtime.d.ts +1 -4
  171. package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
  172. package/dist/types/runtimes/react/runtime-core.d.ts +20 -3
  173. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  174. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -1
  175. package/dist/types/state/__tests__/store.read-write-state.test.d.ts +2 -0
  176. package/dist/types/state/__tests__/store.read-write-state.test.d.ts.map +1 -0
  177. package/dist/types/state/__tests__/test-store.d.ts +29 -0
  178. package/dist/types/state/__tests__/test-store.d.ts.map +1 -0
  179. package/dist/types/state/actions/index.d.ts +2 -0
  180. package/dist/types/state/actions/index.d.ts.map +1 -1
  181. package/dist/types/state/actions/internal/index.d.ts +2 -0
  182. package/dist/types/state/actions/internal/index.d.ts.map +1 -1
  183. package/dist/types/state/actions/internal/read-only-actions.d.ts +13 -1
  184. package/dist/types/state/actions/internal/read-only-actions.d.ts.map +1 -1
  185. package/dist/types/state/makeswift-api-client.d.ts +11 -2
  186. package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
  187. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts +5 -0
  188. package/dist/types/state/middleware/makeswift-api-client-sync.d.ts.map +1 -0
  189. package/dist/types/state/middleware/read-write/index.d.ts +5 -0
  190. package/dist/types/state/middleware/read-write/index.d.ts.map +1 -0
  191. package/dist/types/state/middleware/{prop-controller-handles.d.ts → read-write/prop-controller-handles.d.ts} +1 -1
  192. package/dist/types/state/middleware/read-write/prop-controller-handles.d.ts.map +1 -0
  193. package/dist/types/state/modules/locale.d.ts +6 -0
  194. package/dist/types/state/modules/locale.d.ts.map +1 -0
  195. package/dist/types/state/modules/site-version.d.ts +7 -0
  196. package/dist/types/state/modules/site-version.d.ts.map +1 -0
  197. package/dist/types/state/read-only-state.d.ts +3 -0
  198. package/dist/types/state/read-only-state.d.ts.map +1 -1
  199. package/dist/types/state/read-write-state.d.ts +5 -1
  200. package/dist/types/state/read-write-state.d.ts.map +1 -1
  201. package/dist/types/state/{react-page.d.ts → store.d.ts} +25 -6
  202. package/dist/types/state/store.d.ts.map +1 -0
  203. package/dist/types/state/unified-state.d.ts +9 -0
  204. package/dist/types/state/unified-state.d.ts.map +1 -0
  205. package/dist/types/unstable-framework-support/index.d.ts +2 -1
  206. package/dist/types/unstable-framework-support/index.d.ts.map +1 -1
  207. package/dist/types/utils/deferred.d.ts +7 -0
  208. package/dist/types/utils/deferred.d.ts.map +1 -0
  209. package/package.json +2 -2
  210. package/dist/cjs/runtimes/react/components/LiveProvider.js +0 -50
  211. package/dist/cjs/runtimes/react/components/LiveProvider.js.map +0 -1
  212. package/dist/cjs/runtimes/react/components/PreviewProvider.js +0 -63
  213. package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +0 -1
  214. package/dist/cjs/state/middleware/prop-controller-handles.js.map +0 -1
  215. package/dist/cjs/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  216. package/dist/cjs/state/mixins/setup-teardown.js.map +0 -1
  217. package/dist/cjs/state/react-builder-preview.js +0 -96
  218. package/dist/cjs/state/react-builder-preview.js.map +0 -1
  219. package/dist/cjs/state/react-page.js +0 -69
  220. package/dist/cjs/state/react-page.js.map +0 -1
  221. package/dist/esm/runtimes/react/components/LiveProvider.js +0 -20
  222. package/dist/esm/runtimes/react/components/LiveProvider.js.map +0 -1
  223. package/dist/esm/runtimes/react/components/PreviewProvider.js +0 -33
  224. package/dist/esm/runtimes/react/components/PreviewProvider.js.map +0 -1
  225. package/dist/esm/state/middleware/prop-controller-handles.js.map +0 -1
  226. package/dist/esm/state/middleware/read-write/makeswift-api-client-sync.js.map +0 -1
  227. package/dist/esm/state/mixins/setup-teardown.js +0 -11
  228. package/dist/esm/state/mixins/setup-teardown.js.map +0 -1
  229. package/dist/esm/state/react-builder-preview.js +0 -62
  230. package/dist/esm/state/react-builder-preview.js.map +0 -1
  231. package/dist/esm/state/react-page.js +0 -35
  232. package/dist/esm/state/react-page.js.map +0 -1
  233. package/dist/types/runtimes/react/components/LiveProvider.d.ts +0 -3
  234. package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +0 -1
  235. package/dist/types/runtimes/react/components/PreviewProvider.d.ts +0 -5
  236. package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +0 -1
  237. package/dist/types/state/middleware/prop-controller-handles.d.ts.map +0 -1
  238. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts +0 -5
  239. package/dist/types/state/middleware/read-write/makeswift-api-client-sync.d.ts.map +0 -1
  240. package/dist/types/state/mixins/setup-teardown.d.ts +0 -7
  241. package/dist/types/state/mixins/setup-teardown.d.ts.map +0 -1
  242. package/dist/types/state/react-builder-preview.d.ts +0 -41
  243. package/dist/types/state/react-builder-preview.d.ts.map +0 -1
  244. package/dist/types/state/react-page.d.ts.map +0 -1
@@ -0,0 +1,27 @@
1
+ import { isKnownAction } from "../actions";
2
+ import { SharedActionTypes } from "../shared-api";
3
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
4
+ function getInitialState(locale = null) {
5
+ return locale;
6
+ }
7
+ function getLocale(state) {
8
+ return state;
9
+ }
10
+ function reducer(state = getInitialState(), action) {
11
+ if (!isKnownAction(action))
12
+ return state;
13
+ switch (action.type) {
14
+ case SharedActionTypes.SET_LOCALE:
15
+ return action.payload.locale;
16
+ case ReadOnlyActionTypes.RESET_LOCALE_STATE:
17
+ return getInitialState();
18
+ default:
19
+ return state;
20
+ }
21
+ }
22
+ export {
23
+ getInitialState,
24
+ getLocale,
25
+ reducer
26
+ };
27
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/locale.ts"],"sourcesContent":["import { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { SharedActionTypes } from '../shared-api'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = string | null\n\nexport function getInitialState(locale: string | null = null): State {\n return locale\n}\n\nexport function getLocale(state: State): string | null {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case SharedActionTypes.SET_LOCALE:\n return action.payload.locale\n\n case ReadOnlyActionTypes.RESET_LOCALE_STATE:\n return getInitialState()\n\n default:\n return state\n }\n}\n"],"mappings":"AAAA,SAA0C,qBAAqB;AAC/D,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAI7B,SAAS,gBAAgB,SAAwB,MAAa;AACnE,SAAO;AACT;AAEO,SAAS,UAAU,OAA6B;AACrD,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,kBAAkB;AACrB,aAAO,OAAO,QAAQ;AAAA,IAExB,KAAK,oBAAoB;AACvB,aAAO,gBAAgB;AAAA,IAEzB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { isKnownAction } from "../actions";
2
+ import { ReadOnlyActionTypes } from "../actions/internal/read-only-actions";
3
+ function getInitialState(siteVersion = null) {
4
+ return siteVersion;
5
+ }
6
+ function getSiteVersion(state) {
7
+ return state;
8
+ }
9
+ function reducer(state = getInitialState(), action) {
10
+ if (!isKnownAction(action))
11
+ return state;
12
+ switch (action.type) {
13
+ case ReadOnlyActionTypes.SET_SITE_VERSION:
14
+ return action.payload;
15
+ default:
16
+ return state;
17
+ }
18
+ }
19
+ export {
20
+ getInitialState,
21
+ getSiteVersion,
22
+ reducer
23
+ };
24
+ //# sourceMappingURL=site-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/state/modules/site-version.ts"],"sourcesContent":["import { type SiteVersion } from '../../api/site-version'\nimport { type Action, type UnknownAction, isKnownAction } from '../actions'\nimport { ReadOnlyActionTypes } from '../actions/internal/read-only-actions'\n\nexport type State = SiteVersion | null\n\nexport function getInitialState(siteVersion: SiteVersion | null = null): State {\n return siteVersion\n}\n\nexport function getSiteVersion(state: State): SiteVersion | null {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action | UnknownAction): State {\n if (!isKnownAction(action)) return state\n\n switch (action.type) {\n case ReadOnlyActionTypes.SET_SITE_VERSION:\n return action.payload\n\n default:\n return state\n }\n}\n"],"mappings":"AACA,SAA0C,qBAAqB;AAC/D,SAAS,2BAA2B;AAI7B,SAAS,gBAAgB,cAAkC,MAAa;AAC7E,SAAO;AACT;AAEO,SAAS,eAAe,OAAkC;AAC/D,SAAO;AACT;AAEO,SAAS,QAAQ,QAAQ,gBAAgB,GAAG,QAAuC;AACxF,MAAI,CAAC,cAAc,MAAM;AAAG,WAAO;AAEnC,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO,OAAO;AAAA,IAEhB;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import { createSelector } from "reselect";
2
+ import * as SiteVersion from "./modules/site-version";
2
3
  import * as Documents from "./modules/read-only-documents";
3
4
  import * as ElementTrees from "./modules/element-trees";
4
5
  import * as ReactComponents from "./modules/react-components";
@@ -17,6 +18,7 @@ import {
17
18
  } from "./modules/read-only-documents";
18
19
  const reducers = {
19
20
  isReadOnly: IsReadOnly.reducer,
21
+ siteVersion: SiteVersion.reducer,
20
22
  documents: Documents.reducer,
21
23
  elementTrees: ElementTrees.reducer,
22
24
  reactComponents: ReactComponents.reducer,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/read-only-state.ts"],"sourcesContent":["import { type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsReadOnly from './modules/is-read-only'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nexport const reducers = {\n isReadOnly: IsReadOnly.reducer,\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n}\n\nexport type State = {\n isReadOnly: IsReadOnly.State\n documents: Documents.State\n elementTrees: ElementTrees.State\n reactComponents: ReactComponents.State\n componentsMeta: ComponentsMeta.State\n propControllers: PropControllers.State\n propControllerHandles: PropControllerHandles.State\n isInBuilder: IsInBuilder.State\n builderEditMode: BuilderEditMode.State\n breakpoints: Breakpoints.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropControllersHandle(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropController(\n state: State,\n {\n documentKey,\n elementKey,\n propName,\n }: { documentKey: string; elementKey: string; propName: string },\n) {\n return PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n propName,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state.isReadOnly\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nexport function getBreakpoints(state: State): Breakpoints.State {\n return state.breakpoints\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/state/read-only-state.ts"],"sourcesContent":["import { type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport { createSelector } from 'reselect'\n\nimport * as SiteVersion from './modules/site-version'\nimport * as Documents from './modules/read-only-documents'\nimport * as ElementTrees from './modules/element-trees'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsReadOnly from './modules/is-read-only'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { type Action } from './actions'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\n\nexport {\n createBaseDocument,\n createDocumentReference,\n getRootElement,\n isElementReference,\n} from './modules/read-only-documents'\n\nexport type { ComponentType } from './modules/react-components'\nexport type { ComponentMeta } from './modules/components-meta'\n\nexport const reducers = {\n isReadOnly: IsReadOnly.reducer,\n siteVersion: SiteVersion.reducer,\n documents: Documents.reducer,\n elementTrees: ElementTrees.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n}\n\nexport type State = {\n isReadOnly: IsReadOnly.State\n siteVersion: SiteVersion.State\n documents: Documents.State\n elementTrees: ElementTrees.State\n reactComponents: ReactComponents.State\n componentsMeta: ComponentsMeta.State\n propControllers: PropControllers.State\n propControllerHandles: PropControllerHandles.State\n isInBuilder: IsInBuilder.State\n builderEditMode: BuilderEditMode.State\n breakpoints: Breakpoints.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getElementTreesSlice(state: State): ElementTrees.State {\n return state.elementTrees\n}\n\nexport function getElements(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elements'] {\n return ElementTrees.getElements(getElementTreesSlice(state), documentKey)\n}\n\nexport function getElementIds(\n state: State,\n documentKey: string,\n): ElementTrees.ElementTree['elementIds'] {\n return ElementTrees.getElementIds(getElementTreesSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getComponentsMetaStateSlice(state: State): ComponentsMeta.State {\n return state.componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentsMeta.ComponentMeta> {\n return ComponentsMeta.getComponentsMeta(getComponentsMetaStateSlice(state))\n}\n\nexport function getComponentMeta(state: State, type: string): ComponentsMeta.ComponentMeta | null {\n return ComponentsMeta.getComponentMeta(getComponentsMetaStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(state: State): PropControllers.State {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): PropControllers.DescriptorsByProp | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropControllersHandle(\n state: State,\n { documentKey, elementKey }: { documentKey: string; elementKey: string },\n) {\n return PropControllerHandles.getPropControllersHandle(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nexport function getPropController(\n state: State,\n {\n documentKey,\n elementKey,\n propName,\n }: { documentKey: string; elementKey: string; propName: string },\n) {\n return PropControllerHandles.getPropController(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n propName,\n )\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n */\nexport const getDocumentKeysSortedByDepth: (state: State) => string[] = createSelector(\n [getDocumentsStateSlice, getElementTreesSlice],\n (documents, elementTrees) => {\n return [...documents.keys()].sort((a, b) => (elementTrees.get(a)?.elements.has(b) ? -1 : 1))\n },\n)\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return ElementTrees.getElement(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n return ElementTrees.getElementId(getElementTreesSlice(state), documentKey, elementKey)\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsReadOnly(state: State): boolean {\n return state.isReadOnly\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nexport function getBreakpoints(state: State): Breakpoints.State {\n return state.breakpoints\n}\n"],"mappings":"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","names":[]}
@@ -59,6 +59,11 @@ function getElementImperativeHandlesContainingElement(state, element) {
59
59
  }
60
60
  return filteredElementImperativeHandles;
61
61
  }
62
+ function setupBuilderProxy(builderProxy) {
63
+ return (dispatch) => {
64
+ builderProxy.setup({ onHostAction: (action) => dispatch(action) });
65
+ };
66
+ }
62
67
  export {
63
68
  createBox,
64
69
  createRootReducer,
@@ -71,6 +76,7 @@ export {
71
76
  getElementImperativeHandlesContainingElement,
72
77
  getMeasurables,
73
78
  getPointer,
74
- parse
79
+ parse,
80
+ setupBuilderProxy
75
81
  };
76
82
  //# sourceMappingURL=read-write-state.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/state/read-write-state.ts"],"sourcesContent":["import { combineReducers, type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport * as Documents from './modules/read-write/read-write-documents'\nimport * as BoxModels from './modules/read-write/box-models'\nimport * as Pointer from './modules/read-write/pointer'\nimport * as ElementImperativeHandles from './modules/read-write/element-imperative-handles'\n\nimport { type Action } from './actions'\n\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nimport * as ReadOnlyState from './read-only-state'\n\nexport type { Operation } from './modules/read-write/read-write-documents'\nexport type { BoxModelHandle } from './modules/read-write/box-models'\nexport { createBox, getBox, parse } from './modules/read-write/box-models'\n\nconst reducers = {\n ...ReadOnlyState.reducers,\n documents: Documents.reducer,\n boxModels: BoxModels.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n}\n\nexport function createRootReducer() {\n return combineReducers(reducers)\n}\n\nexport type State = Omit<ReadOnlyState.State, 'documents'> & {\n documents: Documents.State\n boxModels: BoxModels.State\n pointer: Pointer.State\n elementImperativeHandles: ElementImperativeHandles.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocuments(state: State): Documents.State {\n return Documents.getDocuments(getDocumentsStateSlice(state))\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nexport function getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nexport function getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n"],"mappings":"AAAA,SAAS,uBAA2C;AAEpD,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB,YAAY,8BAA8B;AAM1C,YAAY,mBAAmB;AAI/B,SAAS,WAAW,QAAQ,aAAa;AAEzC,MAAM,WAAW;AAAA,EACf,GAAG,cAAc;AAAA,EACjB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,SAAS,QAAQ;AAAA,EACjB,0BAA0B,yBAAyB;AACrD;AAEO,SAAS,oBAAoB;AAClC,SAAO,gBAAgB,QAAQ;AACjC;AAWA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,aAAa,OAA+B;AAC1D,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YAAY,OAAc,aAAgD;AACxF,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,WAAW;AACzE;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,eAAe,OAA8D;AAC3F,SAAO,UAAU,eAAe,uBAAuB,KAAK,CAAC;AAC/D;AAEO,SAAS,aAAa,OAA4D;AACvF,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YACd,OACA,aACA,YAC2B;AAC3B,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEO,SAAS,WAAW,OAAoC;AAC7D,SAAO,QAAQ,WAAW,MAAM,OAAO;AACzC;AAEO,SAAS,4BACd,OACmD;AACnD,SAAO,yBAAyB,4BAA4B,MAAM,wBAAwB;AAC5F;AAEO,SAAS,6CACd,OACA,SACmD;AACnD,QAAM,2BAA2B,4BAA4B,KAAK;AAClE,QAAM,mCAAmC,oBAAI,IAAkD;AAE/F,aAAW,CAAC,aAAa,YAAY,KAAK,0BAA0B;AAClE,UAAM,uBAAuB,oBAAI,IAAqC;AAEtE,eAAW,CAAC,YAAY,uBAAuB,KAAK,cAAc;AAChE,YAAM,gBAAgB,wBAAwB,WAAW;AAEzD,UAAI,eAAe,SAAS,OAAO,GAAG;AACpC,6BAAqB,IAAI,YAAY,uBAAuB;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI,qBAAqB,OAAO,GAAG;AACjC,uCAAiC,IAAI,aAAa,oBAAoB;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/state/read-write-state.ts"],"sourcesContent":["import { combineReducers, type ThunkAction, type ThunkDispatch } from '@reduxjs/toolkit'\n\nimport * as Documents from './modules/read-write/read-write-documents'\nimport * as BoxModels from './modules/read-write/box-models'\nimport * as Pointer from './modules/read-write/pointer'\nimport * as ElementImperativeHandles from './modules/read-write/element-imperative-handles'\n\nimport { type Action } from './actions'\n\nimport { ElementImperativeHandle } from '../runtimes/react/element-imperative-handle'\n\nimport { BuilderAPIProxy } from './builder-api/proxy'\nimport * as ReadOnlyState from './read-only-state'\n\nexport type { Operation } from './modules/read-write/read-write-documents'\nexport type { BoxModelHandle } from './modules/read-write/box-models'\nexport { createBox, getBox, parse } from './modules/read-write/box-models'\n\nconst reducers = {\n ...ReadOnlyState.reducers,\n documents: Documents.reducer,\n boxModels: BoxModels.reducer,\n pointer: Pointer.reducer,\n elementImperativeHandles: ElementImperativeHandles.reducer,\n}\n\nexport function createRootReducer() {\n return combineReducers(reducers)\n}\n\nexport type State = Omit<ReadOnlyState.State, 'documents'> & {\n documents: Documents.State\n boxModels: BoxModels.State\n pointer: Pointer.State\n elementImperativeHandles: ElementImperativeHandles.State\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocuments(state: State): Documents.State {\n return Documents.getDocuments(getDocumentsStateSlice(state))\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getBoxModelsStateSlice(state: State): BoxModels.State {\n return state.boxModels\n}\n\nexport function getMeasurables(state: State): Map<string, Map<string, BoxModels.Measurable>> {\n return BoxModels.getMeasurables(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModels(state: State): Map<string, Map<string, BoxModels.BoxModel>> {\n return BoxModels.getBoxModels(getBoxModelsStateSlice(state))\n}\n\nexport function getBoxModel(\n state: State,\n documentKey: string,\n elementKey: string,\n): BoxModels.BoxModel | null {\n return BoxModels.getBoxModel(getBoxModelsStateSlice(state), documentKey, elementKey)\n}\n\nexport function getPointer(state: State): Pointer.Point | null {\n return Pointer.getPointer(state.pointer)\n}\n\nexport function getElementImperativeHandles(\n state: State,\n): Map<string, Map<string, ElementImperativeHandle>> {\n return ElementImperativeHandles.getElementImperativeHandles(state.elementImperativeHandles)\n}\n\nexport function getElementImperativeHandlesContainingElement(\n state: State,\n element: Element,\n): Map<string, Map<string, ElementImperativeHandle>> {\n const elementImperativeHandles = getElementImperativeHandles(state)\n const filteredElementImperativeHandles = new Map<string, Map<string, ElementImperativeHandle>>()\n\n for (const [documentKey, byElementKey] of elementImperativeHandles) {\n const filteredByElementKey = new Map<string, ElementImperativeHandle>()\n\n for (const [elementKey, elementImperativeHandle] of byElementKey) {\n const handleElement = elementImperativeHandle.getDomNode()\n\n if (handleElement?.contains(element)) {\n filteredByElementKey.set(elementKey, elementImperativeHandle)\n }\n }\n\n if (filteredByElementKey.size > 0) {\n filteredElementImperativeHandles.set(documentKey, filteredByElementKey)\n }\n }\n\n return filteredElementImperativeHandles\n}\n\nexport function setupBuilderProxy(\n builderProxy: BuilderAPIProxy,\n): ThunkAction<void, State, unknown, Action> {\n return dispatch => {\n builderProxy.setup({ onHostAction: action => dispatch(action) })\n }\n}\n"],"mappings":"AAAA,SAAS,uBAA6D;AAEtE,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB,YAAY,8BAA8B;AAO1C,YAAY,mBAAmB;AAI/B,SAAS,WAAW,QAAQ,aAAa;AAEzC,MAAM,WAAW;AAAA,EACf,GAAG,cAAc;AAAA,EACjB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,SAAS,QAAQ;AAAA,EACjB,0BAA0B,yBAAyB;AACrD;AAEO,SAAS,oBAAoB;AAClC,SAAO,gBAAgB,QAAQ;AACjC;AAWA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,aAAa,OAA+B;AAC1D,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YAAY,OAAc,aAAgD;AACxF,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,WAAW;AACzE;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,SAAO,MAAM;AACf;AAEO,SAAS,eAAe,OAA8D;AAC3F,SAAO,UAAU,eAAe,uBAAuB,KAAK,CAAC;AAC/D;AAEO,SAAS,aAAa,OAA4D;AACvF,SAAO,UAAU,aAAa,uBAAuB,KAAK,CAAC;AAC7D;AAEO,SAAS,YACd,OACA,aACA,YAC2B;AAC3B,SAAO,UAAU,YAAY,uBAAuB,KAAK,GAAG,aAAa,UAAU;AACrF;AAEO,SAAS,WAAW,OAAoC;AAC7D,SAAO,QAAQ,WAAW,MAAM,OAAO;AACzC;AAEO,SAAS,4BACd,OACmD;AACnD,SAAO,yBAAyB,4BAA4B,MAAM,wBAAwB;AAC5F;AAEO,SAAS,6CACd,OACA,SACmD;AACnD,QAAM,2BAA2B,4BAA4B,KAAK;AAClE,QAAM,mCAAmC,oBAAI,IAAkD;AAE/F,aAAW,CAAC,aAAa,YAAY,KAAK,0BAA0B;AAClE,UAAM,uBAAuB,oBAAI,IAAqC;AAEtE,eAAW,CAAC,YAAY,uBAAuB,KAAK,cAAc;AAChE,YAAM,gBAAgB,wBAAwB,WAAW;AAEzD,UAAI,eAAe,SAAS,OAAO,GAAG;AACpC,6BAAqB,IAAI,YAAY,uBAAuB;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI,qBAAqB,OAAO,GAAG;AACjC,uCAAiC,IAAI,aAAa,oBAAoB;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBACd,cAC2C;AAC3C,SAAO,cAAY;AACjB,iBAAa,MAAM,EAAE,cAAc,YAAU,SAAS,MAAM,EAAE,CAAC;AAAA,EACjE;AACF;","names":[]}
@@ -0,0 +1,153 @@
1
+ import {
2
+ configureStore as configureReduxStore,
3
+ combineReducers,
4
+ compose
5
+ } from "@reduxjs/toolkit";
6
+ import { actionMiddleware, middlewareOptions, devToolsConfig } from "./toolkit";
7
+ import { BuilderActionTypes } from "./builder-api/actions";
8
+ import { HostActionTypes } from "./host-api";
9
+ import * as Breakpoints from "./modules/breakpoints";
10
+ import { readOnlyElementTreeMiddleware } from "./middleware/read-only-element-tree";
11
+ import * as ReadOnlyState from "./read-only-state";
12
+ import { makeswiftApiClientSyncMiddleware } from "./middleware/makeswift-api-client-sync";
13
+ function conditionalReadWriteMiddleware(middlewareRef) {
14
+ let readWriteActionBuffer = [];
15
+ let middlewares = null;
16
+ let enhancedDispatch = null;
17
+ return actionMiddleware(({ dispatch, getState }) => (next) => {
18
+ return (action) => {
19
+ const state = getState();
20
+ if (middlewareRef.current == null) {
21
+ if (!state.isReadOnly) {
22
+ readWriteActionBuffer.push(action);
23
+ }
24
+ return next(action);
25
+ }
26
+ if (state.isReadOnly) {
27
+ console.error("Read-write state mismatch", {
28
+ isReadOnly: state.isReadOnly,
29
+ middlewareRef: middlewareRef.current,
30
+ siteVersion: state.siteVersion
31
+ });
32
+ }
33
+ if (enhancedDispatch == null || middlewares !== middlewareRef.current) {
34
+ middlewares = middlewareRef.current;
35
+ const middlewareApi = { dispatch, getState };
36
+ enhancedDispatch = compose(...middlewares.map((mw) => mw(middlewareApi)))(next);
37
+ }
38
+ if (readWriteActionBuffer.length > 0) {
39
+ const readWriteActions = [...readWriteActionBuffer];
40
+ readWriteActionBuffer = [];
41
+ for (const bufferedAction of readWriteActions) {
42
+ enhancedDispatch(bufferedAction);
43
+ }
44
+ }
45
+ return enhancedDispatch(action);
46
+ };
47
+ });
48
+ }
49
+ function withReadWriteState(loadReadWriteState) {
50
+ return (next) => (reducer, preloadedState) => ({
51
+ ...next(reducer, preloadedState),
52
+ loadReadWriteState
53
+ });
54
+ }
55
+ function configureStore({
56
+ name,
57
+ appOrigin,
58
+ hostApiClient,
59
+ preloadedState,
60
+ breakpoints
61
+ }) {
62
+ const readWriteMiddlewareRef = {
63
+ current: null
64
+ };
65
+ let refCount = 0;
66
+ let readWriteCleanup = null;
67
+ let readWriteSetupPromise = null;
68
+ const loadReadWriteState = async () => {
69
+ if (readWriteCleanup != null) {
70
+ return;
71
+ }
72
+ if (readWriteSetupPromise != null) {
73
+ await readWriteSetupPromise;
74
+ return;
75
+ }
76
+ readWriteSetupPromise = (async () => {
77
+ const { BuilderAPIProxy } = await import("./builder-api/proxy");
78
+ const { createRootReducer, setupBuilderProxy } = await import("./read-write-state");
79
+ const { createReadWriteMiddleware } = await import("./middleware/read-write");
80
+ if (readWriteMiddlewareRef.current != null) {
81
+ return;
82
+ }
83
+ store.replaceReducer(createRootReducer());
84
+ const builderProxy = new BuilderAPIProxy({ appOrigin });
85
+ readWriteMiddlewareRef.current = createReadWriteMiddleware({ builderProxy });
86
+ const dispatch = store.dispatch;
87
+ dispatch(setupBuilderProxy(builderProxy));
88
+ readWriteCleanup = () => {
89
+ readWriteMiddlewareRef.current = null;
90
+ builderProxy.teardown();
91
+ };
92
+ })();
93
+ try {
94
+ await readWriteSetupPromise;
95
+ } finally {
96
+ readWriteSetupPromise = null;
97
+ }
98
+ };
99
+ const store = configureReduxStore({
100
+ reducer: combineReducers(ReadOnlyState.reducers),
101
+ preloadedState: {
102
+ ...preloadedState,
103
+ breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints)
104
+ },
105
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareOptions).concat([
106
+ readOnlyElementTreeMiddleware(),
107
+ makeswiftApiClientSyncMiddleware(hostApiClient),
108
+ conditionalReadWriteMiddleware(readWriteMiddlewareRef)
109
+ ]),
110
+ enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
111
+ withReadWriteState(async ({ isReadOnly }) => {
112
+ if (isReadOnly) {
113
+ if (refCount > 0) {
114
+ console.error("Read-write state mismatch", {
115
+ isReadOnly,
116
+ refCount
117
+ });
118
+ }
119
+ return () => {
120
+ };
121
+ }
122
+ await loadReadWriteState();
123
+ refCount += 1;
124
+ let didCleanup = false;
125
+ return () => {
126
+ if (didCleanup) {
127
+ return;
128
+ }
129
+ didCleanup = true;
130
+ refCount -= 1;
131
+ if (refCount === 0 && readWriteCleanup != null) {
132
+ readWriteCleanup();
133
+ readWriteCleanup = null;
134
+ }
135
+ };
136
+ })
137
+ ),
138
+ devTools: devToolsConfig({
139
+ name: `${name} (${(/* @__PURE__ */ new Date()).toISOString()})`,
140
+ actionsDenylist: [
141
+ HostActionTypes.BUILDER_POINTER_MOVE,
142
+ BuilderActionTypes.HANDLE_POINTER_MOVE,
143
+ BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE
144
+ ]
145
+ })
146
+ });
147
+ return store;
148
+ }
149
+ export {
150
+ conditionalReadWriteMiddleware,
151
+ configureStore
152
+ };
153
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/state/store.ts"],"sourcesContent":["import {\n type Middleware,\n type StoreEnhancer,\n type MiddlewareAPI,\n configureStore as configureReduxStore,\n combineReducers,\n compose,\n} from '@reduxjs/toolkit'\n\nimport { MakeswiftHostApiClient } from '../api/client'\n\nimport { actionMiddleware, middlewareOptions, devToolsConfig } from './toolkit'\nimport { BuilderActionTypes } from './builder-api/actions'\nimport { HostActionTypes } from './host-api'\n\nimport * as Breakpoints from './modules/breakpoints'\n\nimport { readOnlyElementTreeMiddleware } from './middleware/read-only-element-tree'\n\nimport { type Action } from './actions'\nimport { type State as ReadWriteState } from './read-write-state'\nimport * as ReadOnlyState from './read-only-state'\n\nimport {\n type State,\n type Dispatch,\n type ReadOnlyReducer,\n type ReadWriteDispatch,\n} from './unified-state'\nimport { makeswiftApiClientSyncMiddleware } from './middleware/makeswift-api-client-sync'\n\ntype ReadWriteMiddleware = ReturnType<\n typeof import('./middleware/read-write').createReadWriteMiddleware\n>\n\ntype ReadWriteMiddlewareRef = {\n current: ReadWriteMiddleware | null\n}\n\nexport function conditionalReadWriteMiddleware(\n middlewareRef: ReadWriteMiddlewareRef,\n): Middleware<Dispatch, State, Dispatch> {\n let readWriteActionBuffer: Action[] = []\n let middlewares: ReadWriteMiddleware | null = null\n let enhancedDispatch: Dispatch | null = null\n\n return actionMiddleware(({ dispatch, getState }) => next => {\n return (action: Action) => {\n const state = getState()\n\n if (middlewareRef.current == null) {\n if (!state.isReadOnly) {\n // because switching to the read-write state is an asynchronous operation,\n // we need to buffer all actions dispatched after the isReadOnly state is\n // set to false but before the read-write middleware is installed\n readWriteActionBuffer.push(action)\n }\n\n return next(action)\n }\n\n if (state.isReadOnly) {\n console.error('Read-write state mismatch', {\n isReadOnly: state.isReadOnly,\n middlewareRef: middlewareRef.current,\n siteVersion: state.siteVersion,\n })\n }\n\n // build and cache the enhanced dispatch chain when read-write middleware is installed\n if (enhancedDispatch == null || middlewares !== middlewareRef.current) {\n middlewares = middlewareRef.current\n\n const middlewareApi = { dispatch, getState } as MiddlewareAPI<\n ReadWriteDispatch,\n ReadWriteState\n >\n\n enhancedDispatch = compose<Dispatch>(...middlewares.map(mw => mw(middlewareApi)))(next)\n }\n\n // dispatch buffered actions, if any\n if (readWriteActionBuffer.length > 0) {\n const readWriteActions = [...readWriteActionBuffer]\n readWriteActionBuffer = []\n\n // Note that we're rerunning the actions through the entire middleware chain,\n // including the read-only middleware and the reducers, some of which have\n // already processed these actions once. This is safe to do because actions that\n // are run as part of page initialization are idempotent.\n for (const bufferedAction of readWriteActions) {\n enhancedDispatch(bufferedAction)\n }\n }\n\n return enhancedDispatch(action)\n }\n })\n}\n\ninterface ReadWriteStateMixin {\n loadReadWriteState: ({ isReadOnly }: { isReadOnly: boolean }) => Promise<() => void>\n}\n\nfunction withReadWriteState(\n loadReadWriteState: ReadWriteStateMixin['loadReadWriteState'],\n): StoreEnhancer<ReadWriteStateMixin> {\n return next => (reducer, preloadedState?) => ({\n ...next(reducer, preloadedState),\n loadReadWriteState,\n })\n}\n\nexport function configureStore({\n name,\n appOrigin,\n hostApiClient,\n preloadedState,\n breakpoints,\n}: {\n name: string\n appOrigin: string\n hostApiClient: MakeswiftHostApiClient\n preloadedState: Partial<State> | null\n breakpoints?: Breakpoints.State\n}) {\n const readWriteMiddlewareRef: ReadWriteMiddlewareRef = {\n current: null,\n }\n\n let refCount = 0\n let readWriteCleanup: (() => void) | null = null\n let readWriteSetupPromise: Promise<void> | null = null\n\n const loadReadWriteState = async (): Promise<void> => {\n if (readWriteCleanup != null) {\n return\n }\n\n if (readWriteSetupPromise != null) {\n await readWriteSetupPromise\n return\n }\n\n readWriteSetupPromise = (async () => {\n // import all the modules needed for read-write mode before proceeding with\n // the setup to avoid race conditions when `setup` is called concurrently\n // in two different page regions\n const { BuilderAPIProxy } = await import('./builder-api/proxy')\n const { createRootReducer, setupBuilderProxy } = await import('./read-write-state')\n const { createReadWriteMiddleware } = await import('./middleware/read-write')\n\n // IMPORTANT: only synchronous code after this point\n\n // with all modules imported, check if another concurrent setup already\n // initialized the read-write middleware\n if (readWriteMiddlewareRef.current != null) {\n return\n }\n\n store.replaceReducer(createRootReducer() as ReadOnlyReducer)\n\n const builderProxy = new BuilderAPIProxy({ appOrigin })\n readWriteMiddlewareRef.current = createReadWriteMiddleware({ builderProxy })\n\n const dispatch = store.dispatch as ReadWriteDispatch\n dispatch(setupBuilderProxy(builderProxy))\n\n readWriteCleanup = () => {\n readWriteMiddlewareRef.current = null\n builderProxy.teardown()\n }\n })()\n\n try {\n await readWriteSetupPromise\n } finally {\n readWriteSetupPromise = null\n }\n }\n\n const store = configureReduxStore({\n reducer: combineReducers(ReadOnlyState.reducers),\n\n preloadedState: {\n ...preloadedState,\n breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints),\n },\n\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware(middlewareOptions).concat([\n readOnlyElementTreeMiddleware(),\n makeswiftApiClientSyncMiddleware(hostApiClient),\n conditionalReadWriteMiddleware(readWriteMiddlewareRef),\n ]),\n\n enhancers: getDefaultEnhancers =>\n getDefaultEnhancers().concat(\n withReadWriteState(async ({ isReadOnly }) => {\n if (isReadOnly) {\n if (refCount > 0) {\n console.error('Read-write state mismatch', {\n isReadOnly,\n refCount,\n })\n }\n\n return () => {}\n }\n\n await loadReadWriteState()\n refCount += 1\n\n let didCleanup = false\n return () => {\n if (didCleanup) {\n return\n }\n\n didCleanup = true\n refCount -= 1\n if (refCount === 0 && readWriteCleanup != null) {\n readWriteCleanup()\n readWriteCleanup = null\n }\n }\n }),\n ),\n\n devTools: devToolsConfig({\n name: `${name} (${new Date().toISOString()})`,\n actionsDenylist: [\n HostActionTypes.BUILDER_POINTER_MOVE,\n BuilderActionTypes.HANDLE_POINTER_MOVE,\n BuilderActionTypes.ELEMENT_FROM_POINT_CHANGE,\n ],\n }),\n })\n\n return store\n}\n\nexport type Store = ReturnType<typeof configureStore>\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=unified-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -13,8 +13,7 @@ import {
13
13
  FrameworkContext,
14
14
  DefaultHead,
15
15
  DefaultHeadSnippet,
16
- DefaultImage,
17
- versionedFetch
16
+ DefaultImage
18
17
  } from "../runtimes/react/components/framework-context";
19
18
  import { MakeswiftComponent } from "../runtimes/react/components/MakeswiftComponent";
20
19
  import { Page } from "../runtimes/react/components/page";
@@ -53,7 +52,6 @@ export {
53
52
  secondsUntilSiteVersionExpiration,
54
53
  serializeSiteVersion,
55
54
  styleTagHtml,
56
- toApiRequest,
57
- versionedFetch
55
+ toApiRequest
58
56
  };
59
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/unstable-framework-support/index.ts"],"sourcesContent":["export {\n type SiteVersion,\n serializeSiteVersion,\n deserializeSiteVersion,\n secondsUntilSiteVersionExpiration,\n} from '../api/site-version'\n\nexport { type ApiHandlerUserConfig, createApiHandler } from '../api-handler'\nexport { SET_COOKIE_HEADER, cookieSettingOptions } from '../api-handler/cookies'\nexport { REDIRECT_SEARCH_PARAM, redirectLiveHandler } from '../api-handler/handlers/redirect-live'\nexport { toApiRequest, pipeResponseTo } from '../api-handler/node-request-response'\nexport { MAKESWIFT_SITE_VERSION_COOKIE, SearchParams } from '../api-handler/preview'\n\nexport { MakeswiftClient } from '../client'\n\nexport {\n FrameworkContext,\n DefaultHead,\n DefaultHeadSnippet,\n DefaultImage,\n versionedFetch,\n} from '../runtimes/react/components/framework-context'\n\nexport { MakeswiftComponent } from '../runtimes/react/components/MakeswiftComponent'\nexport { Page } from '../runtimes/react/components/page'\nexport { RuntimeProvider } from '../runtimes/react/components/RuntimeProvider'\nexport { Slot } from '../runtimes/react/components/Slot'\n\nexport {\n createRootStyleCache,\n RootStyleRegistry,\n styleTagHtml,\n StyleTagSSR,\n type RootStyleProps,\n} from '../runtimes/react/root-style-registry'\n\nexport { ReactRuntime } from '../runtimes/react/react-runtime'\n"],"mappings":"AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAoC,wBAAwB;AAC5D,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,uBAAuB,2BAA2B;AAC3D,SAAS,cAAc,sBAAsB;AAC7C,SAAS,+BAA+B,oBAAoB;AAE5D,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,0BAA0B;AACnC,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,SAAS,YAAY;AAErB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,oBAAoB;","names":[]}
1
+ {"version":3,"sources":["../../../src/unstable-framework-support/index.ts"],"sourcesContent":["export {\n type SiteVersion,\n serializeSiteVersion,\n deserializeSiteVersion,\n secondsUntilSiteVersionExpiration,\n} from '../api/site-version'\n\nexport { type ApiHandlerUserConfig, createApiHandler } from '../api-handler'\nexport { SET_COOKIE_HEADER, cookieSettingOptions } from '../api-handler/cookies'\nexport { REDIRECT_SEARCH_PARAM, redirectLiveHandler } from '../api-handler/handlers/redirect-live'\nexport { toApiRequest, pipeResponseTo } from '../api-handler/node-request-response'\nexport { MAKESWIFT_SITE_VERSION_COOKIE, SearchParams } from '../api-handler/preview'\n\nexport { MakeswiftClient } from '../client'\n\nexport { type BreakpointsInput as Breakpoints } from '../state/modules/breakpoints'\n\nexport {\n FrameworkContext,\n DefaultHead,\n DefaultHeadSnippet,\n DefaultImage,\n} from '../runtimes/react/components/framework-context'\n\nexport { MakeswiftComponent } from '../runtimes/react/components/MakeswiftComponent'\nexport { Page } from '../runtimes/react/components/page'\nexport { RuntimeProvider } from '../runtimes/react/components/RuntimeProvider'\nexport { Slot } from '../runtimes/react/components/Slot'\n\nexport {\n createRootStyleCache,\n RootStyleRegistry,\n styleTagHtml,\n StyleTagSSR,\n type RootStyleProps,\n} from '../runtimes/react/root-style-registry'\n\nexport { ReactRuntime } from '../runtimes/react/react-runtime'\n"],"mappings":"AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAoC,wBAAwB;AAC5D,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,uBAAuB,2BAA2B;AAC3D,SAAS,cAAc,sBAAsB;AAC7C,SAAS,+BAA+B,oBAAoB;AAE5D,SAAS,uBAAuB;AAIhC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,0BAA0B;AACnC,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,SAAS,YAAY;AAErB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,oBAAoB;","names":[]}
@@ -0,0 +1,15 @@
1
+ function createDeferred() {
2
+ let resolve = () => {
3
+ };
4
+ let reject = () => {
5
+ };
6
+ const promise = new Promise((resolveFn, rejectFn) => {
7
+ resolve = resolveFn;
8
+ reject = rejectFn;
9
+ });
10
+ return { promise, resolve, reject };
11
+ }
12
+ export {
13
+ createDeferred
14
+ };
15
+ //# sourceMappingURL=deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/deferred.ts"],"sourcesContent":["export type Deferred<T> = {\n promise: Promise<T>\n resolve: (value: T) => void\n reject: (reason?: unknown) => void\n}\n\nexport function createDeferred<T>(): Deferred<T> {\n let resolve: (value: T) => void = () => {}\n let reject: (reason?: unknown) => void = () => {}\n\n const promise = new Promise<T>((resolveFn, rejectFn) => {\n resolve = resolveFn\n reject = rejectFn\n })\n\n return { promise, resolve, reject }\n}\n"],"mappings":"AAMO,SAAS,iBAAiC;AAC/C,MAAI,UAA8B,MAAM;AAAA,EAAC;AACzC,MAAI,SAAqC,MAAM;AAAA,EAAC;AAEhD,QAAM,UAAU,IAAI,QAAW,CAAC,WAAW,aAAa;AACtD,cAAU;AACV,aAAS;AAAA,EACX,CAAC;AAED,SAAO,EAAE,SAAS,SAAS,OAAO;AACpC;","names":[]}
@@ -30,11 +30,10 @@ export declare class MakeswiftHostApiClient {
30
30
  makeswiftApiClient: MakeswiftApiClient.Store;
31
31
  subscribe: MakeswiftApiClient.Store['subscribe'];
32
32
  fetch: MakeswiftApiClient.HttpFetch;
33
- constructor({ uri, fetch, cacheData, locale, }: {
33
+ constructor({ uri, fetch, cacheData, }: {
34
34
  uri: string;
35
35
  fetch: MakeswiftApiClient.HttpFetch;
36
36
  cacheData?: CacheData;
37
- locale?: string;
38
37
  });
39
38
  readSwatch(swatchId: string): Swatch | null;
40
39
  fetchSwatch(swatchId: string): Promise<Swatch | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export declare const sitePublishedWebhookPayloadSchema: z.ZodObject<{
34
34
  };
35
35
  }>;
36
36
  }, "strip", z.ZodTypeAny, {
37
+ type: "site.published";
37
38
  data: {
38
39
  at: number;
39
40
  siteId: string;
@@ -42,8 +43,8 @@ export declare const sitePublishedWebhookPayloadSchema: z.ZodObject<{
42
43
  from: string | null;
43
44
  };
44
45
  };
45
- type: "site.published";
46
46
  }, {
47
+ type: "site.published";
47
48
  data: {
48
49
  at: number;
49
50
  siteId: string;
@@ -52,7 +53,6 @@ export declare const sitePublishedWebhookPayloadSchema: z.ZodObject<{
52
53
  from: string | null;
53
54
  };
54
55
  };
55
- type: "site.published";
56
56
  }>;
57
57
  export type SitePublishedWebhookPayload = z.infer<typeof sitePublishedWebhookPayloadSchema>;
58
58
  declare const webhookPayloadSchema: z.ZodObject<{
@@ -86,6 +86,7 @@ declare const webhookPayloadSchema: z.ZodObject<{
86
86
  };
87
87
  }>;
88
88
  }, "strip", z.ZodTypeAny, {
89
+ type: "site.published";
89
90
  data: {
90
91
  at: number;
91
92
  siteId: string;
@@ -94,8 +95,8 @@ declare const webhookPayloadSchema: z.ZodObject<{
94
95
  from: string | null;
95
96
  };
96
97
  };
97
- type: "site.published";
98
98
  }, {
99
+ type: "site.published";
99
100
  data: {
100
101
  at: number;
101
102
  siteId: string;
@@ -104,7 +105,6 @@ declare const webhookPayloadSchema: z.ZodObject<{
104
105
  from: string | null;
105
106
  };
106
107
  };
107
- type: "site.published";
108
108
  }>;
109
109
  export type WebhookPayloadSchema = z.infer<typeof webhookPayloadSchema>;
110
110
  type WebhookSuccessBody = {
@@ -17,8 +17,6 @@ type Events = {
17
17
  };
18
18
  export type ApiHandlerUserConfig = {
19
19
  runtime: ReactRuntimeCore;
20
- appOrigin?: string;
21
- apiOrigin?: string;
22
20
  getFonts?: GetFonts;
23
21
  events?: Events;
24
22
  };
@@ -31,5 +29,5 @@ export type ApiHandlerInternalConfig = {
31
29
  type ApiHandlerConfig = ApiHandlerUserConfig & ApiHandlerInternalConfig;
32
30
  type ResponseType = Awaited<ReturnType<typeof redirectLiveHandler> | ReturnType<typeof elementTreeHandler> | ReturnType<typeof fontsHandler> | ReturnType<typeof manifestHandler> | ReturnType<typeof mergeTranslatedDataHandler> | ReturnType<typeof revalidateHandler> | ReturnType<typeof translatableDataHandler> | ReturnType<typeof webhookHandler>> | ApiResponse<APIResource> | ApiResponse<ErrorResponseBody> | Response;
33
31
  type ApiHandler = (req: ApiRequest, route: string) => Promise<ResponseType>;
34
- export declare function createApiHandler(apiKey: string, { runtime, appOrigin, getFonts, events, client, manifest, revalidationHandler, previewCookieNames, }: ApiHandlerConfig): ApiHandler;
32
+ export declare function createApiHandler(apiKey: string, { runtime, getFonts, events, client, manifest, revalidationHandler, previewCookieNames, }: ApiHandlerConfig): ApiHandler;
35
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api-handler/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,WAAW,EAEZ,MAAM,oBAAoB,CAAA;AAI3B,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AAE9B,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,gBAAgB,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B,CAAA;AAED,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAA;AAEvE,KAAK,YAAY,GACb,OAAO,CACH,UAAU,CAAC,OAAO,mBAAmB,CAAC,GACtC,UAAU,CAAC,OAAO,kBAAkB,CAAC,GACrC,UAAU,CAAC,OAAO,YAAY,CAAC,GAC/B,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,0BAA0B,CAAC,GAC7C,UAAU,CAAC,OAAO,iBAAiB,CAAC,GACpC,UAAU,CAAC,OAAO,uBAAuB,CAAC,GAC1C,UAAU,CAAC,OAAO,cAAc,CAAC,CACpC,GACD,WAAW,CAAC,WAAW,CAAC,GACxB,WAAW,CAAC,iBAAiB,CAAC,GAC9B,QAAQ,CAAA;AAEZ,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;AAE3E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,EACE,OAAO,EACP,SAAuC,EACvC,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,GACnB,EAAE,gBAAgB,GAClB,UAAU,CA6FZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api-handler/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,WAAW,EAEZ,MAAM,oBAAoB,CAAA;AAI3B,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AAE9B,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B,CAAA;AAED,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAA;AAEvE,KAAK,YAAY,GACb,OAAO,CACH,UAAU,CAAC,OAAO,mBAAmB,CAAC,GACtC,UAAU,CAAC,OAAO,kBAAkB,CAAC,GACrC,UAAU,CAAC,OAAO,YAAY,CAAC,GAC/B,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,0BAA0B,CAAC,GAC7C,UAAU,CAAC,OAAO,iBAAiB,CAAC,GACpC,UAAU,CAAC,OAAO,uBAAuB,CAAC,GAC1C,UAAU,CAAC,OAAO,cAAc,CAAC,CACpC,GACD,WAAW,CAAC,WAAW,CAAC,GACxB,WAAW,CAAC,iBAAiB,CAAC,GAC9B,QAAQ,CAAA;AAEZ,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;AAE3E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,EACE,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,GACnB,EAAE,gBAAgB,GAClB,UAAU,CA6FZ"}
@@ -33,8 +33,8 @@ declare const makeswiftPageResultSchema: z.ZodObject<{
33
33
  locale: string;
34
34
  }>, "many">;
35
35
  }, "strip", z.ZodTypeAny, {
36
- id: string;
37
36
  path: string;
37
+ id: string;
38
38
  locale: string;
39
39
  description: string | null;
40
40
  title: string | null;
@@ -52,8 +52,8 @@ declare const makeswiftPageResultSchema: z.ZodObject<{
52
52
  locale: string;
53
53
  }[];
54
54
  }, {
55
- id: string;
56
55
  path: string;
56
+ id: string;
57
57
  locale: string;
58
58
  description: string | null;
59
59
  title: string | null;
@@ -98,8 +98,8 @@ declare const makeswiftGetPagesResultAPISchema: z.ZodObject<{
98
98
  locale: string;
99
99
  }>, "many">;
100
100
  }, "strip", z.ZodTypeAny, {
101
- id: string;
102
101
  path: string;
102
+ id: string;
103
103
  locale: string;
104
104
  description: string | null;
105
105
  title: string | null;
@@ -117,8 +117,8 @@ declare const makeswiftGetPagesResultAPISchema: z.ZodObject<{
117
117
  locale: string;
118
118
  }[];
119
119
  }, {
120
- id: string;
121
120
  path: string;
121
+ id: string;
122
122
  locale: string;
123
123
  description: string | null;
124
124
  title: string | null;
@@ -139,8 +139,8 @@ declare const makeswiftGetPagesResultAPISchema: z.ZodObject<{
139
139
  hasMore: z.ZodBoolean;
140
140
  }, "strip", z.ZodTypeAny, {
141
141
  data: {
142
- id: string;
143
142
  path: string;
143
+ id: string;
144
144
  locale: string;
145
145
  description: string | null;
146
146
  title: string | null;
@@ -161,8 +161,8 @@ declare const makeswiftGetPagesResultAPISchema: z.ZodObject<{
161
161
  hasMore: boolean;
162
162
  }, {
163
163
  data: {
164
- id: string;
165
164
  path: string;
165
+ id: string;
166
166
  locale: string;
167
167
  description: string | null;
168
168
  title: string | null;
@@ -564,7 +564,6 @@ type LocalizedPage = {
564
564
  seo: Seo;
565
565
  };
566
566
  type MakeswiftConfig = {
567
- apiOrigin?: string;
568
567
  runtime: ReactRuntimeCore;
569
568
  };
570
569
  export type Sitemap = {
@@ -611,8 +610,8 @@ export declare class MakeswiftClient {
611
610
  private graphqlClient;
612
611
  private runtime;
613
612
  readonly apiKey: string;
614
- readonly apiOrigin: URL;
615
- constructor(apiKey: string, { apiOrigin, runtime }: MakeswiftConfig);
613
+ constructor(apiKey: string, { runtime }: MakeswiftConfig);
614
+ get apiOrigin(): string;
616
615
  private fetch;
617
616
  /**
618
617
  * Override this method to provide additional fetch options, e.g. revalidation, cache tags, etc.
@@ -631,8 +630,8 @@ export declare class MakeswiftClient {
631
630
  locale?: string | undefined;
632
631
  }) | undefined) => Promise<{
633
632
  data: {
634
- id: string;
635
633
  path: string;
634
+ id: string;
636
635
  locale: string;
637
636
  description: string | null;
638
637
  title: string | null;
@@ -652,8 +651,8 @@ export declare class MakeswiftClient {
652
651
  }[];
653
652
  hasMore: boolean;
654
653
  }> & import("../utils/async-iterable").AsyncIterableExt<{
655
- id: string;
656
654
  path: string;
655
+ id: string;
657
656
  locale: string;
658
657
  description: string | null;
659
658
  title: string | null;