anchor.diff:    end;
   end;
   
  +function TPackageInfoRefreshKeyboards.IsModelFileByName(f: TPackageContentFile): Boolean;
  +begin
  +  Result := TRegEx.IsMatch(f.FileName, '\.model\.js$', [roIgnoreCase]);
  +end;
  +
   function TPackageInfoRefreshKeyboards.IsKeyboardFileByName(f: TPackageContentFile): TKMFileType;
   begin
     if f.FileType = ftKeymanFile then
  
positive.code:   end;
  
    if f.FileType <> ftJavascript then
      Exit(ftOther);
  
    // Need to test if the JS is a valid keyboard file.
  
negative.code:     function IsKeyboardFileByContent(f: TPackageContentFile): Boolean;
      function CheckKeyboardLanguages: Boolean;
      function CheckKeyboardTargetVersions: Boolean;
      function IsModelFileByName(f: TPackageContentFile): Boolean;
    public
      type TPackageKeyboardInfo = record
        Name, ID, Version: string;
  