@contentful/experiences-core 1.41.0-beta.0 → 1.41.0-dev-20250612T0852-ddef0ff.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.
@@ -33,6 +33,8 @@ declare abstract class EntityStoreBase {
33
33
  fetchEntry(id: string): Promise<Entry | undefined>;
34
34
  fetchEntries(ids: string[]): Promise<Entry[]>;
35
35
  private getDeepEntry;
36
+ private isAsset;
37
+ private isEntry;
36
38
  private getEntity;
37
39
  toJSON(): {
38
40
  entryMap: {
package/dist/index.d.ts CHANGED
@@ -17,7 +17,6 @@ export { treeMap, treeVisit } from './utils/treeTraversal.js';
17
17
  export { isExperienceEntry } from './utils/typeguards.js';
18
18
  export { checkIsAssembly, checkIsAssemblyDefinition, checkIsAssemblyEntry, checkIsAssemblyNode, generateRandomId, getDataFromTree, getInsertionData, getTargetValueInPixels, parseCSSValue } from './utils/utils.js';
19
19
  export { doesMismatchMessageSchema, tryParseMessage, validateExperienceBuilderConfig } from './utils/validations.js';
20
- export { isAsset, isEntry } from './utils/entityTypeChecks.js';
21
20
  export { builtInStyles, columnsBuiltInStyles, containerBuiltInStyles, dividerBuiltInStyles, optionalBuiltInStyles, sectionBuiltInStyles, singleColumnBuiltInStyles } from './definitions/styles.js';
22
21
  export { EditorModeEntityStore } from './entity/EditorModeEntityStore.js';
23
22
  export { EntityStore } from './entity/EntityStore.js';
package/dist/index.js CHANGED
@@ -2872,43 +2872,20 @@ const transformMedia = (asset, variables, resolveDesignValue, variableName, path
2872
2872
  return asset.fields.file?.url;
2873
2873
  };
2874
2874
 
2875
- const isAsset = (value) => {
2876
- return (null !== value &&
2877
- typeof value === 'object' &&
2878
- 'sys' in value &&
2879
- value.sys?.type === 'Asset');
2880
- };
2881
- const isEntry = (value) => {
2882
- return (null !== value &&
2883
- typeof value === 'object' &&
2884
- 'sys' in value &&
2885
- value.sys?.type === 'Entry');
2886
- };
2887
-
2888
2875
  function getResolvedEntryFromLink(entryOrAsset, path, entityStore) {
2889
- if (isAsset(entryOrAsset)) {
2876
+ if (entryOrAsset.sys.type === 'Asset') {
2890
2877
  return entryOrAsset;
2891
2878
  }
2892
- else if (!isEntry(entryOrAsset)) {
2893
- throw new Error(`Expected an Entry or Asset, but got: ${JSON.stringify(entryOrAsset)}`);
2894
- }
2895
2879
  const value = get(entryOrAsset, path.split('/').slice(2, -1));
2896
- let resolvedEntity;
2897
- if (isAsset(value) || isEntry(value)) {
2898
- // In some cases, reference fields are already resolved
2899
- resolvedEntity = value;
2900
- }
2901
- else if (value?.sys.type === 'Link') {
2902
- // Look up the reference in the entity store
2903
- resolvedEntity = entityStore.getEntityFromLink(value);
2904
- if (!resolvedEntity) {
2905
- return;
2906
- }
2907
- }
2908
- else {
2880
+ if (value?.sys.type !== 'Link') {
2909
2881
  console.warn(`Expected a link to a reference, but got: ${JSON.stringify(value)}`);
2910
2882
  return;
2911
2883
  }
2884
+ //Look up the reference in the entity store
2885
+ const resolvedEntity = entityStore.getEntityFromLink(value);
2886
+ if (!resolvedEntity) {
2887
+ return;
2888
+ }
2912
2889
  //resolve any embedded links - we currently only support 2 levels deep
2913
2890
  const fields = resolvedEntity.fields || {};
2914
2891
  Object.entries(fields).forEach(([fieldKey, field]) => {
@@ -3262,13 +3239,10 @@ class EntityStoreBase {
3262
3239
  }
3263
3240
  entity = resolvedEntity;
3264
3241
  }
3265
- else if (isAsset(linkOrEntryOrAsset) || isEntry(linkOrEntryOrAsset)) {
3242
+ else {
3266
3243
  // We already have the complete entity in preview & delivery (resolved by the CMA client)
3267
3244
  entity = linkOrEntryOrAsset;
3268
3245
  }
3269
- else {
3270
- throw new Error(`Unexpected object when resolving entity: ${JSON.stringify(linkOrEntryOrAsset)}`);
3271
- }
3272
3246
  return entity;
3273
3247
  }
3274
3248
  /**
@@ -3314,14 +3288,14 @@ class EntityStoreBase {
3314
3288
  };
3315
3289
  }
3316
3290
  addEntity(entity) {
3317
- if (isAsset(entity)) {
3291
+ if (this.isAsset(entity)) {
3318
3292
  this.assetMap.set(entity.sys.id, entity);
3319
3293
  }
3320
- else if (isEntry(entity)) {
3294
+ else if (this.isEntry(entity)) {
3321
3295
  this.entryMap.set(entity.sys.id, entity);
3322
3296
  }
3323
3297
  else {
3324
- throw new Error(`Attempted to add an entity to the store that is neither Asset nor Entry: '${JSON.stringify(entity)}'`);
3298
+ console.warn('Attempted to add an entity that is neither Asset nor Entry:', entity);
3325
3299
  }
3326
3300
  }
3327
3301
  async fetchAsset(id) {
@@ -3391,7 +3365,7 @@ class EntityStoreBase {
3391
3365
  resolvedFieldset.push([entityToResolveFieldsFrom, field, _localeQualifier]);
3392
3366
  entityToResolveFieldsFrom = entity; // we move up
3393
3367
  }
3394
- else if (isAsset(fieldValue) || isEntry(fieldValue)) {
3368
+ else if (this.isAsset(fieldValue) || this.isEntry(fieldValue)) {
3395
3369
  resolvedFieldset.push([entityToResolveFieldsFrom, field, _localeQualifier]);
3396
3370
  entityToResolveFieldsFrom = fieldValue; // we move up
3397
3371
  }
@@ -3427,6 +3401,18 @@ class EntityStoreBase {
3427
3401
  const [leafEntity] = resolvedFieldset[resolvedFieldset.length - 1];
3428
3402
  return leafEntity;
3429
3403
  }
3404
+ isAsset(value) {
3405
+ return (null !== value &&
3406
+ typeof value === 'object' &&
3407
+ 'sys' in value &&
3408
+ value.sys?.type === 'Asset');
3409
+ }
3410
+ isEntry(value) {
3411
+ return (null !== value &&
3412
+ typeof value === 'object' &&
3413
+ 'sys' in value &&
3414
+ value.sys?.type === 'Entry');
3415
+ }
3430
3416
  getEntity(type, id) {
3431
3417
  if (type === 'Asset') {
3432
3418
  return this.assetMap.get(id);
@@ -4261,5 +4247,5 @@ async function fetchById({ client, experienceTypeId, id, localeCode, isEditorMod
4261
4247
  }
4262
4248
  }
4263
4249
 
4264
- export { DebugLogger, DeepReference, EditorModeEntityStore, EntityStore, EntityStoreBase, MEDIA_QUERY_REGEXP, VisualEditorMode, addLocale, addMinHeightForEmptyStructures, breakpointsRegistry, buildCfStyles, buildStyleTag, buildTemplate, builtInStyles, calculateNodeDefaultHeight, checkIsAssembly, checkIsAssemblyDefinition, checkIsAssemblyEntry, checkIsAssemblyNode, columnsBuiltInStyles, containerBuiltInStyles, createExperience, debug, defineBreakpoints, defineDesignTokens, designTokensRegistry, detachExperienceStyles, disableDebug, dividerBuiltInStyles, doesMismatchMessageSchema, enableDebug, fetchAllAssets, fetchAllEntries, fetchById, fetchBySlug, fetchExperienceEntry, fetchReferencedEntities, findOutermostCoordinates, flattenDesignTokenRegistry, gatherDeepReferencesFromExperienceEntry, gatherDeepReferencesFromTree, generateRandomId, getActiveBreakpointIndex, getBreakpointRegistration, getDataFromTree, getDesignTokenRegistration, getElementCoordinates, getFallbackBreakpointIndex, getInsertionData, getTargetValueInPixels, getTemplateValue, getValueForBreakpoint, indexByBreakpoint, isAsset, isCfStyleAttribute, isComponentAllowedOnRoot, isContentfulComponent, isContentfulStructureComponent, isDeepPath, isEntry, isExperienceEntry, isLink, isLinkToAsset, isPatternComponent, isStructureWithRelativeHeight, isValidBreakpointValue, lastPathNamedSegmentEq, localizeEntity, maybePopulateDesignTokenValue, mediaQueryMatcher, optionalBuiltInStyles, parseCSSValue, parseDataSourcePathIntoFieldset, parseDataSourcePathWithL1DeepBindings, resetBreakpointsRegistry, resetDesignTokenRegistry, resolveBackgroundImageBinding, resolveHyperlinkPattern, runBreakpointsValidation, sanitizeNodeProps, sectionBuiltInStyles, sendMessage, singleColumnBuiltInStyles, stringifyCssProperties, toCSSAttribute, toMediaQuery, transformBoundContentValue, transformVisibility, treeMap, treeVisit, tryParseMessage, validateExperienceBuilderConfig };
4250
+ export { DebugLogger, DeepReference, EditorModeEntityStore, EntityStore, EntityStoreBase, MEDIA_QUERY_REGEXP, VisualEditorMode, addLocale, addMinHeightForEmptyStructures, breakpointsRegistry, buildCfStyles, buildStyleTag, buildTemplate, builtInStyles, calculateNodeDefaultHeight, checkIsAssembly, checkIsAssemblyDefinition, checkIsAssemblyEntry, checkIsAssemblyNode, columnsBuiltInStyles, containerBuiltInStyles, createExperience, debug, defineBreakpoints, defineDesignTokens, designTokensRegistry, detachExperienceStyles, disableDebug, dividerBuiltInStyles, doesMismatchMessageSchema, enableDebug, fetchAllAssets, fetchAllEntries, fetchById, fetchBySlug, fetchExperienceEntry, fetchReferencedEntities, findOutermostCoordinates, flattenDesignTokenRegistry, gatherDeepReferencesFromExperienceEntry, gatherDeepReferencesFromTree, generateRandomId, getActiveBreakpointIndex, getBreakpointRegistration, getDataFromTree, getDesignTokenRegistration, getElementCoordinates, getFallbackBreakpointIndex, getInsertionData, getTargetValueInPixels, getTemplateValue, getValueForBreakpoint, indexByBreakpoint, isCfStyleAttribute, isComponentAllowedOnRoot, isContentfulComponent, isContentfulStructureComponent, isDeepPath, isExperienceEntry, isLink, isLinkToAsset, isPatternComponent, isStructureWithRelativeHeight, isValidBreakpointValue, lastPathNamedSegmentEq, localizeEntity, maybePopulateDesignTokenValue, mediaQueryMatcher, optionalBuiltInStyles, parseCSSValue, parseDataSourcePathIntoFieldset, parseDataSourcePathWithL1DeepBindings, resetBreakpointsRegistry, resetDesignTokenRegistry, resolveBackgroundImageBinding, resolveHyperlinkPattern, runBreakpointsValidation, sanitizeNodeProps, sectionBuiltInStyles, sendMessage, singleColumnBuiltInStyles, stringifyCssProperties, toCSSAttribute, toMediaQuery, transformBoundContentValue, transformVisibility, treeMap, treeVisit, tryParseMessage, validateExperienceBuilderConfig };
4265
4251
  //# sourceMappingURL=index.js.map