<?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.7</version>
  </parent>

  <artifactId>royale-typedefs-node</artifactId>
  <version>0.9.7</version>
  <packaging>swc</packaging>

  <name>Apache Royale: TypeDefs: Node</name>

  <properties>
    <closure.version>20181210</closure.version>
  <project.build.outputTimestamp>2020-05-07T16:03:38Z</project.build.outputTimestamp></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.7</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
