<?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.9-SNAPSHOT</version>
  </parent>

  <artifactId>royale-typedefs-node</artifactId>
  <version>0.9.9-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/royale-extras/closure-compiler/archive/royale.zip</url>
              <!--
                  Give it a number matching the date so we can
                  trigger a new download by updating the date
              -->
              <outputFileName>node-externs.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-royale/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-royale/contrib/nodejs/assert.js</path>
            </include-file>
            <include-file>
              <name>externs/buffer.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/buffer.js</path>
            </include-file>
            <include-file>
              <name>externs/child_process.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/child_process.js</path>
            </include-file>
            <include-file>
              <name>externs/cluster.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/cluster.js</path>
            </include-file>
            <include-file>
              <name>externs/crypto.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/crypto.js</path>
            </include-file>
            <include-file>
              <name>externs/dgram.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/dgram.js</path>
            </include-file>
            <include-file>
              <name>externs/dns.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/dns.js</path>
            </include-file>
            <include-file>
              <name>externs/domain.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/domain.js</path>
            </include-file>
            <include-file>
              <name>externs/events.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/events.js</path>
            </include-file>
            <include-file>
              <name>externs/fs.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/fs.js</path>
            </include-file>
            <include-file>
              <name>externs/globals.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/globals.js</path>
            </include-file>
            <include-file>
              <name>externs/http.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/http.js</path>
            </include-file>
            <include-file>
              <name>externs/https.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/https.js</path>
            </include-file>
            <include-file>
              <name>externs/net.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/net.js</path>
            </include-file>
            <include-file>
              <name>externs/os.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/os.js</path>
            </include-file>
            <include-file>
              <name>externs/path.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/path.js</path>
            </include-file>
            <include-file>
              <name>externs/punycode.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/punycode.js</path>
            </include-file>
            <include-file>
              <name>externs/querystring.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/querystring.js</path>
            </include-file>
            <include-file>
              <name>externs/readline.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/readline.js</path>
            </include-file>
            <include-file>
              <name>externs/repl.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/repl.js</path>
            </include-file>
            <include-file>
              <name>externs/stream.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/stream.js</path>
            </include-file>
            <include-file>
              <name>externs/string_decoder.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/string_decoder.js</path>
            </include-file>
            <include-file>
              <name>externs/tls.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/tls.js</path>
            </include-file>
            <include-file>
              <name>externs/tty.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/tty.js</path>
            </include-file>
            <include-file>
              <name>externs/url.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/url.js</path>
            </include-file>
            <include-file>
              <name>externs/util.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/util.js</path>
            </include-file>
            <include-file>
              <name>externs/vm.js</name>
              <path>downloads/closure-compiler-royale/contrib/nodejs/vm.js</path>
            </include-file>
            <include-file>
              <name>externs/zlib.js</name>
              <path>downloads/closure-compiler-royale/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.9-SNAPSHOT</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
