@uniformdev/canvas 19.85.1-alpha.14 → 19.86.1-alpha.10

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/index.d.mts CHANGED
@@ -13284,6 +13284,11 @@ type WalkNodeTreeOptions<TContext> = {
13284
13284
  };
13285
13285
  /** Walks a composition's content tree, visiting each component in a slot or block parameter/field depth-first, in order. */
13286
13286
  declare function walkNodeTree<TContext = unknown>(node: ComponentInstance | EntryData | Array<NodeLocationReference>, visitor: (info: TreeNodeInfoTypes<TContext>) => void, options?: WalkNodeTreeOptions<TContext>): void;
13287
+ /**
13288
+ * Any types which hold an array of nodes and
13289
+ * therefore should be iterated over as child nodes
13290
+ */
13291
+ declare function isNestedNodeType(type: string): boolean;
13287
13292
  /** Gets the typed value of a block parameter or block field */
13288
13293
  declare function getBlockValue(component: ComponentInstance | EntryData, parameterName: string): BlockValue;
13289
13294
 
@@ -13758,11 +13763,6 @@ declare const createUniformApiEnhancer: ({ apiUrl }: {
13758
13763
  * Removes things like author, stats, etc.
13759
13764
  */
13760
13765
  declare function convertEntryToPutEntry(entry: Entry): PutEntryBody;
13761
- /**
13762
- * Gets the object holding the properties (fields or parameters) of an entry or component instance
13763
- * If no properties are defined, returns undefined.
13764
- */
13765
- declare function getPropertiesValue(entity: Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>): ComponentInstance['parameters'];
13766
13766
 
13767
13767
  declare const ATTRIBUTE_COMPONENT_ID = "data-uniform-component-id";
13768
13768
  declare const ATTRIBUTE_PARAMETER_ID = "data-uniform-parameter-id";
@@ -13842,6 +13842,57 @@ declare function mapSlotToTestVariations(slot: ComponentInstance[] | undefined):
13842
13842
  declare const isComponentPlaceholderId: (id: string | undefined) => boolean;
13843
13843
  declare const generateComponentPlaceholderId: (randomId: string, sdkVersion: number | undefined) => string;
13844
13844
 
13845
+ type FlattenProperty<P> = P extends {
13846
+ value: unknown;
13847
+ } ? P['value'] : P;
13848
+ type FlattenValues<T extends DataWithProperties> = T extends Pick<ComponentInstance, 'parameters'> ? Record<string, unknown> & {
13849
+ [Property in keyof T['parameters']]: FlattenProperty<T['parameters'][Property]>;
13850
+ } : T extends Pick<EntryData, 'fields'> ? Record<string, unknown> & {
13851
+ [Property in keyof T['fields']]: FlattenProperty<T['fields'][Property]>;
13852
+ } : unknown;
13853
+ /**
13854
+ * Gets the object holding the properties (fields or parameters) of an entry or component instance
13855
+ * If no properties are defined, returns undefined.
13856
+ */
13857
+ declare function getPropertiesValue(entity: Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>): ComponentInstance['parameters'];
13858
+ interface FlattenValuesOptions {
13859
+ /**
13860
+ * Take only the first item from an array
13861
+ * of values, flatten it and return it as a single object
13862
+ */
13863
+ toSingle?: boolean;
13864
+ /**
13865
+ * If the property has nested properties, like Blocks or Assets
13866
+ * can, then how many levels should we traverse.
13867
+ *
13868
+ * You can set this to `Infinity` although it would be more
13869
+ * advisable, for performance, to use the number you need in your code.
13870
+ *
13871
+ * Where:
13872
+ * levels=0 will only extract the properties of the current object
13873
+ * levels=1 will include any child blocks or assets on the current object
13874
+ * but not any grandchildren
13875
+ *
13876
+ * @default 1
13877
+ */
13878
+ levels?: number;
13879
+ }
13880
+ /**
13881
+ * Get the data stored in the value of a component parameter
13882
+ * or a field attached to an Entry, Block or Asset
13883
+ */
13884
+ declare function getPropertyValue<TValue, T extends ComponentParameter<TValue>>(parameter: T): TValue;
13885
+ declare function getPropertyValue(parameter: null): null;
13886
+ declare function getPropertyValue(parameter: undefined): undefined;
13887
+ type DataWithProperties = Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>;
13888
+ declare function flattenValues(data: null, options?: FlattenValuesOptions): null;
13889
+ declare function flattenValues(data: undefined, options?: FlattenValuesOptions): undefined;
13890
+ declare function flattenValues<Data extends DataWithProperties>(data: Data | null | undefined, options?: FlattenValuesOptions): FlattenValues<Data> | null | undefined;
13891
+ declare function flattenValues<Data extends DataWithProperties>(data: Array<Data> | null | undefined, options: {
13892
+ toSingle: true;
13893
+ } & Omit<FlattenValuesOptions, 'toSingle'>): FlattenValues<Data> | null | undefined;
13894
+ declare function flattenValues<Data extends DataWithProperties>(data: Array<Data> | null | undefined, options?: FlattenValuesOptions): Array<FlattenValues<Data>> | null | undefined;
13895
+
13845
13896
  type BindVariablesResult<TValue> = {
13846
13897
  /** Number of dynamic expressions that attempted to be bound (regardless of the success of the binding) */
13847
13898
  boundCount: number;
@@ -13901,4 +13952,4 @@ declare function parseVariableExpression(serialized: string, onToken?: (token: s
13901
13952
 
13902
13953
  declare const CanvasClientError: typeof ApiClientError;
13903
13954
 
13904
- export { ASSETS_SOURCE_CUSTOM_URL, ASSETS_SOURCE_UNIFORM, ASSET_PARAMETER_TYPE, ATTRIBUTE_COMPONENT_ID, ATTRIBUTE_MULTILINE, ATTRIBUTE_PARAMETER_ID, ATTRIBUTE_PARAMETER_TYPE, ATTRIBUTE_PARAMETER_VALUE, ATTRIBUTE_PLACEHOLDER, type AddComponentMessage, type AssetParamValue, type AssetParamValueItem, type BatchEnhancer, BatchEntry, type BatchInvalidationPayload, type BindVariablesOptions, type BindVariablesResult, type BindVariablesToObjectOptions, type BlockLocationReference, type BlockValue, CANVAS_BLOCK_PARAM_TYPE, CANVAS_DRAFT_STATE, CANVAS_EDITOR_STATE, CANVAS_ENRICHMENT_TAG_PARAM, CANVAS_INTENT_TAG_PARAM, CANVAS_LOCALE_TAG_PARAM, CANVAS_LOCALIZATION_SLOT, CANVAS_LOCALIZATION_TYPE, CANVAS_PERSONALIZATION_PARAM, CANVAS_PERSONALIZE_SLOT, CANVAS_PERSONALIZE_TYPE, CANVAS_PUBLISHED_STATE, CANVAS_TEST_SLOT, CANVAS_TEST_TYPE, CANVAS_TEST_VARIANT_PARAM, CanvasClient, CanvasClientError, type CanvasDefinitions, type CategoriesDeleteParameters, type CategoriesGetParameters, type CategoriesGetResponse, type CategoriesPutParameters, type Category, CategoryClient, type Channel, type ChannelMessage, type ChannelSubscription, ChildEnhancerBuilder, type ComponentDefinition, type ComponentDefinitionDeleteParameters, type ComponentDefinitionGetParameters, type ComponentDefinitionGetResponse, type ComponentDefinitionParameter, type ComponentDefinitionPermission, type ComponentDefinitionPutParameters, type ComponentDefinitionSlot, type ComponentDefinitionSlugSettings, type ComponentDefinitionVariant, type ComponentEnhancer, type ComponentEnhancerFunction, type ComponentEnhancerOptions, type ComponentInstance, type ComponentInstanceContextualEditing, type ComponentInstanceHistoryEntry, type ComponentInstanceHistoryGetParameters, type ComponentInstanceHistoryGetResponse, type ComponentLocationReference, type ComponentLocationReferenceV2, type ComponentOverridability, type ComponentOverride, type ComponentOverrides, type ComponentParameter, type ComponentParameterBlock, type ComponentParameterContextualEditing, type ComponentParameterEnhancer, type ComponentParameterEnhancerFunction, type ComponentParameterEnhancerOptions, type CompositionDataDiagnostic, type CompositionDeleteParameters, type CompositionDiagnostics, type CompositionGetByComponentIdParameters, type CompositionGetByIdParameters, type CompositionGetByNodeIdParameters, type CompositionGetByNodePathParameters, type CompositionGetBySlugParameters, type CompositionGetListResponse, type CompositionGetOrderBy, type CompositionGetParameters, type CompositionGetResponse, type CompositionGetValidResponses, type CompositionIssue, type CompositionPatternIssue, type CompositionPutParameters, type CompositionRelationshipsClientOptions, type CompositionRelationshipsDDefinitionGetResponse, type CompositionRelationshipsDefinitionApi, type CompositionRelationshipsDefinitionGetParameters, type CompositionResolvedGetResponse, type CompositionResolvedListResponse, type CompositionUIStatus, ContentClient, type ContentType, type ContentTypeField, type ContextualEditingComponentReference, type DataDiagnostic, type DataElementBindingIssue, type DataElementConnectionDefinition, type DataResolutionConfigIssue, type DataResolutionIssue, type DataResolutionOption, type DataResolutionOptionNegative, type DataResolutionOptionPositive, type DataResolutionParameters, type DataResourceDefinition, type DataResourceDefinitions, type DataResourceIssue, type DataResourceVariables, type DataSource, DataSourceClient, type DataSourceDeleteParameters, type DataSourceGetParameters, type DataSourceGetResponse, type DataSourcePutParameters, type DataSourcesGetParameters, type DataSourcesGetResponse, type DataType, DataTypeClient, type DataTypeDeleteParameters, type DataTypeGetParameters, type DataTypeGetResponse, type DataTypePutParameters, type DataVariableDefinition, type DeleteContentTypeOptions, type DeleteEntryOptions, type DismissPlaceholderMessage, type DynamicInputIssue, EDGE_CACHE_DISABLED, EDGE_DEFAULT_CACHE_TTL, EDGE_MAX_CACHE_TTL, EDGE_MIN_CACHE_TTL, EMPTY_COMPOSITION, type EdgehancersDiagnostics, type EditorStateUpdatedMessage, EnhancerBuilder, type EnhancerContext, type EnhancerError, type EntriesGetParameters, type EntriesGetResponse, type EntriesHistoryGetParameters, type EntriesHistoryGetResponse, type EntriesResolvedListResponse, type Entry, type EntryData, type EntryList, type EventNames, type FindInNodeTreeReference, type GetContentTypesOptions, type GetContentTypesResponse, type GetEntriesOptions, type GetEntriesResponse, type GetParameterAttributesProps, IN_CONTEXT_EDITOR_COMPONENT_END_ROLE, IN_CONTEXT_EDITOR_COMPONENT_START_ROLE, IN_CONTEXT_EDITOR_CONFIG_CHECK_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_EMBED_SCRIPT_ID, IN_CONTEXT_EDITOR_PLAYGROUND_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_QUERY_STRING_PARAM, IS_RENDERED_BY_UNIFORM_ATTRIBUTE, type InvalidationPayload, type LimitPolicy, type LinkComponentParameterValue, type LinkParamConfiguration, type LinkParamValue, type LinkParameterType, type LinkTypeConfiguration, type MessageHandler, type MoveComponentMessage, type NodeLocationReference, type NonProjectMapLinkParamValue, type OpenParameterEditorMessage, type OverrideOptions, PLACEHOLDER_ID, type PatternIssue, type PreviewEventBus, type PreviewPanelSettings, type ProjectMapLinkComponentParameterValue, type ProjectMapLinkParamValue, type Prompt, PromptClient, type PromptsDeleteParameters, type PromptsGetParameters, type PromptsGetResponse, type PromptsPutParameters, type PutContentTypeBody, type PutEntryBody, type ReadyMessage, type ReportRenderedCompositionsMessage, type ResolvedRouteGetResponse, type RichTextBuiltInElement, type RichTextBuiltInFormat, type RichTextParamConfiguration, type RichTextParamValue, type RootComponentInstance, type RootEntryReference, type RootLocationReference, RouteClient, type RouteDynamicInputs, type RouteGetParameters, type RouteGetResponse, type RouteGetResponseComposition, type RouteGetResponseEdgehancedComposition, type RouteGetResponseNotFound, type RouteGetResponseRedirect, SECRET_QUERY_STRING_PARAM, type SelectComponentMessage, type SelectParameterMessage, type SpecificProjectMap, type SubscribeToCompositionOptions, type TreeNodeInfoTypes, type TriggerComponentActionMessage, type TriggerCompositionActionMessage, UncachedCanvasClient, UncachedCategoryClient, UncachedContentClient, UniqueBatchEntries, type UnsubscribeCallback, type UpdateComponentParameterMessage, type UpdateComponentReferencesMessage, type UpdateCompositionInternalMessage, type UpdateCompositionMessage, type UpdateContextualEditingStateInternalMessage, type UpdateFeatureFlagsMessage, type UpdatePreviewSettingsMessage, type UsageTrackingApi, type UsageTrackingGetParameters, type UsageTrackingGetResponse, type UsageTrackingPostParameters, type UsageTrackingPostResponse, type WalkComponentTreeActions, type WalkNodeTreeActions, type WalkNodeTreeOptions, bindVariables, bindVariablesToObject, compose, convertEntryToPutEntry, createBatchEnhancer, createCanvasChannel, createEventBus, createLimitPolicy, createUniformApiEnhancer, createVariableReference, enhance, extractLocales, findParameterInNodeTree, generateComponentPlaceholderId, generateHash, getBlockValue, getChannelName, getComponentJsonPointer, getComponentPath, getNounForLocation, getNounForNode, getParameterAttributes, getPropertiesValue, isAddComponentMessage, isAllowedReferrer, isAssetParamValue, isAssetParamValueItem, isComponentActionMessage, isComponentPlaceholderId, isDismissPlaceholderMessage, isEntryData, isMovingComponentMessage, isOpenParameterEditorMessage, isReadyMessage, isReportRenderedCompositionsMessage, isRootEntryReference, isSelectComponentMessage, isSelectParameterMessage, isSystemComponentDefinition, isTriggerCompositionActionMessage, isUpdateComponentParameterMessage, isUpdateComponentReferencesMessage, isUpdateCompositionInternalMessage, isUpdateCompositionMessage, isUpdateContextualEditingStateInternalMessage, isUpdateFeatureFlagsMessage, isUpdatePreviewSettingsMessage, localize, mapSlotToPersonalizedVariations, mapSlotToTestVariations, nullLimitPolicy, parseVariableExpression, subscribeToComposition, unstable_CompositionRelationshipClient, walkComponentTree, walkNodeTree };
13955
+ export { ASSETS_SOURCE_CUSTOM_URL, ASSETS_SOURCE_UNIFORM, ASSET_PARAMETER_TYPE, ATTRIBUTE_COMPONENT_ID, ATTRIBUTE_MULTILINE, ATTRIBUTE_PARAMETER_ID, ATTRIBUTE_PARAMETER_TYPE, ATTRIBUTE_PARAMETER_VALUE, ATTRIBUTE_PLACEHOLDER, type AddComponentMessage, type AssetParamValue, type AssetParamValueItem, type BatchEnhancer, BatchEntry, type BatchInvalidationPayload, type BindVariablesOptions, type BindVariablesResult, type BindVariablesToObjectOptions, type BlockLocationReference, type BlockValue, CANVAS_BLOCK_PARAM_TYPE, CANVAS_DRAFT_STATE, CANVAS_EDITOR_STATE, CANVAS_ENRICHMENT_TAG_PARAM, CANVAS_INTENT_TAG_PARAM, CANVAS_LOCALE_TAG_PARAM, CANVAS_LOCALIZATION_SLOT, CANVAS_LOCALIZATION_TYPE, CANVAS_PERSONALIZATION_PARAM, CANVAS_PERSONALIZE_SLOT, CANVAS_PERSONALIZE_TYPE, CANVAS_PUBLISHED_STATE, CANVAS_TEST_SLOT, CANVAS_TEST_TYPE, CANVAS_TEST_VARIANT_PARAM, CanvasClient, CanvasClientError, type CanvasDefinitions, type CategoriesDeleteParameters, type CategoriesGetParameters, type CategoriesGetResponse, type CategoriesPutParameters, type Category, CategoryClient, type Channel, type ChannelMessage, type ChannelSubscription, ChildEnhancerBuilder, type ComponentDefinition, type ComponentDefinitionDeleteParameters, type ComponentDefinitionGetParameters, type ComponentDefinitionGetResponse, type ComponentDefinitionParameter, type ComponentDefinitionPermission, type ComponentDefinitionPutParameters, type ComponentDefinitionSlot, type ComponentDefinitionSlugSettings, type ComponentDefinitionVariant, type ComponentEnhancer, type ComponentEnhancerFunction, type ComponentEnhancerOptions, type ComponentInstance, type ComponentInstanceContextualEditing, type ComponentInstanceHistoryEntry, type ComponentInstanceHistoryGetParameters, type ComponentInstanceHistoryGetResponse, type ComponentLocationReference, type ComponentLocationReferenceV2, type ComponentOverridability, type ComponentOverride, type ComponentOverrides, type ComponentParameter, type ComponentParameterBlock, type ComponentParameterContextualEditing, type ComponentParameterEnhancer, type ComponentParameterEnhancerFunction, type ComponentParameterEnhancerOptions, type CompositionDataDiagnostic, type CompositionDeleteParameters, type CompositionDiagnostics, type CompositionGetByComponentIdParameters, type CompositionGetByIdParameters, type CompositionGetByNodeIdParameters, type CompositionGetByNodePathParameters, type CompositionGetBySlugParameters, type CompositionGetListResponse, type CompositionGetOrderBy, type CompositionGetParameters, type CompositionGetResponse, type CompositionGetValidResponses, type CompositionIssue, type CompositionPatternIssue, type CompositionPutParameters, type CompositionRelationshipsClientOptions, type CompositionRelationshipsDDefinitionGetResponse, type CompositionRelationshipsDefinitionApi, type CompositionRelationshipsDefinitionGetParameters, type CompositionResolvedGetResponse, type CompositionResolvedListResponse, type CompositionUIStatus, ContentClient, type ContentType, type ContentTypeField, type ContextualEditingComponentReference, type DataDiagnostic, type DataElementBindingIssue, type DataElementConnectionDefinition, type DataResolutionConfigIssue, type DataResolutionIssue, type DataResolutionOption, type DataResolutionOptionNegative, type DataResolutionOptionPositive, type DataResolutionParameters, type DataResourceDefinition, type DataResourceDefinitions, type DataResourceIssue, type DataResourceVariables, type DataSource, DataSourceClient, type DataSourceDeleteParameters, type DataSourceGetParameters, type DataSourceGetResponse, type DataSourcePutParameters, type DataSourcesGetParameters, type DataSourcesGetResponse, type DataType, DataTypeClient, type DataTypeDeleteParameters, type DataTypeGetParameters, type DataTypeGetResponse, type DataTypePutParameters, type DataVariableDefinition, type DataWithProperties, type DeleteContentTypeOptions, type DeleteEntryOptions, type DismissPlaceholderMessage, type DynamicInputIssue, EDGE_CACHE_DISABLED, EDGE_DEFAULT_CACHE_TTL, EDGE_MAX_CACHE_TTL, EDGE_MIN_CACHE_TTL, EMPTY_COMPOSITION, type EdgehancersDiagnostics, type EditorStateUpdatedMessage, EnhancerBuilder, type EnhancerContext, type EnhancerError, type EntriesGetParameters, type EntriesGetResponse, type EntriesHistoryGetParameters, type EntriesHistoryGetResponse, type EntriesResolvedListResponse, type Entry, type EntryData, type EntryList, type EventNames, type FindInNodeTreeReference, type FlattenProperty, type FlattenValues, type FlattenValuesOptions, type GetContentTypesOptions, type GetContentTypesResponse, type GetEntriesOptions, type GetEntriesResponse, type GetParameterAttributesProps, IN_CONTEXT_EDITOR_COMPONENT_END_ROLE, IN_CONTEXT_EDITOR_COMPONENT_START_ROLE, IN_CONTEXT_EDITOR_CONFIG_CHECK_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_EMBED_SCRIPT_ID, IN_CONTEXT_EDITOR_PLAYGROUND_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_QUERY_STRING_PARAM, IS_RENDERED_BY_UNIFORM_ATTRIBUTE, type InvalidationPayload, type LimitPolicy, type LinkComponentParameterValue, type LinkParamConfiguration, type LinkParamValue, type LinkParameterType, type LinkTypeConfiguration, type MessageHandler, type MoveComponentMessage, type NodeLocationReference, type NonProjectMapLinkParamValue, type OpenParameterEditorMessage, type OverrideOptions, PLACEHOLDER_ID, type PatternIssue, type PreviewEventBus, type PreviewPanelSettings, type ProjectMapLinkComponentParameterValue, type ProjectMapLinkParamValue, type Prompt, PromptClient, type PromptsDeleteParameters, type PromptsGetParameters, type PromptsGetResponse, type PromptsPutParameters, type PutContentTypeBody, type PutEntryBody, type ReadyMessage, type ReportRenderedCompositionsMessage, type ResolvedRouteGetResponse, type RichTextBuiltInElement, type RichTextBuiltInFormat, type RichTextParamConfiguration, type RichTextParamValue, type RootComponentInstance, type RootEntryReference, type RootLocationReference, RouteClient, type RouteDynamicInputs, type RouteGetParameters, type RouteGetResponse, type RouteGetResponseComposition, type RouteGetResponseEdgehancedComposition, type RouteGetResponseNotFound, type RouteGetResponseRedirect, SECRET_QUERY_STRING_PARAM, type SelectComponentMessage, type SelectParameterMessage, type SpecificProjectMap, type SubscribeToCompositionOptions, type TreeNodeInfoTypes, type TriggerComponentActionMessage, type TriggerCompositionActionMessage, UncachedCanvasClient, UncachedCategoryClient, UncachedContentClient, UniqueBatchEntries, type UnsubscribeCallback, type UpdateComponentParameterMessage, type UpdateComponentReferencesMessage, type UpdateCompositionInternalMessage, type UpdateCompositionMessage, type UpdateContextualEditingStateInternalMessage, type UpdateFeatureFlagsMessage, type UpdatePreviewSettingsMessage, type UsageTrackingApi, type UsageTrackingGetParameters, type UsageTrackingGetResponse, type UsageTrackingPostParameters, type UsageTrackingPostResponse, type WalkComponentTreeActions, type WalkNodeTreeActions, type WalkNodeTreeOptions, bindVariables, bindVariablesToObject, compose, convertEntryToPutEntry, createBatchEnhancer, createCanvasChannel, createEventBus, createLimitPolicy, createUniformApiEnhancer, createVariableReference, enhance, extractLocales, findParameterInNodeTree, flattenValues, generateComponentPlaceholderId, generateHash, getBlockValue, getChannelName, getComponentJsonPointer, getComponentPath, getNounForLocation, getNounForNode, getParameterAttributes, getPropertiesValue, getPropertyValue, isAddComponentMessage, isAllowedReferrer, isAssetParamValue, isAssetParamValueItem, isComponentActionMessage, isComponentPlaceholderId, isDismissPlaceholderMessage, isEntryData, isMovingComponentMessage, isNestedNodeType, isOpenParameterEditorMessage, isReadyMessage, isReportRenderedCompositionsMessage, isRootEntryReference, isSelectComponentMessage, isSelectParameterMessage, isSystemComponentDefinition, isTriggerCompositionActionMessage, isUpdateComponentParameterMessage, isUpdateComponentReferencesMessage, isUpdateCompositionInternalMessage, isUpdateCompositionMessage, isUpdateContextualEditingStateInternalMessage, isUpdateFeatureFlagsMessage, isUpdatePreviewSettingsMessage, localize, mapSlotToPersonalizedVariations, mapSlotToTestVariations, nullLimitPolicy, parseVariableExpression, subscribeToComposition, unstable_CompositionRelationshipClient, walkComponentTree, walkNodeTree };
package/dist/index.d.ts CHANGED
@@ -13284,6 +13284,11 @@ type WalkNodeTreeOptions<TContext> = {
13284
13284
  };
13285
13285
  /** Walks a composition's content tree, visiting each component in a slot or block parameter/field depth-first, in order. */
13286
13286
  declare function walkNodeTree<TContext = unknown>(node: ComponentInstance | EntryData | Array<NodeLocationReference>, visitor: (info: TreeNodeInfoTypes<TContext>) => void, options?: WalkNodeTreeOptions<TContext>): void;
13287
+ /**
13288
+ * Any types which hold an array of nodes and
13289
+ * therefore should be iterated over as child nodes
13290
+ */
13291
+ declare function isNestedNodeType(type: string): boolean;
13287
13292
  /** Gets the typed value of a block parameter or block field */
13288
13293
  declare function getBlockValue(component: ComponentInstance | EntryData, parameterName: string): BlockValue;
13289
13294
 
@@ -13758,11 +13763,6 @@ declare const createUniformApiEnhancer: ({ apiUrl }: {
13758
13763
  * Removes things like author, stats, etc.
13759
13764
  */
13760
13765
  declare function convertEntryToPutEntry(entry: Entry): PutEntryBody;
13761
- /**
13762
- * Gets the object holding the properties (fields or parameters) of an entry or component instance
13763
- * If no properties are defined, returns undefined.
13764
- */
13765
- declare function getPropertiesValue(entity: Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>): ComponentInstance['parameters'];
13766
13766
 
13767
13767
  declare const ATTRIBUTE_COMPONENT_ID = "data-uniform-component-id";
13768
13768
  declare const ATTRIBUTE_PARAMETER_ID = "data-uniform-parameter-id";
@@ -13842,6 +13842,57 @@ declare function mapSlotToTestVariations(slot: ComponentInstance[] | undefined):
13842
13842
  declare const isComponentPlaceholderId: (id: string | undefined) => boolean;
13843
13843
  declare const generateComponentPlaceholderId: (randomId: string, sdkVersion: number | undefined) => string;
13844
13844
 
13845
+ type FlattenProperty<P> = P extends {
13846
+ value: unknown;
13847
+ } ? P['value'] : P;
13848
+ type FlattenValues<T extends DataWithProperties> = T extends Pick<ComponentInstance, 'parameters'> ? Record<string, unknown> & {
13849
+ [Property in keyof T['parameters']]: FlattenProperty<T['parameters'][Property]>;
13850
+ } : T extends Pick<EntryData, 'fields'> ? Record<string, unknown> & {
13851
+ [Property in keyof T['fields']]: FlattenProperty<T['fields'][Property]>;
13852
+ } : unknown;
13853
+ /**
13854
+ * Gets the object holding the properties (fields or parameters) of an entry or component instance
13855
+ * If no properties are defined, returns undefined.
13856
+ */
13857
+ declare function getPropertiesValue(entity: Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>): ComponentInstance['parameters'];
13858
+ interface FlattenValuesOptions {
13859
+ /**
13860
+ * Take only the first item from an array
13861
+ * of values, flatten it and return it as a single object
13862
+ */
13863
+ toSingle?: boolean;
13864
+ /**
13865
+ * If the property has nested properties, like Blocks or Assets
13866
+ * can, then how many levels should we traverse.
13867
+ *
13868
+ * You can set this to `Infinity` although it would be more
13869
+ * advisable, for performance, to use the number you need in your code.
13870
+ *
13871
+ * Where:
13872
+ * levels=0 will only extract the properties of the current object
13873
+ * levels=1 will include any child blocks or assets on the current object
13874
+ * but not any grandchildren
13875
+ *
13876
+ * @default 1
13877
+ */
13878
+ levels?: number;
13879
+ }
13880
+ /**
13881
+ * Get the data stored in the value of a component parameter
13882
+ * or a field attached to an Entry, Block or Asset
13883
+ */
13884
+ declare function getPropertyValue<TValue, T extends ComponentParameter<TValue>>(parameter: T): TValue;
13885
+ declare function getPropertyValue(parameter: null): null;
13886
+ declare function getPropertyValue(parameter: undefined): undefined;
13887
+ type DataWithProperties = Pick<ComponentInstance, 'parameters'> | Pick<EntryData, 'fields'>;
13888
+ declare function flattenValues(data: null, options?: FlattenValuesOptions): null;
13889
+ declare function flattenValues(data: undefined, options?: FlattenValuesOptions): undefined;
13890
+ declare function flattenValues<Data extends DataWithProperties>(data: Data | null | undefined, options?: FlattenValuesOptions): FlattenValues<Data> | null | undefined;
13891
+ declare function flattenValues<Data extends DataWithProperties>(data: Array<Data> | null | undefined, options: {
13892
+ toSingle: true;
13893
+ } & Omit<FlattenValuesOptions, 'toSingle'>): FlattenValues<Data> | null | undefined;
13894
+ declare function flattenValues<Data extends DataWithProperties>(data: Array<Data> | null | undefined, options?: FlattenValuesOptions): Array<FlattenValues<Data>> | null | undefined;
13895
+
13845
13896
  type BindVariablesResult<TValue> = {
13846
13897
  /** Number of dynamic expressions that attempted to be bound (regardless of the success of the binding) */
13847
13898
  boundCount: number;
@@ -13901,4 +13952,4 @@ declare function parseVariableExpression(serialized: string, onToken?: (token: s
13901
13952
 
13902
13953
  declare const CanvasClientError: typeof ApiClientError;
13903
13954
 
13904
- export { ASSETS_SOURCE_CUSTOM_URL, ASSETS_SOURCE_UNIFORM, ASSET_PARAMETER_TYPE, ATTRIBUTE_COMPONENT_ID, ATTRIBUTE_MULTILINE, ATTRIBUTE_PARAMETER_ID, ATTRIBUTE_PARAMETER_TYPE, ATTRIBUTE_PARAMETER_VALUE, ATTRIBUTE_PLACEHOLDER, type AddComponentMessage, type AssetParamValue, type AssetParamValueItem, type BatchEnhancer, BatchEntry, type BatchInvalidationPayload, type BindVariablesOptions, type BindVariablesResult, type BindVariablesToObjectOptions, type BlockLocationReference, type BlockValue, CANVAS_BLOCK_PARAM_TYPE, CANVAS_DRAFT_STATE, CANVAS_EDITOR_STATE, CANVAS_ENRICHMENT_TAG_PARAM, CANVAS_INTENT_TAG_PARAM, CANVAS_LOCALE_TAG_PARAM, CANVAS_LOCALIZATION_SLOT, CANVAS_LOCALIZATION_TYPE, CANVAS_PERSONALIZATION_PARAM, CANVAS_PERSONALIZE_SLOT, CANVAS_PERSONALIZE_TYPE, CANVAS_PUBLISHED_STATE, CANVAS_TEST_SLOT, CANVAS_TEST_TYPE, CANVAS_TEST_VARIANT_PARAM, CanvasClient, CanvasClientError, type CanvasDefinitions, type CategoriesDeleteParameters, type CategoriesGetParameters, type CategoriesGetResponse, type CategoriesPutParameters, type Category, CategoryClient, type Channel, type ChannelMessage, type ChannelSubscription, ChildEnhancerBuilder, type ComponentDefinition, type ComponentDefinitionDeleteParameters, type ComponentDefinitionGetParameters, type ComponentDefinitionGetResponse, type ComponentDefinitionParameter, type ComponentDefinitionPermission, type ComponentDefinitionPutParameters, type ComponentDefinitionSlot, type ComponentDefinitionSlugSettings, type ComponentDefinitionVariant, type ComponentEnhancer, type ComponentEnhancerFunction, type ComponentEnhancerOptions, type ComponentInstance, type ComponentInstanceContextualEditing, type ComponentInstanceHistoryEntry, type ComponentInstanceHistoryGetParameters, type ComponentInstanceHistoryGetResponse, type ComponentLocationReference, type ComponentLocationReferenceV2, type ComponentOverridability, type ComponentOverride, type ComponentOverrides, type ComponentParameter, type ComponentParameterBlock, type ComponentParameterContextualEditing, type ComponentParameterEnhancer, type ComponentParameterEnhancerFunction, type ComponentParameterEnhancerOptions, type CompositionDataDiagnostic, type CompositionDeleteParameters, type CompositionDiagnostics, type CompositionGetByComponentIdParameters, type CompositionGetByIdParameters, type CompositionGetByNodeIdParameters, type CompositionGetByNodePathParameters, type CompositionGetBySlugParameters, type CompositionGetListResponse, type CompositionGetOrderBy, type CompositionGetParameters, type CompositionGetResponse, type CompositionGetValidResponses, type CompositionIssue, type CompositionPatternIssue, type CompositionPutParameters, type CompositionRelationshipsClientOptions, type CompositionRelationshipsDDefinitionGetResponse, type CompositionRelationshipsDefinitionApi, type CompositionRelationshipsDefinitionGetParameters, type CompositionResolvedGetResponse, type CompositionResolvedListResponse, type CompositionUIStatus, ContentClient, type ContentType, type ContentTypeField, type ContextualEditingComponentReference, type DataDiagnostic, type DataElementBindingIssue, type DataElementConnectionDefinition, type DataResolutionConfigIssue, type DataResolutionIssue, type DataResolutionOption, type DataResolutionOptionNegative, type DataResolutionOptionPositive, type DataResolutionParameters, type DataResourceDefinition, type DataResourceDefinitions, type DataResourceIssue, type DataResourceVariables, type DataSource, DataSourceClient, type DataSourceDeleteParameters, type DataSourceGetParameters, type DataSourceGetResponse, type DataSourcePutParameters, type DataSourcesGetParameters, type DataSourcesGetResponse, type DataType, DataTypeClient, type DataTypeDeleteParameters, type DataTypeGetParameters, type DataTypeGetResponse, type DataTypePutParameters, type DataVariableDefinition, type DeleteContentTypeOptions, type DeleteEntryOptions, type DismissPlaceholderMessage, type DynamicInputIssue, EDGE_CACHE_DISABLED, EDGE_DEFAULT_CACHE_TTL, EDGE_MAX_CACHE_TTL, EDGE_MIN_CACHE_TTL, EMPTY_COMPOSITION, type EdgehancersDiagnostics, type EditorStateUpdatedMessage, EnhancerBuilder, type EnhancerContext, type EnhancerError, type EntriesGetParameters, type EntriesGetResponse, type EntriesHistoryGetParameters, type EntriesHistoryGetResponse, type EntriesResolvedListResponse, type Entry, type EntryData, type EntryList, type EventNames, type FindInNodeTreeReference, type GetContentTypesOptions, type GetContentTypesResponse, type GetEntriesOptions, type GetEntriesResponse, type GetParameterAttributesProps, IN_CONTEXT_EDITOR_COMPONENT_END_ROLE, IN_CONTEXT_EDITOR_COMPONENT_START_ROLE, IN_CONTEXT_EDITOR_CONFIG_CHECK_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_EMBED_SCRIPT_ID, IN_CONTEXT_EDITOR_PLAYGROUND_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_QUERY_STRING_PARAM, IS_RENDERED_BY_UNIFORM_ATTRIBUTE, type InvalidationPayload, type LimitPolicy, type LinkComponentParameterValue, type LinkParamConfiguration, type LinkParamValue, type LinkParameterType, type LinkTypeConfiguration, type MessageHandler, type MoveComponentMessage, type NodeLocationReference, type NonProjectMapLinkParamValue, type OpenParameterEditorMessage, type OverrideOptions, PLACEHOLDER_ID, type PatternIssue, type PreviewEventBus, type PreviewPanelSettings, type ProjectMapLinkComponentParameterValue, type ProjectMapLinkParamValue, type Prompt, PromptClient, type PromptsDeleteParameters, type PromptsGetParameters, type PromptsGetResponse, type PromptsPutParameters, type PutContentTypeBody, type PutEntryBody, type ReadyMessage, type ReportRenderedCompositionsMessage, type ResolvedRouteGetResponse, type RichTextBuiltInElement, type RichTextBuiltInFormat, type RichTextParamConfiguration, type RichTextParamValue, type RootComponentInstance, type RootEntryReference, type RootLocationReference, RouteClient, type RouteDynamicInputs, type RouteGetParameters, type RouteGetResponse, type RouteGetResponseComposition, type RouteGetResponseEdgehancedComposition, type RouteGetResponseNotFound, type RouteGetResponseRedirect, SECRET_QUERY_STRING_PARAM, type SelectComponentMessage, type SelectParameterMessage, type SpecificProjectMap, type SubscribeToCompositionOptions, type TreeNodeInfoTypes, type TriggerComponentActionMessage, type TriggerCompositionActionMessage, UncachedCanvasClient, UncachedCategoryClient, UncachedContentClient, UniqueBatchEntries, type UnsubscribeCallback, type UpdateComponentParameterMessage, type UpdateComponentReferencesMessage, type UpdateCompositionInternalMessage, type UpdateCompositionMessage, type UpdateContextualEditingStateInternalMessage, type UpdateFeatureFlagsMessage, type UpdatePreviewSettingsMessage, type UsageTrackingApi, type UsageTrackingGetParameters, type UsageTrackingGetResponse, type UsageTrackingPostParameters, type UsageTrackingPostResponse, type WalkComponentTreeActions, type WalkNodeTreeActions, type WalkNodeTreeOptions, bindVariables, bindVariablesToObject, compose, convertEntryToPutEntry, createBatchEnhancer, createCanvasChannel, createEventBus, createLimitPolicy, createUniformApiEnhancer, createVariableReference, enhance, extractLocales, findParameterInNodeTree, generateComponentPlaceholderId, generateHash, getBlockValue, getChannelName, getComponentJsonPointer, getComponentPath, getNounForLocation, getNounForNode, getParameterAttributes, getPropertiesValue, isAddComponentMessage, isAllowedReferrer, isAssetParamValue, isAssetParamValueItem, isComponentActionMessage, isComponentPlaceholderId, isDismissPlaceholderMessage, isEntryData, isMovingComponentMessage, isOpenParameterEditorMessage, isReadyMessage, isReportRenderedCompositionsMessage, isRootEntryReference, isSelectComponentMessage, isSelectParameterMessage, isSystemComponentDefinition, isTriggerCompositionActionMessage, isUpdateComponentParameterMessage, isUpdateComponentReferencesMessage, isUpdateCompositionInternalMessage, isUpdateCompositionMessage, isUpdateContextualEditingStateInternalMessage, isUpdateFeatureFlagsMessage, isUpdatePreviewSettingsMessage, localize, mapSlotToPersonalizedVariations, mapSlotToTestVariations, nullLimitPolicy, parseVariableExpression, subscribeToComposition, unstable_CompositionRelationshipClient, walkComponentTree, walkNodeTree };
13955
+ export { ASSETS_SOURCE_CUSTOM_URL, ASSETS_SOURCE_UNIFORM, ASSET_PARAMETER_TYPE, ATTRIBUTE_COMPONENT_ID, ATTRIBUTE_MULTILINE, ATTRIBUTE_PARAMETER_ID, ATTRIBUTE_PARAMETER_TYPE, ATTRIBUTE_PARAMETER_VALUE, ATTRIBUTE_PLACEHOLDER, type AddComponentMessage, type AssetParamValue, type AssetParamValueItem, type BatchEnhancer, BatchEntry, type BatchInvalidationPayload, type BindVariablesOptions, type BindVariablesResult, type BindVariablesToObjectOptions, type BlockLocationReference, type BlockValue, CANVAS_BLOCK_PARAM_TYPE, CANVAS_DRAFT_STATE, CANVAS_EDITOR_STATE, CANVAS_ENRICHMENT_TAG_PARAM, CANVAS_INTENT_TAG_PARAM, CANVAS_LOCALE_TAG_PARAM, CANVAS_LOCALIZATION_SLOT, CANVAS_LOCALIZATION_TYPE, CANVAS_PERSONALIZATION_PARAM, CANVAS_PERSONALIZE_SLOT, CANVAS_PERSONALIZE_TYPE, CANVAS_PUBLISHED_STATE, CANVAS_TEST_SLOT, CANVAS_TEST_TYPE, CANVAS_TEST_VARIANT_PARAM, CanvasClient, CanvasClientError, type CanvasDefinitions, type CategoriesDeleteParameters, type CategoriesGetParameters, type CategoriesGetResponse, type CategoriesPutParameters, type Category, CategoryClient, type Channel, type ChannelMessage, type ChannelSubscription, ChildEnhancerBuilder, type ComponentDefinition, type ComponentDefinitionDeleteParameters, type ComponentDefinitionGetParameters, type ComponentDefinitionGetResponse, type ComponentDefinitionParameter, type ComponentDefinitionPermission, type ComponentDefinitionPutParameters, type ComponentDefinitionSlot, type ComponentDefinitionSlugSettings, type ComponentDefinitionVariant, type ComponentEnhancer, type ComponentEnhancerFunction, type ComponentEnhancerOptions, type ComponentInstance, type ComponentInstanceContextualEditing, type ComponentInstanceHistoryEntry, type ComponentInstanceHistoryGetParameters, type ComponentInstanceHistoryGetResponse, type ComponentLocationReference, type ComponentLocationReferenceV2, type ComponentOverridability, type ComponentOverride, type ComponentOverrides, type ComponentParameter, type ComponentParameterBlock, type ComponentParameterContextualEditing, type ComponentParameterEnhancer, type ComponentParameterEnhancerFunction, type ComponentParameterEnhancerOptions, type CompositionDataDiagnostic, type CompositionDeleteParameters, type CompositionDiagnostics, type CompositionGetByComponentIdParameters, type CompositionGetByIdParameters, type CompositionGetByNodeIdParameters, type CompositionGetByNodePathParameters, type CompositionGetBySlugParameters, type CompositionGetListResponse, type CompositionGetOrderBy, type CompositionGetParameters, type CompositionGetResponse, type CompositionGetValidResponses, type CompositionIssue, type CompositionPatternIssue, type CompositionPutParameters, type CompositionRelationshipsClientOptions, type CompositionRelationshipsDDefinitionGetResponse, type CompositionRelationshipsDefinitionApi, type CompositionRelationshipsDefinitionGetParameters, type CompositionResolvedGetResponse, type CompositionResolvedListResponse, type CompositionUIStatus, ContentClient, type ContentType, type ContentTypeField, type ContextualEditingComponentReference, type DataDiagnostic, type DataElementBindingIssue, type DataElementConnectionDefinition, type DataResolutionConfigIssue, type DataResolutionIssue, type DataResolutionOption, type DataResolutionOptionNegative, type DataResolutionOptionPositive, type DataResolutionParameters, type DataResourceDefinition, type DataResourceDefinitions, type DataResourceIssue, type DataResourceVariables, type DataSource, DataSourceClient, type DataSourceDeleteParameters, type DataSourceGetParameters, type DataSourceGetResponse, type DataSourcePutParameters, type DataSourcesGetParameters, type DataSourcesGetResponse, type DataType, DataTypeClient, type DataTypeDeleteParameters, type DataTypeGetParameters, type DataTypeGetResponse, type DataTypePutParameters, type DataVariableDefinition, type DataWithProperties, type DeleteContentTypeOptions, type DeleteEntryOptions, type DismissPlaceholderMessage, type DynamicInputIssue, EDGE_CACHE_DISABLED, EDGE_DEFAULT_CACHE_TTL, EDGE_MAX_CACHE_TTL, EDGE_MIN_CACHE_TTL, EMPTY_COMPOSITION, type EdgehancersDiagnostics, type EditorStateUpdatedMessage, EnhancerBuilder, type EnhancerContext, type EnhancerError, type EntriesGetParameters, type EntriesGetResponse, type EntriesHistoryGetParameters, type EntriesHistoryGetResponse, type EntriesResolvedListResponse, type Entry, type EntryData, type EntryList, type EventNames, type FindInNodeTreeReference, type FlattenProperty, type FlattenValues, type FlattenValuesOptions, type GetContentTypesOptions, type GetContentTypesResponse, type GetEntriesOptions, type GetEntriesResponse, type GetParameterAttributesProps, IN_CONTEXT_EDITOR_COMPONENT_END_ROLE, IN_CONTEXT_EDITOR_COMPONENT_START_ROLE, IN_CONTEXT_EDITOR_CONFIG_CHECK_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_EMBED_SCRIPT_ID, IN_CONTEXT_EDITOR_PLAYGROUND_QUERY_STRING_PARAM, IN_CONTEXT_EDITOR_QUERY_STRING_PARAM, IS_RENDERED_BY_UNIFORM_ATTRIBUTE, type InvalidationPayload, type LimitPolicy, type LinkComponentParameterValue, type LinkParamConfiguration, type LinkParamValue, type LinkParameterType, type LinkTypeConfiguration, type MessageHandler, type MoveComponentMessage, type NodeLocationReference, type NonProjectMapLinkParamValue, type OpenParameterEditorMessage, type OverrideOptions, PLACEHOLDER_ID, type PatternIssue, type PreviewEventBus, type PreviewPanelSettings, type ProjectMapLinkComponentParameterValue, type ProjectMapLinkParamValue, type Prompt, PromptClient, type PromptsDeleteParameters, type PromptsGetParameters, type PromptsGetResponse, type PromptsPutParameters, type PutContentTypeBody, type PutEntryBody, type ReadyMessage, type ReportRenderedCompositionsMessage, type ResolvedRouteGetResponse, type RichTextBuiltInElement, type RichTextBuiltInFormat, type RichTextParamConfiguration, type RichTextParamValue, type RootComponentInstance, type RootEntryReference, type RootLocationReference, RouteClient, type RouteDynamicInputs, type RouteGetParameters, type RouteGetResponse, type RouteGetResponseComposition, type RouteGetResponseEdgehancedComposition, type RouteGetResponseNotFound, type RouteGetResponseRedirect, SECRET_QUERY_STRING_PARAM, type SelectComponentMessage, type SelectParameterMessage, type SpecificProjectMap, type SubscribeToCompositionOptions, type TreeNodeInfoTypes, type TriggerComponentActionMessage, type TriggerCompositionActionMessage, UncachedCanvasClient, UncachedCategoryClient, UncachedContentClient, UniqueBatchEntries, type UnsubscribeCallback, type UpdateComponentParameterMessage, type UpdateComponentReferencesMessage, type UpdateCompositionInternalMessage, type UpdateCompositionMessage, type UpdateContextualEditingStateInternalMessage, type UpdateFeatureFlagsMessage, type UpdatePreviewSettingsMessage, type UsageTrackingApi, type UsageTrackingGetParameters, type UsageTrackingGetResponse, type UsageTrackingPostParameters, type UsageTrackingPostResponse, type WalkComponentTreeActions, type WalkNodeTreeActions, type WalkNodeTreeOptions, bindVariables, bindVariablesToObject, compose, convertEntryToPutEntry, createBatchEnhancer, createCanvasChannel, createEventBus, createLimitPolicy, createUniformApiEnhancer, createVariableReference, enhance, extractLocales, findParameterInNodeTree, flattenValues, generateComponentPlaceholderId, generateHash, getBlockValue, getChannelName, getComponentJsonPointer, getComponentPath, getNounForLocation, getNounForNode, getParameterAttributes, getPropertiesValue, getPropertyValue, isAddComponentMessage, isAllowedReferrer, isAssetParamValue, isAssetParamValueItem, isComponentActionMessage, isComponentPlaceholderId, isDismissPlaceholderMessage, isEntryData, isMovingComponentMessage, isNestedNodeType, isOpenParameterEditorMessage, isReadyMessage, isReportRenderedCompositionsMessage, isRootEntryReference, isSelectComponentMessage, isSelectParameterMessage, isSystemComponentDefinition, isTriggerCompositionActionMessage, isUpdateComponentParameterMessage, isUpdateComponentReferencesMessage, isUpdateCompositionInternalMessage, isUpdateCompositionMessage, isUpdateContextualEditingStateInternalMessage, isUpdateFeatureFlagsMessage, isUpdatePreviewSettingsMessage, localize, mapSlotToPersonalizedVariations, mapSlotToTestVariations, nullLimitPolicy, parseVariableExpression, subscribeToComposition, unstable_CompositionRelationshipClient, walkComponentTree, walkNodeTree };
package/dist/index.esm.js CHANGED
@@ -1004,25 +1004,6 @@ var ASSET_PARAMETER_TYPE = "asset";
1004
1004
  var ASSETS_SOURCE_UNIFORM = "uniform-assets";
1005
1005
  var ASSETS_SOURCE_CUSTOM_URL = "custom-url";
1006
1006
 
1007
- // src/utils/entryConverter.ts
1008
- function convertEntryToPutEntry(entry) {
1009
- return {
1010
- entry: {
1011
- type: entry.entry.type,
1012
- _dataResources: entry.entry._dataResources,
1013
- _id: entry.entry._id,
1014
- _name: entry.entry._name,
1015
- _slug: entry.entry._slug,
1016
- fields: entry.entry.fields
1017
- },
1018
- state: entry.state,
1019
- projectId: entry.projectId
1020
- };
1021
- }
1022
- function getPropertiesValue(entity) {
1023
- return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1024
- }
1025
-
1026
1007
  // src/utils/guards.ts
1027
1008
  function isRootEntryReference(root) {
1028
1009
  return root.type === "root" && isEntryData(root.node);
@@ -1039,6 +1020,41 @@ function isAssetParamValueItem(item) {
1039
1020
  );
1040
1021
  }
1041
1022
 
1023
+ // src/utils/properties.ts
1024
+ function getPropertiesValue(entity) {
1025
+ return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1026
+ }
1027
+ function getPropertyValue(parameter) {
1028
+ return parameter ? parameter.value : parameter;
1029
+ }
1030
+ function flattenValues(data, options = {}) {
1031
+ if (!data) {
1032
+ return data;
1033
+ } else if (Array.isArray(data) && options.toSingle) {
1034
+ return data.length > 0 ? flattenSingleNodeValues(data[0]) : void 0;
1035
+ } else if (Array.isArray(data)) {
1036
+ return data.map((node) => flattenSingleNodeValues(node, options));
1037
+ } else {
1038
+ return flattenSingleNodeValues(data, options);
1039
+ }
1040
+ }
1041
+ function flattenSingleNodeValues(data, options = {}) {
1042
+ const { levels = 1 } = options;
1043
+ const properties = getPropertiesValue(data);
1044
+ return properties ? Object.fromEntries(
1045
+ Object.entries(properties).map(([id, parameter]) => {
1046
+ const value = getPropertyValue(parameter);
1047
+ if (levels > 0 && Array.isArray(value) && // In the future ASSET_PARAMETER_TYPE will be a nested data type
1048
+ (isNestedNodeType(parameter.type) || parameter.type === ASSET_PARAMETER_TYPE)) {
1049
+ const nestedOptions = { ...options, levels: levels - 1 };
1050
+ return [id, value.map((item) => flattenValues(item, nestedOptions))];
1051
+ } else {
1052
+ return [id, value];
1053
+ }
1054
+ })
1055
+ ) : properties;
1056
+ }
1057
+
1042
1058
  // src/enhancement/walkNodeTree.ts
1043
1059
  function walkNodeTree(node, visitor, options) {
1044
1060
  var _a, _b;
@@ -1261,7 +1277,7 @@ function walkNodeTree(node, visitor, options) {
1261
1277
  const propertyEntries = Object.entries(properties);
1262
1278
  for (let propIndex = propertyEntries.length - 1; propIndex >= 0; propIndex--) {
1263
1279
  const [propKey, propObject] = propertyEntries[propIndex];
1264
- if (propObject.type !== CANVAS_BLOCK_PARAM_TYPE)
1280
+ if (!isNestedNodeType(propObject.type))
1265
1281
  continue;
1266
1282
  const blocks = (_b = propObject.value) != null ? _b : [];
1267
1283
  for (let blockIndex = blocks.length - 1; blockIndex >= 0; blockIndex--) {
@@ -1287,6 +1303,9 @@ function walkNodeTree(node, visitor, options) {
1287
1303
  }
1288
1304
  } while (componentQueue.length > 0);
1289
1305
  }
1306
+ function isNestedNodeType(type) {
1307
+ return type === CANVAS_BLOCK_PARAM_TYPE;
1308
+ }
1290
1309
  function getBlockValue(component, parameterName) {
1291
1310
  var _a;
1292
1311
  const parameter = (_a = getPropertiesValue(component)) == null ? void 0 : _a[parameterName];
@@ -2224,6 +2243,22 @@ var createUniformApiEnhancer = ({ apiUrl }) => {
2224
2243
  };
2225
2244
  };
2226
2245
 
2246
+ // src/utils/entryConverter.ts
2247
+ function convertEntryToPutEntry(entry) {
2248
+ return {
2249
+ entry: {
2250
+ type: entry.entry.type,
2251
+ _dataResources: entry.entry._dataResources,
2252
+ _id: entry.entry._id,
2253
+ _name: entry.entry._name,
2254
+ _slug: entry.entry._slug,
2255
+ fields: entry.entry.fields
2256
+ },
2257
+ state: entry.state,
2258
+ projectId: entry.projectId
2259
+ };
2260
+ }
2261
+
2227
2262
  // src/utils/getParameterAttributes.ts
2228
2263
  var ATTRIBUTE_COMPONENT_ID = "data-uniform-component-id";
2229
2264
  var ATTRIBUTE_PARAMETER_ID = "data-uniform-parameter-id";
@@ -2571,6 +2606,7 @@ export {
2571
2606
  enhance,
2572
2607
  extractLocales,
2573
2608
  findParameterInNodeTree,
2609
+ flattenValues,
2574
2610
  generateComponentPlaceholderId,
2575
2611
  generateHash,
2576
2612
  getBlockValue,
@@ -2581,6 +2617,7 @@ export {
2581
2617
  getNounForNode,
2582
2618
  getParameterAttributes,
2583
2619
  getPropertiesValue,
2620
+ getPropertyValue,
2584
2621
  isAddComponentMessage,
2585
2622
  isAllowedReferrer,
2586
2623
  isAssetParamValue,
@@ -2590,6 +2627,7 @@ export {
2590
2627
  isDismissPlaceholderMessage,
2591
2628
  isEntryData,
2592
2629
  isMovingComponentMessage,
2630
+ isNestedNodeType,
2593
2631
  isOpenParameterEditorMessage,
2594
2632
  isReadyMessage,
2595
2633
  isReportRenderedCompositionsMessage,
package/dist/index.js CHANGED
@@ -344,6 +344,7 @@ __export(src_exports, {
344
344
  enhance: () => enhance,
345
345
  extractLocales: () => extractLocales,
346
346
  findParameterInNodeTree: () => findParameterInNodeTree,
347
+ flattenValues: () => flattenValues,
347
348
  generateComponentPlaceholderId: () => generateComponentPlaceholderId,
348
349
  generateHash: () => generateHash,
349
350
  getBlockValue: () => getBlockValue,
@@ -354,6 +355,7 @@ __export(src_exports, {
354
355
  getNounForNode: () => getNounForNode,
355
356
  getParameterAttributes: () => getParameterAttributes,
356
357
  getPropertiesValue: () => getPropertiesValue,
358
+ getPropertyValue: () => getPropertyValue,
357
359
  isAddComponentMessage: () => isAddComponentMessage,
358
360
  isAllowedReferrer: () => isAllowedReferrer,
359
361
  isAssetParamValue: () => isAssetParamValue,
@@ -363,6 +365,7 @@ __export(src_exports, {
363
365
  isDismissPlaceholderMessage: () => isDismissPlaceholderMessage,
364
366
  isEntryData: () => isEntryData,
365
367
  isMovingComponentMessage: () => isMovingComponentMessage,
368
+ isNestedNodeType: () => isNestedNodeType,
366
369
  isOpenParameterEditorMessage: () => isOpenParameterEditorMessage,
367
370
  isReadyMessage: () => isReadyMessage,
368
371
  isReportRenderedCompositionsMessage: () => isReportRenderedCompositionsMessage,
@@ -1126,25 +1129,6 @@ var ASSET_PARAMETER_TYPE = "asset";
1126
1129
  var ASSETS_SOURCE_UNIFORM = "uniform-assets";
1127
1130
  var ASSETS_SOURCE_CUSTOM_URL = "custom-url";
1128
1131
 
1129
- // src/utils/entryConverter.ts
1130
- function convertEntryToPutEntry(entry) {
1131
- return {
1132
- entry: {
1133
- type: entry.entry.type,
1134
- _dataResources: entry.entry._dataResources,
1135
- _id: entry.entry._id,
1136
- _name: entry.entry._name,
1137
- _slug: entry.entry._slug,
1138
- fields: entry.entry.fields
1139
- },
1140
- state: entry.state,
1141
- projectId: entry.projectId
1142
- };
1143
- }
1144
- function getPropertiesValue(entity) {
1145
- return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1146
- }
1147
-
1148
1132
  // src/utils/guards.ts
1149
1133
  function isRootEntryReference(root) {
1150
1134
  return root.type === "root" && isEntryData(root.node);
@@ -1161,6 +1145,41 @@ function isAssetParamValueItem(item) {
1161
1145
  );
1162
1146
  }
1163
1147
 
1148
+ // src/utils/properties.ts
1149
+ function getPropertiesValue(entity) {
1150
+ return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1151
+ }
1152
+ function getPropertyValue(parameter) {
1153
+ return parameter ? parameter.value : parameter;
1154
+ }
1155
+ function flattenValues(data, options = {}) {
1156
+ if (!data) {
1157
+ return data;
1158
+ } else if (Array.isArray(data) && options.toSingle) {
1159
+ return data.length > 0 ? flattenSingleNodeValues(data[0]) : void 0;
1160
+ } else if (Array.isArray(data)) {
1161
+ return data.map((node) => flattenSingleNodeValues(node, options));
1162
+ } else {
1163
+ return flattenSingleNodeValues(data, options);
1164
+ }
1165
+ }
1166
+ function flattenSingleNodeValues(data, options = {}) {
1167
+ const { levels = 1 } = options;
1168
+ const properties = getPropertiesValue(data);
1169
+ return properties ? Object.fromEntries(
1170
+ Object.entries(properties).map(([id, parameter]) => {
1171
+ const value = getPropertyValue(parameter);
1172
+ if (levels > 0 && Array.isArray(value) && // In the future ASSET_PARAMETER_TYPE will be a nested data type
1173
+ (isNestedNodeType(parameter.type) || parameter.type === ASSET_PARAMETER_TYPE)) {
1174
+ const nestedOptions = { ...options, levels: levels - 1 };
1175
+ return [id, value.map((item) => flattenValues(item, nestedOptions))];
1176
+ } else {
1177
+ return [id, value];
1178
+ }
1179
+ })
1180
+ ) : properties;
1181
+ }
1182
+
1164
1183
  // src/enhancement/walkNodeTree.ts
1165
1184
  function walkNodeTree(node, visitor, options) {
1166
1185
  var _a, _b;
@@ -1383,7 +1402,7 @@ function walkNodeTree(node, visitor, options) {
1383
1402
  const propertyEntries = Object.entries(properties);
1384
1403
  for (let propIndex = propertyEntries.length - 1; propIndex >= 0; propIndex--) {
1385
1404
  const [propKey, propObject] = propertyEntries[propIndex];
1386
- if (propObject.type !== CANVAS_BLOCK_PARAM_TYPE)
1405
+ if (!isNestedNodeType(propObject.type))
1387
1406
  continue;
1388
1407
  const blocks = (_b = propObject.value) != null ? _b : [];
1389
1408
  for (let blockIndex = blocks.length - 1; blockIndex >= 0; blockIndex--) {
@@ -1409,6 +1428,9 @@ function walkNodeTree(node, visitor, options) {
1409
1428
  }
1410
1429
  } while (componentQueue.length > 0);
1411
1430
  }
1431
+ function isNestedNodeType(type) {
1432
+ return type === CANVAS_BLOCK_PARAM_TYPE;
1433
+ }
1412
1434
  function getBlockValue(component, parameterName) {
1413
1435
  var _a;
1414
1436
  const parameter = (_a = getPropertiesValue(component)) == null ? void 0 : _a[parameterName];
@@ -2346,6 +2368,22 @@ var createUniformApiEnhancer = ({ apiUrl }) => {
2346
2368
  };
2347
2369
  };
2348
2370
 
2371
+ // src/utils/entryConverter.ts
2372
+ function convertEntryToPutEntry(entry) {
2373
+ return {
2374
+ entry: {
2375
+ type: entry.entry.type,
2376
+ _dataResources: entry.entry._dataResources,
2377
+ _id: entry.entry._id,
2378
+ _name: entry.entry._name,
2379
+ _slug: entry.entry._slug,
2380
+ fields: entry.entry.fields
2381
+ },
2382
+ state: entry.state,
2383
+ projectId: entry.projectId
2384
+ };
2385
+ }
2386
+
2349
2387
  // src/utils/getParameterAttributes.ts
2350
2388
  var ATTRIBUTE_COMPONENT_ID = "data-uniform-component-id";
2351
2389
  var ATTRIBUTE_PARAMETER_ID = "data-uniform-parameter-id";
@@ -2694,6 +2732,7 @@ var CanvasClientError = import_api10.ApiClientError;
2694
2732
  enhance,
2695
2733
  extractLocales,
2696
2734
  findParameterInNodeTree,
2735
+ flattenValues,
2697
2736
  generateComponentPlaceholderId,
2698
2737
  generateHash,
2699
2738
  getBlockValue,
@@ -2704,6 +2743,7 @@ var CanvasClientError = import_api10.ApiClientError;
2704
2743
  getNounForNode,
2705
2744
  getParameterAttributes,
2706
2745
  getPropertiesValue,
2746
+ getPropertyValue,
2707
2747
  isAddComponentMessage,
2708
2748
  isAllowedReferrer,
2709
2749
  isAssetParamValue,
@@ -2713,6 +2753,7 @@ var CanvasClientError = import_api10.ApiClientError;
2713
2753
  isDismissPlaceholderMessage,
2714
2754
  isEntryData,
2715
2755
  isMovingComponentMessage,
2756
+ isNestedNodeType,
2716
2757
  isOpenParameterEditorMessage,
2717
2758
  isReadyMessage,
2718
2759
  isReportRenderedCompositionsMessage,
package/dist/index.mjs CHANGED
@@ -1004,25 +1004,6 @@ var ASSET_PARAMETER_TYPE = "asset";
1004
1004
  var ASSETS_SOURCE_UNIFORM = "uniform-assets";
1005
1005
  var ASSETS_SOURCE_CUSTOM_URL = "custom-url";
1006
1006
 
1007
- // src/utils/entryConverter.ts
1008
- function convertEntryToPutEntry(entry) {
1009
- return {
1010
- entry: {
1011
- type: entry.entry.type,
1012
- _dataResources: entry.entry._dataResources,
1013
- _id: entry.entry._id,
1014
- _name: entry.entry._name,
1015
- _slug: entry.entry._slug,
1016
- fields: entry.entry.fields
1017
- },
1018
- state: entry.state,
1019
- projectId: entry.projectId
1020
- };
1021
- }
1022
- function getPropertiesValue(entity) {
1023
- return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1024
- }
1025
-
1026
1007
  // src/utils/guards.ts
1027
1008
  function isRootEntryReference(root) {
1028
1009
  return root.type === "root" && isEntryData(root.node);
@@ -1039,6 +1020,41 @@ function isAssetParamValueItem(item) {
1039
1020
  );
1040
1021
  }
1041
1022
 
1023
+ // src/utils/properties.ts
1024
+ function getPropertiesValue(entity) {
1025
+ return "parameters" in entity && entity.parameters ? entity.parameters : "fields" in entity && entity.fields ? entity.fields : void 0;
1026
+ }
1027
+ function getPropertyValue(parameter) {
1028
+ return parameter ? parameter.value : parameter;
1029
+ }
1030
+ function flattenValues(data, options = {}) {
1031
+ if (!data) {
1032
+ return data;
1033
+ } else if (Array.isArray(data) && options.toSingle) {
1034
+ return data.length > 0 ? flattenSingleNodeValues(data[0]) : void 0;
1035
+ } else if (Array.isArray(data)) {
1036
+ return data.map((node) => flattenSingleNodeValues(node, options));
1037
+ } else {
1038
+ return flattenSingleNodeValues(data, options);
1039
+ }
1040
+ }
1041
+ function flattenSingleNodeValues(data, options = {}) {
1042
+ const { levels = 1 } = options;
1043
+ const properties = getPropertiesValue(data);
1044
+ return properties ? Object.fromEntries(
1045
+ Object.entries(properties).map(([id, parameter]) => {
1046
+ const value = getPropertyValue(parameter);
1047
+ if (levels > 0 && Array.isArray(value) && // In the future ASSET_PARAMETER_TYPE will be a nested data type
1048
+ (isNestedNodeType(parameter.type) || parameter.type === ASSET_PARAMETER_TYPE)) {
1049
+ const nestedOptions = { ...options, levels: levels - 1 };
1050
+ return [id, value.map((item) => flattenValues(item, nestedOptions))];
1051
+ } else {
1052
+ return [id, value];
1053
+ }
1054
+ })
1055
+ ) : properties;
1056
+ }
1057
+
1042
1058
  // src/enhancement/walkNodeTree.ts
1043
1059
  function walkNodeTree(node, visitor, options) {
1044
1060
  var _a, _b;
@@ -1261,7 +1277,7 @@ function walkNodeTree(node, visitor, options) {
1261
1277
  const propertyEntries = Object.entries(properties);
1262
1278
  for (let propIndex = propertyEntries.length - 1; propIndex >= 0; propIndex--) {
1263
1279
  const [propKey, propObject] = propertyEntries[propIndex];
1264
- if (propObject.type !== CANVAS_BLOCK_PARAM_TYPE)
1280
+ if (!isNestedNodeType(propObject.type))
1265
1281
  continue;
1266
1282
  const blocks = (_b = propObject.value) != null ? _b : [];
1267
1283
  for (let blockIndex = blocks.length - 1; blockIndex >= 0; blockIndex--) {
@@ -1287,6 +1303,9 @@ function walkNodeTree(node, visitor, options) {
1287
1303
  }
1288
1304
  } while (componentQueue.length > 0);
1289
1305
  }
1306
+ function isNestedNodeType(type) {
1307
+ return type === CANVAS_BLOCK_PARAM_TYPE;
1308
+ }
1290
1309
  function getBlockValue(component, parameterName) {
1291
1310
  var _a;
1292
1311
  const parameter = (_a = getPropertiesValue(component)) == null ? void 0 : _a[parameterName];
@@ -2224,6 +2243,22 @@ var createUniformApiEnhancer = ({ apiUrl }) => {
2224
2243
  };
2225
2244
  };
2226
2245
 
2246
+ // src/utils/entryConverter.ts
2247
+ function convertEntryToPutEntry(entry) {
2248
+ return {
2249
+ entry: {
2250
+ type: entry.entry.type,
2251
+ _dataResources: entry.entry._dataResources,
2252
+ _id: entry.entry._id,
2253
+ _name: entry.entry._name,
2254
+ _slug: entry.entry._slug,
2255
+ fields: entry.entry.fields
2256
+ },
2257
+ state: entry.state,
2258
+ projectId: entry.projectId
2259
+ };
2260
+ }
2261
+
2227
2262
  // src/utils/getParameterAttributes.ts
2228
2263
  var ATTRIBUTE_COMPONENT_ID = "data-uniform-component-id";
2229
2264
  var ATTRIBUTE_PARAMETER_ID = "data-uniform-parameter-id";
@@ -2571,6 +2606,7 @@ export {
2571
2606
  enhance,
2572
2607
  extractLocales,
2573
2608
  findParameterInNodeTree,
2609
+ flattenValues,
2574
2610
  generateComponentPlaceholderId,
2575
2611
  generateHash,
2576
2612
  getBlockValue,
@@ -2581,6 +2617,7 @@ export {
2581
2617
  getNounForNode,
2582
2618
  getParameterAttributes,
2583
2619
  getPropertiesValue,
2620
+ getPropertyValue,
2584
2621
  isAddComponentMessage,
2585
2622
  isAllowedReferrer,
2586
2623
  isAssetParamValue,
@@ -2590,6 +2627,7 @@ export {
2590
2627
  isDismissPlaceholderMessage,
2591
2628
  isEntryData,
2592
2629
  isMovingComponentMessage,
2630
+ isNestedNodeType,
2593
2631
  isOpenParameterEditorMessage,
2594
2632
  isReadyMessage,
2595
2633
  isReportRenderedCompositionsMessage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/canvas",
3
- "version": "19.85.1-alpha.14+148ddea5e",
3
+ "version": "19.86.1-alpha.10+3a63322d8",
4
4
  "description": "Common functionality and types for Uniform Canvas",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -38,8 +38,8 @@
38
38
  "pusher-js": "8.2.0"
39
39
  },
40
40
  "dependencies": {
41
- "@uniformdev/assets": "19.85.1-alpha.14+148ddea5e",
42
- "@uniformdev/context": "19.85.1-alpha.14+148ddea5e",
41
+ "@uniformdev/assets": "19.86.1-alpha.10+3a63322d8",
42
+ "@uniformdev/context": "19.86.1-alpha.10+3a63322d8",
43
43
  "immer": "10.0.3"
44
44
  },
45
45
  "files": [
@@ -48,5 +48,5 @@
48
48
  "publishConfig": {
49
49
  "access": "public"
50
50
  },
51
- "gitHead": "148ddea5e71802b94cac8856b95f3ad285b5be25"
51
+ "gitHead": "3a63322d8e6be500eec846e067b9afb7cd28c6fd"
52
52
  }