hunk.code_window: {
     "name": "expo-template-blank-typescript",
     "description": "The Blank project template includes the minimum dependencies to run and an empty root component.",
     "version": "46.0.7",
     "main": "node_modules/expo/AppEntry.js",
     "scripts": {
       "start": "expo start",
  
hunk.labels: keep keep keep replace keep keep keep
hunk.after_edit:   "version": "46.0.9",
  
hunk.file_path: templates/expo-template-blank-typescript/package.json
hunk.type: replace
file: /*
   * Copyright (c) Meta Platforms, Inc. and affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  #import "ABI45_0_0RCTWrapperViewControllerHostingView.h"
  
  #import <ABI45_0_0React/ABI45_0_0UIView+React.h>
  
  #pragma mark - UIViewController+Children
  
  @interface UIViewController (Children)
  
  @property (nonatomic, readonly) BOOL isAttached;
  - (void)attachChildViewController:(UIViewController *)childViewController toContainerView:(UIView *)containerView;
  - (void)detachChildViewController:(UIViewController *)childViewController;
  
  @end
  
  @implementation UIViewController (Children)
  
  - (BOOL)isAttached
  {
    return self.parentViewController != nil;
  }
  
  - (void)attachChildViewController:(UIViewController *)childViewController toContainerView:(UIView *)containerView
  {
    [self addChildViewController:childViewController];
    // `[childViewController willMoveToParentViewController:self]` is calling automatically
    [containerView addSubview:childViewController.view];
    childViewController.view.frame = containerView.bounds;
    childViewController.view.translatesAutoresizingMaskIntoConstraints = YES;
    childViewController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [childViewController didMoveToParentViewController:self];
  
    [childViewController beginAppearanceTransition:true animated:false];
    [childViewController endAppearanceTransition];
  }
  
  - (void)detachChildViewController:(UIViewController *)childViewController
  {
    [childViewController beginAppearanceTransition:false animated: false];
    [childViewController endAppearanceTransition];
  
    [childViewController willMoveToParentViewController:nil];
    [childViewController.view removeFromSuperview];
    [childViewController removeFromParentViewController];
    // `[childViewController didMoveToParentViewController:nil]` is calling automatically
  }
  
  @end
  
  @implementation ABI45_0_0RCTWrapperViewControllerHostingView {
    UIViewController *_Nullable _contentViewController;
  }
  
  #pragma mark - `contentViewController`
  
  - (nullable UIViewController *)contentViewController
  {
    return _contentViewController;
  }
  
  - (void)setContentViewController:(UIViewController *)contentViewController
  {
  
    if (_contentViewController) {
      [self detachContentViewControllerIfNeeded];
    }
  
    _contentViewController = contentViewController;
  
    if (_contentViewController) {
      [self attachContentViewControllerIfNeeded];
    }
  }
  
  #pragma mark - Attaching and Detaching
  
  - (void)attachContentViewControllerIfNeeded
  {
    if (self.contentViewController.isAttached) {
      return;
    }
  
    [self.ABI45_0_0ReactViewController attachChildViewController:self.contentViewController toContainerView:self];
  }
  
  - (void)detachContentViewControllerIfNeeded
  {
    if (!self.contentViewController.isAttached) {
      return;
    }
  
    [self.ABI45_0_0ReactViewController detachChildViewController:self.contentViewController];
  }
  
  #pragma mark - Life cycle
  
  - (void)willMoveToWindow:(UIWindow *)newWindow
  {
    if (newWindow == nil) {
      [self detachContentViewControllerIfNeeded];
    }
  }
  
  - (void)didMoveToWindow
  {
    [super didMoveToWindow];
    [self attachContentViewControllerIfNeeded];
  }
  
  #pragma mark - Layout
  
  - (void)setNeedsLayout
  {
    [super setNeedsLayout];
    [self.superview setNeedsLayout];
  }
  
  - (CGSize)intrinsicContentSize
  {
    return self.contentViewController.view.intrinsicContentSize;
  }
  
  - (CGSize)sizeThatFits:(CGSize)size
  {
    return [self.contentViewController.view sizeThatFits:size];
  }
  
  @end
  