<?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-js</artifactId>
  <version>0.9.7</version>
  <packaging>swc</packaging>

  <name>Apache Royale: TypeDefs: JS</name>

  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>compiler-build-tools</artifactId>
        <executions>
          <execution>
            <id>unpack-closure-externs</id>
            <phase>validate</phase>
            <goals>
              <goal>unpack-resources</goal>
            </goals>
            <configuration>
              <resource>externs.zip</resource>
            </configuration>
          </execution>
        </executions>
        <!--
            Dependency to the closure compiler externs artifact so
            the "unpack-resources" goal can find the externs.zip
        -->
        <dependencies>
          <dependency>
            <groupId>com.google.javascript</groupId>
            <artifactId>closure-compiler-externs</artifactId>
            <version>v20181210</version>
          </dependency>
        </dependencies>
      </plugin>
      <!-- Download JavaScript from GitHub -->
      <plugin>
        <groupId>com.googlecode.maven-download-plugin</groupId>
        <artifactId>download-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>get-svg</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/svg.js</url>
              <outputFileName>svg.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
              <skipCache>true</skipCache>
            </configuration>
          </execution>
          <execution>
            <id>get-es3</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es3.js</url>
              <outputFileName>es3.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-es6</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es6.js</url>
              <outputFileName>es6.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-w3c_composition_event</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_composition_event.js</url>
              <outputFileName>w3c_composition_event.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-w3c_css</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_css.js</url>
              <outputFileName>w3c_css.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-gecko_dom</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/gecko_dom.js</url>
              <outputFileName>gecko_dom.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-ie_dom</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/ie_dom.js</url>
              <outputFileName>ie_dom.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-w3c_dom2</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_dom2.js</url>
              <outputFileName>w3c_dom2.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-html5</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/html5.js</url>
              <outputFileName>html5.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </configuration>
          </execution>
          <execution>
            <id>get-webstorage</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/webstorage.js</url>
              <outputFileName>webstorage.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
              <skipCache>true</skipCache>
              <overwrite>true</overwrite>
            </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</directory>
              <includes>
                <include>*.js</include>
                <include>browser/w3c_*.js</include>
                <include>browser/window.js</include>
                <include>browser/ie_dom.js</include>
                <include>browser/gecko_*.js</include>
                <include>browser/webkit_*.js</include>
                <include>browser/iphone.js</include>
                <!-- <include>browser/chrome.js</include> -->
                <include>browser/flash.js</include>
                <include>browser/page_visibility.js</include>
                <include>browser/fileapi.js</include>
                <include>browser/html5.js</include>
                <include>browser/webgl.js</include>
                <include>browser/webstorage.js</include>
                <include>browser/whatwg_encoding.js</include>
                <include>es6_collections.js</include>
              </includes>
              <excludes>
                <exclude>browser/w3c_dom4.js</exclude>
                <exclude>browser/w3c_serviceworker.js</exclude>
                <exclude>browser/w3c_webcrypto.js</exclude>
                <exclude>browser/gecko_css.js</exclude>
                <exclude>browser/webkit_notifications.js</exclude>
              </excludes>
            </fileSet>
          </externcInput>
          <externcConfig>
            <class-excludes>
              <class-exclude>
                <className>controlRange</className>
              </class-exclude>
              <class-exclude>
                <className>CustomEvent</className>
              </class-exclude>
            </class-excludes>
            <field-excludes>
              <field-exclude>
                <className>Window</className>
                <field>focus</field>
              </field-exclude>
            </field-excludes>
            <excludes>
              <exclude>
                <className>Array</className>
                <name>toSource</name>
              </exclude>
              <exclude>
                <className>Date</className>
                <name>valueOf</name>
              </exclude>
              <exclude>
                <className>String</className>
                <name>valueOf</name>
              </exclude>
              <!-- SVG -->
              <exclude>
                <className>SVGStylable</className>
                <name>className</name>
              </exclude>
              <exclude>
                <className>SVGStylable</className>
                <name>style</name>
              </exclude>
              <exclude>
                <className>SVGLocatable</className>
                <name>farthestViewportElement</name>
              </exclude>
              <exclude>
                <className>SVGLocatable</className>
                <name>nearestViewportElement</name>
              </exclude>
              <exclude>
                <className>Document</className>
                <name>loadXML</name>
              </exclude>
              <exclude>
                <className>Document</className>
                <name>open</name>
              </exclude>
              <exclude>
                <className>Document</className>
                <name>close</name>
              </exclude>
              <exclude>
                <className>Document</className>
                <name>createTreeWalker</name>
              </exclude>
              <exclude>
                <className>Element</className>
                <name>load</name>
              </exclude>
              <exclude>
                <className>Event</className>
                <name>initUIEvent</name>
              </exclude>
              <exclude>
                <className>Event</className>
                <name>initMessageEvent</name>
              </exclude>
            </excludes>
          </externcConfig>
          <includeFiles>
            <includeFile>
              <name>externs/svg.js</name>
              <path>downloads/svg.js</path>
            </includeFile>
          </includeFiles>
          <skipSwc>true</skipSwc>
        </configuration>
      </plugin>
    </plugins>
  </build>

<properties><project.build.outputTimestamp>2020-05-07T16:03:38Z</project.build.outputTimestamp></properties></project>
