301. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 5/10/2018 8:27:03 AM 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.

301.1 Files compared

# Location File Last Modified
1 OSCIF MHED P3 Annie.zip\cms-staff-app-release-4.0.0@aff5ba84233.zip\MessagingApp Gruntfile.js Thu Feb 22 10:28:51 2018 UTC
2 OSCIF MHED P3 Annie.zip\cms-staff-app-release-4.0.0@aff5ba84233.zip\MessagingApp Gruntfile.js Wed May 9 13:07:10 2018 UTC

301.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 728
Changed 1 2
Inserted 0 0
Removed 0 0

301.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

301.4 Active regular expressions

No regular expressions were active.

301.5 Comparison detail

  1   'use stric t';
  2  
  3   // # Globb ing
  4   // for per f DNS     e reasons  we're only  matching  one level  down:
  5   // 'test/s pec/{,*/}* .js'
  6   // use thi s if you w ant to rec ursively m atch all s ubfolders:
  7   // 'test/s pec/**/*.j s'
  8  
  9   module.exp orts = fun ction (gru nt) {
  10     require( 'load-grun t-tasks')( grunt);
  11     require( 'time-grun t')(grunt) ;
  12  
  13     var pkgJ son = requ ire('./pac kage.json' );
  14     var vers ion = pkgJ son.versio n;
  15     var buil dId = proc ess.env.BU ILD_NUMBER ;
  16  
  17     grunt.in itConfig({
  18       yeoman : {
  19         // c onfigurabl e paths
  20         app:  require(' ./bower.js on').appPa th || 'app ',
  21         dist : 'dist'
  22       },
  23       autopr efixer: {
  24         opti ons: ['las t 1 versio n'],
  25         dist : {
  26           fi les: [{
  27              expand: tr ue,
  28              cwd: '.tmp /styles/',
  29              src: '{,*/ }*.css',
  30              dest: '.tm p/styles/'
  31           }]
  32         }
  33       },
  34       clean:  {
  35         dist : ['.tmp', '.sass-cac he','<%= y eoman.dist  %>','<%=  yeoman.app  %>/styles /main-styl es.css'],
  36         serv er: '.tmp' ,
  37         post : ['.tmp',  '.sass-ca che']
  38       },
  39       jshint : {
  40         opti ons: {
  41           js hintrc: '. jshintrc'
  42         },
  43         all:  [
  44           'G runtfile.j s',
  45           '< %= yeoman. app %>/scr ipts/**/*. js',
  46           '! <%= yeoman .app %>/sc ripts/temp lates.js'
  47         ]
  48       },
  49       // not  used sinc e Uglify t ask does c oncat,
  50       // but  still ava ilable if  needed
  51       /*conc at: {
  52         dist : {}
  53       },*/
  54       rev: {
  55         dist : {
  56           fi les: {
  57              src: [
  58                '<%= yeo man.dist % >/scripts/ {,*/}*.js' ,
  59                '<%= yeo man.dist % >/styles/{ ,*/}*.css' ,
  60                '<%= yeo man.dist % >/styles/f onts/*'
  61              ]
  62           }
  63         }
  64       },
  65       shell:  {
  66         vers ion: {
  67           co mmand: 'gi t log -1 - -pretty=fo rmat:%h',
  68           op tions: {
  69              callback:  function l og(err, st dout, stde rr, cb) {
  70                grunt.fi le.write(' app/versio n.json', J SON.string ify({
  71                  'versi on': versi on,
  72                  'Build Id': build Id || '',
  73                  'Check sum': stdo ut,
  74                  'date' : grunt.te mplate.tod ay()
  75                }));
  76                cb();
  77              }
  78           }
  79         }
  80       },
  81       usemin Prepare: {
  82         html : '<%= yeo man.app %> /index.htm l',
  83         opti ons: {
  84           de st: '<%= y eoman.dist  %>'
  85         }
  86       },
  87       usemin : {
  88         html : ['<%= ye oman.dist  %>/index.h tml'],
  89         css:  ['<%= yeo man.dist % >/styles/{ ,*/}*.css' ],
  90         opti ons: {
  91           ba sedir: '<% = yeoman.d ist %>',
  92           di rs: ['<%=  yeoman.dis t %>']
  93         }
  94       },
  95       svgmin : {
  96         dist : {
  97           fi les: [{
  98              expand: tr ue,
  99              cwd: '<%=  yeoman.app  %>/images ',
  100              src: '{,*/ }*.svg',
  101              dest: '<%=  yeoman.di st %>/imag es'
  102           }]
  103         }
  104       },
  105       htmlmi n: {
  106         dist : {
  107           op tions: {
  108              /*removeCo mmentsFrom CDATA: tru e,
  109              // https:/ /github.co m/yeoman/g runt-usemi n/issues/4 4
  110              //collapse Whitespace : true,
  111              collapseBo oleanAttri butes: tru e,
  112              removeAttr ibuteQuote s: true,
  113              removeRedu ndantAttri butes: tru e,
  114              useShortDo ctype: tru e,
  115              removeEmpt yAttribute s: true,
  116              removeOpti onalTags:  true*/
  117           },
  118           fi les: [{
  119              expand: tr ue,
  120              cwd: '<%=  yeoman.app  %>',
  121              src: ['ind ex.html'],
  122              dest: '<%=  yeoman.di st %>'
  123           }]
  124         }
  125       },
  126       compas s: {
  127         dist : {
  128           op tions: {
  129              sassDir: ' <%= yeoman .app %>/sa ss',
  130              cssDir: '< %= yeoman. app %>/sty les',
  131              outputStyl e: 'compre ssed'
  132           }
  133         }
  134       },
  135       copy:  {
  136         dist : {
  137           fi les: [{
  138              expand: tr ue,
  139              dot: true,
  140              cwd: '<%=  yeoman.app  %>',
  141              dest: '<%=  yeoman.di st %>',
  142              src: [
  143                '*.{ico, png,txt,js on}',
  144                '.htacce ss',
  145                '*.pdf',
  146                'images/ {,*/}*.{gi f,webp,png }',
  147                'styles/ fonts/*',
  148                'fonts/* '
  149              ]
  150           },  {
  151              expand: tr ue,
  152              cwd: '.tmp /images',
  153              dest: '<%=  yeoman.di st %>/imag es',
  154              src: [
  155                'generat ed/*',
  156                'images/ {,*/}*.{gi f,webp,png }'
  157              ]
  158           }]
  159         },
  160         styl es: {
  161           ex pand: true ,
  162           cw d: '<%= ye oman.app % >/styles',
  163           de st: '.tmp/ styles/',
  164           sr c: '{,*/}* .css'
  165         }
  166       },
  167       concur rent: {
  168         test : [
  169           'c opy:styles '
  170         ],
  171         dist : [
  172           'c opy:styles ',
  173           's vgmin',
  174           'h tmlmin'
  175         ]
  176       },
  177       karma:  {
  178         unit : {
  179           co nfigFile:  'karma.con f.js',
  180           si ngleRun: t rue
  181         }
  182       },
  183       cdnify : {
  184         dist : {
  185           ht ml: ['<%=  yeoman.dis t %>/*.htm l']
  186         }
  187       },
  188       ngmin:  {
  189         dist : {
  190           fi les: [{
  191              expand: tr ue,
  192              cwd: '<%=  yeoman.dis t %>/scrip ts',
  193              src: '*.js ',
  194              dest: '<%=  yeoman.di st %>/scri pts'
  195           }]
  196         }
  197       },
  198       uglify : {
  199         dist : {
  200           fi les: {
  201              '<%= yeoma n.dist %>/ scripts/sc ripts.js':  [
  202                '<%= yeo man.dist % >/scripts/ scripts.js '
  203              ]
  204           }
  205         }
  206       },
  207       cssmin : {
  208         opti ons: {
  209           so urceMap: f alse
  210         },
  211         targ et: {
  212           fi les: [{
  213              expand: tr ue,
  214              cwd: '<%=  yeoman.dis t %>/style s',
  215              src: ['*.c ss'],
  216              dest: '<%=  yeoman.di st %>/styl es'
  217           }]
  218         }
  219       },
  220       ngtemp lates: {
  221         dist : {
  222           cw d: '<%= ye oman.app % >',
  223           de st: '<%= y eoman.app  %>/scripts /templates .js',
  224           sr c: ['**/*_ template.h tml', '**/ *.tpl.html ', '**/*.t mpl.html'] ,
  225           op tions: {
  226              module: 'M essagingAp pApp'
  227           }
  228         }
  229       },
  230       htmlan gular: {
  231         opti ons: {
  232           re portpath:  null,
  233           tm plext: 'tp l.html',
  234           cu stomtags:  [
  235              'sham-spin ner',
  236              'paginatio n',
  237              'audit-tra il',
  238              'admin-mea surement',
  239              'admin-vit al-message ',
  240              'admin-sch edule',
  241              'admin-mot ivational- message',
  242              'admin-err or-message ',
  243              'highchart ',
  244              'checkbox- group'
  245           ],
  246           cu stomattrs:  [
  247              'sham-spin ner',
  248              'datepicke r-popup',
  249              'datepicke r-options' ,
  250              'date-disa bled',
  251              'close-tex t',
  252              'is-open',
  253              'min',
  254              'max',
  255              'main-cont ent',
  256              'global-he ader-conte nt',
  257              'admin-tab s-content' ,
  258              'collapse' ,
  259              'tabs-cont ent',
  260              'justified ',
  261              'role',
  262              'ng-form',
  263              'name',
  264              'numeric-o nly',
  265              'tooltip',
  266              'validleng th'
  267           ],
  268           // ignores th ese errors
  269           re laxerror:  [
  270              'Bad value  X-UA-Comp atible for  attribute  http-equi v on eleme nt meta.',
  271              'Duplicate  ID templa tes[{{temp lateIndex} }].measure ment.',
  272              'The first  occurrenc e of ID te mplates[{{ templateIn dex}}].mea surement w as here.',
  273              'An ID mus t not cont ain whites pace',
  274              // clinica lAdminMeas ure.tpl -  duplicate  IDs, for t esting.
  275              'Duplicate  ID error- list.',
  276              'The first  occurrenc e of ID er ror-list w as here.',
  277              // clinica lAdminProt ocol.tpl.h tml
  278              'Duplicate  ID protoc ol[{{ $ind ex }}].foc us-area',
  279              'The first  occurrenc e of ID pr otocol[{{  $index }}] .focus-are a was here .',
  280              'Bad value  #/clinica lAdmin/aud itTrail/{{  getProtoc olId(proto col) }} fo r attribut e href on  element a:  Illegal c haracter i n fragment : not a UR L code poi nt.',
  281              'Duplicate  ID protoc ol[{{ $ind ex }}].ena ble.',
  282              'Duplicate  ID protoc ol[{{ $ind ex }}].dis able.',
  283              'The first  occurrenc e of ID pr otocol[{{  $index }}] .enable wa s here.',
  284              'The first  occurrenc e of ID pr otocol[{{  $index }}] .disable w as here.',
  285              // clinica lAdminErro rMessages. tpl.html
  286              'Duplicate  ID templa tes[{{temp lateIndex} }].global- error.',
  287              'The first  occurrenc e of ID te mplates[{{ templateIn dex}}].glo bal-error  was here.' ,
  288              // clinica lAdminVita lMessage.t pl.html
  289              'Element o ption with out attrib ute label  must not b e empty.',
  290              // message History.tp l.html
  291              'Duplicate  ID messag e-page.',
  292              'The first  occurrenc e of ID me ssage-page  was here. ',
  293              // patient ProtocolEd it.tpl.htm l
  294              'Duplicate  ID templa tes[{{temp lateIndex} }].heading -message-s ettings.',
  295              'The first  occurrenc e of ID te mplates[{{ templateIn dex}}].hea ding-messa ge-setting s was here .',
  296              'Duplicate  ID templa tes[{{temp lateIndex} }].message -setting.' ,
  297              'The first  occurrenc e of ID te mplates[{{ templateIn dex}}].mes sage-setti ng was her e.',
  298              'Duplicate  ID save-b ottom.',
  299              'The first  occurrenc e of ID sa ve-bottom  was here.' ,
  300              // patient ProtocolLi st.tpl.htm l
  301              'Bad value  #/patient /account/{ {currPatie nt._id}} f or attribu te href on  element a : Illegal  character  in fragmen t: not a U RL code po int.',
  302              'Duplicate  ID assign -protocol- btn.',
  303              'The first  occurrenc e of ID as sign-proto col-btn wa s here.',
  304              // patient Registrati on.tpl.htm l
  305              'Duplicate  ID headin g-patient- registrati on.',
  306              'The first  occurrenc e of ID he ading-pati ent-regist ration was  here.',
  307              'Duplicate  ID select -patient-c onsent-for m.',
  308              'The first  occurrenc e of ID se lect-patie nt-consent -form was  here.',
  309  
  310              // The act ion attrib ute is man datory, an d it must  contain a  valid URI.  But accor ding to th e URI RFC,  an empty  URI is sti ll a URI:
  311              // A URI r eference t hat does n ot contain  a URI is  a referenc e to the c urrent doc ument. In  other word s, an empt y URI refe rence with in a docum ent is int erpreted a s a refere nce to the  start of  that docum ent, and a  reference  containin g only a f ragment id entifier i s a refere nce to the  identifie d fragment  of that d ocument. T raversal o f such a r eference s hould not  result in  an additio nal retrie val action . However,  if the UR I referenc e occurs i n a contex t that is  always int ended to r esult in a  new reque st, as in  the case o f HTML's F ORM elemen t, then an  empty URI  reference  represent s the base  URI of th e current  document a nd should  be replace d by that  URI when t ransformed  into a re quest.
  312              'Bad value   for attr ibute acti on on elem ent form:  Must be no n-empty.'
  313           ]
  314         },
  315         vali dateHTML:  {
  316           //  Target-sp ecific fil e lists an d/or optio ns go here .
  317           sr c: [
  318              'app/**/*. html',
  319              '!app/bowe r_componen ts/**'
  320           ]
  321         }
  322       }
  323     });
  324  
  325     grunt.re gisterTask ('test', [
  326       'clean :server',
  327       'concu rrent:test ',
  328       'autop refixer',
  329       'karma '
  330     ]);
  331  
  332     grunt.re gisterTask ('build',  [
  333       'clean :dist',
  334       'shell :version',
  335       'usemi nPrepare',
  336       'ngtem plates:dis t',
  337       'compa ss:dist',
  338       'concu rrent:dist ',
  339       'autop refixer',
  340       'conca t',
  341       'copy: dist',
  342       'cssmi n',
  343       'cdnif y',
  344       'ngmin ',
  345       'uglif y',
  346       'rev',
  347       'usemi n',
  348       'clean :post'
  349     ]);
  350  
  351     grunt.re gisterTask ('dev', [
  352       'jshin t',
  353       'test'
  354     ]);
  355  
  356     grunt.re gisterTask ('default' , [
  357       'jshin t',
  358       'test' ,
  359       'build '
  360     ]);
  361  
  362     grunt.re gisterTask ('artifact Build', [
  363       'defau lt'
  364     ]);
  365   };