@makeswift/runtime 0.22.3 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/{graphql/fragments.js → fragments.js} +1 -1
- package/dist/cjs/api/fragments.js.map +1 -0
- package/dist/cjs/api/index.js +4 -4
- package/dist/cjs/api/index.js.map +1 -1
- package/dist/cjs/api/react.js +46 -46
- package/dist/cjs/api/react.js.map +1 -1
- package/dist/cjs/api/{graphql/types.js → types.js} +9 -4
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/builder/serialization/control-serialization.js +13 -9
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js +2 -2
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/builtin/Slot/Slot.js +33 -0
- package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -0
- package/dist/cjs/components/builtin/Slot/index.js +35 -0
- package/dist/cjs/components/builtin/Slot/index.js.map +1 -0
- package/dist/cjs/components/builtin/Slot/register.js +56 -0
- package/dist/cjs/components/builtin/Slot/register.js.map +1 -0
- package/dist/cjs/components/builtin/constants.js +1 -0
- package/dist/cjs/components/builtin/constants.js.map +1 -1
- package/dist/cjs/components/builtin/index.js +3 -0
- package/dist/cjs/components/builtin/index.js.map +1 -1
- package/dist/cjs/components/builtin/register.js +9 -6
- package/dist/cjs/components/builtin/register.js.map +1 -1
- package/dist/cjs/components/hooks/usePageSnippets.js +2 -2
- package/dist/cjs/components/hooks/usePageSnippets.js.map +1 -1
- package/dist/cjs/components/page/Page.js +2 -3
- package/dist/cjs/components/page/Page.js.map +1 -1
- package/dist/cjs/components/page/PageHead.js +2 -2
- package/dist/cjs/components/page/PageHead.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/index.js +5 -3
- package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/cjs/controls/index.js +10 -0
- package/dist/cjs/controls/index.js.map +1 -1
- package/dist/cjs/core/index.js +4 -2
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jest-setup.js +2 -1
- package/dist/cjs/jest-setup.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +4 -2
- package/dist/cjs/next/api-handler/handlers/manifest.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/webhook/index.js +55 -0
- package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js +36 -0
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/webhook/types.js +46 -0
- package/dist/cjs/next/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/cjs/next/api-handler/index.js +7 -7
- package/dist/cjs/next/api-handler/index.js.map +1 -1
- package/dist/cjs/next/client.js +136 -18
- package/dist/cjs/next/client.js.map +1 -1
- package/dist/cjs/next/components/MakeswiftComponent.js +50 -0
- package/dist/cjs/next/components/MakeswiftComponent.js.map +1 -0
- package/dist/cjs/next/components/Slot.js +50 -0
- package/dist/cjs/next/components/Slot.js.map +1 -0
- package/dist/cjs/next/components/SlotProvider.js +41 -0
- package/dist/cjs/next/components/SlotProvider.js.map +1 -0
- package/dist/cjs/next/components/page.js +20 -18
- package/dist/cjs/next/components/page.js.map +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +6 -5
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +6 -6
- package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
- package/dist/cjs/next/document.js +1 -1
- package/dist/cjs/next/document.js.map +1 -1
- package/dist/cjs/next/draft-mode/draft-mode-script.js +17 -3
- package/dist/cjs/next/draft-mode/draft-mode-script.js.map +1 -1
- package/dist/cjs/next/index.js +10 -4
- package/dist/cjs/next/index.js.map +1 -1
- package/dist/cjs/next/preview-mode.js +4 -1
- package/dist/cjs/next/preview-mode.js.map +1 -1
- package/dist/cjs/prop-controllers/introspection.js +1 -1
- package/dist/cjs/prop-controllers/introspection.js.map +1 -1
- package/dist/cjs/react.js +2 -4
- package/dist/cjs/react.js.map +1 -1
- package/dist/cjs/runtimes/react/components/Document.js +3 -2
- package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
- package/dist/cjs/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +9 -9
- package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -0
- package/dist/cjs/runtimes/react/components/Element.js +10 -22
- package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementReference.js +3 -1
- package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementRegistration.js +55 -0
- package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -0
- package/dist/cjs/runtimes/react/components/LiveProvider.js +10 -8
- package/dist/cjs/runtimes/react/components/LiveProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/PreviewProvider.js +9 -22
- package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js +23 -5
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/group.js +45 -0
- package/dist/cjs/runtimes/react/controls/group.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js +20 -18
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js +1 -2
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-document-context.js +49 -0
- package/dist/cjs/runtimes/react/hooks/use-document-context.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
- package/dist/cjs/{next/context/react-runtime.js → runtimes/react/hooks/use-react-runtime.js} +12 -16
- package/dist/cjs/runtimes/react/hooks/use-react-runtime.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-register-document.js +42 -0
- package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +6 -6
- package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-store.js +6 -3
- package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js +38 -0
- package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
- package/dist/cjs/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +4 -4
- package/dist/cjs/runtimes/react/host-api-client.js.map +1 -0
- package/dist/cjs/runtimes/react/index.js +8 -8
- package/dist/cjs/runtimes/react/index.js.map +1 -1
- package/dist/cjs/runtimes/react/react-runtime.js +0 -24
- package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
- package/dist/cjs/runtimes/react/runtime-core.js +2 -17
- package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
- package/dist/cjs/state/actions.js +33 -16
- package/dist/cjs/state/actions.js.map +1 -1
- package/dist/cjs/state/makeswift-api-client.js +98 -18
- package/dist/cjs/state/makeswift-api-client.js.map +1 -1
- package/dist/cjs/{runtimes/react/hooks/use-document-key.js → state/mixins/setup-teardown.js} +12 -13
- package/dist/cjs/state/mixins/setup-teardown.js.map +1 -0
- package/dist/cjs/state/modules/api-resources.js +62 -24
- package/dist/cjs/state/modules/api-resources.js.map +1 -1
- package/dist/cjs/state/modules/element-trees.js +14 -7
- package/dist/cjs/state/modules/element-trees.js.map +1 -1
- package/dist/cjs/state/modules/localized-resources-map.js +80 -0
- package/dist/cjs/state/modules/localized-resources-map.js.map +1 -0
- package/dist/cjs/state/modules/read-only-documents.js +16 -13
- package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
- package/dist/cjs/state/modules/read-write-documents.js +9 -8
- package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
- package/dist/cjs/state/react-builder-preview.js +18 -61
- package/dist/cjs/state/react-builder-preview.js.map +1 -1
- package/dist/cjs/state/react-page.js +64 -8
- package/dist/cjs/state/react-page.js.map +1 -1
- package/dist/cjs/{api/resource-types.js → utils/branded.js} +3 -10
- package/dist/cjs/utils/branded.js.map +1 -0
- package/dist/cjs/utils/canonicalize.js +39 -0
- package/dist/cjs/utils/canonicalize.js.map +1 -0
- package/dist/cjs/utils/deterministic-uuid.js +35 -0
- package/dist/cjs/utils/deterministic-uuid.js.map +1 -0
- package/dist/cjs/utils/is-server.js +31 -0
- package/dist/cjs/utils/is-server.js.map +1 -0
- package/dist/cjs/utils/serializeState.js +42 -0
- package/dist/cjs/utils/serializeState.js.map +1 -0
- package/dist/cjs/utils/tests/element-data-test-test.js +10 -9
- package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/esm/api/fragments.js +6 -0
- package/dist/esm/api/fragments.js.map +1 -0
- package/dist/esm/api/index.js +2 -2
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/react.js +45 -46
- package/dist/esm/api/react.js.map +1 -1
- package/dist/esm/api/{graphql/types.js → types.js} +7 -3
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/builder/serialization/control-serialization.js +19 -11
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js +1 -1
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/builtin/Slot/Slot.js +13 -0
- package/dist/esm/components/builtin/Slot/Slot.js.map +1 -0
- package/dist/esm/components/builtin/Slot/index.js +5 -0
- package/dist/esm/components/builtin/Slot/index.js.map +1 -0
- package/dist/esm/components/builtin/Slot/register.js +22 -0
- package/dist/esm/components/builtin/Slot/register.js.map +1 -0
- package/dist/esm/components/builtin/constants.js +1 -0
- package/dist/esm/components/builtin/constants.js.map +1 -1
- package/dist/esm/components/builtin/index.js +8 -6
- package/dist/esm/components/builtin/index.js.map +1 -1
- package/dist/esm/components/builtin/register.js +3 -0
- package/dist/esm/components/builtin/register.js.map +1 -1
- package/dist/esm/components/hooks/usePageSnippets.js +1 -1
- package/dist/esm/components/hooks/usePageSnippets.js.map +1 -1
- package/dist/esm/components/page/Page.js +3 -4
- package/dist/esm/components/page/Page.js.map +1 -1
- package/dist/esm/components/page/PageHead.js +1 -1
- package/dist/esm/components/page/PageHead.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/index.js +5 -3
- package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/esm/controls/index.js +17 -7
- package/dist/esm/controls/index.js.map +1 -1
- package/dist/esm/core/index.js +4 -2
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jest-setup.js +2 -1
- package/dist/esm/jest-setup.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +4 -2
- package/dist/esm/next/api-handler/handlers/manifest.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/webhook/index.js +38 -0
- package/dist/esm/next/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js +11 -0
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/webhook/types.js +21 -0
- package/dist/esm/next/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/esm/next/api-handler/index.js +7 -7
- package/dist/esm/next/api-handler/index.js.map +1 -1
- package/dist/esm/next/client.js +133 -17
- package/dist/esm/next/client.js.map +1 -1
- package/dist/esm/next/components/MakeswiftComponent.js +26 -0
- package/dist/esm/next/components/MakeswiftComponent.js.map +1 -0
- package/dist/esm/next/components/Slot.js +16 -0
- package/dist/esm/next/components/Slot.js.map +1 -0
- package/dist/esm/next/components/SlotProvider.js +17 -0
- package/dist/esm/next/components/SlotProvider.js.map +1 -0
- package/dist/esm/next/components/page.js +24 -20
- package/dist/esm/next/components/page.js.map +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +4 -3
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -3
- package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
- package/dist/esm/next/document.js +1 -1
- package/dist/esm/next/document.js.map +1 -1
- package/dist/esm/next/draft-mode/draft-mode-script.js +7 -3
- package/dist/esm/next/draft-mode/draft-mode-script.js.map +1 -1
- package/dist/esm/next/index.js +6 -2
- package/dist/esm/next/index.js.map +1 -1
- package/dist/esm/next/preview-mode.js +4 -1
- package/dist/esm/next/preview-mode.js.map +1 -1
- package/dist/esm/prop-controllers/introspection.js +2 -2
- package/dist/esm/prop-controllers/introspection.js.map +1 -1
- package/dist/esm/react.js +2 -4
- package/dist/esm/react.js.map +1 -1
- package/dist/esm/runtimes/react/components/Document.js +3 -2
- package/dist/esm/runtimes/react/components/Document.js.map +1 -1
- package/dist/esm/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +7 -7
- package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -0
- package/dist/esm/runtimes/react/components/Element.js +11 -23
- package/dist/esm/runtimes/react/components/Element.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementReference.js +3 -1
- package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementRegistration.js +31 -0
- package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -0
- package/dist/esm/runtimes/react/components/LiveProvider.js +9 -7
- package/dist/esm/runtimes/react/components/LiveProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/PreviewProvider.js +8 -21
- package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/RuntimeProvider.js +23 -5
- package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/esm/runtimes/react/controls/group.js +23 -0
- package/dist/esm/runtimes/react/controls/group.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/makeswift-api.js +11 -9
- package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-cache-data.js +11 -0
- package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-dispatch.js +2 -3
- package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-document-context.js +22 -0
- package/dist/esm/runtimes/react/hooks/use-document-context.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-react-runtime.js +15 -0
- package/dist/esm/runtimes/react/hooks/use-react-runtime.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-register-document.js +18 -0
- package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +5 -5
- package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-store.js +6 -3
- package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js +14 -0
- package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
- package/dist/esm/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +1 -1
- package/dist/esm/runtimes/react/host-api-client.js.map +1 -0
- package/dist/esm/runtimes/react/index.js +5 -5
- package/dist/esm/runtimes/react/index.js.map +1 -1
- package/dist/esm/runtimes/react/react-runtime.js +0 -24
- package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
- package/dist/esm/runtimes/react/runtime-core.js +2 -17
- package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
- package/dist/esm/state/actions.js +29 -14
- package/dist/esm/state/actions.js.map +1 -1
- package/dist/esm/state/makeswift-api-client.js +103 -18
- package/dist/esm/state/makeswift-api-client.js.map +1 -1
- package/dist/esm/state/mixins/setup-teardown.js +11 -0
- package/dist/esm/state/mixins/setup-teardown.js.map +1 -0
- package/dist/esm/state/modules/api-resources.js +66 -25
- package/dist/esm/state/modules/api-resources.js.map +1 -1
- package/dist/esm/state/modules/element-trees.js +14 -7
- package/dist/esm/state/modules/element-trees.js.map +1 -1
- package/dist/esm/state/modules/localized-resources-map.js +53 -0
- package/dist/esm/state/modules/localized-resources-map.js.map +1 -0
- package/dist/esm/state/modules/read-only-documents.js +13 -12
- package/dist/esm/state/modules/read-only-documents.js.map +1 -1
- package/dist/esm/state/modules/read-write-documents.js +9 -8
- package/dist/esm/state/modules/read-write-documents.js.map +1 -1
- package/dist/esm/state/react-builder-preview.js +18 -64
- package/dist/esm/state/react-builder-preview.js.map +1 -1
- package/dist/esm/state/react-page.js +73 -9
- package/dist/esm/state/react-page.js.map +1 -1
- package/dist/esm/utils/branded.js +1 -0
- package/dist/esm/utils/branded.js.map +1 -0
- package/dist/esm/utils/canonicalize.js +15 -0
- package/dist/esm/utils/canonicalize.js.map +1 -0
- package/dist/esm/utils/deterministic-uuid.js +11 -0
- package/dist/esm/utils/deterministic-uuid.js.map +1 -0
- package/dist/esm/utils/is-server.js +7 -0
- package/dist/esm/utils/is-server.js.map +1 -0
- package/dist/esm/utils/serializeState.js +18 -0
- package/dist/esm/utils/serializeState.js.map +1 -0
- package/dist/esm/utils/tests/element-data-test-test.js +10 -9
- package/dist/esm/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/types/api/{graphql/fragments.d.ts → fragments.d.ts} +1 -1
- package/dist/types/api/fragments.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +2 -2
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/react.d.ts +28 -22
- package/dist/types/api/react.d.ts.map +1 -1
- package/dist/types/api/types.d.ts +18 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Slot/Slot.d.ts +8 -0
- package/dist/types/components/builtin/Slot/Slot.d.ts.map +1 -0
- package/dist/types/components/builtin/Slot/index.d.ts +2 -0
- package/dist/types/components/builtin/Slot/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Slot/register.d.ts +3 -0
- package/dist/types/components/builtin/Slot/register.d.ts.map +1 -0
- package/dist/types/components/builtin/constants.d.ts +1 -0
- package/dist/types/components/builtin/constants.d.ts.map +1 -1
- package/dist/types/components/builtin/index.d.ts +1 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -1
- package/dist/types/components/builtin/register.d.ts.map +1 -1
- package/dist/types/components/hooks/usePageSnippets.d.ts +1 -1
- package/dist/types/components/hooks/usePageSnippets.d.ts.map +1 -1
- package/dist/types/components/page/Page.d.ts +4 -3
- package/dist/types/components/page/Page.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
- package/dist/types/controls/index.d.ts +1 -1
- package/dist/types/controls/index.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +4 -4
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/locale.d.ts +1 -1
- package/dist/types/next/api-handler/handlers/manifest.d.ts +1 -0
- package/dist/types/next/api-handler/handlers/manifest.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts +21 -0
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts +4 -0
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts +121 -0
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts.map +1 -0
- package/dist/types/next/api-handler/index.d.ts +4 -3
- package/dist/types/next/api-handler/index.d.ts.map +1 -1
- package/dist/types/next/client.d.ts +356 -50
- package/dist/types/next/client.d.ts.map +1 -1
- package/dist/types/next/components/MakeswiftComponent.d.ts +10 -0
- package/dist/types/next/components/MakeswiftComponent.d.ts.map +1 -0
- package/dist/types/next/components/Slot.d.ts +10 -0
- package/dist/types/next/components/Slot.d.ts.map +1 -0
- package/dist/types/next/components/SlotProvider.d.ts +12 -0
- package/dist/types/next/components/SlotProvider.d.ts.map +1 -0
- package/dist/types/next/components/page.d.ts +1 -1
- package/dist/types/next/components/page.d.ts.map +1 -1
- package/dist/types/next/components/tests/controls/font-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/font-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/group-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/group-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -2
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
- package/dist/types/next/components/tests/global-element-rendering.test.d.ts +3 -0
- package/dist/types/next/components/tests/global-element-rendering.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts +3 -0
- package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts.map +1 -0
- package/dist/types/next/document.d.ts +5 -1
- package/dist/types/next/document.d.ts.map +1 -1
- package/dist/types/next/draft-mode/draft-mode-script.d.ts.map +1 -1
- package/dist/types/next/index.d.ts +3 -1
- package/dist/types/next/index.d.ts.map +1 -1
- package/dist/types/next/preview-mode.d.ts.map +1 -1
- package/dist/types/next/tests/client.get-component-snapshot.test.d.ts +2 -0
- package/dist/types/next/tests/client.get-component-snapshot.test.d.ts.map +1 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts +9 -0
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/Element.d.ts +3 -3
- package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementRegistration.d.ts +10 -0
- package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/LiveProvider.d.ts +2 -10
- package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts +2 -10
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +7 -11
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/group.d.ts +11 -0
- package/dist/types/runtimes/react/controls/group.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts +2 -3
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-document-context.d.ts +11 -0
- package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
- package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -0
- package/dist/types/{next/context/makeswift-host-api-client.d.ts → runtimes/react/host-api-client.d.ts} +1 -1
- package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -0
- package/dist/types/runtimes/react/index.d.ts +3 -3
- package/dist/types/runtimes/react/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/react-runtime.d.ts +0 -9
- package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
- package/dist/types/runtimes/react/runtime-core.d.ts +0 -5
- package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
- package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
- package/dist/types/state/actions.d.ts +45 -13
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/makeswift-api-client.d.ts +18 -11
- package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
- package/dist/types/state/mixins/setup-teardown.d.ts +7 -0
- package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -0
- package/dist/types/state/modules/__tests__/api-resources.test.d.ts +2 -0
- package/dist/types/state/modules/__tests__/api-resources.test.d.ts.map +1 -0
- package/dist/types/state/modules/__tests__/fixtures/element-trees.d.ts +1 -1
- package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts +2 -0
- package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts.map +1 -0
- package/dist/types/state/modules/api-resources.d.ts +8 -5
- package/dist/types/state/modules/api-resources.d.ts.map +1 -1
- package/dist/types/state/modules/element-trees.d.ts +2 -1
- package/dist/types/state/modules/element-trees.d.ts.map +1 -1
- package/dist/types/state/modules/localized-resources-map.d.ts +13 -0
- package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -0
- package/dist/types/state/modules/read-only-documents.d.ts +22 -5
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/state/modules/read-write-documents.d.ts +2 -2
- package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts +5 -11
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +8 -6
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/utils/__tests__/serializeState.test.d.ts +2 -0
- package/dist/types/utils/__tests__/serializeState.test.d.ts.map +1 -0
- package/dist/types/utils/branded.d.ts +7 -0
- package/dist/types/utils/branded.d.ts.map +1 -0
- package/dist/types/utils/canonicalize.d.ts +7 -0
- package/dist/types/utils/canonicalize.d.ts.map +1 -0
- package/dist/types/utils/canonicalize.test.d.ts +2 -0
- package/dist/types/utils/canonicalize.test.d.ts.map +1 -0
- package/dist/types/utils/deterministic-uuid.d.ts +2 -0
- package/dist/types/utils/deterministic-uuid.d.ts.map +1 -0
- package/dist/types/utils/is-server.d.ts +2 -0
- package/dist/types/utils/is-server.d.ts.map +1 -0
- package/dist/types/utils/serializeState.d.ts +3 -0
- package/dist/types/utils/serializeState.d.ts.map +1 -0
- package/dist/types/utils/tests/element-data-test-test.d.ts +6 -3
- package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/cjs/api/graphql/fragments.js.map +0 -1
- package/dist/cjs/api/graphql/types.js.map +0 -1
- package/dist/cjs/api/resource-types.js.map +0 -1
- package/dist/cjs/next/context/makeswift-host-api-client.js.map +0 -1
- package/dist/cjs/next/context/react-runtime.js.map +0 -1
- package/dist/cjs/runtimes/react/components/DocumentReference.js.map +0 -1
- package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +0 -1
- package/dist/esm/api/graphql/fragments.js +0 -6
- package/dist/esm/api/graphql/fragments.js.map +0 -1
- package/dist/esm/api/graphql/types.js.map +0 -1
- package/dist/esm/api/resource-types.js +0 -8
- package/dist/esm/api/resource-types.js.map +0 -1
- package/dist/esm/next/context/makeswift-host-api-client.js.map +0 -1
- package/dist/esm/next/context/react-runtime.js +0 -19
- package/dist/esm/next/context/react-runtime.js.map +0 -1
- package/dist/esm/runtimes/react/components/DocumentReference.js.map +0 -1
- package/dist/esm/runtimes/react/hooks/use-document-key.js +0 -11
- package/dist/esm/runtimes/react/hooks/use-document-key.js.map +0 -1
- package/dist/types/api/graphql/fragments.d.ts.map +0 -1
- package/dist/types/api/graphql/types.d.ts +0 -8
- package/dist/types/api/graphql/types.d.ts.map +0 -1
- package/dist/types/api/resource-types.d.ts +0 -20
- package/dist/types/api/resource-types.d.ts.map +0 -1
- package/dist/types/next/context/makeswift-host-api-client.d.ts.map +0 -1
- package/dist/types/next/context/react-runtime.d.ts +0 -8
- package/dist/types/next/context/react-runtime.d.ts.map +0 -1
- package/dist/types/runtimes/react/components/DocumentReference.d.ts +0 -9
- package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +0 -1
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts +0 -4
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/index.ts"],"sourcesContent":["export {\n type Data,\n type DataType,\n type ValueType,\n type ResolvedValueType,\n type ControlMessage,\n type ReplacementContext,\n type SendMessageType,\n ControlDefinition,\n ControlInstance,\n DefaultControlInstance,\n} from '@makeswift/controls'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/core/index.ts"],"sourcesContent":["export {\n type ConfigType,\n type Data,\n type DataType,\n type ValueType,\n type ResolvedValueType,\n type ControlMessage,\n type ReplacementContext,\n type SendMessageType,\n ControlDefinition,\n ControlInstance,\n DefaultControlInstance,\n ShapeV2Control,\n} from '@makeswift/controls'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAaO;","names":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ __export(src_exports, {
|
|
|
26
26
|
changeDocument: () => import_actions.changeDocument,
|
|
27
27
|
changeDocumentElementScrollTop: () => import_actions.changeDocumentElementScrollTop,
|
|
28
28
|
cleanUp: () => import_actions.cleanUp,
|
|
29
|
-
|
|
29
|
+
createBaseDocument: () => import_react_page.createBaseDocument,
|
|
30
30
|
evictApiResource: () => import_actions.evictApiResource,
|
|
31
31
|
init: () => import_actions.init,
|
|
32
32
|
messageHostPropController: () => import_actions.messageHostPropController,
|
|
@@ -53,7 +53,7 @@ var import_constants = require("./components/builtin/constants");
|
|
|
53
53
|
changeDocument,
|
|
54
54
|
changeDocumentElementScrollTop,
|
|
55
55
|
cleanUp,
|
|
56
|
-
|
|
56
|
+
createBaseDocument,
|
|
57
57
|
evictApiResource,
|
|
58
58
|
init,
|
|
59
59
|
messageHostPropController,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type { Action, SetBreakpointsAction } from './state/actions'\nexport {\n ActionTypes,\n changeDocument,\n changeDocumentElementScrollTop,\n cleanUp,\n init,\n messageHostPropController,\n changeApiResource,\n evictApiResource,\n registerDocument,\n scrollDocumentElement,\n unregisterDocument,\n setBuilderEditMode,\n builderPointerMove,\n setBreakpoints,\n setLocale,\n setLocalizedResourceId,\n} from './state/actions'\nexport type { Operation } from './state/modules/read-write-documents'\nexport type { ComponentMeta } from './state/modules/components-meta'\nexport { ComponentIcon } from './state/modules/components-meta'\nexport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from './prop-controllers'\nexport type { Element } from './state/react-page'\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type { Action, SetBreakpointsAction } from './state/actions'\nexport {\n ActionTypes,\n changeDocument,\n changeDocumentElementScrollTop,\n cleanUp,\n init,\n messageHostPropController,\n changeApiResource,\n evictApiResource,\n registerDocument,\n scrollDocumentElement,\n unregisterDocument,\n setBuilderEditMode,\n builderPointerMove,\n setBreakpoints,\n setLocale,\n setLocalizedResourceId,\n} from './state/actions'\nexport type { Operation } from './state/modules/read-write-documents'\nexport type { ComponentMeta } from './state/modules/components-meta'\nexport { ComponentIcon } from './state/modules/components-meta'\nexport type {\n PropControllerDescriptor,\n PropControllerDescriptorValueType,\n} from './prop-controllers'\nexport type { Element } from './state/react-page'\nexport { createBaseDocument } from './state/react-page'\nexport { MakeswiftComponentType } from './components/builtin/constants'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAiBO;AAGP,6BAA8B;AAM9B,wBAAmC;AACnC,uBAAuC;","names":[]}
|
package/dist/cjs/jest-setup.js
CHANGED
|
@@ -7,7 +7,8 @@ afterEach(() => import_server.server.resetHandlers());
|
|
|
7
7
|
afterAll(() => import_server.server.close());
|
|
8
8
|
expect.extend(import_jest.matchers);
|
|
9
9
|
jest.mock("uuid", () => ({
|
|
10
|
-
v4: jest.fn(() => "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
|
|
10
|
+
v4: jest.fn(() => "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"),
|
|
11
|
+
v5: jest.fn(() => "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
|
|
11
12
|
}));
|
|
12
13
|
if (typeof window !== "undefined") {
|
|
13
14
|
Object.defineProperty(window, "matchMedia", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\nimport { server } from './mocks/server'\n\nbeforeAll(() => server.listen())\nafterEach(() => server.resetHandlers())\nafterAll(() => server.close())\n\nexpect.extend(matchers)\n\njest.mock('uuid', () => ({\n v4: jest.fn(() => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'),\n}))\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":";AAAA,sBAAO;AACP,kBAAyB;AACzB,oBAAuB;AAEvB,UAAU,MAAM,qBAAO,OAAO,CAAC;AAC/B,UAAU,MAAM,qBAAO,cAAc,CAAC;AACtC,SAAS,MAAM,qBAAO,MAAM,CAAC;AAE7B,OAAO,OAAO,oBAAQ;AAEtB,KAAK,KAAK,QAAQ,OAAO;AAAA,EACvB,IAAI,KAAK,GAAG,MAAM,sCAAsC;AAC1D,EAAE;AAEF,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,eAAe,QAAQ,cAAc;AAAA,IAC1C,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,YAAU;AAAA,MAC5C,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa,KAAK,GAAG;AAAA;AAAA,MACrB,gBAAgB,KAAK,GAAG;AAAA;AAAA,MACxB,kBAAkB,KAAK,GAAG;AAAA,MAC1B,qBAAqB,KAAK,GAAG;AAAA,MAC7B,eAAe,KAAK,GAAG;AAAA,IACzB,EAAE;AAAA,EACJ,CAAC;AAED,SAAO,eAAe,QAAQ,wBAAwB;AAAA,IACpD,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,OAAO;AAAA,MACzC,SAAS,KAAK,GAAG;AAAA,MACjB,WAAW,KAAK,GAAG;AAAA,MACnB,YAAY,KAAK,GAAG;AAAA,IACtB,EAAE;AAAA,EACJ,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\nimport { server } from './mocks/server'\n\nbeforeAll(() => server.listen())\nafterEach(() => server.resetHandlers())\nafterAll(() => server.close())\n\nexpect.extend(matchers)\n\njest.mock('uuid', () => ({\n v4: jest.fn(() => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'),\n v5: jest.fn(() => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'),\n}))\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":";AAAA,sBAAO;AACP,kBAAyB;AACzB,oBAAuB;AAEvB,UAAU,MAAM,qBAAO,OAAO,CAAC;AAC/B,UAAU,MAAM,qBAAO,cAAc,CAAC;AACtC,SAAS,MAAM,qBAAO,MAAM,CAAC;AAE7B,OAAO,OAAO,oBAAQ;AAEtB,KAAK,KAAK,QAAQ,OAAO;AAAA,EACvB,IAAI,KAAK,GAAG,MAAM,sCAAsC;AAAA,EACxD,IAAI,KAAK,GAAG,MAAM,sCAAsC;AAC1D,EAAE;AAEF,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,eAAe,QAAQ,cAAc;AAAA,IAC1C,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,YAAU;AAAA,MAC5C,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa,KAAK,GAAG;AAAA;AAAA,MACrB,gBAAgB,KAAK,GAAG;AAAA;AAAA,MACxB,kBAAkB,KAAK,GAAG;AAAA,MAC1B,qBAAqB,KAAK,GAAG;AAAA,MAC7B,eAAe,KAAK,GAAG;AAAA,IACzB,EAAE;AAAA,EACJ,CAAC;AAED,SAAO,eAAe,QAAQ,wBAAwB;AAAA,IACpD,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,OAAO;AAAA,MACzC,SAAS,KAAK,GAAG;AAAA,MACjB,WAAW,KAAK,GAAG;AAAA,MACnB,YAAY,KAAK,GAAG;AAAA,IACtB,EAAE;AAAA,EACJ,CAAC;AACH;","names":[]}
|
|
@@ -35,8 +35,9 @@ async function handler(...args) {
|
|
|
35
35
|
}
|
|
36
36
|
const supportsPreviewMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => false).with(apiRoutePattern, () => true).exhaustive();
|
|
37
37
|
const supportsDraftMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
38
|
+
const supportsWebhook = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
38
39
|
const body = {
|
|
39
|
-
version: "0.
|
|
40
|
+
version: "0.23.0",
|
|
40
41
|
previewMode: supportsPreviewMode,
|
|
41
42
|
draftMode: supportsDraftMode,
|
|
42
43
|
interactionMode: true,
|
|
@@ -45,7 +46,8 @@ async function handler(...args) {
|
|
|
45
46
|
customBreakpoints: true,
|
|
46
47
|
siteVersions: true,
|
|
47
48
|
unstable_siteVersions: true,
|
|
48
|
-
localizedPageSSR: true
|
|
49
|
+
localizedPageSSR: true,
|
|
50
|
+
webhook: supportsWebhook
|
|
49
51
|
};
|
|
50
52
|
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => import_server.NextResponse.json(body)).with(apiRoutePattern, ([, res]) => res.json(body)).exhaustive();
|
|
51
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/manifest.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\nexport type Manifest = {\n version: string\n previewMode: boolean\n interactionMode: boolean\n clientSideNavigation: boolean\n elementFromPoint: boolean\n customBreakpoints: boolean\n siteVersions: boolean\n unstable_siteVersions: boolean\n localizedPageSSR: boolean\n}\n\ntype ManifestError = { message: string }\n\nexport type ManifestResponse = Manifest | ManifestError\n\ntype ManifestHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<ManifestResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function handler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<ManifestResponse>>\nexport default async function handler(\n req: NextApiRequest,\n res: NextApiResponse<ManifestResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function handler(\n ...args: ManifestHandlerArgs\n): Promise<NextResponse<ManifestResponse> | void> {\n const [, , { apiKey }] = args\n\n const secret = match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('secret'))\n .with(apiRoutePattern, ([req]) => req.query.secret)\n .exhaustive()\n\n if (secret !== apiKey) {\n const status = 401\n const body = { message: 'Unauthorized' }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n\n const supportsPreviewMode = match(args)\n .with(routeHandlerPattern, () => false)\n .with(apiRoutePattern, () => true)\n .exhaustive()\n\n const supportsDraftMode = match(args)\n .with(routeHandlerPattern, () => true)\n .with(apiRoutePattern, () => false)\n .exhaustive()\n\n const body = {\n version: PACKAGE_VERSION,\n previewMode: supportsPreviewMode,\n draftMode: supportsDraftMode,\n interactionMode: true,\n clientSideNavigation: false,\n elementFromPoint: false,\n customBreakpoints: true,\n siteVersions: true,\n unstable_siteVersions: true,\n localizedPageSSR: true,\n }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body))\n .with(apiRoutePattern, ([, res]) => res.json(body))\n .exhaustive()\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0C;AAC1C,wBAAyB;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/manifest.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\nexport type Manifest = {\n version: string\n previewMode: boolean\n interactionMode: boolean\n clientSideNavigation: boolean\n elementFromPoint: boolean\n customBreakpoints: boolean\n siteVersions: boolean\n unstable_siteVersions: boolean\n localizedPageSSR: boolean\n webhook: boolean\n}\n\ntype ManifestError = { message: string }\n\nexport type ManifestResponse = Manifest | ManifestError\n\ntype ManifestHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<ManifestResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function handler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<ManifestResponse>>\nexport default async function handler(\n req: NextApiRequest,\n res: NextApiResponse<ManifestResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function handler(\n ...args: ManifestHandlerArgs\n): Promise<NextResponse<ManifestResponse> | void> {\n const [, , { apiKey }] = args\n\n const secret = match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('secret'))\n .with(apiRoutePattern, ([req]) => req.query.secret)\n .exhaustive()\n\n if (secret !== apiKey) {\n const status = 401\n const body = { message: 'Unauthorized' }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n\n const supportsPreviewMode = match(args)\n .with(routeHandlerPattern, () => false)\n .with(apiRoutePattern, () => true)\n .exhaustive()\n\n const supportsDraftMode = match(args)\n .with(routeHandlerPattern, () => true)\n .with(apiRoutePattern, () => false)\n .exhaustive()\n\n const supportsWebhook = match(args)\n .with(routeHandlerPattern, () => true)\n .with(apiRoutePattern, () => false)\n .exhaustive()\n\n const body = {\n version: PACKAGE_VERSION,\n previewMode: supportsPreviewMode,\n draftMode: supportsDraftMode,\n interactionMode: true,\n clientSideNavigation: false,\n elementFromPoint: false,\n customBreakpoints: true,\n siteVersions: true,\n unstable_siteVersions: true,\n localizedPageSSR: true,\n webhook: supportsWebhook,\n }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body))\n .with(apiRoutePattern, ([, res]) => res.json(body))\n .exhaustive()\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0C;AAC1C,wBAAyB;AAyBzB,MAAM,sBAAsB,CAAC,oBAAE,WAAW,OAAO,GAAG,oBAAE,KAAK,oBAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,oBAAE,KAAK,oBAAE,KAAK,oBAAE,GAAG;AAY5C,eAAO,WACF,MAC6C;AAChD,QAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI;AAEzB,QAAM,aAAS,yBAAM,IAAI,EACtB,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,QAAQ,aAAa,IAAI,QAAQ,CAAC,EACnF,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,MAAM,EACjD,WAAW;AAEd,MAAI,WAAW,QAAQ;AACrB,UAAM,SAAS;AACf,UAAMA,QAAO,EAAE,SAAS,eAAe;AAEvC,eAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,2BAAa,KAAKA,OAAM,EAAE,OAAO,CAAC,CAAC,EACnE,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,OAAO,MAAM,EAAE,KAAKA,KAAI,CAAC,EAChE,WAAW;AAAA,EAChB;AAEA,QAAM,0BAAsB,yBAAM,IAAI,EACnC,KAAK,qBAAqB,MAAM,KAAK,EACrC,KAAK,iBAAiB,MAAM,IAAI,EAChC,WAAW;AAEd,QAAM,wBAAoB,yBAAM,IAAI,EACjC,KAAK,qBAAqB,MAAM,IAAI,EACpC,KAAK,iBAAiB,MAAM,KAAK,EACjC,WAAW;AAEd,QAAM,sBAAkB,yBAAM,IAAI,EAC/B,KAAK,qBAAqB,MAAM,IAAI,EACpC,KAAK,iBAAiB,MAAM,KAAK,EACjC,WAAW;AAEd,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,SAAS;AAAA,EACX;AAEA,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,2BAAa,KAAK,IAAI,CAAC,EACvD,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,KAAK,IAAI,CAAC,EACjD,WAAW;AAChB;","names":["body"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var webhook_exports = {};
|
|
20
|
+
__export(webhook_exports, {
|
|
21
|
+
default: () => handler
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(webhook_exports);
|
|
24
|
+
var import_server = require("next/server");
|
|
25
|
+
var import_ts_pattern = require("ts-pattern");
|
|
26
|
+
var import_site_published = require("./site-published");
|
|
27
|
+
var import_types = require("./types");
|
|
28
|
+
const routeHandlerPattern = [import_ts_pattern.P.instanceOf(Request), import_ts_pattern.P.any, import_ts_pattern.P.any];
|
|
29
|
+
const apiRoutePattern = [import_ts_pattern.P.any, import_ts_pattern.P.any, import_ts_pattern.P.any];
|
|
30
|
+
function getSecret(args) {
|
|
31
|
+
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get("secret")).with(apiRoutePattern, ([req]) => req.query.secret).exhaustive();
|
|
32
|
+
}
|
|
33
|
+
function getRequestBody(args) {
|
|
34
|
+
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, ([request]) => request.json()).with(apiRoutePattern, ([req]) => req.body).exhaustive();
|
|
35
|
+
}
|
|
36
|
+
function respond(args, response, status) {
|
|
37
|
+
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => import_server.NextResponse.json(response, { status })).with(apiRoutePattern, ([, res]) => res.json(response)).exhaustive();
|
|
38
|
+
}
|
|
39
|
+
async function handler(...args) {
|
|
40
|
+
const [, , { apiKey }] = args;
|
|
41
|
+
const secret = getSecret(args);
|
|
42
|
+
if (secret !== apiKey)
|
|
43
|
+
return respond(args, { message: "Unauthorized" }, 401);
|
|
44
|
+
let payload;
|
|
45
|
+
try {
|
|
46
|
+
const body = await getRequestBody(args);
|
|
47
|
+
payload = import_types.sitePublishedWebhookPayloadSchema.parse(body);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
console.error(error);
|
|
50
|
+
return respond(args, { message: "Invalid request body" }, 400);
|
|
51
|
+
}
|
|
52
|
+
const result = (0, import_ts_pattern.match)(payload.type).with(import_types.WebhookEventType.SITE_PUBLISHED, () => (0, import_site_published.handleSitePublished)(payload)).exhaustive();
|
|
53
|
+
return respond(args, result.body, result.status);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/index.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { handleSitePublished } from './site-published'\nimport {\n sitePublishedWebhookPayloadSchema,\n WebhookEventType,\n WebhookPayloadSchema,\n WebhookResponseBody,\n} from './types'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\nexport type WebhookHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<WebhookResponseBody>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nfunction getSecret(args: WebhookHandlerArgs) {\n return match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('secret'))\n .with(apiRoutePattern, ([req]) => req.query.secret)\n .exhaustive()\n}\n\nfunction getRequestBody(args: WebhookHandlerArgs) {\n return match(args)\n .with(routeHandlerPattern, ([request]) => request.json())\n .with(apiRoutePattern, ([req]) => req.body)\n .exhaustive()\n}\n\nfunction respond(args: WebhookHandlerArgs, response: WebhookResponseBody, status?: number) {\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(response, { status }))\n .with(apiRoutePattern, ([, res]) => res.json(response))\n .exhaustive()\n}\n\nexport default async function handler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<WebhookResponseBody>>\nexport default async function handler(\n req: NextApiRequest,\n res: NextApiResponse<WebhookResponseBody>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function handler(\n ...args: WebhookHandlerArgs\n): Promise<NextResponse<WebhookResponseBody> | void> {\n const [, , { apiKey }] = args\n const secret = getSecret(args)\n\n if (secret !== apiKey) return respond(args, { message: 'Unauthorized' }, 401)\n\n let payload: WebhookPayloadSchema\n\n try {\n const body = await getRequestBody(args)\n payload = sitePublishedWebhookPayloadSchema.parse(body)\n } catch (error) {\n console.error(error)\n return respond(args, { message: 'Invalid request body' }, 400)\n }\n\n const result = match(payload.type)\n .with(WebhookEventType.SITE_PUBLISHED, () => handleSitePublished(payload))\n .exhaustive()\n\n return respond(args, result.body, result.status)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0C;AAC1C,wBAAyB;AACzB,4BAAoC;AACpC,mBAKO;AAQP,MAAM,sBAAsB,CAAC,oBAAE,WAAW,OAAO,GAAG,oBAAE,KAAK,oBAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,oBAAE,KAAK,oBAAE,KAAK,oBAAE,GAAG;AAE5C,SAAS,UAAU,MAA0B;AAC3C,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,QAAQ,aAAa,IAAI,QAAQ,CAAC,EACnF,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,MAAM,EACjD,WAAW;AAChB;AAEA,SAAS,eAAe,MAA0B;AAChD,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,KAAK,CAAC,EACvD,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EACzC,WAAW;AAChB;AAEA,SAAS,QAAQ,MAA0B,UAA+B,QAAiB;AACzF,aAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,2BAAa,KAAK,UAAU,EAAE,OAAO,CAAC,CAAC,EACvE,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,KAAK,QAAQ,CAAC,EACrD,WAAW;AAChB;AAYA,eAAO,WACF,MACgD;AACnD,QAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI;AACzB,QAAM,SAAS,UAAU,IAAI;AAE7B,MAAI,WAAW;AAAQ,WAAO,QAAQ,MAAM,EAAE,SAAS,eAAe,GAAG,GAAG;AAE5E,MAAI;AAEJ,MAAI;AACF,UAAM,OAAO,MAAM,eAAe,IAAI;AACtC,cAAU,+CAAkC,MAAM,IAAI;AAAA,EACxD,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AACnB,WAAO,QAAQ,MAAM,EAAE,SAAS,uBAAuB,GAAG,GAAG;AAAA,EAC/D;AAEA,QAAM,aAAS,yBAAM,QAAQ,IAAI,EAC9B,KAAK,8BAAiB,gBAAgB,UAAM,2CAAoB,OAAO,CAAC,EACxE,WAAW;AAEd,SAAO,QAAQ,MAAM,OAAO,MAAM,OAAO,MAAM;AACjD;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var site_published_exports = {};
|
|
20
|
+
__export(site_published_exports, {
|
|
21
|
+
MAKESWIFT_CACHE_TAG: () => MAKESWIFT_CACHE_TAG,
|
|
22
|
+
handleSitePublished: () => handleSitePublished
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(site_published_exports);
|
|
25
|
+
var import_cache = require("next/cache");
|
|
26
|
+
function handleSitePublished(_payload) {
|
|
27
|
+
(0, import_cache.revalidateTag)(MAKESWIFT_CACHE_TAG);
|
|
28
|
+
return { body: { success: true }, status: 200 };
|
|
29
|
+
}
|
|
30
|
+
const MAKESWIFT_CACHE_TAG = "@@makeswift";
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
MAKESWIFT_CACHE_TAG,
|
|
34
|
+
handleSitePublished
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=site-published.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/site-published.ts"],"sourcesContent":["import { revalidateTag } from 'next/cache'\nimport { SitePublishedWebhookPayload, WebhookHandlerResult } from './types'\n\nexport function handleSitePublished(_payload: SitePublishedWebhookPayload): WebhookHandlerResult {\n revalidateTag(MAKESWIFT_CACHE_TAG)\n\n return { body: { success: true }, status: 200 }\n}\n\nexport const MAKESWIFT_CACHE_TAG = '@@makeswift'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAGvB,SAAS,oBAAoB,UAA6D;AAC/F,kCAAc,mBAAmB;AAEjC,SAAO,EAAE,MAAM,EAAE,SAAS,KAAK,GAAG,QAAQ,IAAI;AAChD;AAEO,MAAM,sBAAsB;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var types_exports = {};
|
|
20
|
+
__export(types_exports, {
|
|
21
|
+
WebhookEventType: () => WebhookEventType,
|
|
22
|
+
sitePublishedWebhookPayloadSchema: () => sitePublishedWebhookPayloadSchema
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(types_exports);
|
|
25
|
+
var import_zod = require("zod");
|
|
26
|
+
const WebhookEventType = {
|
|
27
|
+
SITE_PUBLISHED: "site.published"
|
|
28
|
+
};
|
|
29
|
+
const sitePublishedWebhookPayloadSchema = import_zod.z.object({
|
|
30
|
+
type: import_zod.z.literal(WebhookEventType.SITE_PUBLISHED),
|
|
31
|
+
data: import_zod.z.object({
|
|
32
|
+
siteId: import_zod.z.string().uuid(),
|
|
33
|
+
publish: import_zod.z.object({
|
|
34
|
+
from: import_zod.z.string().uuid().nullable(),
|
|
35
|
+
to: import_zod.z.string().uuid()
|
|
36
|
+
}),
|
|
37
|
+
at: import_zod.z.number()
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
const webhookPayloadSchema = sitePublishedWebhookPayloadSchema;
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
WebhookEventType,
|
|
44
|
+
sitePublishedWebhookPayloadSchema
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/types.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const WebhookEventType = {\n SITE_PUBLISHED: 'site.published',\n} as const\n\nexport const sitePublishedWebhookPayloadSchema = z.object({\n type: z.literal(WebhookEventType.SITE_PUBLISHED),\n data: z.object({\n siteId: z.string().uuid(),\n publish: z.object({\n from: z.string().uuid().nullable(),\n to: z.string().uuid(),\n }),\n at: z.number(),\n }),\n})\n\nexport type SitePublishedWebhookPayload = z.infer<typeof sitePublishedWebhookPayloadSchema>\n\nconst webhookPayloadSchema = sitePublishedWebhookPayloadSchema\n\nexport type WebhookPayloadSchema = z.infer<typeof webhookPayloadSchema>\n\ntype WebhookSuccessBody = { success: true }\n\ntype WebhookErrorBody = { message: string }\n\nexport type WebhookResponseBody = WebhookSuccessBody | WebhookErrorBody\n\nexport type WebhookHandlerResult = {\n body: WebhookResponseBody\n status: 200\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAEX,MAAM,mBAAmB;AAAA,EAC9B,gBAAgB;AAClB;AAEO,MAAM,oCAAoC,aAAE,OAAO;AAAA,EACxD,MAAM,aAAE,QAAQ,iBAAiB,cAAc;AAAA,EAC/C,MAAM,aAAE,OAAO;AAAA,IACb,QAAQ,aAAE,OAAO,EAAE,KAAK;AAAA,IACxB,SAAS,aAAE,OAAO;AAAA,MAChB,MAAM,aAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AAAA,MACjC,IAAI,aAAE,OAAO,EAAE,KAAK;AAAA,IACtB,CAAC;AAAA,IACD,IAAI,aAAE,OAAO;AAAA,EACf,CAAC;AACH,CAAC;AAID,MAAM,uBAAuB;","names":[]}
|
|
@@ -43,7 +43,7 @@ var import_proxy_draft_mode = __toESM(require("./handlers/proxy-draft-mode"));
|
|
|
43
43
|
var import_revalidate = require("./handlers/revalidate");
|
|
44
44
|
var import_translatable_data = __toESM(require("./handlers/translatable-data"));
|
|
45
45
|
var import_merge_translated_data = __toESM(require("./handlers/merge-translated-data"));
|
|
46
|
-
var
|
|
46
|
+
var import_webhook = __toESM(require("./handlers/webhook"));
|
|
47
47
|
var import_ts_pattern = require("ts-pattern");
|
|
48
48
|
var import_draft_mode = require("../draft-mode");
|
|
49
49
|
function apiRequestParams(request) {
|
|
@@ -53,8 +53,8 @@ function MakeswiftApiHandler(apiKey, {
|
|
|
53
53
|
appOrigin = "https://app.makeswift.com",
|
|
54
54
|
apiOrigin = "https://api.makeswift.com",
|
|
55
55
|
getFonts,
|
|
56
|
-
runtime
|
|
57
|
-
}
|
|
56
|
+
runtime
|
|
57
|
+
}) {
|
|
58
58
|
const cors = (0, import_cors.default)({ origin: appOrigin });
|
|
59
59
|
if (typeof apiKey !== "string") {
|
|
60
60
|
throw new Error(
|
|
@@ -123,6 +123,9 @@ Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/d
|
|
|
123
123
|
if (matches("/merge-translated-data")) {
|
|
124
124
|
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_merge_translated_data.default)(...args2, client)).with(apiRoutePattern, (args2) => (0, import_merge_translated_data.default)(...args2, client)).exhaustive();
|
|
125
125
|
}
|
|
126
|
+
if (matches("/webhook")) {
|
|
127
|
+
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, (args2) => (0, import_webhook.default)(...args2, { apiKey })).with(apiRoutePattern, (args2) => (0, import_webhook.default)(...args2, { apiKey })).exhaustive();
|
|
128
|
+
}
|
|
126
129
|
const handleResource = (resource) => {
|
|
127
130
|
const status2 = resource === null ? 404 : 200;
|
|
128
131
|
const body2 = resource === null ? { message: "Not Found" } : resource;
|
|
@@ -143,10 +146,7 @@ Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/d
|
|
|
143
146
|
if (m = matches(
|
|
144
147
|
"/localized-global-elements/:globalElementId/:locale"
|
|
145
148
|
)) {
|
|
146
|
-
return client.getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion).then(
|
|
147
|
-
const body2 = resource === null ? { message: "Not Found" } : resource;
|
|
148
|
-
return (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => import_server.NextResponse.json(body2)).with(apiRoutePattern, ([, res]) => res.json(body2)).exhaustive();
|
|
149
|
-
});
|
|
149
|
+
return client.getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion).then(handleResource);
|
|
150
150
|
}
|
|
151
151
|
if (m = matches("/page-pathname-slices/:id")) {
|
|
152
152
|
const localeParam = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get("locale")).with(apiRoutePattern, ([req]) => req.query.locale).exhaustive();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/next/api-handler/index.ts"],"sourcesContent":["import Cors from 'cors'\nimport { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { Match, match as matchPattern } from 'path-to-regexp'\nimport { APIResource } from '../../api'\nimport { Makeswift } from '../client'\n\nimport elementTree, { ElementTreeResponse } from './handlers/element-tree'\nimport fonts, { Font, FontsResponse, GetFonts } from './handlers/fonts'\nimport manifest, { Manifest, ManifestResponse } from './handlers/manifest'\nimport proxyPreviewMode, { ProxyPreviewModeResponse } from './handlers/proxy-preview-mode'\nimport proxyDraftMode, { ProxyDraftModeResponse } from './handlers/proxy-draft-mode'\nimport { revalidate, RevalidationResponse } from './handlers/revalidate'\nimport translatableData, { TranslatableDataResponse } from './handlers/translatable-data'\nimport mergeTranslatedData, { TranslatedDataResponse } from './handlers/merge-translated-data'\nimport { ReactRuntime } from '../../react'\nimport { P, match } from 'ts-pattern'\nimport { getSiteVersion } from '../draft-mode'\n\nexport type { Manifest, Font }\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n apiOrigin?: string\n getFonts?: GetFonts\n runtime?: ReactRuntime\n}\n\ntype NotFoundError = { message: string }\n\nexport type MakeswiftApiHandlerResponse =\n | ManifestResponse\n | RevalidationResponse\n | ProxyPreviewModeResponse\n | ProxyDraftModeResponse\n | FontsResponse\n | ElementTreeResponse\n | TranslatableDataResponse\n | TranslatedDataResponse\n | APIResource\n | NotFoundError\n\ntype MakeswiftApiHandlerArgs =\n | [NextRequest, Context]\n | [NextApiRequest, NextApiResponse<MakeswiftApiHandlerResponse>]\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\nexport function MakeswiftApiHandler(\n apiKey: string,\n {\n appOrigin = 'https://app.makeswift.com',\n apiOrigin = 'https://api.makeswift.com',\n getFonts,\n runtime = ReactRuntime,\n }: MakeswiftApiHandlerConfig = {},\n): (...args: MakeswiftApiHandlerArgs) => Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const cors = Cors({ origin: appOrigin })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n const routeHandlerPattern = [P.instanceOf(Request), P.any] as const\n const apiRoutePattern = [P.any, P.any] as const\n\n return function handler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, async args => {\n const response = await makeswiftApiHandler(...args)\n\n response.headers.append('Access-Control-Allow-Origin', appOrigin)\n response.headers.append('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')\n response.headers.append('Access-Control-Allow-Headers', 'Content-Type, Authorization')\n\n return response\n })\n .with(apiRoutePattern, async args => {\n const [req, res] = args\n\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n return await makeswiftApiHandler(...args)\n })\n .exhaustive()\n }\n\n async function makeswiftApiHandler(\n request: NextRequest,\n context: Context,\n ): Promise<NextResponse<MakeswiftApiHandlerResponse>>\n async function makeswiftApiHandler(\n req: NextApiRequest,\n res: NextApiResponse<MakeswiftApiHandlerResponse>,\n ): Promise<void>\n async function makeswiftApiHandler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const params = match(args)\n .with(routeHandlerPattern, ([, context]) => context.params)\n .with(apiRoutePattern, ([req]) => apiRequestParams(req))\n .exhaustive()\n\n const { makeswift } = await params\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const client = new Makeswift(apiKey, { apiOrigin, runtime })\n const siteVersion = await match(args)\n .with(routeHandlerPattern, () => getSiteVersion())\n .with(apiRoutePattern, ([req]) => Makeswift.getSiteVersion(req.previewData))\n .exhaustive()\n const action = '/' + makeswift.join('/')\n const matches = <T extends object>(pattern: string): Match<T> =>\n matchPattern<T>(pattern, { decode: decodeURIComponent })(action)\n\n let m\n\n if (matches('/manifest')) {\n return match(args)\n .with(routeHandlerPattern, args => manifest(...args, { apiKey }))\n .with(apiRoutePattern, args => manifest(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/revalidate')) {\n return match(args)\n .with(routeHandlerPattern, args => revalidate(...args, { apiKey }))\n .with(apiRoutePattern, args => revalidate(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/proxy-preview-mode')) {\n return match(args)\n .with(routeHandlerPattern, args => proxyPreviewMode(...args, { apiKey }))\n .with(apiRoutePattern, args => proxyPreviewMode(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/proxy-draft-mode')) {\n return match(args)\n .with(routeHandlerPattern, args => proxyDraftMode(...args, { apiKey }))\n .with(apiRoutePattern, args => proxyDraftMode(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/fonts')) {\n return match(args)\n .with(routeHandlerPattern, args => fonts(...args, { getFonts }))\n .with(apiRoutePattern, args => fonts(...args, { getFonts }))\n .exhaustive()\n }\n\n if (matches('/element-tree')) {\n return match(args)\n .with(routeHandlerPattern, args => elementTree(...args, runtime))\n .with(apiRoutePattern, args => elementTree(...args, runtime))\n .exhaustive()\n }\n\n if (matches('/translatable-data')) {\n return match(args)\n .with(routeHandlerPattern, args => translatableData(...args, client))\n .with(apiRoutePattern, args => translatableData(...args, client))\n .exhaustive()\n }\n\n if (matches('/merge-translated-data')) {\n return match(args)\n .with(routeHandlerPattern, args => mergeTranslatedData(...args, client))\n .with(apiRoutePattern, args => mergeTranslatedData(...args, client))\n .exhaustive()\n }\n\n const handleResource = <T extends APIResource>(\n resource: T | null,\n ): NextResponse<MakeswiftApiHandlerResponse> | void => {\n const status = resource === null ? 404 : 200\n const body = resource === null ? { message: 'Not Found' } : resource\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n\n if ((m = matches<{ id: string }>('/swatches/:id'))) {\n return client.getSwatch(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/files/:id'))) {\n return client.getFile(m.params.id).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/typographies/:id'))) {\n return client.getTypography(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/global-elements/:id'))) {\n return client.getGlobalElement(m.params.id, siteVersion).then(handleResource)\n }\n\n if (\n (m = matches<{ globalElementId: string; locale: string }>(\n '/localized-global-elements/:globalElementId/:locale',\n ))\n ) {\n return client\n .getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion)\n .then(resource => {\n const body = resource === null ? { message: 'Not Found' } : resource\n\n // We're not returning 404 if it's null because localized global element is nullable.\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body))\n .with(apiRoutePattern, ([, res]) => res.json(body))\n .exhaustive()\n })\n }\n\n if ((m = matches<{ id: string }>('/page-pathname-slices/:id'))) {\n const localeParam = match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('locale'))\n .with(apiRoutePattern, ([req]) => req.query.locale)\n .exhaustive()\n const locale = typeof localeParam === 'string' ? localeParam : undefined\n\n return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/tables/:id'))) {\n return client.getTable(m.params.id).then(handleResource)\n }\n\n const status = 404\n const body = { message: 'Not Found' }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n}\n"],"mappings":"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","names":["Cors","args","matchPattern","manifest","proxyPreviewMode","proxyDraftMode","fonts","elementTree","translatableData","mergeTranslatedData","status","body"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/next/api-handler/index.ts"],"sourcesContent":["import Cors from 'cors'\nimport { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { Match, match as matchPattern } from 'path-to-regexp'\nimport { APIResource } from '../../api'\nimport { Makeswift } from '../client'\n\nimport elementTree, { ElementTreeResponse } from './handlers/element-tree'\nimport fonts, { Font, FontsResponse, GetFonts } from './handlers/fonts'\nimport manifest, { Manifest, ManifestResponse } from './handlers/manifest'\nimport proxyPreviewMode, { ProxyPreviewModeResponse } from './handlers/proxy-preview-mode'\nimport proxyDraftMode, { ProxyDraftModeResponse } from './handlers/proxy-draft-mode'\nimport { revalidate, RevalidationResponse } from './handlers/revalidate'\nimport translatableData, { TranslatableDataResponse } from './handlers/translatable-data'\nimport mergeTranslatedData, { TranslatedDataResponse } from './handlers/merge-translated-data'\nimport webhook from './handlers/webhook'\nimport { WebhookResponseBody } from './handlers/webhook/types'\nimport { ReactRuntime } from '../../react'\nimport { P, match } from 'ts-pattern'\nimport { getSiteVersion } from '../draft-mode'\n\nexport type { Manifest, Font }\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype MakeswiftApiHandlerConfig = {\n appOrigin?: string\n apiOrigin?: string\n getFonts?: GetFonts\n runtime: ReactRuntime\n}\n\ntype NotFoundError = { message: string }\n\nexport type MakeswiftApiHandlerResponse =\n | ManifestResponse\n | RevalidationResponse\n | ProxyPreviewModeResponse\n | ProxyDraftModeResponse\n | FontsResponse\n | ElementTreeResponse\n | TranslatableDataResponse\n | TranslatedDataResponse\n | APIResource\n | NotFoundError\n | WebhookResponseBody\n\ntype MakeswiftApiHandlerArgs =\n | [NextRequest, Context]\n | [NextApiRequest, NextApiResponse<MakeswiftApiHandlerResponse>]\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\nexport function MakeswiftApiHandler(\n apiKey: string,\n {\n appOrigin = 'https://app.makeswift.com',\n apiOrigin = 'https://api.makeswift.com',\n getFonts,\n runtime,\n }: MakeswiftApiHandlerConfig,\n): (...args: MakeswiftApiHandlerArgs) => Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const cors = Cors({ origin: appOrigin })\n\n if (typeof apiKey !== 'string') {\n throw new Error(\n 'The Makeswift Next.js API handler must be passed a valid Makeswift site API key: ' +\n \"`MakeswiftApiHandler('<makeswift_site_api_key>')`\\n\" +\n `Received \"${apiKey}\" instead.`,\n )\n }\n\n const routeHandlerPattern = [P.instanceOf(Request), P.any] as const\n const apiRoutePattern = [P.any, P.any] as const\n\n return function handler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, async args => {\n const response = await makeswiftApiHandler(...args)\n\n response.headers.append('Access-Control-Allow-Origin', appOrigin)\n response.headers.append('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')\n response.headers.append('Access-Control-Allow-Headers', 'Content-Type, Authorization')\n\n return response\n })\n .with(apiRoutePattern, async args => {\n const [req, res] = args\n\n await new Promise<void>((resolve, reject) => {\n cors(req, res, err => {\n if (err instanceof Error) reject(err)\n else resolve()\n })\n })\n\n return await makeswiftApiHandler(...args)\n })\n .exhaustive()\n }\n\n async function makeswiftApiHandler(\n request: NextRequest,\n context: Context,\n ): Promise<NextResponse<MakeswiftApiHandlerResponse>>\n async function makeswiftApiHandler(\n req: NextApiRequest,\n res: NextApiResponse<MakeswiftApiHandlerResponse>,\n ): Promise<void>\n async function makeswiftApiHandler(\n ...args: MakeswiftApiHandlerArgs\n ): Promise<NextResponse<MakeswiftApiHandlerResponse> | void> {\n const params = match(args)\n .with(routeHandlerPattern, ([, context]) => context.params)\n .with(apiRoutePattern, ([req]) => apiRequestParams(req))\n .exhaustive()\n\n const { makeswift } = await params\n\n if (!Array.isArray(makeswift)) {\n throw new Error(\n 'The Makeswift Next.js API handler must be used in a dynamic catch-all route named `[...makeswift]`.\\n' +\n `Received \"${makeswift}\" for the \\`makeswift\\` param instead.\\n` +\n 'Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes',\n )\n }\n\n const client = new Makeswift(apiKey, { apiOrigin, runtime })\n const siteVersion = await match(args)\n .with(routeHandlerPattern, () => getSiteVersion())\n .with(apiRoutePattern, ([req]) => Makeswift.getSiteVersion(req.previewData))\n .exhaustive()\n const action = '/' + makeswift.join('/')\n const matches = <T extends object>(pattern: string): Match<T> =>\n matchPattern<T>(pattern, { decode: decodeURIComponent })(action)\n\n let m\n\n if (matches('/manifest')) {\n return match(args)\n .with(routeHandlerPattern, args => manifest(...args, { apiKey }))\n .with(apiRoutePattern, args => manifest(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/revalidate')) {\n return match(args)\n .with(routeHandlerPattern, args => revalidate(...args, { apiKey }))\n .with(apiRoutePattern, args => revalidate(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/proxy-preview-mode')) {\n return match(args)\n .with(routeHandlerPattern, args => proxyPreviewMode(...args, { apiKey }))\n .with(apiRoutePattern, args => proxyPreviewMode(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/proxy-draft-mode')) {\n return match(args)\n .with(routeHandlerPattern, args => proxyDraftMode(...args, { apiKey }))\n .with(apiRoutePattern, args => proxyDraftMode(...args, { apiKey }))\n .exhaustive()\n }\n\n if (matches('/fonts')) {\n return match(args)\n .with(routeHandlerPattern, args => fonts(...args, { getFonts }))\n .with(apiRoutePattern, args => fonts(...args, { getFonts }))\n .exhaustive()\n }\n\n if (matches('/element-tree')) {\n return match(args)\n .with(routeHandlerPattern, args => elementTree(...args, runtime))\n .with(apiRoutePattern, args => elementTree(...args, runtime))\n .exhaustive()\n }\n\n if (matches('/translatable-data')) {\n return match(args)\n .with(routeHandlerPattern, args => translatableData(...args, client))\n .with(apiRoutePattern, args => translatableData(...args, client))\n .exhaustive()\n }\n\n if (matches('/merge-translated-data')) {\n return match(args)\n .with(routeHandlerPattern, args => mergeTranslatedData(...args, client))\n .with(apiRoutePattern, args => mergeTranslatedData(...args, client))\n .exhaustive()\n }\n\n if (matches('/webhook')) {\n return match(args)\n .with(routeHandlerPattern, args => webhook(...args, { apiKey }))\n .with(apiRoutePattern, args => webhook(...args, { apiKey }))\n .exhaustive()\n }\n\n const handleResource = <T extends APIResource>(\n resource: T | null,\n ): NextResponse<MakeswiftApiHandlerResponse> | void => {\n const status = resource === null ? 404 : 200\n const body = resource === null ? { message: 'Not Found' } : resource\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n\n if ((m = matches<{ id: string }>('/swatches/:id'))) {\n return client.getSwatch(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/files/:id'))) {\n return client.getFile(m.params.id).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/typographies/:id'))) {\n return client.getTypography(m.params.id, siteVersion).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/global-elements/:id'))) {\n return client.getGlobalElement(m.params.id, siteVersion).then(handleResource)\n }\n\n if (\n (m = matches<{ globalElementId: string; locale: string }>(\n '/localized-global-elements/:globalElementId/:locale',\n ))\n ) {\n return client\n .getLocalizedGlobalElement(m.params.globalElementId, m.params.locale, siteVersion)\n .then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/page-pathname-slices/:id'))) {\n const localeParam = match(args)\n .with(routeHandlerPattern, ([request]) => request.nextUrl.searchParams.get('locale'))\n .with(apiRoutePattern, ([req]) => req.query.locale)\n .exhaustive()\n const locale = typeof localeParam === 'string' ? localeParam : undefined\n\n return client.getPagePathnameSlice(m.params.id, siteVersion, { locale }).then(handleResource)\n }\n\n if ((m = matches<{ id: string }>('/tables/:id'))) {\n return client.getTable(m.params.id).then(handleResource)\n }\n\n const status = 404\n const body = { message: 'Not Found' }\n\n return match(args)\n .with(routeHandlerPattern, () => NextResponse.json(body, { status }))\n .with(apiRoutePattern, ([, res]) => res.status(status).json(body))\n .exhaustive()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,oBAA0C;AAC1C,4BAA6C;AAE7C,oBAA0B;AAE1B,0BAAiD;AACjD,mBAAqD;AACrD,sBAAqD;AACrD,gCAA2D;AAC3D,8BAAuD;AACvD,wBAAiD;AACjD,+BAA2D;AAC3D,mCAA4D;AAC5D,qBAAoB;AAGpB,wBAAyB;AACzB,wBAA+B;AAgC/B,SAAS,iBAAiB,SAA2D;AAGnF,SAAO,QAAQ,QAAQ,QAAQ,KAAK;AACtC;AAEO,SAAS,oBACd,QACA;AAAA,EACE,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ;AAAA,EACA;AACF,GACiG;AACjG,QAAM,WAAO,YAAAA,SAAK,EAAE,QAAQ,UAAU,CAAC;AAEvC,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,IAAI;AAAA,MACR;AAAA,YAEe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,sBAAsB,CAAC,oBAAE,WAAW,OAAO,GAAG,oBAAE,GAAG;AACzD,QAAM,kBAAkB,CAAC,oBAAE,KAAK,oBAAE,GAAG;AAErC,SAAO,SAAS,WACX,MACwD;AAC3D,eAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,OAAMC,UAAQ;AACvC,YAAM,WAAW,MAAM,oBAAoB,GAAGA,KAAI;AAElD,eAAS,QAAQ,OAAO,+BAA+B,SAAS;AAChE,eAAS,QAAQ,OAAO,gCAAgC,iCAAiC;AACzF,eAAS,QAAQ,OAAO,gCAAgC,6BAA6B;AAErF,aAAO;AAAA,IACT,CAAC,EACA,KAAK,iBAAiB,OAAMA,UAAQ;AACnC,YAAM,CAAC,KAAK,GAAG,IAAIA;AAEnB,YAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,aAAK,KAAK,KAAK,SAAO;AACpB,cAAI,eAAe;AAAO,mBAAO,GAAG;AAAA;AAC/B,oBAAQ;AAAA,QACf,CAAC;AAAA,MACH,CAAC;AAED,aAAO,MAAM,oBAAoB,GAAGA,KAAI;AAAA,IAC1C,CAAC,EACA,WAAW;AAAA,EAChB;AAUA,iBAAe,uBACV,MACwD;AAC3D,UAAM,aAAS,yBAAM,IAAI,EACtB,KAAK,qBAAqB,CAAC,CAAC,EAAE,OAAO,MAAM,QAAQ,MAAM,EACzD,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,iBAAiB,GAAG,CAAC,EACtD,WAAW;AAEd,UAAM,EAAE,UAAU,IAAI,MAAM;AAE5B,QAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,YAAM,IAAI;AAAA,QACR;AAAA,YACe,SAAS;AAAA;AAAA,MAE1B;AAAA,IACF;AAEA,UAAM,SAAS,IAAI,wBAAU,QAAQ,EAAE,WAAW,QAAQ,CAAC;AAC3D,UAAM,cAAc,UAAM,yBAAM,IAAI,EACjC,KAAK,qBAAqB,UAAM,kCAAe,CAAC,EAChD,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,wBAAU,eAAe,IAAI,WAAW,CAAC,EAC1E,WAAW;AACd,UAAM,SAAS,MAAM,UAAU,KAAK,GAAG;AACvC,UAAM,UAAU,CAAmB,gBACjC,sBAAAC,OAAgB,SAAS,EAAE,QAAQ,mBAAmB,CAAC,EAAE,MAAM;AAEjE,QAAI;AAEJ,QAAI,QAAQ,WAAW,GAAG;AACxB,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAD,cAAQ,gBAAAE,SAAS,GAAGF,OAAM,EAAE,OAAO,CAAC,CAAC,EAC/D,KAAK,iBAAiB,CAAAA,cAAQ,gBAAAE,SAAS,GAAGF,OAAM,EAAE,OAAO,CAAC,CAAC,EAC3D,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,aAAa,GAAG;AAC1B,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,8BAAW,GAAGA,OAAM,EAAE,OAAO,CAAC,CAAC,EACjE,KAAK,iBAAiB,CAAAA,cAAQ,8BAAW,GAAGA,OAAM,EAAE,OAAO,CAAC,CAAC,EAC7D,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,qBAAqB,GAAG;AAClC,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,0BAAAG,SAAiB,GAAGH,OAAM,EAAE,OAAO,CAAC,CAAC,EACvE,KAAK,iBAAiB,CAAAA,cAAQ,0BAAAG,SAAiB,GAAGH,OAAM,EAAE,OAAO,CAAC,CAAC,EACnE,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,mBAAmB,GAAG;AAChC,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,wBAAAI,SAAe,GAAGJ,OAAM,EAAE,OAAO,CAAC,CAAC,EACrE,KAAK,iBAAiB,CAAAA,cAAQ,wBAAAI,SAAe,GAAGJ,OAAM,EAAE,OAAO,CAAC,CAAC,EACjE,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,QAAQ,GAAG;AACrB,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,aAAAK,SAAM,GAAGL,OAAM,EAAE,SAAS,CAAC,CAAC,EAC9D,KAAK,iBAAiB,CAAAA,cAAQ,aAAAK,SAAM,GAAGL,OAAM,EAAE,SAAS,CAAC,CAAC,EAC1D,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,eAAe,GAAG;AAC5B,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,oBAAAM,SAAY,GAAGN,OAAM,OAAO,CAAC,EAC/D,KAAK,iBAAiB,CAAAA,cAAQ,oBAAAM,SAAY,GAAGN,OAAM,OAAO,CAAC,EAC3D,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,oBAAoB,GAAG;AACjC,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,yBAAAO,SAAiB,GAAGP,OAAM,MAAM,CAAC,EACnE,KAAK,iBAAiB,CAAAA,cAAQ,yBAAAO,SAAiB,GAAGP,OAAM,MAAM,CAAC,EAC/D,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,wBAAwB,GAAG;AACrC,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,6BAAAQ,SAAoB,GAAGR,OAAM,MAAM,CAAC,EACtE,KAAK,iBAAiB,CAAAA,cAAQ,6BAAAQ,SAAoB,GAAGR,OAAM,MAAM,CAAC,EAClE,WAAW;AAAA,IAChB;AAEA,QAAI,QAAQ,UAAU,GAAG;AACvB,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,cAAQ,eAAAS,SAAQ,GAAGT,OAAM,EAAE,OAAO,CAAC,CAAC,EAC9D,KAAK,iBAAiB,CAAAA,cAAQ,eAAAS,SAAQ,GAAGT,OAAM,EAAE,OAAO,CAAC,CAAC,EAC1D,WAAW;AAAA,IAChB;AAEA,UAAM,iBAAiB,CACrB,aACqD;AACrD,YAAMU,UAAS,aAAa,OAAO,MAAM;AACzC,YAAMC,QAAO,aAAa,OAAO,EAAE,SAAS,YAAY,IAAI;AAE5D,iBAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,2BAAa,KAAKA,OAAM,EAAE,QAAAD,QAAO,CAAC,CAAC,EACnE,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,OAAOA,OAAM,EAAE,KAAKC,KAAI,CAAC,EAChE,WAAW;AAAA,IAChB;AAEA,QAAK,IAAI,QAAwB,eAAe,GAAI;AAClD,aAAO,OAAO,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IACvE;AAEA,QAAK,IAAI,QAAwB,YAAY,GAAI;AAC/C,aAAO,OAAO,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,cAAc;AAAA,IACxD;AAEA,QAAK,IAAI,QAAwB,mBAAmB,GAAI;AACtD,aAAO,OAAO,cAAc,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IAC3E;AAEA,QAAK,IAAI,QAAwB,sBAAsB,GAAI;AACzD,aAAO,OAAO,iBAAiB,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,cAAc;AAAA,IAC9E;AAEA,QACG,IAAI;AAAA,MACH;AAAA,IACF,GACA;AACA,aAAO,OACJ,0BAA0B,EAAE,OAAO,iBAAiB,EAAE,OAAO,QAAQ,WAAW,EAChF,KAAK,cAAc;AAAA,IACxB;AAEA,QAAK,IAAI,QAAwB,2BAA2B,GAAI;AAC9D,YAAM,kBAAc,yBAAM,IAAI,EAC3B,KAAK,qBAAqB,CAAC,CAAC,OAAO,MAAM,QAAQ,QAAQ,aAAa,IAAI,QAAQ,CAAC,EACnF,KAAK,iBAAiB,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,MAAM,EACjD,WAAW;AACd,YAAM,SAAS,OAAO,gBAAgB,WAAW,cAAc;AAE/D,aAAO,OAAO,qBAAqB,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,CAAC,EAAE,KAAK,cAAc;AAAA,IAC9F;AAEA,QAAK,IAAI,QAAwB,aAAa,GAAI;AAChD,aAAO,OAAO,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,cAAc;AAAA,IACzD;AAEA,UAAM,SAAS;AACf,UAAM,OAAO,EAAE,SAAS,YAAY;AAEpC,eAAO,yBAAM,IAAI,EACd,KAAK,qBAAqB,MAAM,2BAAa,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,EACnE,KAAK,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,EAChE,WAAW;AAAA,EAChB;AACF;","names":["Cors","args","matchPattern","manifest","proxyPreviewMode","proxyDraftMode","fonts","elementTree","translatableData","mergeTranslatedData","webhook","status","body"]}
|
package/dist/cjs/next/client.js
CHANGED
|
@@ -18,18 +18,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var client_exports = {};
|
|
20
20
|
__export(client_exports, {
|
|
21
|
-
Makeswift: () => Makeswift
|
|
21
|
+
Makeswift: () => Makeswift,
|
|
22
|
+
componentDocumentToRootEmbeddedDocument: () => componentDocumentToRootEmbeddedDocument,
|
|
23
|
+
pageToRootDocument: () => pageToRootDocument
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(client_exports);
|
|
24
26
|
var import_zod = require("zod");
|
|
25
27
|
var import_api = require("../api");
|
|
26
28
|
var import_client = require("../api/graphql/client");
|
|
27
29
|
var import_documents = require("../api/graphql/documents");
|
|
30
|
+
var import_react = require("../api/react");
|
|
28
31
|
var import_introspection = require("../prop-controllers/introspection");
|
|
29
|
-
var import_react2 = require("../runtimes/react");
|
|
30
32
|
var import_react_page = require("../state/react-page");
|
|
31
33
|
var import_preview_mode = require("./preview-mode");
|
|
32
34
|
var import_pagination = require("./utils/pagination");
|
|
35
|
+
var import_deterministic_uuid = require("../utils/deterministic-uuid");
|
|
36
|
+
var import_controls = require("@makeswift/controls");
|
|
37
|
+
var import_read_only_documents = require("../state/modules/read-only-documents");
|
|
38
|
+
var import_site_published = require("./api-handler/handlers/webhook/site-published");
|
|
33
39
|
const makeswiftPageResultSchema = import_zod.z.object({
|
|
34
40
|
id: import_zod.z.string(),
|
|
35
41
|
path: import_zod.z.string(),
|
|
@@ -91,6 +97,56 @@ function getPagesQueryParams({
|
|
|
91
97
|
params.set("locale", locale);
|
|
92
98
|
return params;
|
|
93
99
|
}
|
|
100
|
+
function pageToRootDocument(pageDocument) {
|
|
101
|
+
const { locale, localizedPages, id, data } = pageDocument;
|
|
102
|
+
const localizedPage = localizedPages.find(({ parentId }) => parentId == null);
|
|
103
|
+
return localizedPage ? { key: localizedPage.elementTreeId, rootElement: localizedPage.data, locale } : { key: id, rootElement: data, locale };
|
|
104
|
+
}
|
|
105
|
+
const makeswiftComponentDocumentSchema = import_zod.z.object({
|
|
106
|
+
id: import_zod.z.string(),
|
|
107
|
+
name: import_zod.z.string().nullable(),
|
|
108
|
+
locale: import_zod.z.string().nullable(),
|
|
109
|
+
data: import_controls.Schema.element,
|
|
110
|
+
siteId: import_zod.z.string(),
|
|
111
|
+
inheritsFromParent: import_zod.z.boolean()
|
|
112
|
+
});
|
|
113
|
+
const makeswiftComponentDocumentFallbackSchema = import_zod.z.object({
|
|
114
|
+
id: import_zod.z.string(),
|
|
115
|
+
locale: import_zod.z.string().nullable(),
|
|
116
|
+
data: import_zod.z.null()
|
|
117
|
+
});
|
|
118
|
+
function componentDocumentToRootEmbeddedDocument({
|
|
119
|
+
document,
|
|
120
|
+
documentKey,
|
|
121
|
+
name,
|
|
122
|
+
type,
|
|
123
|
+
meta
|
|
124
|
+
}) {
|
|
125
|
+
const { data: rootElement, locale, id } = document;
|
|
126
|
+
if (rootElement != null && rootElement.type !== type) {
|
|
127
|
+
throw new Error(
|
|
128
|
+
`Type "${rootElement.type}" does not match the expected type "${type}" from the snapshot`
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
const rootDocument = {
|
|
132
|
+
key: documentKey,
|
|
133
|
+
rootElement: rootElement ?? {
|
|
134
|
+
// Fallback rootElement
|
|
135
|
+
// Create a stable uuid so two different clients will have the same empty element data.
|
|
136
|
+
// This is needed to make presence feature work for an element that is not yet created.
|
|
137
|
+
key: (0, import_deterministic_uuid.deterministicUUID)({ id, locale, seed: documentKey }),
|
|
138
|
+
type,
|
|
139
|
+
props: {}
|
|
140
|
+
},
|
|
141
|
+
locale,
|
|
142
|
+
id,
|
|
143
|
+
type,
|
|
144
|
+
name,
|
|
145
|
+
meta,
|
|
146
|
+
__type: import_read_only_documents.EMBEDDED_DOCUMENT_TYPE
|
|
147
|
+
};
|
|
148
|
+
return rootDocument;
|
|
149
|
+
}
|
|
94
150
|
const pagePathnameSlicesAPISchema = import_zod.z.array(
|
|
95
151
|
import_zod.z.object({
|
|
96
152
|
id: import_zod.z.string(),
|
|
@@ -118,7 +174,10 @@ class Makeswift {
|
|
|
118
174
|
static getSiteVersion(previewData) {
|
|
119
175
|
return (0, import_preview_mode.getMakeswiftSiteVersion)(previewData) ?? import_preview_mode.MakeswiftSiteVersion.Live;
|
|
120
176
|
}
|
|
121
|
-
|
|
177
|
+
static getPreviewMode(previewData) {
|
|
178
|
+
return (0, import_preview_mode.getMakeswiftSiteVersion)(previewData) === import_preview_mode.MakeswiftSiteVersion.Working;
|
|
179
|
+
}
|
|
180
|
+
constructor(apiKey, { apiOrigin = "https://api.makeswift.com", runtime }) {
|
|
122
181
|
if (typeof apiKey !== "string") {
|
|
123
182
|
throw new Error(
|
|
124
183
|
`The Makeswift client must be passed a valid Makeswift site API key: \`new Makeswift('<makeswift_site_api_key>')\`
|
|
@@ -144,6 +203,11 @@ Received "${apiKey}" instead.`
|
|
|
144
203
|
"Makeswift-Site-API-Key": this.apiKey,
|
|
145
204
|
"Makeswift-Site-Version": siteVersion,
|
|
146
205
|
...init?.headers
|
|
206
|
+
},
|
|
207
|
+
...siteVersion === import_preview_mode.MakeswiftSiteVersion.Working ? { cache: "no-store" } : {},
|
|
208
|
+
next: {
|
|
209
|
+
...init?.next,
|
|
210
|
+
tags: [...init?.next?.tags ?? [], import_site_published.MAKESWIFT_CACHE_TAG]
|
|
147
211
|
}
|
|
148
212
|
});
|
|
149
213
|
return response;
|
|
@@ -268,9 +332,9 @@ Received "${apiKey}" instead.`
|
|
|
268
332
|
locale,
|
|
269
333
|
siteVersion
|
|
270
334
|
);
|
|
271
|
-
localizedResourcesMap.set(globalElementId, localizedGlobalElement?.id ?? null);
|
|
272
335
|
if (localizedGlobalElement) {
|
|
273
336
|
elementData = localizedGlobalElement.data;
|
|
337
|
+
localizedResourcesMap.set(globalElementId, localizedGlobalElement.id);
|
|
274
338
|
localizedGlobalElements.set(localizedGlobalElement.id, localizedGlobalElement);
|
|
275
339
|
}
|
|
276
340
|
}
|
|
@@ -303,7 +367,7 @@ Received "${apiKey}" instead.`
|
|
|
303
367
|
},
|
|
304
368
|
siteVersion
|
|
305
369
|
);
|
|
306
|
-
const
|
|
370
|
+
const apiResources = {
|
|
307
371
|
[import_api.APIResourceType.Swatch]: [...swatchIds].map((id) => ({
|
|
308
372
|
id,
|
|
309
373
|
value: swatches.find((swatch) => swatch?.id === id) ?? null
|
|
@@ -322,7 +386,8 @@ Received "${apiKey}" instead.`
|
|
|
322
386
|
})),
|
|
323
387
|
[import_api.APIResourceType.PagePathnameSlice]: [...pageIds].map((id) => ({
|
|
324
388
|
id,
|
|
325
|
-
value: pagePathnames.find((pagePathnameSlice) => pagePathnameSlice?.id === id) ?? null
|
|
389
|
+
value: pagePathnames.find((pagePathnameSlice) => pagePathnameSlice?.id === id) ?? null,
|
|
390
|
+
locale
|
|
326
391
|
})),
|
|
327
392
|
[import_api.APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({
|
|
328
393
|
id,
|
|
@@ -331,11 +396,15 @@ Received "${apiKey}" instead.`
|
|
|
331
396
|
[import_api.APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(
|
|
332
397
|
([id, value]) => ({
|
|
333
398
|
id,
|
|
334
|
-
value
|
|
399
|
+
value,
|
|
400
|
+
locale
|
|
335
401
|
})
|
|
336
402
|
)
|
|
337
403
|
};
|
|
338
|
-
return {
|
|
404
|
+
return {
|
|
405
|
+
apiResources,
|
|
406
|
+
localizedResourcesMap: locale != null ? { [locale]: Object.fromEntries(localizedResourcesMap.entries()) } : {}
|
|
407
|
+
};
|
|
339
408
|
}
|
|
340
409
|
async getPageSnapshot(pathname, {
|
|
341
410
|
siteVersion: siteVersionPromise,
|
|
@@ -358,21 +427,68 @@ Received "${apiKey}" instead.`
|
|
|
358
427
|
}
|
|
359
428
|
const document = await response.json();
|
|
360
429
|
const baseLocalizedPage = document.localizedPages.find(({ parentId }) => parentId == null);
|
|
361
|
-
const
|
|
362
|
-
const { cacheData, localizedResourcesMap } = await this.introspect(
|
|
430
|
+
const cacheData = await this.introspect(
|
|
363
431
|
baseLocalizedPage?.data ?? document.data,
|
|
364
432
|
siteVersion,
|
|
365
|
-
|
|
433
|
+
localeInput
|
|
366
434
|
);
|
|
367
|
-
|
|
368
|
-
|
|
435
|
+
return {
|
|
436
|
+
document,
|
|
437
|
+
cacheData
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
async getComponentSnapshot(id, {
|
|
441
|
+
siteVersion: siteVersionPromise,
|
|
442
|
+
locale,
|
|
443
|
+
allowLocaleFallback = true
|
|
444
|
+
}) {
|
|
445
|
+
const searchParams = new URLSearchParams();
|
|
446
|
+
if (locale)
|
|
447
|
+
searchParams.set("locale", locale);
|
|
448
|
+
const siteVersion = await siteVersionPromise;
|
|
449
|
+
const key = (0, import_deterministic_uuid.deterministicUUID)({ id, locale, seed: this.apiKey.split("-").at(0) });
|
|
450
|
+
const baseLocaleWasRequested = locale == null;
|
|
451
|
+
const canAttemptLocaleFallback = !baseLocaleWasRequested && allowLocaleFallback;
|
|
452
|
+
let response;
|
|
453
|
+
const responseForRequestedLocale = await this.fetch(
|
|
454
|
+
`v1/element-trees/${id}?${searchParams.toString()}`,
|
|
455
|
+
siteVersion
|
|
456
|
+
);
|
|
457
|
+
if (responseForRequestedLocale.status === 404 && canAttemptLocaleFallback) {
|
|
458
|
+
response = await this.fetch(`v1/element-trees/${id}`, siteVersion);
|
|
459
|
+
} else {
|
|
460
|
+
response = responseForRequestedLocale;
|
|
461
|
+
}
|
|
462
|
+
if (response.status === 404) {
|
|
463
|
+
return {
|
|
464
|
+
document: {
|
|
465
|
+
id,
|
|
466
|
+
locale: locale ?? null,
|
|
467
|
+
data: null
|
|
468
|
+
},
|
|
469
|
+
key,
|
|
470
|
+
cacheData: import_react.CacheData.empty(),
|
|
471
|
+
meta: {
|
|
472
|
+
allowLocaleFallback,
|
|
473
|
+
requestedLocale: locale ?? null
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
const json = await response.json();
|
|
478
|
+
if (!response.ok) {
|
|
479
|
+
console.error("Failed to get page snapshot", json);
|
|
480
|
+
throw new Error(`Failed to get page snapshot with error: "${response.statusText}"`);
|
|
481
|
+
}
|
|
482
|
+
const document = makeswiftComponentDocumentSchema.parse(json);
|
|
483
|
+
const cacheData = await this.introspect(document.data, siteVersion, locale);
|
|
369
484
|
return {
|
|
370
485
|
document,
|
|
371
486
|
cacheData,
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
487
|
+
key,
|
|
488
|
+
meta: {
|
|
489
|
+
allowLocaleFallback,
|
|
490
|
+
requestedLocale: locale ?? null
|
|
491
|
+
}
|
|
376
492
|
};
|
|
377
493
|
}
|
|
378
494
|
async getSwatch(swatchId, siteVersion) {
|
|
@@ -495,6 +611,8 @@ Received "${apiKey}" instead.`
|
|
|
495
611
|
}
|
|
496
612
|
// Annotate the CommonJS export names for ESM import in node:
|
|
497
613
|
0 && (module.exports = {
|
|
498
|
-
Makeswift
|
|
614
|
+
Makeswift,
|
|
615
|
+
componentDocumentToRootEmbeddedDocument,
|
|
616
|
+
pageToRootDocument
|
|
499
617
|
});
|
|
500
618
|
//# sourceMappingURL=client.js.map
|