<?xml version="1.0" encoding="UTF-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.royale.typedefs</groupId>
    <artifactId>royale-typedefs-parent</artifactId>
    <version>0.9.8-SNAPSHOT</version>
  </parent>

  <artifactId>royale-typedefs-node</artifactId>
  <version>0.9.8-SNAPSHOT</version>
  <packaging>swc</packaging>

  <name>Apache Royale: TypeDefs: Node</name>

  <properties>
    <closure.version>20181210</closure.version>
  </properties>
  
  <build>
    <plugins>
      <!-- Download JavaScript form GitHub -->
      <plugin>
        <groupId>com.googlecode.maven-download-plugin</groupId>
        <artifactId>download-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>get-closure-sources</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
                <url>https://github.com/google/closure-compiler/archive/v${closure.version}.zip</url>
              <!--
                  Give it a number matching the date so we can
                  trigger a new download by updating the date
              -->
              <outputFileName>closure-compiler-${closure.version}.zip</outputFileName>
              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
              <unpack>true</unpack>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <includeSources>true</includeSources>
          <externcInput>
            <fileSet>
              <directory>${project.basedir}/src/main/javascript</directory>
              <includes>
                <include>**/*.js</include>
              </includes>
            </fileSet>
            <fileSet>
              <directory>${project.basedir}/target/downloads/closure-compiler-${closure.version}/contrib/nodejs</directory>
              <includes>
                <include>**/*.js</include>
              </includes>
            </fileSet>
          </externcInput>
          <externcConfig>
            <excludes>
              <exclude>
                <className>Buffer</className>
                <name>toJSON</name>
              </exclude>
              <exclude>
                <className>osNetworkInterfacesInfo</className>
                <name>internal</name>
              </exclude>
            </excludes>
          </externcConfig>
          <includeFiles>
            <include-file>
              <name>externs/missing.js</name>
              <path>../src/main/javascript/missing.js</path>
            </include-file>
            <include-file>
              <name>externs/assert.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/assert.js</path>
            </include-file>
            <include-file>
              <name>externs/buffer.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/buffer.js</path>
            </include-file>
            <include-file>
              <name>externs/child_process.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/child_process.js</path>
            </include-file>
            <include-file>
              <name>externs/cluster.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/cluster.js</path>
            </include-file>
            <include-file>
              <name>externs/crypto.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/crypto.js</path>
            </include-file>
            <include-file>
              <name>externs/dgram.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/dgram.js</path>
            </include-file>
            <include-file>
              <name>externs/dns.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/dns.js</path>
            </include-file>
            <include-file>
              <name>externs/domain.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/domain.js</path>
            </include-file>
            <include-file>
              <name>externs/events.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/events.js</path>
            </include-file>
            <include-file>
              <name>externs/fs.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/fs.js</path>
            </include-file>
            <include-file>
              <name>externs/globals.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/globals.js</path>
            </include-file>
            <include-file>
              <name>externs/http.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/http.js</path>
            </include-file>
            <include-file>
              <name>externs/https.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/https.js</path>
            </include-file>
            <include-file>
              <name>externs/net.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/net.js</path>
            </include-file>
            <include-file>
              <name>externs/os.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/os.js</path>
            </include-file>
            <include-file>
              <name>externs/path.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/path.js</path>
            </include-file>
            <include-file>
              <name>externs/punycode.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/punycode.js</path>
            </include-file>
            <include-file>
              <name>externs/querystring.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/querystring.js</path>
            </include-file>
            <include-file>
              <name>externs/readline.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/readline.js</path>
            </include-file>
            <include-file>
              <name>externs/repl.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/repl.js</path>
            </include-file>
            <include-file>
              <name>externs/stream.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/stream.js</path>
            </include-file>
            <include-file>
              <name>externs/string_decoder.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/string_decoder.js</path>
            </include-file>
            <include-file>
              <name>externs/tls.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/tls.js</path>
            </include-file>
            <include-file>
              <name>externs/tty.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/tty.js</path>
            </include-file>
            <include-file>
              <name>externs/url.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/url.js</path>
            </include-file>
            <include-file>
              <name>externs/util.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/util.js</path>
            </include-file>
            <include-file>
              <name>externs/vm.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/vm.js</path>
            </include-file>
            <include-file>
              <name>externs/zlib.js</name>
              <path>downloads/closure-compiler-${closure.version}/contrib/nodejs/zlib.js</path>
            </include-file>
          </includeFiles>
          <skipSwc>true</skipSwc>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.typedefs</groupId>
      <artifactId>royale-typedefs-js</artifactId>
      <version>0.9.8-SNAPSHOT</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
