22. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 7/25/2018 3:40:56 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

22.1 Files compared

# Location File Last Modified
1 Pain_Coach_v3.0_Jun_2018.zip\vpc-patient-web.zip\vpc-patient-web\app\veteran\cordova Gruntfile.js Fri Jun 1 14:27:14 2018 UTC
2 Pain_Coach_v3.0_Jun_2018.zip\vpc-patient-web.zip\vpc-patient-web\app\veteran\cordova Gruntfile.js Wed Jul 25 13:55:18 2018 UTC

22.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 710
Changed 2 4
Inserted 0 0
Removed 0 0

22.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

22.4 Active regular expressions

No regular expressions were active.

22.5 Comparison detail

  1   module.exp orts = fun ction(grun t) {
  2       var pa th;
  3       path =  {
  4           li bs: [
  5                'bower_c omponents/ modernizr/ modernizr. js',
  6                'bower_c omponents/ jquery/dis t/jquery.m in.js',
  7                'bower_c omponents/ bootstrap/ dist/js/bo otstrap.mi n.js',
  8                'bower_c omponents/ underscore /underscor e.js',
  9                'bower_c omponents/ backbone/b ackbone.js ',
  10                'bower_c omponents/ marionette /lib/backb one.marion ette.min.j s',
  11                'bower_c omponents/ handlebars /handlebar s.js',
  12                'bower_c omponents/ bootstrap- datepicker /dist/js/b ootstrap-d atepicker. min.js',
  13                'bower_c omponents/ d3/d3.min. js',
  14                '_temp/c ommon/lib/ template_h elpers.js'
  15           ],
  16           cs s: [
  17                'bower_c omponents/ bootstrap/ dist/css/b ootstrap.c ss',
  18                'bower_c omponents/ bootstrap- datepicker /dist/css/ bootstrap- datepicker 3.min.css' ,
  19                '_temp/c ommon/css/ **/*.css'
  20           ],
  21           ve teran: [
  22                '_temp/c ommon/js/a pp.js',
  23                '_temp/c ommon/lib/ resource_d irectory_u til.js',
  24                '_temp/c ommon/lib/ app_utils. js',
  25                '_temp/c ommon/lib/ LoginUtils .js',
  26                '_temp/c ommon/js/m odel/*.js' ,
  27                '_temp/v eteran/js/ model/*.js ',
  28                '_temp/v eteran/js/ collection /*.js',
  29                '_temp/c ommon/js/c ollection/ *.js',
  30                '_temp/c ommon/_tem p/app_json .js',
  31                '_temp/c ommon/_tem p/vet_temp lates.js',
  32                '_temp/c ommon/js/v iew/*.js',
  33                '_temp/v eteran/js/ view/*.js' ,
  34                '_temp/c ommon/js/r oute/veter an.js',
  35                '_temp/c ommon/js/v eteran.js' ,
  36                '_temp/c ommon/js/c ordova.js'
  37           ],
  38           ap p: '../../ ../app',
  39           te mp: '_temp ',
  40           co rdovaWeb:  'www',
  41           pl atforms: ' platforms' ,
  42           so urceDirs:  [
  43                'common/ css/**',
  44                'common/ data/**',
  45                'common/ js/**',
  46                'common/ img/**',
  47                'common/ lib/**',
  48                'common/ sass/**',
  49                'veteran /css/**',
  50                'veteran /font/**',
  51                'veteran /img/**',
  52                'veteran /js/**',
  53                'veteran /index.htm l'
  54           ],
  55           ap pDependenc ies: [
  56                '**'
  57           ]
  58       };
  59  
  60       grunt. initConfig ({
  61  
  62           cl ean: {
  63                cordova:  {
  64                    src:  [
  65                         path.temp,
  66                         path.cordo vaWeb,
  67                         path.platf orms
  68                    ]
  69                }
  70           },
  71  
  72           co py: {
  73                source:  {
  74                    file s: [
  75                         {
  76                             expand : true,
  77                             cwd: p ath.app,
  78                             src: [
  79                                 pa th.sourceD irs
  80                             ],
  81                             dest:  path.temp
  82                         },
  83                         { expand:  true, cwd:  path.app,  src:'bowe r.json', d est:'.' }
  84                    ]
  85                },
  86  
  87                veteran_ build: {
  88                    file s: [
  89                         {src: path .temp + '/ veteran/in dex.html',  dest: pat h.temp + ' /veteran/_ build/inde x.html'},
  90                         {expand: t rue, flatt en: true,  src: path. temp + '/v eteran/css /*', dest:  path.temp  + '/veter an/_build/ css/'},
  91                         {expand: t rue, flatt en: true,  src: path. temp + '/v eteran/fon ts/*', des t: path.te mp + '/vet eran/_buil d/fonts/'} ,
  92                         {expand: t rue, flatt en: true,  src: path. temp + '/c ommon/img/ *', dest:  path.temp  + '/vetera n/_build/i mg/'},
  93                         {expand: t rue, flatt en: true,  src: path. temp + '/v eteran/js/ *', dest:  path.temp  + '/vetera n/_build/j s/'},
  94                         {expand: t rue, flatt en: true,  src: path. temp + '/c ommon/data /*', dest:  path.temp  + '/veter an/_build/ '},
  95                         {expand: t rue, flatt en: true,  src: 'bowe r_componen ts/bootstr ap/fonts/* ', dest: p ath.temp +  '/veteran /_build/fo nts/'},
  96                         {src:'bowe r_componen ts/bootstr ap/dist/cs s/bootstra p.css.map' , dest: pa th.temp +  '/veteran/ _build/css /bootstrap .css.map'}
  97                    ]
  98                },
  99  
  100                grunt_me rge_androi d: {
  101                    file s: [
  102                         {expand: t rue, cwd:  'grunt_mer ge/android ', src: '* *', dest:  path.temp  + '/'},
  103                         {expand: t rue, cwd:  path.temp  + '/vetera n', src: ' **', dest:  path.temp  + '/veter an/_build' }
  104                    ]
  105                },
  106  
  107                grunt_me rge_ios: {
  108                    file s: [
  109                         {expand: t rue, cwd:  'grunt_mer ge/ios', s rc: '**',  dest: path .temp + '/ '},
  110                         {expand: t rue, cwd:  path.temp  + '/vetera n', src: ' **', dest:  path.temp  + '/veter an/_build' }
  111                    ]
  112                },
  113  
  114                copy_ios _build_fil es: {
  115                    file s: [
  116                         {src: 'bui ld.gradle' , dest: pa th.platfor ms + '/ios /build.gra dle'},
  117                         {src: 'Pai n_Coach.mo bileprovis ion', dest : path.pla tforms + ' /ios/Pain_ Coach.mobi leprovisio n'},
  118                         {src: 'VAC ertificate s.p12', de st: path.p latforms +  '/ios/VAC ertificate s.p12'},
  119                         {src: 'gra dlew', des t: path.pl atforms +  '/ios/grad lew'}
  120                    ]
  121                },
  122  
  123                setup: {
  124                    file s: [
  125                         {
  126                             expand : true,
  127                             cwd: p ath.temp +  '/veteran /_build',
  128                             src: [
  129                                 pa th.appDepe ndencies
  130                             ],
  131                             dest:  path.cordo vaWeb
  132                         }
  133                    ]
  134                },
  135  
  136                signing_ config: {
  137                    file s: [
  138                         {src: 'gru nt_merge/a ndroid/ant .propertie s', dest:  'platforms /android/a nt.propert ies'},
  139                         {src: 'gru nt_merge/a ndroid/rel ease-signi ng.propert ies', dest : 'platfor ms/android /release-s igning.pro perties'},
  140                         {src: 'gru nt_merge/a ndroid/and roid.jks',  dest: 'pl atforms/an droid/andr oid.jks'}
  141                    ]
  142                }
  143           },
  144  
  145           sh ell: {
  146                addCordo vaPlugins:  {
  147                    comm and: 'node  tasks/plu gins.js'
  148                },
  149                addLocal CordovaPlu gins: {
  150                    comm and: 'cord ova plugin  add ./loc al_plugins /calendar  ./local_pl ugins/prog uard'
  151                },
  152                platform AddAndroid : {
  153                    comm and: 'cord ova platfo rm add and roid'
  154                },
  155                platform AddIos: {
  156                    comm and: 'cord ova platfo rm add ios '
  157                },
  158                prepareA ndroid: {
  159                    comm and: 'cord ova prepar e android'
  160                },
  161                prepareI os: {
  162                    comm and: 'cord ova prepar e ios'
  163                },
  164                buildAnd roidDebug:  {
  165                    comm and: 'cord ova build  android'
  166                },
  167                buildAnd roidReleas e: {
  168                    //ke ystore inf o is read  from build .json
  169                    comm and: 'cord ova build  android -- release'
  170                },
  171                buildIos Debug: {
  172                    comm and: 'cord ova build  ios'
  173                },
  174                buildIos Release: {
  175                    comm and: 'cord ova build  ios'
  176                }
  177           },
  178  
  179           co ncat: {
  180                veteran:  {
  181                    src:  path.css,
  182                    dest : path.tem p + '/vete ran/_build /css/lib.c ss'
  183                }
  184           },
  185           ha ndlebars:  {
  186                veteran:  {
  187                    opti ons: {
  188                         namespace:  'VPC.Temp late',
  189                         processNam e: functio n(filePath ){
  190                             var fi leName = f ilePath.ma tch(/.*\/( [a-zA-Z0-9 \_\-]+)\.h tml$/);
  191                             return  fileName[ 1];
  192                         }
  193                    },
  194                    file s: {
  195                         "_temp/com mon/_temp/ vet_templa tes.js": [ path.temp  + "/common /js/templa te/*.html" , path.tem p + "/vete ran/js/tem plate/*.ht ml"]
  196                    }
  197                }
  198           },
  199           sa ss: {
  200                veteran:  {
  201                    file s: [{
  202                         expand: tr ue,
  203                         cwd: path. temp + '/c ommon/sass ',
  204                         src: ['app .scss'],
  205                         dest: path .temp + '/ veteran/_b uild/css',
  206                         ext: '.css '
  207                    }]
  208                }
  209           },
  210           js on: {
  211                app: {
  212                    opti ons: {
  213                         namespace:  'VPC_Data ',
  214                         includePat h: false
  215                    },
  216                    src:  ['_temp/c ommon/data /app.json' , '_temp/c ommon/data /resource- directory. json'],
  217                    dest : '_temp/c ommon/_tem p/app_json .js'
  218                }
  219           },
  220           ug lify: {
  221                options:  {
  222                    mang le: false
  223                },
  224                vet_libs : {
  225                    file s: {
  226                         '_temp/vet eran/_buil d/js/libs. js': path. libs
  227                    }
  228                },
  229                veteran:  {
  230                    file s: {
  231                         '_temp/vet eran/_buil d/js/app.j s': path.v eteran
  232                    }
  233                }
  234           },
  235           co nnect: {
  236                veteran:  {
  237                    opti ons: {
  238                         base: 'www ',
  239                         port: 3001
  240                    }
  241                }
  242           },
  243           wa tch:{
  244                androidA pp: {
  245                    file s: 'grunt_ merge/andr oid/common /js/**/*',
  246                    task s: ['copy: grunt_merg e_android' , 'handleb ars', 'ugl ify', 'cop y:Setup']
  247                },
  248                iosApp:  {
  249                    file s: 'grunt_ merge/ios/ common/js/ **/*',
  250                    task s: ['copy: grunt_merg e_ios', 'h andlebars' , 'uglify' , 'copy:se tup']
  251                },
  252                iosAppVe teran: {
  253                    file s: 'grunt_ merge/ios/ veteran/** /*',
  254                    task s: ['copy: grunt_merg e_ios', 'h andlebars' , 'uglify' , 'copy:se tup']
  255                },
  256                androids css: {
  257                    file s: 'grunt_ merge/andr oid/common /sass/**/* ',
  258                    task s: ['copy: grunt_merg e_android' , 'sass',  'uglify',  'copy:Setu p']
  259                },
  260                iosscss:  {
  261                    file s: 'grunt_ merge/ios/ common/sas s/**/*',
  262                    task s: ['copy: grunt_merg e_ios', 's ass', 'ugl ify', 'cop y:Setup']
  263                }
  264           },
  265  
  266           //  STRING-RE PLACE
  267           's tring-repl ace': {
  268                // resou rce urls t o use IP a ddresses s o this can  be tested  on phones  (cannot m odify host  file on d evices)
  269                devResou rceUrl: {
  270                    opti ons: {
  271                         replacemen ts: [
  272                             {
  273                                   pattern: / :\/\/ URL /ig,
  274                                 re placement:  function  (match, p1 , offset,  string) {
  275                                        return ':/ / IP             ';
  276                                 }
  277                             }
  278                         ]
  279                    },
  280                    src:  'www/js/a pp.js',
  281                    dest : 'www/js/ app.js'
  282                },
  283                // updat e the vers ion code s tored in A ndroidMani fest.xml
  284                androidV ersionCode : {
  285                    opti ons: {
  286                         replacemen ts: [
  287                             {
  288                                 pa ttern: /an droid-vers ionCode=[' "](\d*)['" ]/ig,
  289                                 re placement:  function  (match, p1 , offset,  string) {
  290                                      var buil dNum = gru nt.option( 'buildNum' );
  291                                      return ' android-ve rsionCode= "' + build Num + '"';
  292                                 }
  293                             }
  294                         ]
  295                    },
  296                    file s: {
  297                         'config.xm l': 'confi g.xml'
  298                    }
  299                },
  300                // updat e the vers ion name s tored in A ndroidMani fest.xml
  301                androidV ersionName : {
  302                    opti ons: {
  303                         replacemen ts: [
  304                             {
  305                                 pa ttern: /ve rsion=['"] (\d*).(\d* ).(\d*)['" ]/ig,
  306                                 re placement:  function  (match, p1 , offset,  string) {
  307                                      var buil dNum = gru nt.option( 'buildNum' );
  308                                      return ' version="2 .0.' + bui ldNum + '" ';
  309                                 }
  310                             }
  311                         ]
  312                    },
  313                    file s: {
  314                         'config.xm l': 'confi g.xml'
  315                    }
  316                }
  317           }
  318       });
  319  
  320       grunt. loadNpmTas ks('grunt- json');
  321       grunt. loadNpmTas ks('grunt- contrib-co py');
  322       grunt. loadNpmTas ks('grunt- contrib-cl ean');
  323       grunt. loadNpmTas ks('grunt- contrib-sa ss');
  324       grunt. loadNpmTas ks('grunt- contrib-co ncat');
  325       grunt. loadNpmTas ks('grunt- contrib-co nnect');
  326       grunt. loadNpmTas ks('grunt- contrib-ha ndlebars') ;
  327       grunt. loadNpmTas ks('grunt- contrib-wa tch');
  328       grunt. loadNpmTas ks('grunt- contrib-ug lify');
  329       grunt. loadNpmTas ks('grunt- shell');
  330       grunt. loadNpmTas ks('grunt- string-rep lace');
  331  
  332       grunt. registerTa sk('useFor ce', '', f unction(){
  333           if (!grunt.op tion('forc e')){
  334                grunt.op tion('forc e', true);
  335           }
  336       });
  337  
  338       grunt. registerTa sk('update AppData',  function ( ) {
  339           va r projectF ile = "_te mp/common/ data/app.j son";
  340           if  (!grunt.f ile.exists (projectFi le)) {
  341                grunt.lo g.error("f ile " + pr ojectFile  + " not fo und");
  342                return t rue;//retu rn false t o abort th e executio n
  343           }
  344           va r project  = grunt.fi le.readJSO N(projectF ile);
  345           pr oject['las t-update-d ate'] = gr unt.templa te.today(" mm/dd/yy") ;
  346           gr unt.file.w rite(proje ctFile, JS ON.stringi fy(project , null, 2) );
  347       });
  348  
  349       grunt. registerTa sk('setupC ordovaAndr oid', ['cl ean', 'cop y:source',  'copy:vet eran_build ', 'copy:g runt_merge _android',  'updateAp pData', 'c oncat', 's ass', 'han dlebars',  'json', 'u glify', 'c opy:setup' ]);
  350       grunt. registerTa sk('setupC ordovaIos' , ['clean' , 'copy:so urce', 'co py:veteran _build', ' copy:grunt _merge_ios ', 'update AppData',  'concat',  'sass', 'h andlebars' , 'json',  'uglify',  'copy:setu p']);
  351       grunt. registerTa sk('buildA ndroidDebu g', ['useF orce', 'se tupCordova Android',  'shell:add CordovaPlu gins', 'sh ell:addLoc alCordovaP lugins', ' shell:plat formAddAnd roid', 'sh ell:prepar eAndroid',  'shell:bu ildAndroid Debug']);
  352       grunt. registerTa sk('buildA ndroidRele ase', ['se tupCordova Android',  'shell:add CordovaPlu gins', 'sh ell:addLoc alCordovaP lugins', ' shell:plat formAddAnd roid', 'sh ell:prepar eAndroid',  'copy:sig ning_confi g', 'shell :buildAndr oidRelease ']);
  353       grunt. registerTa sk('buildI osDebug',  ['useForce ', 'setupC ordovaIos' , 'shell:a ddCordovaP lugins', ' shell:addL ocalCordov aPlugins',  'shell:pl atformAddI os', 'shel l:prepareI os', 'shel l:buildIos Debug']);
  354       grunt. registerTa sk('buildI osRelease' , ['useFor ce', 'setu pCordovaIo s', 'shell :addCordov aPlugins',  'shell:ad dLocalCord ovaPlugins ', 'shell: platformAd dIos', 'sh ell:prepar eIos', 'sh ell:buildI osRelease' , 'copy:co py_ios_bui ld_files'] );
  355       grunt. registerTa sk('serveA ndroid', [ 'setupCord ovaAndroid ', 'connec t', 'watch ']);
  356       grunt. registerTa sk('serveI os', ['set upCordovaI os', 'conn ect', 'wat ch']);
  357   };