- (feature) Support
description
in components. - (improvement) Improve diff header description.
- (bug) Properly HTML-encode the preview template of components.
- (bug) Fix invalid directory name.
- (feature) Add
AssetProxyUrlGenerator
to rewrite asset URLs. - (feature) Sign asset proxy URLs for more secure proxying.
- (feature) Add integration for app validation from the hosting bundle.
- (improvement) Bump dependencies.
- (feature) Integrate Symfony webhooks and add global
storyblok
webhook. - (feature) Parse all supported types of webhooks and dispatch them as events.
- (feature) Add automatic asset proxy.
- (feature) Add ability to clear asset storage via CLI via
storyblok:assets:clear-proxy-storage
. - (improvement) Add asset proxy stats to debug command.
- (feature) Automatically integrate into Storyblok webhooks to clear the image proxy storage.
- (improvement) Allow
21torr/hosting
v4.
- (improvement) Widen support for tags in TipTaps HTML to rich text transformer
- (bug) Don't crash hard when RichText Links don't contain optional properties.
- (feature) Add
ManagementApi::exportTranslationsXmlFile()
and::importTranslationsXmlFile()
.
- (improvement) Make
StoryblokIdSlugMapper
mock-able.
- (improvement) Detect space id / content token mismatch and automatically abort all further requests.
- (feature) Add
storyblok:debug
command. - (deprecation) Deprecate
storyblok:components:overview
command, usestoryblok:debug
instead.
- (improvement) Allow
21torr/hosting
v3. - (improvement) Require Symfony 7.
- (improvement) Remove useless type parameter in
AbstractComponent
. - (improvement) Improve type definitions.
- (internal) Update CI.
- (feature) Add support for rendering a
StoryChoice
's entry appearance as Link or Card (argument:$displayAsCard
). - (feature) Add support for using modal / advanced search when selecting a
StoryChoice
(argument:allowAdvancedSearch
) instead of a dropdown.
- (improvement) Ignore even more key when diffing.
- (feature) Add fetching links in
ContentApi
. - (improvement) Use in
StoryblokIdSlugMapper
the links data from Storyblok instead of stories.
- (improvement) Allow Symfony 7.
- (improvement) Require PHP 8.3+.
- (improvement) Add
StoryblokBackendUrlGenerator::generateStoryEditUrlById()
. - (improvement) Simplify diff generation.
- (improvement) Don't sync structure to Storyblok if not in prod.
- (improvement) Add new RichTextStyling option
RichTextStyling::UnsetFormatting
. - (improvement) Add support for transforming HardBreak, CodeBlock, HorizontalRule and Emoji in
RichTextTransformer
.
- (feature) Add option
automaticallyTransformNonRichTextContent
toRichTextField
to allow string as data from Storyblok and transform it to rich text data.
- (bug) Use configurable
locale_level
to get the correct locale inStoryMetaData::getAlternateLanguages()
.
- (improvement) Also support older versions of
sebastian/diff
.
- (improvement) Make types in
StoryLinkData
more strict. - (improvement) Transform empty links in
LinkField
directly tonull
. - (improvement) Pass
fullData
inStoryLinkData
.
- (feature) Show diff before syncing component definitions.
- (feature) Only sync components that actually have a change.
- (bug) Fix sync of preview fields - Storyblok changed the way they are defined.
- (internal) Add generic
ManagementApi::sendRequest()
to unify call structures. - (internal) Reuse existing folder API calls in management API to not duplicate requests anymore.
- (feature) Add
ManagementApi::syncDatasourceEntries()
. - (improvement) Require PHP 8.2+.
- (bug) Fix invalid service excludes.
- (feature) Add
HtmlToRichTextTransformer
to transform HTML to rich text.
- (feature) Add option to exclude/include certain fields into the translation export.
- (bug) Add missing validation and transformation for
AssetField
if multiple assets are allowed (allowMultiple = true).
- (feature) Add configurable
locale_level
to better support different Storyblok directory layouts.
- (feature) Add support for fetching
DatasourceEntry
s viaContentApi
.
- (feature) Extract parsing of
_editable
data intoPreviewDataParser
. - (internal) Expose
_editable
data viaStoryMetaData::getPreviewData()
. - (feature) Add
ComponentPreviewData
helper to easily render component meta and preview data. - (improvement) Add support for setting minimum and maximum count of selected
ChoiceField
options. - (bug) Add missing
symfony/lock
dependency. - (improvement) Sort components alphabetically when syncing/validating.
- (improvement) Add helper
ReleaseVersion::createFromPreviewFlag()
. - (feature) Add
ComponentDataVisitorInterface
to also be able to visit components.
- (bug) Fix wrong namespace import of
ValidationFailedException
being used.
- (feature) Add support for
TableField
.
- (feature) Add new command
storyblok:definitions:validate
to validate whether the components can be normalized.
- (bug) Normalize enums in
tags
parameter inComponentManager::getComponentKeysForTags()
. - (improvement) Properly log message about invalid component keys.
- (improvement) Revert to previous rate limit wait time.
- (improvement) Increase retry wait time for management API rate limiting.
- (improvement) Ignore unknown bloks in
BloksField
. - (feature) Add
ComponentFilter
for fields to use for simpler component filtering. - (bc) Remove
ComponentsWithTags
, as it is replaced withComponentFilter
. - (bc) Remove ability to filter by component groups.
- (improvement) Add internal
LocaleHelper
to unify locale detection. - (feature) Add
StoryMetaData::getTranslatedDocumentsMapping()
to fetch the required data to map hreflangs. - (deprecation) Deprecate
AbstractField::enablePreview()
in favor ofAbstractField::useAsAdminDisplayName()
. - (improvement) Improve error reporting of choices values.
- (improvement) Use retryable HTTP clients to avoid rate limit issues.
- (bug) Add missing type in assert.
- (improvement) Ignore unknown components.
- (improvement) Ignore never saved stories.
- (feature) Add generic
RichTextTransformer
. - (bug) Add
LinkMarksRichTextTransformer
and replace custom implementation, to cover more cases.
- (improvement) Add a service that can bulk-transform id/uuids to full slugs.
- (bc) Only pass the
id
inStoryLinkData
andRichTextStoryLinkData
to improve performance of fetching Storyblok data.
- (improvement) Allow returning enums in
AbstractComponent::getTags()
. - (bug) Resolve inline
*LinkData
from within aRichTextField
to their correct destination.
- (improvement) Show space info when syncing definitions.
- (feature) Add dry-run mode for component sync.
- (bc) Enable dry run mode by default.
- (bug) Fix
full_slug
link field, by fetching it fresh from the API. - (feature) Add possibility to load info about the current space.
- (improvement) Add new
RichTextStyling
options.
- (improvement) Also pass
uid
inComponentData
.
- (bug) Fix invalid type definition.
- (feature) Transform data of embedded blocks in RTE fields.
- (improvement) Allow value-objects to be returned from
CompositeField::transformData()
.
- (bug) Fix empty check in
RichTextField
.
- (feature) Add console command
storyblok:components:overview
.
- (bug) Fix data validation in
StaticChoices
.
- (bug) Fix calculation of total number of pages of Storyblok API result.
- (feature) Add automatic pagination support in the content API.
- (feature) Add automatic retry for the storyblok API.
- (bug) Fix validation for empty
BloksField
s.
- (feature) Extract image dimensions from Storyblok URLs into
AssetData
andAssetLinkData
.
- (feature) Add
FolderData
+ManagementApi::fetchFoldersInPath()
.
- (improvement) Use
StoryInterface
instead ofStory
as parameter type in methods.
- (improvement) Always sort Stories by their internal
position
field. - (feature) Expose internal
position
viaStoryMetaData::getPosition()
.
- (improvement) Improve exception message for better tracing/debugging when hydration of a
Story
fails due to invalid data.
- (improvement) Add
StoryInterface
. - (bc) Use
fullSlug
inStoryLinkData
. - (bc) Add better support for multiple story references via
StoryReferenceList
.
- (feature) Add management API method, to fetch the section title maps.
- (bug) Send correct key in order to set RegExp validation for Fields.
- (improvement) Try to use
cv
in the API client and remove the local rate limiter.
- (improvement) Add full slug as label to top-level components' validation path.
- (improvement) Revert adjustments from 1.4.2 to keep the codebase simpler.
- (improvement) Pass the component definition in
ComponentData
.
- (improvement) Add getter for story slug segments.
- (bug) Fix RateLimiter configuration for Storyblok's Content API to hopefully not exceed their rate limit.
- (improvement) Prevent automatic API redirect by sorting the query parameters pre-emptively.
- (feature) Add support for fetching different
ReleaseVerion
s inContentApi::fetchStories()
and::fetchAllStories()
. - (bug) Fix handling of
BooleanField
withallowMissingData
set totrue
.
- (feature) Add support for fetching a Story directly via their Uuid from the Storyblok Content API.
- (feature) Add
StoryReferenceData
. - (bc) The
StoryChoices
no longer return the Uuid(s) of the referenced Stories. Instead, it returns theStoryReferenceData
object(s). - (feature) Add support for specifying a data mode key for the
StoryChoices
instance, which will be passed down to the corresponding*StoryNormalizer
, which can conditionally return different data based on the mode key.
- (bug) Fix invalid handling of
AbstractGroupingElement
fields. - (bug) Don't crash when
CompositeField
field data is not present (forallowMissingData
cases).
- (bug) Fix invalid handling of nested fields.
- (feature) Add
CompositeField
to allow logical grouping of multiple fields.
- (bug) Fix invalid handling of multi-select
ChoiceField
.
- (feature) Add preview info for
ComponentData
.
- (feature) Initial Release