Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 37412123

Přidáno uživatelem Václav Jirák před téměř 6 roky(ů)

Re #7264 Angular project initialized

Zobrazit rozdíly:

.gitignore
1
# Compiled class file
2
*.class
3

  
4
# Log file
5
*.log
6

  
7
# BlueJ files
8
*.ctxt
9

  
10
# Mobile Tools for Java (J2ME)
11
.mtj.tmp/
12

  
13
# Package Files #
14
*.jar
15
*.war
16
*.nar
17
*.ear
18
*.zip
19
*.tar.gz
20
*.rar
21

  
22
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23
hs_err_pid*
24

  
25
# IntelliJ
26
.idea/* 
27
*.iml
28
 
backend/.gitignore
1
# Compiled class file
2
target/*
3

  
4
# Log file
5
*.log
6

  
7
# BlueJ files
8
*.ctxt
9

  
10
# Mobile Tools for Java (J2ME)
11
.mtj.tmp/
12

  
13
# Package Files #
14
*.jar
15
*.war
16
*.nar
17
*.ear
18
*.zip
19
*.tar.gz
20
*.rar
21

  
22
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23
hs_err_pid*
24

  
25
# IntelliJ
26
.idea/* 
27
*.iml
28
 
backend/build.sh
1
mvn package && docker restart yamanager_app
backend/docker-compose.yml
1
version: '3.1'
2

  
3
services:
4

  
5
  app:
6
    image: openjdk:13-jdk-alpine
7
    container_name: yamanager_app
8
    volumes:
9
      - /tmp
10
      - ./target/ymanager-1.0-SNAPSHOT.jar:/app.jar
11
    entrypoint: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Djava.security.egd=file:/dev/./urandom -jar /app.jar
12
    restart: always
13
    ports:
14
      - 9080:8080
15
      - 6005:5005
16
    depends_on:
17
      - db
18
    links:
19
      - db
20

  
21
  db:
22
    image: mariadb
23
    container_name: yamanager_db
24
    restart: always
25
    volumes:
26
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
27
    environment:
28
      MYSQL_ROOT_PASSWORD: root
29
      MYSQL_USER: user
30
      MYSQL_PASSWORD: passwd
31
      MYSQL_DATABASE: yamanager
32
    ports:
33
      - 3306:3306
backend/init.sql
1
CREATE TABLE test (
2
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
3
  message VARCHAR(255),
4
  PRIMARY KEY (id)
5
);
6

  
7
INSERT INTO test (message) VALUES ('test 1');
8
INSERT INTO test (message) VALUES ('test 2');
9
INSERT INTO test (message) VALUES ('test 3');
10
INSERT INTO test (message) VALUES ('test 4');
backend/install.sh
1
docker-compose up
backend/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
    <modelVersion>4.0.0</modelVersion>
5

  
6
    <groupId>cz.zcu.fav.kiv</groupId>
7
    <artifactId>ymanager</artifactId>
8
    <version>1.0-SNAPSHOT</version>
9

  
10
    <parent>
11
        <groupId>org.springframework.boot</groupId>
12
        <artifactId>spring-boot-starter-parent</artifactId>
13
        <version>2.0.5.RELEASE</version>
14
    </parent>
15

  
16
    <properties>
17
        <java.version>1.8</java.version>
18
    </properties>
19

  
20
    <dependencies>
21
        <dependency>
22
            <groupId>org.springframework.boot</groupId>
23
            <artifactId>spring-boot-starter-web</artifactId>
24
        </dependency>
25

  
26
        <!-- DATABASE -->
27
        <dependency>
28
            <groupId>org.springframework.boot</groupId>
29
            <artifactId>spring-boot-starter-jdbc</artifactId>
30
        </dependency>
31
        <dependency>
32
            <groupId>org.mariadb.jdbc</groupId>
33
            <artifactId>mariadb-java-client</artifactId>
34
            <version>2.4.1</version>
35
        </dependency>
36

  
37

  
38
        <!-- TESTS -->
39
        <dependency>
40
            <groupId>org.springframework.boot</groupId>
41
            <artifactId>spring-boot-starter-test</artifactId>
42
            <scope>test</scope>
43
        </dependency>
44
        <dependency>
45
            <groupId>org.junit.jupiter</groupId>
46
            <artifactId>junit-jupiter-api</artifactId>
47
            <scope>test</scope>
48
        </dependency>
49
        <dependency>
50
            <groupId>org.mockito</groupId>
51
            <artifactId>mockito-core</artifactId>
52
            <version>2.25.1</version>
53
            <scope>test</scope>
54
        </dependency>
55
    </dependencies>
56

  
57

  
58
    <build>
59
        <plugins>
60
            <plugin>
61
                <groupId>org.springframework.boot</groupId>
62
                <artifactId>spring-boot-maven-plugin</artifactId>
63
            </plugin>
64
        </plugins>
65
    </build>
66

  
67
</project>
backend/src/main/java/cz/zcu/yamanager/Application.java
1
package cz.zcu.yamanager;
2

  
3
import cz.zcu.yamanager.util.localization.Language;
4
import cz.zcu.yamanager.util.localization.Message;
5
import org.springframework.boot.SpringApplication;
6
import org.springframework.boot.autoconfigure.SpringBootApplication;
7

  
8
@SpringBootApplication
9
public class Application {
10

  
11
    public static void main(String[] args) {
12

  
13
        Message.config()
14
                .addLanguage(Language.EN)
15
                .addLanguage(Language.CZ);
16

  
17
        SpringApplication.run(Application.class, args);
18
    }
19
}
backend/src/main/java/cz/zcu/yamanager/domain/Test.java
1
package cz.zcu.yamanager.domain;
2

  
3
public class Test {
4

  
5
    private final long id;
6
    private final String message;
7

  
8
    public Test(long id, String message) {
9
        this.id = id;
10
        this.message = message;
11
    }
12

  
13
    public long getId() {
14
        return id;
15
    }
16

  
17
    public String getMessage() {
18
        return message;
19
    }
20

  
21
    @Override
22
    public String toString() {
23
        return String.format("Test[id=%d, message='%s']", id, message);
24
    }
25
}
backend/src/main/java/cz/zcu/yamanager/repository/HelloRepository.java
1
package cz.zcu.yamanager.repository;
2

  
3
import cz.zcu.yamanager.domain.Test;
4
import org.slf4j.Logger;
5
import org.slf4j.LoggerFactory;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.jdbc.core.JdbcTemplate;
8
import org.springframework.stereotype.Repository;
9

  
10
import java.util.List;
11

  
12
@Repository
13
public class HelloRepository {
14

  
15
    private static final Logger log = LoggerFactory.getLogger(HelloRepository.class);
16

  
17
    private final JdbcTemplate jdbc;
18

  
19
    @Autowired
20
    public HelloRepository(JdbcTemplate jdbc) {
21
        this.jdbc = jdbc;
22
    }
23

  
24
    public List<Test> all() {
25
        return jdbc.query("SELECT id, message FROM test",
26
                (rs, rowNum) -> new Test(rs.getLong("id"), rs.getString("message")));
27
    }
28
}
backend/src/main/java/cz/zcu/yamanager/util/localization/Language.java
1
package cz.zcu.yamanager.util.localization;
2

  
3
import java.util.Locale;
4

  
5
public enum  Language {
6

  
7
    EN  (Locale.ENGLISH),
8
    CZ  (new Locale("cs", "")),
9

  
10
    ;
11
    private Locale locale;
12
    Language(Locale locale) {
13
        this.locale = locale;
14
    }
15

  
16
    public Locale getLocale() {
17
        return locale;
18
    }
19

  
20
    public static Language get(String lang) {
21
        return valueOf(lang.toUpperCase());
22
    }
23
}
backend/src/main/java/cz/zcu/yamanager/util/localization/Message.java
1
package cz.zcu.yamanager.util.localization;
2

  
3
import java.util.HashMap;
4
import java.util.Map;
5
import java.util.ResourceBundle;
6

  
7
import static java.util.ResourceBundle.getBundle;
8

  
9
public final class Message {
10

  
11
    private static Map<Language, ResourceBundle> BUNDLES;
12

  
13
    static {
14
        BUNDLES = new HashMap<>();
15

  
16
        config().addLanguage(Language.EN);
17
    }
18

  
19
    public interface Config {
20
        Config addLanguage(Language language);
21
    }
22

  
23
    public static Config config() {
24
        return new Config() {
25

  
26
            @Override
27
            public Config addLanguage(Language language) {
28
                if (!BUNDLES.containsKey(language)) {
29
                    BUNDLES.put(language, getBundle("Message", language.getLocale()));
30
                }
31
                return this;
32
            }
33
        };
34
    }
35

  
36
    public static String getString(Language language, String key) {
37
        if (!BUNDLES.containsKey(language)) return language.name()+" SOURCE MISSING";
38
        return BUNDLES.get(language).getString(key);
39
    }
40

  
41
    public static String getString(String key) {
42
        return getString(Language.EN, key);
43
    }
44
}
backend/src/main/java/cz/zcu/yamanager/ws/rest/HelloController.java
1
package cz.zcu.yamanager.ws.rest;
2

  
3
import cz.zcu.yamanager.domain.Test;
4
import cz.zcu.yamanager.repository.HelloRepository;
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.web.bind.annotation.RequestMapping;
7
import org.springframework.web.bind.annotation.RequestParam;
8
import org.springframework.web.bind.annotation.RestController;
9

  
10
import java.util.List;
11

  
12
import static cz.zcu.yamanager.util.localization.Language.get;
13
import static cz.zcu.yamanager.util.localization.Message.getString;
14
import static org.springframework.web.bind.annotation.RequestMethod.GET;
15

  
16
@RestController
17
public class HelloController {
18

  
19
    private final HelloRepository repository;
20

  
21
    @Autowired
22
    public HelloController(HelloRepository repository) {
23
        this.repository = repository;
24
    }
25

  
26
    @RequestMapping(value = "/hello", method=GET)
27
    public String hello(@RequestParam(value = "lang", required = false, defaultValue = "en") String lang) {
28
        return getString(get(lang), "hello");
29
    }
30

  
31
    @RequestMapping(value = "/database", method=GET)
32
    public List<Test> database() {
33
        return repository.all();
34
    }
35
}
backend/src/main/java/cz/zcu/yamanager/ws/rest/TestController.java
1
package cz.zcu.yamanager.ws.rest;
2

  
3
import org.springframework.web.bind.annotation.RequestMapping;
4
import org.springframework.web.bind.annotation.RestController;
5

  
6
import static org.springframework.web.bind.annotation.RequestMethod.GET;
7
import static org.springframework.web.bind.annotation.RequestMethod.POST;
8

  
9
@RestController("/test")
10
public class TestController {
11

  
12
    @RequestMapping(method=GET)
13
    public String get() {
14
        return "test GET";
15
    }
16

  
17
    @RequestMapping(method=POST)
18
    public String post() {
19
        return "test POST";
20
    }
21
}
backend/src/main/resources/Message_cs.properties
1
hello=Ahoj sv\u011Bte
backend/src/main/resources/Message_en.properties
1
hello=Hello world
backend/src/main/resources/application.properties
1
spring.datasource.url=jdbc:mariadb://db:3306/yamanager
2
spring.datasource.username=user
3
spring.datasource.password=passwd
4
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
backend/src/test/java/cz/zcu/yamanager/util/localization/MessageTest.java
1
package cz.zcu.yamanager.util.localization;
2

  
3
import org.junit.jupiter.api.Test;
4

  
5
import static org.junit.jupiter.api.Assertions.*;
6

  
7
class MessageTest {
8

  
9
    @Test
10
    void getString_inCzech_true() {
11
        Message.config().addLanguage(Language.CZ);
12

  
13
        assertEquals("český jazyk", Message.getString(Language.CZ, "hello"));
14
    }
15

  
16
    @Test
17
    void getString_inEnglish_true() {
18
        Message.config().addLanguage(Language.EN);
19

  
20
        assertEquals("english language", Message.getString(Language.EN, "hello"));
21
    }
22

  
23
    @Test
24
    void getString_general_true() {
25
        assertEquals("english language", Message.getString("hello"));
26
    }
27

  
28
    @Test
29
    void getString_multiple_true() {
30
        Message.config()
31
                .addLanguage(Language.CZ)
32
                .addLanguage(Language.EN);
33

  
34
        assertEquals("český jazyk", Message.getString(Language.CZ, "hello"));
35
        assertEquals("english language", Message.getString(Language.EN, "hello"));
36
        assertEquals("english language", Message.getString("hello"));
37
    }
38

  
39
    @Test
40
    void getString_missingSource_true() {
41
        assertEquals("CZ SOURCE MISSING", Message.getString(Language.CZ, "hello"));
42
    }
43
}
backend/src/test/java/cz/zcu/yamanager/ws/rest/HelloControllerTest.java
1
package cz.zcu.yamanager.ws.rest;
2

  
3
import cz.zcu.yamanager.util.localization.Language;
4
import cz.zcu.yamanager.util.localization.Message;
5
import org.junit.jupiter.api.BeforeEach;
6
import org.junit.jupiter.api.Test;
7

  
8
import static org.junit.jupiter.api.Assertions.assertEquals;
9

  
10
class HelloControllerTest {
11

  
12
    private HelloController helloController;
13

  
14
    @BeforeEach
15
    void setUp() {
16
        Message.config()
17
                .addLanguage(Language.EN)
18
                .addLanguage(Language.CZ);
19

  
20
        helloController = new HelloController(null);
21
    }
22

  
23
    @Test
24
    void hello_inCzech_true() {
25
        assertEquals("český jazyk", helloController.hello("cz"));
26
    }
27

  
28
    @Test
29
    void hello_inEnglish_true() {
30
        assertEquals("english language", helloController.hello("en"));
31
    }
32
}
backend/src/test/resources/Message_cs.properties
1
hello=\u010Desk\u00FD jazyk
backend/src/test/resources/Message_en.properties
1
hello=english language
build.sh
1
mvn package && docker restart yamanager_app
docker-compose.yml
1
version: '3.1'
2

  
3
services:
4

  
5
  app:
6
    image: openjdk:13-jdk-alpine
7
    container_name: yamanager_app
8
    volumes:
9
      - /tmp
10
      - ./target/ymanager-1.0-SNAPSHOT.jar:/app.jar
11
    entrypoint: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Djava.security.egd=file:/dev/./urandom -jar /app.jar
12
    restart: always
13
    ports:
14
      - 9080:8080
15
      - 6005:5005
16
    depends_on:
17
      - db
18
    links:
19
      - db
20

  
21
  db:
22
    image: mariadb
23
    container_name: yamanager_db
24
    restart: always
25
    volumes:
26
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
27
    environment:
28
      MYSQL_ROOT_PASSWORD: root
29
      MYSQL_USER: user
30
      MYSQL_PASSWORD: passwd
31
      MYSQL_DATABASE: yamanager
32
    ports:
33
      - 3306:3306
frontend/.editorconfig
1
# Editor configuration, see https://editorconfig.org
2
root = true
3

  
4
[*]
5
charset = utf-8
6
indent_style = space
7
indent_size = 2
8
insert_final_newline = true
9
trim_trailing_whitespace = true
10

  
11
[*.md]
12
max_line_length = off
13
trim_trailing_whitespace = false
frontend/.gitignore
1
# See http://help.github.com/ignore-files/ for more about ignoring files.
2

  
3
# compiled output
4
/dist
5
/tmp
6
/out-tsc
7
# Only exists if Bazel was run
8
/bazel-out
9

  
10
# dependencies
11
/node_modules
12

  
13
# profiling files
14
chrome-profiler-events.json
15
speed-measure-plugin.json
16

  
17
# IDEs and editors
18
/.idea
19
.project
20
.classpath
21
.c9/
22
*.launch
23
.settings/
24
*.sublime-workspace
25

  
26
# IDE - VSCode
27
.vscode/*
28
!.vscode/settings.json
29
!.vscode/tasks.json
30
!.vscode/launch.json
31
!.vscode/extensions.json
32
.history/*
33

  
34
# misc
35
/.sass-cache
36
/connect.lock
37
/coverage
38
/libpeerconnection.log
39
npm-debug.log
40
yarn-error.log
41
testem.log
42
/typings
43

  
44
# System Files
45
.DS_Store
46
Thumbs.db
frontend/angular.json
1
{
2
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
  "version": 1,
4
  "newProjectRoot": "projects",
5
  "projects": {
6
    "ymanager-frontend": {
7
      "root": "",
8
      "sourceRoot": "src",
9
      "projectType": "application",
10
      "prefix": "app",
11
      "schematics": {
12
        "@schematics/angular:component": {
13
          "style": "sass"
14
        }
15
      },
16
      "architect": {
17
        "build": {
18
          "builder": "@angular-devkit/build-angular:browser",
19
          "options": {
20
            "outputPath": "dist/ymanager-frontend",
21
            "index": "src/index.html",
22
            "main": "src/main.ts",
23
            "polyfills": "src/polyfills.ts",
24
            "tsConfig": "src/tsconfig.app.json",
25
            "assets": [
26
              "src/favicon.ico",
27
              "src/assets"
28
            ],
29
            "styles": [
30
              "src/styles.sass"
31
            ],
32
            "scripts": [],
33
            "es5BrowserSupport": true
34
          },
35
          "configurations": {
36
            "production": {
37
              "fileReplacements": [
38
                {
39
                  "replace": "src/environments/environment.ts",
40
                  "with": "src/environments/environment.prod.ts"
41
                }
42
              ],
43
              "optimization": true,
44
              "outputHashing": "all",
45
              "sourceMap": false,
46
              "extractCss": true,
47
              "namedChunks": false,
48
              "aot": true,
49
              "extractLicenses": true,
50
              "vendorChunk": false,
51
              "buildOptimizer": true,
52
              "budgets": [
53
                {
54
                  "type": "initial",
55
                  "maximumWarning": "2mb",
56
                  "maximumError": "5mb"
57
                }
58
              ]
59
            }
60
          }
61
        },
62
        "serve": {
63
          "builder": "@angular-devkit/build-angular:dev-server",
64
          "options": {
65
            "browserTarget": "ymanager-frontend:build"
66
          },
67
          "configurations": {
68
            "production": {
69
              "browserTarget": "ymanager-frontend:build:production"
70
            }
71
          }
72
        },
73
        "extract-i18n": {
74
          "builder": "@angular-devkit/build-angular:extract-i18n",
75
          "options": {
76
            "browserTarget": "ymanager-frontend:build"
77
          }
78
        },
79
        "test": {
80
          "builder": "@angular-devkit/build-angular:karma",
81
          "options": {
82
            "main": "src/test.ts",
83
            "polyfills": "src/polyfills.ts",
84
            "tsConfig": "src/tsconfig.spec.json",
85
            "karmaConfig": "src/karma.conf.js",
86
            "styles": [
87
              "src/styles.sass"
88
            ],
89
            "scripts": [],
90
            "assets": [
91
              "src/favicon.ico",
92
              "src/assets"
93
            ]
94
          }
95
        },
96
        "lint": {
97
          "builder": "@angular-devkit/build-angular:tslint",
98
          "options": {
99
            "tsConfig": [
100
              "src/tsconfig.app.json",
101
              "src/tsconfig.spec.json"
102
            ],
103
            "exclude": [
104
              "**/node_modules/**"
105
            ]
106
          }
107
        }
108
      }
109
    },
110
    "ymanager-frontend-e2e": {
111
      "root": "e2e/",
112
      "projectType": "application",
113
      "prefix": "",
114
      "architect": {
115
        "e2e": {
116
          "builder": "@angular-devkit/build-angular:protractor",
117
          "options": {
118
            "protractorConfig": "e2e/protractor.conf.js",
119
            "devServerTarget": "ymanager-frontend:serve"
120
          },
121
          "configurations": {
122
            "production": {
123
              "devServerTarget": "ymanager-frontend:serve:production"
124
            }
125
          }
126
        },
127
        "lint": {
128
          "builder": "@angular-devkit/build-angular:tslint",
129
          "options": {
130
            "tsConfig": "e2e/tsconfig.e2e.json",
131
            "exclude": [
132
              "**/node_modules/**"
133
            ]
134
          }
135
        }
136
      }
137
    }
138
  },
139
  "defaultProject": "ymanager-frontend"
140
}
frontend/e2e/protractor.conf.js
1
// Protractor configuration file, see link for more information
2
// https://github.com/angular/protractor/blob/master/lib/config.ts
3

  
4
const { SpecReporter } = require('jasmine-spec-reporter');
5

  
6
exports.config = {
7
  allScriptsTimeout: 11000,
8
  specs: [
9
    './src/**/*.e2e-spec.ts'
