hunk.code_window: import {provide} from '@angular/core';
   import {APP_BASE_HREF} from '@angular/common';
   import {<%= jsComponentName %>AppComponent} from './app/';
   import {
     REQUEST_URL,
     ORIGIN_URL
  
hunk.labels: replace replace replace keep keep keep
hunk.after_edit: import { provide } from '@angular/core';
   import { APP_BASE_HREF } from '@angular/common';
   import { APP_SHELL_BUILD_PROVIDERS } from '@angular/app-shell';
   import { <%= jsComponentName %>AppComponent } from './app/';
  
hunk.file_path: addon/ng2/blueprints/mobile/files/__path__/main-app-shell.ts
hunk.type: replace
file: var path = require('path');
  var Blueprint = require('ember-cli/lib/models/blueprint');
  var dynamicPathParser = require('../../utilities/dynamic-path-parser');
  var addBarrelRegistration = require('../../utilities/barrel-management');
  var getFiles = Blueprint.prototype.files;
  
  module.exports = {
    description: '',
    
    availableOptions: [
      { name: 'flat', type: Boolean, default: true }
    ],
  
    normalizeEntityName: function (entityName) {
      var parsedPath = dynamicPathParser(this.project, entityName);
  
      this.dynamicPath = parsedPath;
      return parsedPath.name;
    },
  
    locals: function (options) {
      return {
        dynamicPath: this.dynamicPath.dir,
        flat: options.flat
      };
    },
    
    files: function() {
      var fileList = getFiles.call(this);
      
      if (this.options && this.options.flat) {
        fileList = fileList.filter(p => p.indexOf('index.ts') <= 0);
      }
  
      return fileList;
    },
  
    fileMapTokens: function (options) {
      // Return custom template variables here.
      return {
        __path__: () => {
          var dir = this.dynamicPath.dir;
          if (!options.locals.flat) {
            dir += path.sep + options.dasherizedModuleName;
          }
          this.generatePath = dir;
          return dir;
        }
      };
    },
    
    afterInstall: function(options) {
      if (!options.flat) {
        return addBarrelRegistration(
          this,
          this.generatePath);
      } else {
        return addBarrelRegistration(
          this, 
          this.generatePath,
          options.entity.name + '.service');
      }
    }
  };
  