hunk.code_window:     "android": "expo start --android",
       "ios": "expo start --ios",
       "web": "expo start --web"
     },
     "dependencies": {
       "expo": "~46.0.0-beta.6",
       "expo-status-bar": "~1.4.0",
       "react": "18.0.0",
  
hunk.labels: keep keep keep keep keep replace keep keep
hunk.after_edit:     "expo": "~46.0.1",
  
hunk.file_path: templates/expo-template-blank/package.json
hunk.type: replace
file: // Copyright 2018-present 650 Industries. All rights reserved.
  
  #import "EXScopedNotificationBuilder.h"
  #import "EXScopedNotificationsUtils.h"
  
  @interface EXScopedNotificationBuilder ()
  
  @property (nonatomic, strong) NSString *scopeKey;
  @property (nonatomic, assign) BOOL isInExpoGo;
  
  @end
  
  @implementation EXScopedNotificationBuilder
  
  - (instancetype)initWithScopeKey:(NSString *)scopeKey
                         andConstantsBinding:(EXConstantsBinding *)constantsBinding
  {
    if (self = [super init]) {
      _scopeKey = scopeKey;
      _isInExpoGo = [@"expo" isEqualToString:constantsBinding.appOwnership];
    }
    
    return self;
  }
  
  - (UNNotificationContent *)notificationContentFromRequest:(NSDictionary *)request
  {
    UNMutableNotificationContent *content = [super notificationContentFromRequest:request];
    NSMutableDictionary *userInfo = [content.userInfo mutableCopy];
    if (!userInfo) {
      userInfo = [NSMutableDictionary dictionary];
    }
    userInfo[@"experienceId"] = _scopeKey;
    userInfo[@"scopeKey"] = _scopeKey;
    [content setUserInfo:userInfo];
    
    if (content.categoryIdentifier && _isInExpoGo) {
      NSString *scopedCategoryIdentifier = [EXScopedNotificationsUtils scopedIdentifierFromId:content.categoryIdentifier
                                                                                forExperience:_scopeKey];
      [content setCategoryIdentifier:scopedCategoryIdentifier];
    }
    
    return content;
  }
  
  @end
  