10
  ],
11
  capabilities: {
12
    'browserName': 'chrome'
13
  },
14
  directConnect: true,
15
  baseUrl: 'http://localhost:4200/',
16
  framework: 'jasmine',
17
  jasmineNodeOpts: {
18
    showColors: true,
19
    defaultTimeoutInterval: 30000,
20
    print: function() {}
21
  },
22
  onPrepare() {
23
    require('ts-node').register({
24
      project: require('path').join(__dirname, './tsconfig.e2e.json')
25
    });
26
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
27
  }
28
};
frontend/e2e/src/app.e2e-spec.ts
1
import { AppPage } from './app.po';
2
import { browser, logging } from 'protractor';
3

  
4
describe('workspace-project App', () => {
5
  let page: AppPage;
6

  
7
  beforeEach(() => {
8
    page = new AppPage();
9
  });
10

  
11
  it('should display welcome message', () => {
12
    page.navigateTo();
13
    expect(page.getTitleText()).toEqual('Welcome to ymanager-frontend!');
14
  });
15

  
16
  afterEach(async () => {
17
    // Assert that there are no errors emitted from the browser
18
    const logs = await browser.manage().logs().get(logging.Type.BROWSER);
19
    expect(logs).not.toContain(jasmine.objectContaining({
20
      level: logging.Level.SEVERE,
21
    } as logging.Entry));
22
  });
23
});
frontend/e2e/src/app.po.ts
1
import { browser, by, element } from 'protractor';
2

  
3
export class AppPage {
4
  navigateTo() {
5
    return browser.get(browser.baseUrl) as Promise<any>;
6
  }
7

  
8
  getTitleText() {
9
    return element(by.css('app-root h1')).getText() as Promise<string>;
10
  }
11
}
frontend/e2e/tsconfig.e2e.json
1
{
2
  "extends": "../tsconfig.json",
3
  "compilerOptions": {
4
    "outDir": "../out-tsc/app",
5
    "module": "commonjs",
6
    "target": "es5",
7
    "types": [
8
      "jasmine",
9
      "jasminewd2",
10
      "node"
11
    ]
12
  }
13
}
frontend/install.sh
1
yarn install
frontend/package-lock.json
1
{
2
  "name": "ymanager-frontend",
3
  "version": "0.0.0",
4
  "lockfileVersion": 1,
5
  "requires": true,
6
  "dependencies": {
7
    "@angular-devkit/architect": {
8
      "version": "0.13.8",
9
      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.8.tgz",
10
      "integrity": "sha512-gxUs5rhnP576T8ZclKqxlspiChrqRtqaJo54wqNVFvYKEjRZKyMa+1AK6p0oD9zcIToEkcjknj3BbtQa27lLHg==",
11
      "dev": true,
12
      "requires": {
13
        "@angular-devkit/core": "7.3.8",
14
        "rxjs": "6.3.3"
15
      }
16
    },
17
    "@angular-devkit/build-angular": {
18
      "version": "0.13.8",
19
      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.8.tgz",
20
      "integrity": "sha512-uRb8CKC0hUdcE+Fv2Ov9LJNelyjsiMuddBpo8pdTKCIHVVC6hvip9S/Z18Tvb207kKI3k7Dn+Ji1J63mCqmQzA==",
21
      "dev": true,
22
      "requires": {
23
        "@angular-devkit/architect": "0.13.8",
24
        "@angular-devkit/build-optimizer": "0.13.8",
25
        "@angular-devkit/build-webpack": "0.13.8",
26
        "@angular-devkit/core": "7.3.8",
27
        "@ngtools/webpack": "7.3.8",
28
        "ajv": "6.9.1",
29
        "autoprefixer": "9.4.6",
30
        "circular-dependency-plugin": "5.0.2",
31
        "clean-css": "4.2.1",
32
        "copy-webpack-plugin": "4.6.0",
33
        "file-loader": "3.0.1",
34
        "glob": "7.1.3",
35
        "istanbul-instrumenter-loader": "3.0.1",
36
        "karma-source-map-support": "1.3.0",
37
        "less": "3.9.0",
38
        "less-loader": "4.1.0",
39
        "license-webpack-plugin": "2.1.0",
40
        "loader-utils": "1.2.3",
41
        "mini-css-extract-plugin": "0.5.0",
42
        "minimatch": "3.0.4",
43
        "node-sass": "4.11.0",
44
        "open": "6.0.0",
45
        "parse5": "4.0.0",
46
        "postcss": "7.0.14",
47
        "postcss-import": "12.0.1",
48
        "postcss-loader": "3.0.0",
49
        "raw-loader": "1.0.0",
50
        "rxjs": "6.3.3",
51
        "sass-loader": "7.1.0",
52
        "semver": "5.6.0",
53
        "source-map-loader": "0.2.4",
54
        "source-map-support": "0.5.10",
55
        "speed-measure-webpack-plugin": "1.3.1",
56
        "stats-webpack-plugin": "0.7.0",
57
        "style-loader": "0.23.1",
58
        "stylus": "0.54.5",
59
        "stylus-loader": "3.0.2",
60
        "terser-webpack-plugin": "1.2.2",
61
        "tree-kill": "1.2.1",
62
        "webpack": "4.29.0",
63
        "webpack-dev-middleware": "3.5.1",
64
        "webpack-dev-server": "3.1.14",
65
        "webpack-merge": "4.2.1",
66
        "webpack-sources": "1.3.0",
67
        "webpack-subresource-integrity": "1.1.0-rc.6"
68
      }
69
    },
70
    "@angular-devkit/build-optimizer": {
71
      "version": "0.13.8",
72
      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.8.tgz",
73
      "integrity": "sha512-RvYxtsdYuvpFb1iivVixylSVN/Q8LsQ449uYuqEe3OsDjQBvUVG2fMLPOQjmKWhi0NC9WSsNiUluxLDNdvd0Vw==",
74
      "dev": true,
75
      "requires": {
76
        "loader-utils": "1.2.3",
77
        "source-map": "0.5.6",
78
        "typescript": "3.2.4",
79
        "webpack-sources": "1.3.0"
80
      },
81
      "dependencies": {
82
        "source-map": {
83
          "version": "0.5.6",
84
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
85
          "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
86
          "dev": true
87
        }
88
      }
89
    },
90
    "@angular-devkit/build-webpack": {
91
      "version": "0.13.8",
92
      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.8.tgz",
93
      "integrity": "sha512-WMyn1vUHyx+VfJKgYuEHrICwQzPMDTaUNB1zlvzZt9gX/9H+XnetrebeWBZCITPXHBw/377oA6wmiHWJ0yaZRw==",
94
      "dev": true,
95
      "requires": {
96
        "@angular-devkit/architect": "0.13.8",
97
        "@angular-devkit/core": "7.3.8",
98
        "rxjs": "6.3.3"
99
      }
100
    },
101
    "@angular-devkit/core": {
102
      "version": "7.3.8",
103
      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz",
104
      "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==",
105
      "dev": true,
106
      "requires": {
107
        "ajv": "6.9.1",
108
        "chokidar": "2.0.4",
109
        "fast-json-stable-stringify": "2.0.0",
110
        "rxjs": "6.3.3",
111
        "source-map": "0.7.3"
112
      }
113
    },
114
    "@angular-devkit/schematics": {
115
      "version": "7.3.8",
116
      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.8.tgz",
117
      "integrity": "sha512-mvaKoORZIaW/h0VNZ3IQWP0qThRCZRX6869FNlzV0jlW0mhn07XbiIGHCGGSCDRxS7qJ0VbuIVnKXntF+iDeWw==",
118
      "dev": true,
119
      "requires": {
120
        "@angular-devkit/core": "7.3.8",
121
        "rxjs": "6.3.3"
122
      }
123
    },
124
    "@angular/animations": {
125
      "version": "7.2.13",
126
      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.13.tgz",
127
      "integrity": "sha512-Z0g0DthJnxTZ0dUc5BlojMq/0XIikhWzTqq0ym8w3G6jqBJD0OJ0jRCIfV0Leqlgzq6Jzvdrx0/JngBiKi5+uA==",
128
      "requires": {
129
        "tslib": "^1.9.0"
130
      }
131
    },
132
    "@angular/cli": {
133
      "version": "7.3.8",
134
      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.8.tgz",
135
      "integrity": "sha512-5ldU1idvWstmRaavGZen9WRjfjIViERGt8NYuLLI7dgVLYOPF5TyFoTnpT5nxkiCopp4tPIcpbzPV394Bxmdtg==",
136
      "dev": true,
137
      "requires": {
138
        "@angular-devkit/architect": "0.13.8",
139
        "@angular-devkit/core": "7.3.8",
140
        "@angular-devkit/schematics": "7.3.8",
141
        "@schematics/angular": "7.3.8",
142
        "@schematics/update": "0.13.8",
143
        "@yarnpkg/lockfile": "1.1.0",
144
        "ini": "1.3.5",
145
        "inquirer": "6.2.1",
146
        "npm-package-arg": "6.1.0",
147
        "open": "6.0.0",
148
        "pacote": "9.4.0",
149
        "semver": "5.6.0",
150
        "symbol-observable": "1.2.0"
151
      }
152
    },
153
    "@angular/common": {
154
      "version": "7.2.13",
155
      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.13.tgz",
156
      "integrity": "sha512-NYlzUkFVgjLg9VB6/lkd8ZV0ZezSiv9vlg+26wOyw7x+gahRrm5WMAGF7eBLrXoZPEaoOO0uhKWKo7oiA0aufA==",
157
      "requires": {
158
        "tslib": "^1.9.0"
159
      }
160
    },
161
    "@angular/compiler": {
162
      "version": "7.2.13",
163
      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.13.tgz",
164
      "integrity": "sha512-k0IvaozNIlrPKUNF3M/NXMb/jfHBCDO9uRYA6h+84FFY4Y9po40c7YXfsfUxGKwouTWyemaxy9iXlLEnd3ELSQ==",
165
      "requires": {
166
        "tslib": "^1.9.0"
167
      }
168
    },
169
    "@angular/compiler-cli": {
170
      "version": "7.2.13",
171
      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.13.tgz",
172
      "integrity": "sha512-UpA6V+GCY9qKj5j6tvzun2DJNjqRKjCrQgJqD5BIf4FTAKjVgqOvh++d23tbdltdjXlbHqUVRgfeXltbO91fWg==",
173
      "dev": true,
174
      "requires": {
175
        "canonical-path": "1.0.0",
176
        "chokidar": "^2.1.1",
177
        "convert-source-map": "^1.5.1",
178
        "dependency-graph": "^0.7.2",
179
        "magic-string": "^0.25.0",
180
        "minimist": "^1.2.0",
181
        "reflect-metadata": "^0.1.2",
182
        "shelljs": "^0.8.1",
183
        "source-map": "^0.6.1",
184
        "tslib": "^1.9.0",
185
        "yargs": "9.0.1"
186
      },
187
      "dependencies": {
188
        "ansi-regex": {
189
          "version": "3.0.0",
190
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
191
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
192
          "dev": true
193
        },
194
        "camelcase": {
195
          "version": "4.1.0",
196
          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
197
          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
198
          "dev": true
199
        },
200
        "chokidar": {
201
          "version": "2.1.5",
202
          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz",
203
          "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==",
204
          "dev": true,
205
          "requires": {
206
            "anymatch": "^2.0.0",
207
            "async-each": "^1.0.1",
208
            "braces": "^2.3.2",
209
            "fsevents": "^1.2.7",
210
            "glob-parent": "^3.1.0",
211
            "inherits": "^2.0.3",
212
            "is-binary-path": "^1.0.0",
213
            "is-glob": "^4.0.0",
214
            "normalize-path": "^3.0.0",
215
            "path-is-absolute": "^1.0.0",
216
            "readdirp": "^2.2.1",
217
            "upath": "^1.1.1"
218
          }
219
        },
220
        "cross-spawn": {
221
          "version": "5.1.0",
222
          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
223
          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
224
          "dev": true,
225
          "requires": {
226
            "lru-cache": "^4.0.1",
227
            "shebang-command": "^1.2.0",
228
            "which": "^1.2.9"
229
          }
230
        },
231
        "execa": {
232
          "version": "0.7.0",
233
          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
234
          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
235
          "dev": true,
236
          "requires": {
237
            "cross-spawn": "^5.0.1",
238
            "get-stream": "^3.0.0",
239
            "is-stream": "^1.1.0",
240
            "npm-run-path": "^2.0.0",
241
            "p-finally": "^1.0.0",
242
            "signal-exit": "^3.0.0",
243
            "strip-eof": "^1.0.0"
244
          }
245
        },
246
        "is-fullwidth-code-point": {
247
          "version": "2.0.0",
248
          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
249
          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
250
          "dev": true
251
        },
252
        "load-json-file": {
253
          "version": "2.0.0",
254
          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
255
          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
256
          "dev": true,
257
          "requires": {
258
            "graceful-fs": "^4.1.2",
259
            "parse-json": "^2.2.0",
260
            "pify": "^2.0.0",
261
            "strip-bom": "^3.0.0"
262
          }
263
        },
264
        "mem": {
265
          "version": "1.1.0",
266
          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
267
          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
268
          "dev": true,
269
          "requires": {
270
            "mimic-fn": "^1.0.0"
271
          }
272
        },
273
        "mimic-fn": {
274
          "version": "1.2.0",
275
          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
276
          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
277
          "dev": true
278
        },
279
        "normalize-path": {
280
          "version": "3.0.0",
281
          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
282
          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
283
          "dev": true
284
        },
285
        "os-locale": {
286
          "version": "2.1.0",
287
          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
288
          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
289
          "dev": true,
290
          "requires": {
291
            "execa": "^0.7.0",
292
            "lcid": "^1.0.0",
293
            "mem": "^1.1.0"
294
          }
295
        },
296
        "path-type": {
297
          "version": "2.0.0",
298
          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
299
          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
300
          "dev": true,
301
          "requires": {
302
            "pify": "^2.0.0"
303
          }
304
        },
305
        "pify": {
306
          "version": "2.3.0",
307
          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
308
          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
309
          "dev": true
310
        },
311
        "read-pkg": {
312
          "version": "2.0.0",
313
          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
314
          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
315
          "dev": true,
316
          "requires": {
317
            "load-json-file": "^2.0.0",
318
            "normalize-package-data": "^2.3.2",
319
            "path-type": "^2.0.0"
320
          }
321
        },
322
        "read-pkg-up": {
323
          "version": "2.0.0",
324
          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
325
          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
326
          "dev": true,
327
          "requires": {
328
            "find-up": "^2.0.0",
329
            "read-pkg": "^2.0.0"
330
          }
331
        },
332
        "source-map": {
333
          "version": "0.6.1",
334
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
335
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
336
          "dev": true
337
        },
338
        "string-width": {
339
          "version": "2.1.1",
340
          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
341
          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
342
          "dev": true,
343
          "requires": {
344
            "is-fullwidth-code-point": "^2.0.0",
345
            "strip-ansi": "^4.0.0"
346
          }
347
        },
348
        "strip-ansi": {
349
          "version": "4.0.0",
350
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
351
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
352
          "dev": true,
353
          "requires": {
354
            "ansi-regex": "^3.0.0"
355
          }
356
        },
357
        "strip-bom": {
358
          "version": "3.0.0",
359
          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
360
          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
361
          "dev": true
362
        },
363
        "which-module": {
364
          "version": "2.0.0",
365
          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
366
          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
367
          "dev": true
368
        },
369
        "y18n": {
370
          "version": "3.2.1",
371
          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
372
          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
373
          "dev": true
374
        },
375
        "yargs": {
376
          "version": "9.0.1",
377
          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
378
          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
379
          "dev": true,
380
          "requires": {
381
            "camelcase": "^4.1.0",
382
            "cliui": "^3.2.0",
383
            "decamelize": "^1.1.1",
384
            "get-caller-file": "^1.0.1",
385
            "os-locale": "^2.0.0",
386
            "read-pkg-up": "^2.0.0",
387
            "require-directory": "^2.1.1",
388
            "require-main-filename": "^1.0.1",
389
            "set-blocking": "^2.0.0",
390
            "string-width": "^2.0.0",
391
            "which-module": "^2.0.0",
392
            "y18n": "^3.2.1",
393
            "yargs-parser": "^7.0.0"
394
          }
395
        },
396
        "yargs-parser": {
397
          "version": "7.0.0",
398
          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
399
          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
400
          "dev": true,
401
          "requires": {
402
            "camelcase": "^4.1.0"
403
          }
404
        }
405
      }
406
    },
407
    "@angular/core": {
408
      "version": "7.2.13",
409
      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.13.tgz",
410
      "integrity": "sha512-vHD69xxDDSQaE8KfHeY2STJSd3xgfsz3/meBCAnT+Bpq9LqxL8DuPlrkC0kyBa2vyj/BwPR3CJNTaQrZcszJ/w==",
411
      "requires": {
412
        "tslib": "^1.9.0"
413
      }
414
    },
415
    "@angular/forms": {
416
      "version": "7.2.13",
417
      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.13.tgz",
418
      "integrity": "sha512-dBz7kYa8XoCKxZ+3EvYt6CxHZhM9Qbn3uYkLMsPA+NC6GtIt/tmYn1kNn+YWgVWZtWLvYRaOtYiCuMUJaRNQQw==",
419
      "requires": {
420
        "tslib": "^1.9.0"
421
      }
422
    },
423
    "@angular/language-service": {
424
      "version": "7.2.13",
425
      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.13.tgz",
426
      "integrity": "sha512-1bNWJpwH9wB0JybkbjdQp9J4bGmGxJX6BG7Mz3188Wc4J+aNy696Gc6IaJs7tFK8VXAdJrTJ5jGr9Oiu+ATe8w==",
427
      "dev": true
428
    },
429
    "@angular/platform-browser": {
430
      "version": "7.2.13",
431
      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.13.tgz",
432
      "integrity": "sha512-4n9De4sOwVoYHh6IGO2+UQIjABqGAXk4RdrEGpXqPBHCNO4sF43c2JsXbPTU4kjPVwTwposfLlKEOjTXfwxGow==",
433
      "requires": {
434
        "tslib": "^1.9.0"
435
      }
436
    },
437
    "@angular/platform-browser-dynamic": {
438
      "version": "7.2.13",
439
      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.13.tgz",
440
      "integrity": "sha512-3+/BzrNLQ/Tn1hoPal3fvIeB3S/P3e00gHcH3oK+hfACYgWxLE1oIHL+w4NE2eTIJbHfphKhuascMaOH5WNlkg==",
441
      "requires": {
442
        "tslib": "^1.9.0"
443
      }
444
    },
445
    "@angular/router": {
446
      "version": "7.2.13",
447
      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.13.tgz",
448
      "integrity": "sha512-pTdJT9TXk1A9YMa6C2zRRqLB4GPGMSik838P7n+yGrzhdybiudZU9T3egcxDRCWQMjsobVBRKLEUn405n3Hjgg==",
449
      "requires": {
450
        "tslib": "^1.9.0"
451
      }
452
    },
453
    "@babel/code-frame": {
454
      "version": "7.0.0",
455
      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
456
      "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
457
      "dev": true,
458
      "requires": {
459
        "@babel/highlight": "^7.0.0"
460
      }
461
    },
462
    "@babel/generator": {
463
      "version": "7.4.0",
464
      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz",
465
      "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==",
466
      "dev": true,
467
      "requires": {
468
        "@babel/types": "^7.4.0",
469
        "jsesc": "^2.5.1",
470
        "lodash": "^4.17.11",
471
        "source-map": "^0.5.0",
472
        "trim-right": "^1.0.1"
473
      },
474
      "dependencies": {
475
        "jsesc": {
476
          "version": "2.5.2",
477
          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
478
          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
479
          "dev": true
480
        },
481
        "source-map": {
482
          "version": "0.5.7",
483
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
484
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
485
          "dev": true
486
        }
487
      }
488
    },
489
    "@babel/helper-function-name": {
490
      "version": "7.1.0",
491
      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
492
      "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
493
      "dev": true,
494
      "requires": {
495
        "@babel/helper-get-function-arity": "^7.0.0",
496
        "@babel/template": "^7.1.0",
497
        "@babel/types": "^7.0.0"
498
      }
499
    },
500
    "@babel/helper-get-function-arity": {
501
      "version": "7.0.0",
502
      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
503
      "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
504
      "dev": true,
505
      "requires": {
506
        "@babel/types": "^7.0.0"
507
      }
508
    },
509
    "@babel/helper-split-export-declaration": {
510
      "version": "7.4.0",
511
      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz",
512
      "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==",
513
      "dev": true,
514
      "requires": {
515
        "@babel/types": "^7.4.0"
516
      }
517
    },
518
    "@babel/highlight": {
519
      "version": "7.0.0",
520
      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
521
      "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
522
      "dev": true,
523
      "requires": {
524
        "chalk": "^2.0.0",
525
        "esutils": "^2.0.2",
526
        "js-tokens": "^4.0.0"
527
      },
528
      "dependencies": {
529
        "js-tokens": {
530
          "version": "4.0.0",
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff