diff --git a/lib/builder/builder.js b/lib/builder/builder.js
index aadb1d81b..9017ddb61 100644
--- a/lib/builder/builder.js
+++ b/lib/builder/builder.js
@@ -6,6 +6,7 @@ const definedTasks = {
replaceCopyright: require("../tasks/replaceCopyright"),
replaceVersion: require("../tasks/replaceVersion"),
createDebugFiles: require("../tasks/createDebugFiles"),
+ createJSDoc: require("../tasks/createJSDoc"),
uglify: require("../tasks/uglify"),
buildThemes: require("../tasks/buildThemes"),
generateVersionInfo: require("../tasks/generateVersionInfo"),
diff --git a/lib/processors/jsdoc/create-api-index.js b/lib/processors/jsdoc/create-api-index.js
new file mode 100644
index 000000000..b68357dde
--- /dev/null
+++ b/lib/processors/jsdoc/create-api-index.js
@@ -0,0 +1,270 @@
+/*
+ * Node script to create cross-library API index files for use in the UI5 SDKs.
+ *
+ * (c) Copyright 2009-2018 SAP SE or an SAP affiliate company.
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
+ */
+
+"use strict";
+const fs = require("fs");
+const path = require("path");
+
+function process(versionInfoFile, unpackedTestresourcesRoot, targetFile, targetFileDeprecated, targetFileExperimental, targetFileSince) {
+
+ console.log("[INFO] creating API index files");
+ console.log("[INFO] sap-ui-version.json: " + versionInfoFile);
+ console.log("[INFO] unpacked test-resources: " + unpackedTestresourcesRoot);
+ console.log("[INFO] target file: " + targetFile);
+ console.log("[INFO] target file deprecated: " + targetFileDeprecated);
+ console.log("[INFO] target file experimental: " + targetFileExperimental);
+ console.log("[INFO] target file since: " + targetFileSince);
+ console.log("[INFO]");
+
+ // Deprecated, Experimental and Since collections
+ let oListCollection = {
+ deprecated: {
+ noVersion: {
+ apis: []
+ }
+ },
+ experimental: {
+ noVersion: {
+ apis: []
+ }
+ },
+ since: {
+ noVersion: {
+ apis: []
+ }
+ }
+ };
+
+ function readJSONFile(file) {
+ return new Promise(function (resolve, reject) {
+ fs.readFile(file, 'utf8', function (err, data) {
+ if (err) {
+ reject(err);
+ } else {
+ // Handle empty files scenario
+ if (data.trim() === "") {
+ resolve({});
+ } else {
+ resolve(JSON.parse(String(data)));
+ }
+ }
+ });
+ });
+ }
+
+ function mkdirSync(dir) {
+ if (dir && !fs.existsSync(dir)) {
+ mkdirSync( path.dirname(dir) );
+ fs.mkdirSync(dir);
+ }
+ }
+
+ function writeJSON(file, content) {
+ return new Promise(function(resolve,reject) {
+ // Create dir if it does not exist
+ mkdirSync( path.dirname(file) );
+ fs.writeFile(file, JSON.stringify(content), "utf-8", function(err) {
+ if ( err ) {
+ reject(err);
+ return;
+ }
+ resolve(true);
+ });
+ });
+ }
+
+ /*
+ * Extracts main symbol information from a library api.json.
+ * Also collects deprecated, experimental and since api's.
+ * Returns a promise that resolves with an array of symbols.
+ */
+ function createSymbolSummaryForLib(lib) {
+ let file = path.join(unpackedTestresourcesRoot, lib.replace(/\./g, "/"), "designtime/api.json");
+
+ return readJSONFile(file).then(function (apijson) {
+ if (!apijson.hasOwnProperty("symbols") || !Array.isArray(apijson.symbols)) {
+ // Ignore libraries with invalid api.json content like empty object or non-array "symbols" property.
+ return [];
+ }
+ return apijson.symbols.map(symbol => {
+ collectLists(symbol);
+ return {
+ name: symbol.name,
+ kind: symbol.kind,
+ visibility: symbol.visibility,
+ extends: symbol.extends,
+ implements: symbol.implements,
+ lib: lib
+ };
+ });
+ })
+ }
+
+ /*
+ * Collects Deprecated, Experimental and Since data from passed symbol
+ * including symbol itself, methods and events.
+ */
+ function collectLists(oSymbol) {
+
+ function addData(oDataType, oEntityObject, sObjectType, sSymbolName) {
+ let sSince = oDataType !== "since" ? oEntityObject[oDataType].since : oEntityObject.since,
+ oData = {
+ control: sSymbolName,
+ text: oEntityObject[oDataType].text || oEntityObject.description,
+ type: sObjectType,
+ "static": !!oEntityObject.static,
+ visibility: oEntityObject.visibility
+ };
+
+ // For class we skip entityName
+ if (sObjectType !== "class") {
+ oData.entityName = oEntityObject.name;
+ }
+
+ if (sSince) {
+ // take only major and minor versions
+ let sVersion = sSince.split(".").slice(0, 2).join(".");
+
+ oData.since = sSince;
+
+ if (!oListCollection[oDataType][sVersion]) {
+ oListCollection[oDataType][sVersion] = {
+ name: sVersion,
+ apis: []
+ };
+ }
+
+ oListCollection[oDataType][sVersion].apis.push(oData);
+ } else {
+ oListCollection[oDataType].noVersion.apis.push(oData);
+ }
+ }
+
+ // Classes
+ if (oSymbol.deprecated) {
+ addData("deprecated", oSymbol, "class", oSymbol.name);
+ }
+
+ if (oSymbol.experimental) {
+ addData("experimental", oSymbol, "class", oSymbol.name);
+ }
+
+ if (oSymbol.since) {
+ addData("since", oSymbol, "class", oSymbol.name);
+ }
+
+ // Methods
+ oSymbol.methods && oSymbol.methods.forEach(oMethod => {
+ if (oMethod.deprecated) {
+ addData("deprecated", oMethod, "methods", oSymbol.name);
+ }
+
+ if (oMethod.experimental) {
+ addData("experimental", oMethod, "methods", oSymbol.name);
+ }
+
+ if (oMethod.since) {
+ addData("since", oMethod, "methods", oSymbol.name);
+ }
+ });
+
+ // Events
+ oSymbol.events && oSymbol.events.forEach(oEvent => {
+ if (oEvent.deprecated) {
+ addData("deprecated", oEvent, "events", oSymbol.name);
+ }
+
+ if (oEvent.experimental) {
+ addData("experimental", oEvent, "events", oSymbol.name);
+ }
+
+ if (oEvent.since) {
+ addData("since", oEvent, "events", oSymbol.name);
+ }
+ });
+
+ }
+
+ function deepMerge(arrayOfArrays) {
+ return arrayOfArrays.reduce((array, items) => {
+ array.push.apply(array, items);
+ return array;
+ }, []);
+ }
+
+ function expandHierarchyInfo(symbols) {
+ let byName = new Map();
+ symbols.forEach(symbol => {
+ byName.set(symbol.name, symbol);
+ });
+ symbols.forEach(symbol => {
+ let parent = symbol.extends && byName.get(symbol.extends);
+ if (parent) {
+ parent.extendedBy = parent.extendedBy || [];
+ parent.extendedBy.push(symbol.name);
+ }
+ if (symbol.implements) {
+ symbol.implements.forEach(intfName => {
+ let intf = byName.get(intfName);
+ if (intf) {
+ intf.implementedBy = intf.implementedBy || [];
+ intf.implementedBy.push(symbol.name);
+ }
+ });
+ }
+ });
+ return symbols;
+ }
+
+ function createOverallIndex() {
+ let version = "0.0.0";
+
+ var p = readJSONFile(versionInfoFile)
+ .then(versionInfo => {
+ version = versionInfo.version;
+ return Promise.all(
+ versionInfo.libraries.map(
+ lib => createSymbolSummaryForLib(lib.name).catch(err => {
+ // ignore 'file not found' errors as some libs don't have an api.json (themes, server libs)
+ if (err.code === 'ENOENT') {
+ return [];
+ }
+ throw err;
+ })
+ )
+ );
+ })
+ .then(deepMerge)
+ .then(expandHierarchyInfo)
+ .then(symbols => {
+ let result = {
+ "$schema-ref": "http://schemas.sap.com/sapui5/designtime/api.json/1.0",
+ version: version,
+ library: "*",
+ symbols: symbols
+ };
+ return writeJSON(targetFile, result);
+ })
+ .then(() => Promise.all([
+ // write deprecated, experimental and since collections in the respective index files
+ writeJSON(targetFileDeprecated, oListCollection.deprecated),
+ writeJSON(targetFileExperimental, oListCollection.experimental),
+ writeJSON(targetFileSince, oListCollection.since)
+ ]))
+ .catch(err => {
+ console.error("**** failed to create API index for libraries:", err)
+ throw err;
+ });
+
+ return p;
+ }
+
+ return createOverallIndex();
+
+}
+
+module.exports = process;
diff --git a/lib/processors/jsdoc/dummy-child.js b/lib/processors/jsdoc/dummy-child.js
new file mode 100644
index 000000000..64a4a6727
--- /dev/null
+++ b/lib/processors/jsdoc/dummy-child.js
@@ -0,0 +1,5 @@
+console.log('child executing');
+setTimeout(function() {
+ console.log("child done");
+ //process.exit(0);
+},20000);
diff --git a/lib/processors/jsdoc/jsdoc-config-template.json b/lib/processors/jsdoc/jsdoc-config-template.json
new file mode 100644
index 000000000..52569ef4c
--- /dev/null
+++ b/lib/processors/jsdoc/jsdoc-config-template.json
@@ -0,0 +1,23 @@
+{
+ "source": {
+ "excludePattern": "(/|\\\\)library-all\\.js|(/|\\\\).*-preload\\.js|^jquery-.*\\.js|^sap-.*\\.js"
+ },
+ "opts" : {
+ "recurse": true,
+ "template" : "lib/jsdoc/ui5/template"
+ },
+ "plugins": [
+ "lib/jsdoc/ui5/plugin.js"
+ ],
+ "templates" : {
+ "ui5" : {
+ "variants": [
+ "apijson"
+ ],
+ "version": "${version}",
+ "apiJsonFolder": "${apiJsonFolder}",
+ "apiJsonFile": "${apiJsonFile}",
+ "includeSettingsInConstructor": false
+ }
+ }
+}
diff --git a/lib/processors/jsdoc/jsdoc.js b/lib/processors/jsdoc/jsdoc.js
new file mode 100644
index 000000000..8cc13afd7
--- /dev/null
+++ b/lib/processors/jsdoc/jsdoc.js
@@ -0,0 +1,128 @@
+const spawn = require('cross-spawn').spawn;
+const fs = require('fs');
+const path = require('path');
+const tmp = require('tmp');
+const resourceFactory = require("@ui5/fs").resourceFactory;
+
+function createJSDocConfig({source, target, namespace, libraryName, version}) {
+ // resolve path to the package.json to get the path to the jsdocext folder
+ const jsdocext = path.normalize(__dirname);
+
+ const config = `{
+ "plugins": ["${jsdocext}/ui5/plugin.js"],
+ "opts": {
+ "recurse": true,
+ "lenient": true,
+ "template": "${jsdocext}/ui5/template",
+ "ui5": {
+ "saveSymbols": true
+ }
+ },
+ "templates": {
+ "ui5": {
+ "variants": [ "apijson", "fullapixml", "apijs", "api.xml"],
+ "version": "${version}",
+ "jsapiFile": "${target}/libraries/${libraryName}.js",
+ "apiJsonFolder": "${target}/dependency-apis",
+ "apiJsonFile": "${target}/test-resources/${namespace}/designtime/api.json"
+ }
+ }
+ }`;
+ console.log(config);
+ return config;
+}
+
+function jsdoc({sources, target, namespace, libraryName, version}) {
+
+ const tmpobj = tmp.fileSync();
+ fs.writeFileSync(tmpobj.name, createJSDocConfig({target, namespace, libraryName, version}), 'utf8'); // TODO async + promise
+
+ console.log("jsdoc called for ", sources);
+ var args = [
+ require.resolve("jsdoc/jsdoc"),
+ '-c',
+ tmpobj.name,
+ '--verbose'
+ ];
+ args = args.concat(sources);
+
+ return new Promise((resolve, reject) => {
+ const child = spawn('node', args);
+ child.stdout.on('data', function(data) {
+ console.log(String(data));
+ });
+ child.stderr.on('data', function(data) {
+ console.error(String(data));
+ });
+ child.on('exit', function(code) {
+ var resolvedDest;
+ console.log("jsdoc exited with code ", code);
+ if (code === 0 || code === 1) {
+ resolve(code);
+ } else {
+ reject(code)
+ }
+ });
+ });
+}
+
+/**
+ * Creates *-dbg.js files for all JavaScript-resources supplied and writes them to target locator.
+ *
+ * @module build/processors/dbg
+ *
+ * @param {Object} parameters Parameters
+ * @param {Array} parameters.resources List of resources to be processed
+ * @param {ResourceLocatorCollection} parameters.sourceLocator Source locator
+ * @param {ResourceLocator} parameters.targetLocator Target locator
+ * @param {Object} [parameters.config] Configuration
+ * @return {Promise} Promise resolving with undefined once data has been written to the target locator
+ */
+module.exports = function({resources, options}) {
+ if ( !options.libraryName ) {
+ throw new TypeError("Cannot execute JSDoc build without a library name");
+ }
+ const namespace = options.libraryName.replace(/\./g, "/");
+ const tmpDirObj = tmp.dirSync();
+ const tmpSourceDir = path.join(tmpDirObj.name, 'src');
+ const tmpTargetDir = path.join(tmpDirObj.name, 'target');
+
+ const fsSources = resourceFactory.createAdapter({
+ fsBasePath: tmpSourceDir,
+ virBasePath: "/resources/"
+ });
+ const fsTarget = resourceFactory.createAdapter({
+ fsBasePath: tmpTargetDir,
+ virBasePath: "/"
+ });
+
+ //return Promise.resolve([]);
+
+ return Promise.all(
+ // write all resources to the tmp folder
+ resources.map((resource) => fsSources.write(resource))
+ // after this step, a follow-up step aborts silenty for an unknown reasons
+ // cloning the resources before writing them avoids the problem:
+ // resources.map((resource) => resource.clone().then((resource) => fsSources.write(resource)))
+ ).then(() => [], (err) => {
+ console.log(err);
+ return [];
+ }).then((files) => {
+ return jsdoc({
+ sources: [tmpSourceDir],
+ target: tmpTargetDir,
+ namespace,
+ libraryName: options.libraryName,
+ version: options.version
+ });
+ }).then(() => {
+ // create resources from the output files
+ return Promise.all([
+ fsTarget.byPath(`/test-resources/${namespace}/designtime/api.json`)
+ //,fsTarget.byPath(`/libraries/${options.libraryName}.js`)
+ ]).then((res) => res.filter($=>$));
+ }).then((result) => {
+ // TODO cleanup tmp dir
+ return result;
+ });
+};
diff --git a/lib/processors/jsdoc/transform-apijson-for-sdk.js b/lib/processors/jsdoc/transform-apijson-for-sdk.js
new file mode 100644
index 000000000..f4f3a8544
--- /dev/null
+++ b/lib/processors/jsdoc/transform-apijson-for-sdk.js
@@ -0,0 +1,1732 @@
+/*
+ * Node script to preprocess api.json files for use in the UI5 SDKs.
+ *
+ * (c) Copyright 2009-2018 SAP SE or an SAP affiliate company.
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
+ */
+
+"use strict";
+const fs = require("fs");
+const cheerio = require("cheerio");
+const path = require('path');
+
+module.exports = function transformer(sInputFile, sOutputFile, sLibraryFile) {
+
+ console.log("[INFO] Transform API index files for sap.ui.documentation");
+ console.log("[INFO] original file: " + sInputFile);
+ console.log("[INFO] output file: " + sOutputFile);
+ console.log("[INFO]");
+
+ /**
+ * Transforms api.json file
+ * @param {object} oChainObject chain object
+ */
+ let transformApiJson = function (oChainObject) {
+ function isBuiltInType(type) {
+ return formatters._baseTypes.indexOf(type) >= 0;
+ }
+
+ /**
+ * Heuristically determining if there is a possibility the given input string
+ * to be a UI5 symbol
+ * @param {string} sName
+ * @returns {boolean}
+ */
+ function possibleUI5Symbol(sName) {
+ return /^[a-zA-Z][a-zA-Z.]*[a-zA-Z]$/.test(sName);
+ }
+
+ // Function is a copy from: LibraryInfo.js => LibraryInfo.prototype._getActualComponent => "match" inline method
+ function matchComponent(sModuleName, sPattern) {
+ sModuleName = sModuleName.toLowerCase();
+ sPattern = sPattern.toLowerCase();
+ return (
+ sModuleName === sPattern
+ || sPattern.match(/\*$/) && sModuleName.indexOf(sPattern.slice(0,-1)) === 0 // simple prefix match
+ || sPattern.match(/\.\*$/) && sModuleName === sPattern.slice(0,-2) // directory pattern also matches directory itself
+ );
+ }
+
+ // Transform to object
+ let oData = JSON.parse(oChainObject.fileData);
+
+ // Attach default component for the library if available
+ if (oChainObject.defaultComponent) {
+ oData.defaultComponent = oChainObject.defaultComponent;
+ }
+
+ // Populate methods.aTreeContent for later use for symbol children if applicable
+ // NOTE: This will inject missing root sub_namespace entries in oData.symbols array!!!
+ methods._parseLibraryElements(oData.symbols);
+
+ // Apply formatter's and modify data as needed
+ oData.symbols.forEach((oSymbol) => {
+
+ // when the module name starts with the library name, then we apply the default component
+ if (oSymbol.name.indexOf(oData.library) === 0) {
+ oSymbol.component = oChainObject.defaultComponent;
+ }
+
+ // Attach symbol specific component if available (special cases)
+ // Note: Last hit wins as there may be a more specific component pattern
+ if (oChainObject.customSymbolComponents) {
+ Object.keys(oChainObject.customSymbolComponents).forEach(sComponent => {
+ if (matchComponent(oSymbol.name, sComponent)) {
+ oSymbol.component = oChainObject.customSymbolComponents[sComponent];
+ }
+ });
+ }
+
+ // Attach symbol sample flag if available
+ if (oChainObject.entitiesWithSamples) {
+ oSymbol.hasSample = oChainObject.entitiesWithSamples.indexOf(oSymbol.name) >= 0;
+ }
+
+ // Apply settings to formatter object - needed until formatter's are rewritten
+ formatters._sTopicId = oSymbol.name;
+ formatters._oTopicData = oSymbol;
+
+ // Format Page Title
+ oSymbol.title = (oSymbol.abstract ? "abstract " : "") + oSymbol.kind + " " + oSymbol.name;
+ oSymbol.subTitle = formatters.formatSubtitle(oSymbol.deprecated);
+
+ // Symbol children
+ let aControlChildren = methods._getControlChildren(oSymbol.name);
+ if (aControlChildren) {
+ oSymbol.nodes = aControlChildren;
+ methods._addChildrenDescription(oData.symbols, oSymbol.nodes);
+ }
+
+ // Constructor
+ if (oSymbol.constructor) {
+ let oConstructor = oSymbol.constructor;
+
+ // Description
+ if (oConstructor.description) {
+ oConstructor.description = formatters.formatDescription(oConstructor.description);
+ }
+
+ // References
+ methods.modifyReferences(oSymbol);
+
+ // Examples
+ if (oConstructor.examples) {
+ oConstructor.examples.forEach((oExample) => {
+ oExample.data = formatters.formatExample(oExample.caption, oExample.text);
+
+ // Keep file size in check
+ if (oExample.caption) {
+ delete oExample.caption;
+ }
+ if (oExample.text) {
+ delete oExample.text;
+ }
+ });
+ }
+
+ // Code Example string
+ oConstructor.codeExample = formatters.formatConstructor(oSymbol.name, oConstructor.parameters);
+
+ // Parameters
+ if (oConstructor.parameters) {
+ oConstructor.parameters = methods.buildConstructorParameters(oConstructor.parameters);
+
+ let aParameters = oConstructor.parameters;
+ aParameters.forEach(oParameter => {
+
+ // Types
+ oParameter.types = [];
+ if (oParameter.type) {
+ let aTypes = oParameter.type.split("|");
+
+ for (let i = 0; i < aTypes.length; i++) {
+ oParameter.types.push({
+ name: aTypes[i],
+ linkEnabled: !isBuiltInType(aTypes[i])
+ });
+ }
+
+ // Keep file size in check
+ delete oParameter.type;
+ }
+
+ // Default value
+ oParameter.defaultValue = formatters.formatDefaultValue(oParameter.defaultValue);
+
+ // Description
+ if (oParameter.description) {
+ oParameter.description = formatters.formatDescription(oParameter.description);
+ }
+
+ })
+ }
+
+ // Throws
+ if (oConstructor.throws) {
+ oConstructor.throws.forEach(oThrows => {
+
+ // Description
+ if (oThrows.description) {
+ oThrows.description = formatters.formatDescription(oThrows.description);
+ }
+
+ // Exception link enabled
+ if (oThrows.type) {
+ oThrows.linkEnabled = formatters.formatExceptionLink(oThrows.type);
+ }
+
+ });
+ }
+ }
+
+ // Description
+ if (oSymbol.description) {
+ oSymbol.description = formatters.formatOverviewDescription(oSymbol.description, oSymbol.constructor.references);
+ }
+
+ // Deprecated
+ if (oSymbol.deprecated) {
+ oSymbol.deprecatedText = formatters.formatDeprecated(oSymbol.deprecated.since, oSymbol.deprecated.text);
+ // Keep file size in check
+ delete oSymbol.deprecated;
+ }
+
+ // Properties
+ if (oSymbol.properties) {
+ oSymbol.properties.forEach((oProperty) => {
+
+ // Name
+ oProperty.name = formatters.formatEntityName(oProperty.name, oSymbol.name, oProperty.static);
+
+ // Description
+ if (oProperty.deprecated) {
+ oProperty.description = formatters.formatDescription(oProperty.description,
+ oProperty.deprecated.text, oProperty.deprecated.since);
+ } else {
+ oProperty.description = formatters.formatDescription(oProperty.description);
+ }
+
+ // Link Enabled
+ if (!isBuiltInType(oProperty.type)) {
+ oProperty.linkEnabled = true;
+ }
+
+ // Keep file size in check
+ if (oProperty.static) {
+ delete oProperty.static;
+ }
+ if (oProperty.type) {
+ delete oProperty.type;
+ }
+
+ });
+ }
+
+ // UI5 Metadata
+ if (oSymbol["ui5-metadata"]) {
+ let oMeta = oSymbol["ui5-metadata"];
+
+ // Properties
+ if (oMeta.properties) {
+ // Sort
+ oMeta.properties.sort(function (a, b) {
+ if (a.name < b.name) {
+ return -1;
+ } else if (a.name > b.name) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+
+ // Pre-process
+ oMeta.properties.forEach((oProperty) => {
+ // Name
+ oProperty.name = formatters.formatEntityName(oProperty.name, oSymbol.name, oProperty.static);
+
+ // Description
+ oProperty.description = formatters.formatDescriptionSince(oProperty.description, oProperty.since);
+
+ // Link Enabled
+ if (!isBuiltInType(oProperty.type)) {
+ oProperty.linkEnabled = true;
+ }
+
+ // Default value
+ oProperty.defaultValue = formatters.formatDefaultValue(oProperty.defaultValue);
+
+ // Deprecated
+ if (oProperty.deprecated) {
+ oProperty.deprecatedText = formatters.formatDeprecated(oProperty.deprecated.since,
+ oProperty.deprecated.text);
+
+ // Keep file size in check
+ delete oProperty.deprecated;
+ }
+ });
+ }
+
+ // Aggregations
+ if (oMeta.aggregations) {
+ // Sort
+ oMeta.aggregations.sort(function (a, b) {
+ if (a.name < b.name) {
+ return -1;
+ } else if (a.name > b.name) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+
+ // Pre-process
+ oMeta.aggregations.forEach((oAggregation) => {
+ // Link Enabled
+ if (!isBuiltInType(oAggregation.type)) {
+ oAggregation.linkEnabled = true;
+ }
+
+ // Description
+ if (oAggregation.deprecated) {
+ oAggregation.description = formatters.formatDescription(oAggregation.description,
+ oAggregation.deprecated.text, oAggregation.deprecated.since);
+ } else {
+ oAggregation.description = formatters.formatDescription(oAggregation.description);
+ }
+
+ // Link enabled
+ oAggregation.linkEnabled = !isBuiltInType(oAggregation.type);
+ });
+ }
+
+ // Associations
+
+ if (oMeta.associations) {
+ // Sort
+ oMeta.associations.sort(function (a, b) {
+ if (a.name < b.name) {
+ return -1;
+ } else if (a.name > b.name) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+
+ // Pre-process
+ oMeta.associations.forEach((oAssociation) => {
+ // Link Enabled
+ if (!isBuiltInType(oAssociation.type)) {
+ oAssociation.linkEnabled = true;
+ }
+
+ // Description
+ if (oAssociation.deprecated) {
+ oAssociation.description = formatters.formatDescription(oAssociation.description,
+ oAssociation.deprecated.text, oAssociation.deprecated.since);
+ } else {
+ oAssociation.description = formatters.formatDescription(oAssociation.description);
+ }
+ });
+ }
+
+ // Events
+ if (oMeta.events) {
+ // We don't need event's data from the UI5-metadata for now. Keep file size in check
+ delete oMeta.events;
+ }
+
+ // Special Settings
+ if (oMeta.specialSettings) {
+ oMeta.specialSettings.forEach(oSetting => {
+
+ // Link Enabled
+ if (!isBuiltInType(oSetting.type)) {
+ oSetting.linkEnabled = true;
+ }
+
+ // Description
+ if (oSetting.deprecated) {
+ oSetting.description = formatters.formatDescription(oSetting.description,
+ oSetting.deprecated.text, oSetting.deprecated.since);
+ } else {
+ oSetting.description = formatters.formatDescription(oSetting.description);
+ }
+
+ });
+ }
+
+ // Annotations
+ if (oMeta.annotations) {
+ oMeta.annotations.forEach(oAnnotation => {
+
+ // Description
+ oAnnotation.description = formatters.formatAnnotationDescription(oAnnotation.description,
+ oAnnotation.since);
+
+ // Namespace
+ oAnnotation.namespaceText = oAnnotation.namespace;
+ oAnnotation.namespace = formatters.formatAnnotationNamespace(oAnnotation.namespace);
+
+ // Target
+ oAnnotation.target = formatters.formatAnnotationTarget(oAnnotation.target);
+
+ // Applies to
+ oAnnotation.appliesTo = formatters.formatAnnotationTarget(oAnnotation.appliesTo);
+
+ });
+ }
+
+ }
+
+ if (oSymbol.events) {
+
+ // Pre-process events
+ methods.buildEventsModel(oSymbol.events);
+
+ oSymbol.events.forEach(oEvent => {
+
+ // Description
+ if (oEvent.description) {
+ oEvent.description = formatters.formatDescriptionSince(oEvent.description, oEvent.since);
+ }
+
+ // Deprecated
+ if (oEvent.deprecated) {
+ oEvent.deprecatedText = formatters.formatEventDeprecated(oEvent.deprecated.since,
+ oEvent.deprecated.text);
+ }
+
+ // Parameters
+ if (oEvent.parameters && Array.isArray(oEvent.parameters)) {
+ oEvent.parameters.forEach(oParameter => {
+
+ // Link Enabled
+ if (!isBuiltInType(oParameter.type)) {
+ oParameter.linkEnabled = true;
+ }
+
+ // Description
+ if (oParameter.deprecated) {
+ oParameter.description = formatters.formatDescription(oParameter.description,
+ oParameter.deprecated.text, oParameter.deprecated.since);
+ } else {
+ oParameter.description = formatters.formatDescription(oParameter.description);
+ }
+
+ });
+ }
+
+ });
+
+ }
+
+ // Methods
+ if (oSymbol.methods) {
+
+ // Pre-process methods
+ methods.buildMethodsModel(oSymbol.methods);
+
+ oSymbol.methods.forEach(oMethod => {
+
+ // Name
+ if (oMethod.name) {
+ oMethod.name = formatters.formatEntityName(oMethod.name, oSymbol.name, oMethod.static);
+ }
+
+ // Description
+ if (oMethod.description) {
+ oMethod.description = formatters.formatDescription(oMethod.description);
+ }
+
+ // Examples
+ oMethod.examples && oMethod.examples.forEach(oExample => {
+ oExample = formatters.formatExample(oExample.caption, oExample.text);
+ });
+
+ // Deprecated
+ if (oMethod.deprecated) {
+ oMethod.deprecatedText = formatters.formatEventDeprecated(oMethod.deprecated.since,
+ oMethod.deprecated.text);
+ }
+
+ // Code example
+ oMethod.code = formatters.formatMethodCode(oMethod.name, oMethod.parameters, oMethod.returnValue);
+
+ // Parameters
+ if (oMethod.parameters) {
+ oMethod.parameters.forEach(oParameter => {
+
+ // Types
+ if (oParameter.types) {
+ oParameter.types.forEach(oType => {
+
+ // Link Enabled
+ if (!isBuiltInType(oType.value) && possibleUI5Symbol(oType.value)) {
+ oType.linkEnabled = true;
+ oType.href = "#/api/" + oType.value.replace("[]", "");
+ }
+
+ });
+ }
+
+ // Default value
+ oParameter.defaultValue = formatters.formatDefaultValue(oParameter.defaultValue);
+
+ // Description
+ if (oParameter.deprecated) {
+ oParameter.description = formatters.formatDescription(oParameter.description,
+ oParameter.deprecated.text, oParameter.deprecated.since);
+ } else {
+ oParameter.description = formatters.formatDescription(oParameter.description);
+ }
+
+ });
+ }
+
+ // Return value
+ if (oMethod.returnValue) {
+
+ // Description
+ oMethod.returnValue.description = formatters.formatDescription(oMethod.returnValue.description);
+
+ // Types
+ if (oMethod.returnValue.types) {
+ oMethod.returnValue.types.forEach(oType => {
+
+ // Link Enabled
+ if (!isBuiltInType(oType.value)) {
+ oType.linkEnabled = true;
+ }
+
+ });
+ }
+
+ }
+
+ // Throws
+ if (oMethod.throws) {
+ oMethod.throws.forEach(oThrows => {
+
+ // Description
+ if (oThrows.description) {
+ oThrows.description = formatters.formatDescription(oThrows.description);
+ }
+
+ // Exception link enabled
+ if (oThrows.type) {
+ oThrows.linkEnabled = formatters.formatExceptionLink(oThrows.type);
+ }
+
+ });
+ }
+
+ // Examples
+ if (oMethod.examples) {
+ oMethod.examples.forEach((oExample) => {
+ oExample.data = formatters.formatExample(oExample.caption, oExample.text);
+
+ // Keep file size in check
+ if (oExample.caption) {
+ delete oExample.caption;
+ }
+ if (oExample.text) {
+ delete oExample.text;
+ }
+ });
+
+ }
+
+
+ });
+ }
+
+ });
+
+ oChainObject.parsedData = oData;
+
+ return oChainObject;
+ };
+
+ /**
+ * Create api.json from parsed data
+ * @param oChainObject chain object
+ */
+ function createApiRefApiJson(oChainObject) {
+ let sOutputDir = path.dirname(oChainObject.outputFile);
+
+ // Create dir if it does not exist
+ if (!fs.existsSync(sOutputDir)) {
+ fs.mkdirSync(sOutputDir);
+ }
+
+ // Write result to file
+ fs.writeFileSync(oChainObject.outputFile, JSON.stringify(oChainObject.parsedData) /* Transform back to string */, 'utf8');
+ }
+
+ /**
+ * Load .library file
+ * @param oChainObject chain return object
+ * @returns {Promise} library file promise
+ */
+ function getLibraryPromise(oChainObject) {
+ return new Promise(function(oResolve) {
+ fs.readFile(oChainObject.libraryFile, 'utf8', (oError, oData) => {
+ oChainObject.libraryFileData = oData;
+ oResolve(oChainObject);
+ });
+ });
+ }
+
+ /**
+ * Extracts components list and docuindex.json relative path from .library file data
+ * @param {object} oChainObject chain object
+ * @returns {object} chain object
+ */
+ function extractComponentAndDocuindexUrl(oChainObject) {
+ oChainObject.modules = [];
+
+ if (oChainObject.libraryFileData) {
+ let $ = cheerio.load(oChainObject.libraryFileData, {
+ ignoreWhitespace: true,
+ xmlMode: true,
+ lowerCaseTags: false
+ });
+
+ // Extract documentation URL
+ oChainObject.docuPath = $("appData documentation").attr("indexUrl");
+
+ // Extract components
+ $("ownership > component").each((i, oComponent) => {
+
+ if (oComponent.children) {
+ if (oComponent.children.length === 1) {
+ oChainObject.defaultComponent = $(oComponent).text();
+ } else {
+ let sCurrentComponentName = $(oComponent).find("name").text();
+ let aCurrentModules = [];
+ $(oComponent).find("module").each((a, oC) => {
+ aCurrentModules.push($(oC).text().replace(/\//g, "."));
+ });
+
+ oChainObject.modules.push({
+ componentName: sCurrentComponentName,
+ modules: aCurrentModules
+ });
+ }
+ }
+
+ });
+
+ }
+
+ return oChainObject;
+ }
+
+ /**
+ * Adds to the passed object custom symbol component map generated from the extracted components list
+ * to be easily searchable later
+ * @param {object} oChainObject chain object
+ * @returns {object} chain object
+ */
+ function flattenComponents(oChainObject) {
+ if (oChainObject.modules && oChainObject.modules.length > 0) {
+ oChainObject.customSymbolComponents = {};
+ oChainObject.modules.forEach(oComponent => {
+ let sCurrentComponent = oComponent.componentName;
+ oComponent.modules.forEach(sModule => {
+ oChainObject.customSymbolComponents[sModule] = sCurrentComponent;
+ });
+ });
+ }
+
+ return oChainObject;
+ }
+
+ /**
+ * Adds to the passed object array with entities which have explored samples
+ * @param {object} oChainObject chain object
+ * @returns {object} chain object
+ */
+ function extractSamplesFromDocuIndex(oChainObject) {
+ // If we have not extracted docuPath we return early
+ if (!oChainObject.docuPath) {
+ return oChainObject;
+ }
+ return new Promise(function(oResolve) {
+ // Join .library path with relative docuindex.json path
+ let sPath = path.join(path.dirname(oChainObject.libraryFile), oChainObject.docuPath);
+ // Normalize path to resolve relative path
+ sPath = path.normalize(sPath);
+
+ fs.readFile(sPath, 'utf8', (oError, oFileData) => {
+ if (!oError) {
+ oFileData = JSON.parse(oFileData);
+ if (oFileData.explored && oFileData.explored.entities && oFileData.explored.entities.length > 0) {
+ oChainObject.entitiesWithSamples = [];
+ oFileData.explored.entities.forEach(oEntity => {
+ oChainObject.entitiesWithSamples.push(oEntity.id);
+ });
+ }
+ }
+ // We aways resolve as this data is not mandatory
+ oResolve(oChainObject);
+ });
+
+ });
+ }
+
+ /**
+ * Load api.json file
+ * @param {object} oChainObject chain object
+ * @returns {object} chain object
+ */
+ function getAPIJSONPromise(oChainObject) {
+ return new Promise(function(oResolve, oReject) {
+ fs.readFile(sInputFile, 'utf8', (oError, sFileData) => {
+ if (oError) {
+ oReject(oError);
+ } else {
+ oChainObject.fileData = sFileData;
+ oResolve(oChainObject);
+ }
+ });
+ });
+ }
+
+ /*
+ * =====================================================================================================================
+ * IMPORTANT NOTE: Formatter code is a copy from APIDetail.controller.js with a very little modification and mocking and
+ * code can be significantly improved
+ * =====================================================================================================================
+ */
+ let formatters = {
+
+ _sTopicId: "",
+ _oTopicData: {},
+ _baseTypes: [
+ "sap.ui.core.any",
+ "sap.ui.core.object",
+ "sap.ui.core.function",
+ "sap.ui.core.number", // TODO discuss with Thomas, type does not exist
+ "sap.ui.core.float",
+ "sap.ui.core.int",
+ "sap.ui.core.boolean",
+ "sap.ui.core.string",
+ "sap.ui.core.void",
+ "null",
+ "any",
+ "any[]",
+ "Error",
+ "Error[]",
+ "array",
+ "element",
+ "Element",
+ "DomRef",
+ "object",
+ "Object",
+ "object[]",
+ "object|object[]",
+ "[object Object][]",
+ "Array.<[object Object]>",
+ "Object. ' : options.beforeParagraph;
+ var afterParagraph = options.afterParagraph === undefined ? '
';
+ });
+ }
+
+ result = this._preProcessLinksInTextBlock(result);
+ return result;
+ },
+
+ /**
+ * Formats the namespace of annotations
+ * @param namespace - the namespace to be formatted
+ * @returns string - the formatted text
+ */
+ formatAnnotationNamespace: function (namespace) {
+ var result,
+ aNamespaceParts = namespace.split(".");
+
+ if (aNamespaceParts[0] === "Org" && aNamespaceParts[1] === "OData") {
+ result = '' + namespace + '';
+ } else {
+ result = namespace;
+ }
+
+ result = this._preProcessLinksInTextBlock(result);
+ return result;
+ },
+
+ /**
+ * Formats the description of annotations
+ * @param description - the description of the annotation
+ * @param since - the since version information of the annotation
+ * @returns string - the formatted description
+ */
+ formatAnnotationDescription: function (description, since) {
+ var result = description || "";
+
+ result += '
For more information, see ' + 'OData v4 Annotations';
+
+ if (since) {
+ result += '
Since: ' + since + '.';
+ }
+
+ result = this._preProcessLinksInTextBlock(result);
+ return result;
+ },
+
+ formatExceptionLink: function (linkText) {
+ linkText = linkText || '';
+ return linkText.indexOf('sap.ui.') !== -1;
+ },
+
+ formatMethodCode: function (sName, aParams, aReturnValue) {
+ var result = '' + sName + '(';
+
+ if (aParams && aParams.length > 0) {
+ /* We consider only root level parameters so we get rid of all that are not on the root level */
+ aParams = aParams.filter(oElem => {
+ return oElem.depth === undefined;
+ });
+ aParams.forEach(function (element, index, array) {
+ result += element.name;
+
+ if (element.optional) {
+ result += '?';
+ }
+
+ if (index < array.length - 1) {
+ result += ', ';
+ }
+ });
+ }
+
+ result += ') : ';
+
+ if (aReturnValue) {
+ result += aReturnValue.type;
+ } else {
+ result += 'void';
+ }
+
+ result += "
";
+
+ return result;
+ },
+
+ /**
+ * Formats method deprecation message and pre-process jsDoc link and code blocks
+ * @param {string} sSince since text
+ * @param {string} sDescription deprecation description text
+ * @returns {string} formatted deprecation message
+ */
+ formatMethodDeprecated: function (sSince, sDescription) {
+ return this.formatDeprecated(sSince, sDescription, "methods");
+ },
+
+ /**
+ * Formats event deprecation message and pre-process jsDoc link and code blocks
+ * @param {string} sSince since text
+ * @param {string} sDescription deprecation description text
+ * @returns {string} formatted deprecation message
+ */
+ formatEventDeprecated: function (sSince, sDescription) {
+ return this.formatDeprecated(sSince, sDescription, "events");
+ },
+
+ /**
+ * Formats the description of control properties
+ * @param description - the description of the property
+ * @param since - the since version information of the property
+ * @returns string - the formatted description
+ */
+ formatDescriptionSince: function (description, since) {
+ var result = description || "";
+
+ if (since) {
+ result += '
Since: ' + since + '.';
+ }
+
+ result = this._preProcessLinksInTextBlock(result);
+ return result;
+ },
+
+ /**
+ * Formats the default value of the property as a string.
+ * @param defaultValue - the default value of the property
+ * @returns string - The default value of the property formatted as a string.
+ */
+ formatDefaultValue: function (defaultValue) {
+ var sReturn;
+
+ switch (defaultValue) {
+ case null:
+ case undefined:
+ sReturn = '';
+ break;
+ case '':
+ sReturn = 'empty string';
+ break;
+ default:
+ sReturn = defaultValue;
+ }
+
+ return Array.isArray(sReturn) ? sReturn.join(', ') : sReturn;
+ },
+
+ /**
+ * Formats the constructor of the class
+ * @param name
+ * @param params
+ * @returns string - The code needed to create an object of that class
+ */
+ formatConstructor: function (name, params) {
+ var result = 'new ';
+
+ if (name) {
+ result += name + '(';
+ }
+
+ if (params) {
+ params.forEach(function (element, index, array) {
+ result += element.name;
+
+ if (element.optional) {
+ result += '?';
+ }
+
+ if (index < array.length - 1) {
+ result += ', ';
+ }
+ });
+ }
+
+ if (name) {
+ result += ')
';
+ }
+
+ return result;
+ },
+
+ formatExample: function (sCaption, sText) {
+ return this.formatDescription(
+ ["Example: ",
+ sCaption,
+ "",
+ sText,
+ "
"].join("")
+ );
+ },
+
+ /**
+ * Formats the name of a property or a method depending on if it's static or not
+ * @param sName {string} - Name
+ * @param sClassName {string} - Name of the class
+ * @param bStatic {boolean} - If it's static
+ * @returns {string} - Formatted name
+ */
+ formatEntityName: function (sName, sClassName, bStatic) {
+ return (bStatic === true) ? sClassName + "." + sName : sName;
+ },
+
+ JSDocUtil: function () {
+
+ var rEscapeRegExp = /[[\]{}()*+?.\\^$|]/g;
+
+ // Local mocked methods
+ var escapeRegExp = function escapeRegExp(sString) {
+ return sString.replace(rEscapeRegExp, "\\$&");
+ };
+
+ function defaultLinkFormatter(target, text) {
+ return "" + (text || target) + "
";
+ }
+
+ function format(src, options) {
+
+ options = options || {};
+ var beforeParagraph = options.beforeParagraph === undefined ? ' block -] [---- some header ----] [---- an inline [@link ...} tag ----] [---------- an empty line ---------] */
+ var r = /(
)|(<\/pre>)|(
Documentation links:";
+
+ iLen = aReferences.length;
+ for (i = 0; i < iLen; i++) {
+ // We treat references as links but as they may not be defined as such we enforce it if needed
+ if (/{@link.*}/.test(aReferences[i])) {
+ sDescription += "
";
+ }
+
+ // Calling formatDescription so it could handle further formatting
+ return this.formatDescription(sDescription);
+ },
+
+ /**
+ * Formats the description of the property
+ * @param description - the description of the property
+ * @param deprecatedText - the text explaining this property is deprecated
+ * @param deprecatedSince - the version when this property was deprecated
+ * @returns string - the formatted description
+ */
+ formatDescription: function (description, deprecatedText, deprecatedSince) {
+ if (!description && !deprecatedText && !deprecatedSince) {
+ return "";
+ }
+
+ var result = description || "";
+
+ if (deprecatedSince || deprecatedText) {
+ // Note: sapUiDocumentationDeprecated - transformed to sapUiDeprecated to keep json file size low
+ result += "
";
+
+ result += this.formatDeprecated(deprecatedSince, deprecatedText);
+
+ result += "";
+ }
+
+ result = this._preProcessLinksInTextBlock(result);
+ return result;
+ },
+
+ /**
+ * Formats the entity deprecation message and pre-process jsDoc link and code blocks
+ * @param {string} sSince since text
+ * @param {string} sDescription deprecation description text
+ * @param {string} sEntityType string representation of entity type
+ * @returns {string} formatted deprecation message
+ */
+ formatDeprecated: function (sSince, sDescription, sEntityType) {
+ var aResult;
+
+ // Build deprecation message
+ // Note: there may be no since or no description text available
+ aResult = ["Deprecated"];
+ if (sSince) {
+ aResult.push(" as of version " + sSince);
+ }
+ if (sDescription) {
+ // Evaluate code blocks - Handle ...
pattern
+ sDescription = sDescription.replace(/(\S+)<\/code>/gi, function (sMatch, sCodeEntity) {
+ return ['', sCodeEntity, ''].join("");
+ }
+ );
+
+ // Evaluate links in the deprecation description
+ aResult.push(". " + this._preProcessLinksInTextBlock(sDescription, true));
+ }
+
+ return aResult.join("");
+ },
+
+ _formatChildDescription: function (description) {
+ if (description) {
+ return this._extractFirstSentence(description);
+ }
+ },
+
+ /** Just the first sentence (up to a full stop). Should not break on dotted variable names. */
+ _extractFirstSentence: function(desc) {
+ if ( desc ) {
+ desc = String(desc).replace(/\s+/g, ' ').
+ replace(/^(<\/?p>|
|mSettings
that defines initial",
+ "property values, aggregated and associated objects as well as event handlers.",
+ "See {@link sap.ui.base.ManagedObject#constructor} for a general description of the syntax of the settings object."
+ );
+ }
+
+ // add the settings section only if there are any settings
+ if ( !isEmpty(oClassInfo.properties)
+ || !isEmpty(oClassInfo.aggregations)
+ || !isEmpty(oClassInfo.associations)
+ || !isEmpty(oClassInfo.events) ) {
+
+ lines.push(
+ "",
+ includeSettings ? "" : "@ui5-settings",
+ "The supported settings are:",
+ ""
+ );
+ if ( !isEmpty(oClassInfo.properties) ) {
+ lines.push("
");
+
+ // add the reference to the base class only if this is not ManagedObject and if the base class is known
+ if ( oClassInfo.name !== "sap.ui.base.ManagedObject" && oClassInfo.baseType ) {
+ lines.push(
+ "",
+ "In addition, all settings applicable to the base type {@link " + oClassInfo.baseType + "#constructor " + oClassInfo.baseType + "}",
+ "can be used as well."
+ );
+ }
+ lines.push("");
+
+ } else if ( oClassInfo.name !== "sap.ui.base.ManagedObject" && oClassInfo.baseType && oClassInfo.hasOwnProperty("abstract") ) {
+
+ // if a class has no settings, but metadata, point at least to the base class - if it makes sense
+ lines.push(
+ "",
+ newStyle && !includeSettings ? "@ui5-settings" : "",
+ "This class does not have its own settings, but all settings applicable to the base type",
+ "{@link " + oClassInfo.baseType + "#constructor " + oClassInfo.baseType + "} can be used."
+ );
+
+ }
+ }
+
+ debug(" enhancing constructor documentation with settings");
+ var enhancedComment =
+ rawClassComment.slice(0,p) +
+ "\n * " + removeDuplicateEmptyLines(lines).join("\n * ") +
+ (commentAlreadyProcessed ? "@ui5-updated-doclet\n * " : "") +
+ rawClassComment.slice(p);
+ enhancedComment = preprocessComment({ comment : enhancedComment, lineno : classComment.lineno });
+
+ if ( commentAlreadyProcessed ) {
+ jsdocCommentFound(enhancedComment);
+ } else {
+ setRawComment(classComment, enhancedComment);
+ }
+
+ }
+
+ newJSDoc([
+ "Returns a metadata object for class " + oClassInfo.name + ".",
+ "",
+ "@returns {sap.ui.base.Metadata} Metadata object describing this class",
+ "@public",
+ "@static",
+ "@name " + name("getMetadata", "", true),
+ "@function"
+ ]);
+
+ if ( !oClassInfo["final"] ) {
+ newJSDoc([
+ "Creates a new subclass of class " + oClassInfo.name + " with name ");
+ for (n in oClassInfo.properties) {
+ lines.push("
");
+ lines.push("");
+ for (n in oClassInfo.aggregations) {
+ if ( oClassInfo.aggregations[n].visibility !== "hidden" ) {
+ lines.push("
");
+ lines.push("");
+ for (n in oClassInfo.associations) {
+ lines.push("
");
+ lines.push("");
+ for (n in oClassInfo.events) {
+ lines.push("
");
+ lines.push("sClassName
",
+ "and enriches it with the information contained in oClassInfo
.",
+ "",
+ "oClassInfo
might contain the same kind of information as described in {@link " + (oClassInfo.baseType ? oClassInfo.baseType + ".extend" : "sap.ui.base.Object.extend Object.extend") + "}.",
+ "",
+ "@param {string} sClassName Name of the class being created",
+ "@param {object} [oClassInfo] Object literal with information about the class",
+ "@param {function} [FNMetaImpl] Constructor function for the metadata object; if not given, it defaults to sap.ui.core.ElementMetadata
",
+ "@returns {function} Created class / constructor function",
+ "@public",
+ "@static",
+ "@name " + name("extend", "", true),
+ "@function"
+ ]);
+ }
+
+ for (n in oClassInfo.properties ) {
+ info = oClassInfo.properties[n];
+ if ( info.visibility === 'hidden' ) {
+ continue;
+ }
+ // link = newStyle ? "{@link #setting:" + n + " " + n + "}" : "" + n + "
";
+ link = "{@link " + (newStyle ? "#setting:" + n : rname("get", n)) + " " + n + "}";
+ newJSDoc([
+ "Gets current value of property " + link + ".",
+ "",
+ !newStyle && info.doc ? info.doc : "",
+ "",
+ info.defaultValue !== null ? "Default value is " + (info.defaultValue === "" ? "empty string" : info.defaultValue) + "
." : "",
+ "@returns {" + info.type + "} Value of property " + n + "
",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("get",n),
+ "@function"
+ ]);
+ newJSDoc([
+ "Sets a new value for property " + link + ".",
+ "",
+ !newStyle && info.doc ? info.doc : "",
+ "",
+ "When called with a value of null
or undefined
, the default value of the property will be restored.",
+ "",
+ info.defaultValue !== null ? "Default value is " + (info.defaultValue === "" ? "empty string" : info.defaultValue) + "
." : "",
+ "@param {" + info.type + "} " + varname(n,info.type,true) + " New value for property " + n + "
",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("set",n),
+ "@function"
+ ]);
+ if ( info.bindable ) {
+ newJSDoc([
+ "Binds property " + link + " to model data.",
+ "",
+ "See {@link sap.ui.base.ManagedObject#bindProperty ManagedObject.bindProperty} for a ",
+ "detailed description of the possible properties of oBindingInfo
",
+ "@param {object} oBindingInfo The binding information",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("bind",n),
+ "@function"
+ ]);
+ newJSDoc([
+ "Unbinds property " + link + " from model data.",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("unbind",n),
+ "@function"
+ ]);
+ }
+ }
+
+ for (n in oClassInfo.aggregations ) {
+ info = oClassInfo.aggregations[n];
+ if ( info.visibility === 'hidden' ) {
+ continue;
+ }
+ // link = newStyle ? "{@link #setting:" + n + " " + n + "}" : "" + n + "
";
+ link = "{@link " + (newStyle ? "#setting:" + n : rname("get", n)) + " " + n + "}";
+ newJSDoc([
+ "Gets content of aggregation " + link + ".",
+ "",
+ !newStyle && info.doc ? info.doc : "",
+ "",
+ n === info.defaultAggregation ? "Note: this is the default aggregation for " + n + "." : "",
+ "@returns {" + makeTypeString(info) + "}",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("get",n),
+ "@function"
+ ]);
+ if ( info.cardinality == "0..n" ) {
+ n1 = info.singularName;
+ newJSDoc([
+ "Inserts a " + n1 + " into the aggregation " + link + ".",
+ "",
+ "@param {" + makeTypeString(info, true) + "}",
+ " " + varname(n1,info.altTypes ? "variant" : info.type) + " The " + n1 + " to insert; if empty, nothing is inserted",
+ "@param {int}",
+ " iIndex The 0
-based index the " + n1 + " should be inserted at; for",
+ " a negative value of iIndex
, the " + n1 + " is inserted at position 0; for a value",
+ " greater than the current size of the aggregation, the " + n1 + " is inserted at",
+ " the last position",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("insert",n1),
+ "@function"
+ ]);
+ newJSDoc([
+ "Adds some " + n1 + " to the aggregation " + link + ".",
+
+ "@param {" + makeTypeString(info, true) + "}",
+ " " + varname(n1,info.altTypes ? "variant" : info.type) + " The " + n1 + " to add; if empty, nothing is inserted",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("add",n1),
+ "@function"
+ ]);
+ newJSDoc([
+ "Removes a " + n1 + " from the aggregation " + link + ".",
+ "",
+ "@param {int | string | " + makeTypeString(info, true) + "} " + varname(n1,"variant") + " The " + n1 + " to remove or its index or id",
+ "@returns {" + makeTypeString(info, true) + "} The removed " + n1 + " or null
",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("remove", n1),
+ "@function"
+ ]);
+ newJSDoc([
+ "Removes all the controls from the aggregation " + link + ".",
+ "",
+ "Additionally, it unregisters them from the hosting UIArea.",
+ "@returns {" + makeTypeString(info) + "} An array of the removed elements (might be empty)",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("removeAll", n),
+ "@function"
+ ]);
+ newJSDoc([
+ "Checks for the provided " + info.type + "
in the aggregation " + link + ".",
+ "and returns its index if found or -1 otherwise.",
+ "@param {" + makeTypeString(info, true) + "}",
+ " " + varname(n1, info.altTypes ? "variant" : info.type) + " The " + n1 + " whose index is looked for",
+ "@returns {int} The index of the provided control in the aggregation if found, or -1 otherwise",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("indexOf", n1),
+ "@function"
+ ]);
+ } else {
+ newJSDoc([
+ "Sets the aggregated " + link + ".",
+ "@param {" + makeTypeString(info) + "} " + varname(n, info.altTypes ? "variant" : info.type) + " The " + n + " to set",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("set", n),
+ "@function"
+ ]);
+ }
+ newJSDoc([
+ "Destroys " + (info.cardinality === "0..n" ? "all " : "") + "the " + n + " in the aggregation " + link + ".",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("destroy", n),
+ "@function"
+ ]);
+ if ( info.bindable ) {
+ newJSDoc([
+ "Binds aggregation " + link + " to model data.",
+ "",
+ "See {@link sap.ui.base.ManagedObject#bindAggregation ManagedObject.bindAggregation} for a ",
+ "detailed description of the possible properties of oBindingInfo
.",
+ "@param {object} oBindingInfo The binding information",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("bind",n),
+ "@function"
+ ]);
+ newJSDoc([
+ "Unbinds aggregation " + link + " from model data.",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("unbind",n),
+ "@function"
+ ]);
+ }
+ }
+
+ for (n in oClassInfo.associations ) {
+ info = oClassInfo.associations[n];
+ if ( info.visibility === 'hidden' ) {
+ continue;
+ }
+ // link = newStyle ? "{@link #setting:" + n + " " + n + "}" : "" + n + "
";
+ link = "{@link " + (newStyle ? "#setting:" + n : rname("get", n)) + " " + n + "}";
+ newJSDoc([
+ info.cardinality === "0..n" ?
+ "Returns array of IDs of the elements which are the current targets of the association " + link + "." :
+ "ID of the element which is the current target of the association " + link + ", or null
.",
+ "",
+ newStyle && info.doc ? info.doc : "",
+ "",
+ "@returns {sap.ui.core.ID" + (info.cardinality === "0..n" ? "[]" : "") + "}",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("get",n),
+ "@function"
+ ]);
+ if ( info.cardinality === "0..n" ) {
+ n1 = info.singularName;
+ newJSDoc([
+ "Adds some " + n1 + " into the association " + link + ".",
+ "",
+ "@param {sap.ui.core.ID | " + info.type + "} " + varname(n1, "variant") + " The " + n + " to add; if empty, nothing is inserted",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("add",n1),
+ "@function"
+ ]);
+ newJSDoc([
+ "Removes an " + n1 + " from the association named " + link + ".",
+ "@param {int | sap.ui.core.ID | " + info.type + "} " + varname(n1,"variant") + " The " + n1 + " to be removed or its index or ID",
+ "@returns {sap.ui.core.ID} The removed " + n1 + " or null
",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("remove", n1),
+ "@function"
+ ]);
+ newJSDoc([
+ "Removes all the controls in the association named " + link + ".",
+ "@returns {sap.ui.core.ID[]} An array of the removed elements (might be empty)",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("removeAll", n),
+ "@function"
+ ]);
+ } else {
+ newJSDoc([
+ "Sets the associated " + link + ".",
+ "@param {sap.ui.core.ID | " + info.type + "} " + varname(n, info.type) + " ID of an element which becomes the new target of this " + n + " association; alternatively, an element instance may be given",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("set", n),
+ "@function"
+ ]);
+ }
+ }
+
+ for (n in oClassInfo.events ) {
+ info = oClassInfo.events[n];
+ //link = newStyle ? "{@link #event:" + n + " " + n + "}" : "" + n + "
";
+ link = "{@link #event:" + n + " " + n + "}";
+
+ lines = [
+ info.doc ? info.doc : "",
+ "",
+ "@name " + oClassInfo.name + "#" + n,
+ "@event",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@param {sap.ui.base.Event} oControlEvent",
+ "@param {sap.ui.base.EventProvider} oControlEvent.getSource",
+ "@param {object} oControlEvent.getParameters"
+ ];
+ for (pName in info.parameters ) {
+ lines.push(
+ "@param {" + (info.parameters[pName].type || "") + "} oControlEvent.getParameters." + pName + " " + (info.parameters[pName].doc || "")
+ );
+ }
+ lines.push("@public");
+ newJSDoc(lines);
+
+ newJSDoc([
+ "Attaches event handler fnFunction
to the " + link + " event of this " + oClassInfo.name + "
.",
+ "",
+ "When called, the context of the event handler (its this
) will be bound to oListener
if specified, ",
+ "otherwise it will be bound to this " + oClassInfo.name + "
itself.",
+ "",
+ !newStyle && info.doc ? info.doc : "",
+ "",
+ "@param {object}",
+ " [oData] An application-specific payload object that will be passed to the event handler along with the event object when firing the event",
+ "@param {function}",
+ " fnFunction The function to be called when the event occurs",
+ "@param {object}",
+ " [oListener] Context object to call the event handler with. Defaults to this " + oClassInfo.name + "
itself",
+ "",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ "@public",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@name " + name("attach", n),
+ "@function"
+ ]);
+ newJSDoc([
+ "Detaches event handler fnFunction
from the " + link + " event of this " + oClassInfo.name + "
.",
+ "",
+ "The passed function and listener object must match the ones used for event registration.",
+ "",
+ "@param {function}",
+ " fnFunction The function to be called, when the event occurs",
+ "@param {object}",
+ " oListener Context object on which the given function had to be called",
+ "@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@public",
+ "@name " + name("detach", n),
+ "@function"
+ ]);
+
+ // build documentation for fireEvent. It contains conditional parts which makes it a bit more complicated
+ lines = [
+ "Fires event " + link + " to attached listeners."
+ ];
+ if ( info.allowPreventDefault ) {
+ lines.push(
+ "",
+ "Listeners may prevent the default action of this event by using the preventDefault
-method on the event object.",
+ "");
+ }
+ lines.push(
+ "",
+ "@param {object} [mParameters] Parameters to pass along with the event"
+ );
+ if ( !isEmpty(info.parameters) ) {
+ for (pName in info.parameters) {
+ lines.push(
+ "@param {" + (info.parameters[pName].type || "any") + "} [mParameters." + pName + "] " + (info.parameters[pName].doc || "")
+ );
+ }
+ lines.push("");
+ }
+ if ( info.allowPreventDefault ) {
+ lines.push("@returns {boolean} Whether or not to prevent the default action");
+ } else {
+ lines.push("@returns {" + oClassInfo.name + "} Reference to this
in order to allow method chaining");
+ }
+ lines.push(
+ "@protected",
+ info.since ? "@since " + info.since : "",
+ info.deprecation ? "@deprecated " + info.deprecation : "",
+ info.experimental ? "@experimental " + info.experimental : "",
+ "@name " + name("fire", n),
+ "@function"
+ );
+ newJSDoc(lines);
+ }
+
+}
+
+function createDataTypeAutoDoc(oTypeInfo, classComment, node, parser, filename) {
+}
+
+/**
+ * Creates a human readable location info for a given doclet.
+ * @param doclet
+ * @returns {String}
+ */
+function location(doclet) {
+ var filename = (doclet.meta && doclet.meta.filename) || "unknown";
+ return " #" + ui5data(doclet).id + "@" + filename + (doclet.meta.lineno != null ? ":" + doclet.meta.lineno : "") + (doclet.synthetic ? "(synthetic)" : "");
+}
+
+// ---- Comment handling ---------------------------------------------------------------------------
+
+// --- comment related functions that depend on the JSdoc version (e.g. on the used parser)
+
+var isDocComment;
+var getLeadingCommentNode;
+
+// JSDoc added the node type Syntax.File
with the same change that activated Babylon
+// See https://github.com/jsdoc3/jsdoc/commit/ffec4a42291de6d68e6240f304b68d6abb82a869
+if ( Syntax.File === 'File' ) {
+
+ // JSDoc starting with version 3.5.0
+
+ isDocComment = function isDocCommentBabylon(comment) {
+ return comment && comment.type === 'CommentBlock' && comment.value && comment.value.charAt(0) === '*';
+ }
+
+ getLeadingCommentNode = function getLeadingCommentNodeBabylon(node, longname) {
+ var leadingComments = node.leadingComments;
+ if ( Array.isArray(leadingComments) ) {
+ // in babylon, all comments are already attached to the node
+ // and the last one is the closest one and should win
+ // non-block comments have to be filtered out
+ leadingComments = leadingComments.filter(isDocComment);
+ if ( leadingComments.length > 0 ) {
+ return leadingComments[leadingComments.length - 1];
+ }
+ }
+ }
+
+} else {
+
+ // JSDoc versions before 3.5.0
+
+ isDocComment = function isDoccommentEsprima(comment) {
+ return comment && comment.type === 'Block';
+ };
+
+ getLeadingCommentNode = function getLeadingCommentNodeEsprima(node, longname) {
+ var comment,
+ leadingComments = node.leadingComments;
+
+ // when espree is used, JSDOc attached the leading comment and the first one was picked
+ if (Array.isArray(leadingComments) && leadingComments.length && leadingComments[0].raw) {
+ comment = leadingComments[0];
+ }
+
+ // also check all comments attached to the Program node (if found) whether they refer to the same longname
+ // TODO check why any matches here override the direct leading comment from above
+ if ( longname && currentProgram && currentProgram.leadingComments && currentProgram.leadingComments.length ) {
+ leadingComments = currentProgram.leadingComments;
+ var rLongname = new RegExp("@(name|alias|class|namespace)\\s+" + longname.replace(/\./g, '\\.'));
+ for ( var i = 0; i < leadingComments.length; i++ ) {
+ var raw = getRawComment(leadingComments[i]);
+ if ( /^\/\*\*[\s\S]*\*\/$/.test(raw) && rLongname.test(raw) ) {
+ comment = leadingComments[i];
+ // console.log("\n\n**** alternative comment found for " + longname + " on program level\n\n", comment);
+ break;
+ }
+ }
+ }
+
+ return comment;
+ }
+}
+
+//--- comment related functions that are independent from the JSdoc version
+
+function getLeadingComment(node) {
+ var comment = getLeadingCommentNode(node);
+ return comment ? getRawComment(comment) : null;
+}
+
+function getLeadingDoclet(node, preprocess) {
+ var comment = getLeadingComment(node)
+ if ( comment && preprocess ) {
+ comment = preprocessComment({comment:comment, lineno: node.loc.start.line });
+ }
+ return comment ? new Doclet(comment, {}) : null;
+}
+
+/**
+ * Determines the raw comment string (source code form, including leading and trailing comment markers / *...* /) from a comment node.
+ * Works for Esprima and Babylon based JSDoc versions.
+ * @param commentNode
+ * @returns
+ */
+function getRawComment(commentNode) {
+ // in esprima, there's a 'raw' property, in babylon, the 'raw' string has to be reconstructed from the 'value' by adding the markers
+ return commentNode ? commentNode.raw || '/*' + commentNode.value + '*/' : '';
+}
+
+function setRawComment(commentNode, newRawComment) {
+ if ( commentNode.raw ) {
+ commentNode.raw = newRawComment;
+ }
+ commentNode.value = newRawComment.slice(2, -2);
+}
+
+/**
+ * Removes the mandatory comment markers and the optional but common asterisks at the beginning of each JSDoc comment line.
+ *
+ * The result is easier to parse/analyze.
+ *
+ * Implementation is a 1:1 copy from JSDoc's lib/jsdoc/doclet.js (closure function, not directly reusable)
+ *
+ * @param {string} docletSrc the source comment with or without block comment markers
+ * @returns {string} the unwrapped content of the JSDoc comment
+ *
+ */
+function unwrap(docletSrc) {
+ if (!docletSrc) { return ''; }
+
+ // note: keep trailing whitespace for @examples
+ // extra opening/closing stars are ignored
+ // left margin is considered a star and a space
+ // use the /m flag on regex to avoid having to guess what this platform's newline is
+ docletSrc =
+ docletSrc.replace(/^\/\*\*+/, '') // remove opening slash+stars
+ .replace(/\**\*\/$/, "\\Z") // replace closing star slash with end-marker
+ .replace(/^\s*(\* ?|\\Z)/gm, '') // remove left margin like: spaces+star or spaces+end-marker
+ .replace(/\s*\\Z$/g, ''); // remove end-marker
+
+ return docletSrc;
+}
+
+/**
+ * Inverse operation of unwrap.
+ *
+ * The prefix for lines is fixed to be " * ", lines are separated with '\n', independent from the platform.
+ */
+function wrap(lines) {
+ if ( typeof lines === "string" ) {
+ lines = lines.split(/\r\n?|\n/);
+ }
+ return "/**\n * " + lines.join('\n * ') + "\n */";
+}
+
+/**
+ * Preprocesses a JSDoc comment string to ensure some UI5 standards.
+ *
+ * @param {event} e Event for the new comment
+ * @returns {event}
+ */
+function preprocessComment(e) {
+
+ var src = e.comment;
+
+ // add a default visibility
+ if ( !/@private|@public|@protected|@sap-restricted|@ui5-restricted/.test(src) ) {
+ src = unwrap(src);
+ src = src + "\n@private";
+ src = wrap(src);
+ // console.log("added default visibility to '" + src + "'");
+ }
+
+ if ( /@class/.test(src) && /@static/.test(src) ) {
+ warning("combination of @class and @static is no longer supported with jsdoc3, converting it to @namespace and @classdesc: (line " + e.lineno + ")");
+ src = unwrap(src);
+ src = src.replace(/@class/, "@classdesc").replace(/@static/, "@namespace");
+ src = wrap(src);
+ //console.log(src);
+ }
+
+ return src;
+
+}
+
+// ---- other functionality ---------------------------------------------------------------------------
+
+// HACK: override cli.exit() to avoid that JSDoc3 exits the VM
+if ( pluginConfig.noExit ) {
+ info("disabling exit() call");
+ require( path.join(global.env.dirname, 'cli') ).exit = function(retval) {
+ info("cli.exit(): do nothing (ret val=" + retval + ")");
+ };
+}
+
+
+// ---- exports ----------------------------------------------------------------------------------------
+
+exports.defineTags = function(dictionary) {
+
+ /**
+ * a special value that is not 'falsy' but results in an empty string when output
+ * Used for the disclaimer and experimental tag
+ */
+ var EMPTY = {
+ toString: function() { return ""; }
+ };
+
+ /**
+ * A sapui5 specific tag to add a disclaimer to a symbol
+ */
+ dictionary.defineTag('disclaimer', {
+ // value is optional
+ onTagged: function(doclet, tag) {
+ doclet.disclaimer = tag.value || EMPTY;
+ }
+ });
+
+ /**
+ * A sapui5 specific tag to mark a symbol as experimental.
+ */
+ dictionary.defineTag('experimental', {
+ // value is optional
+ onTagged: function(doclet, tag) {
+ doclet.experimental = tag.value || EMPTY;
+ }
+ });
+
+ /**
+ * Re-introduce the deprecated 'final tag. JSDoc used it as a synonym for readonly, but we use it to mark classes as final
+ */
+ dictionary.defineTag('final', {
+ mustNotHaveValue: true,
+ onTagged: function(doclet, tag) {
+ doclet.final_ = true;
+ }
+ });
+
+ /**
+ * Introduce a new kind of symbol: 'interface'
+ * 'interface' is like 'class', but without a constructor.
+ * Support for 'interface' might not be complete (only standard UI5 use cases tested)
+ */
+ dictionary.defineTag('interface', {
+ //mustNotHaveValue: true,
+ onTagged: function(doclet, tag) {
+ // debug("setting kind of " + doclet.name + " to 'interface'");
+ doclet.kind = 'interface';
+ if ( tag.value ) {
+ doclet.classdesc = tag.value;
+ }
+ }
+ });
+
+ /**
+ * Classes can declare that they implement a set of interfaces
+ */
+ dictionary.defineTag('implements', {
+ mustHaveValue: true,
+ onTagged: function(doclet, tag) {
+ // console.log("setting implements of " + doclet.name + " to 'interface'");
+ if ( tag.value ) {
+ doclet.implements = doclet.implements || [];
+ tag.value.split(/\s*,\s*/g).forEach(function($) {
+ if ( doclet.implements.indexOf($) < 0 ) {
+ doclet.implements.push($);
+ }
+ });
+ }
+ }
+ });
+
+ /**
+ * Set the visibility of a doclet to 'restricted'.
+ */
+ dictionary.defineTag('ui5-restricted', {
+ onTagged: function(doclet, tag) {
+ doclet.access = 'restricted';
+ if ( tag.value ) {
+ ui5data(doclet).stakeholders = tag.value.trim().split(/(?:\s*,\s*|\s+)/);
+ }
+ }
+ });
+ dictionary.defineSynonym('ui5-restricted', 'sap-restricted');
+
+ /**
+ * Mark a doclet as synthetic.
+ *
+ * Used for doclets that the autodoc generation creates. This helps the template
+ * later to recognize such doclets and maybe filter them out.
+ */
+ dictionary.defineTag('synthetic', {
+ mustNotHaveValue: true,
+ onTagged: function(doclet, tag) {
+ doclet.synthetic = true;
+ }
+ });
+
+ /**
+ * Mark a doclet that intentionally updates a previous doclet
+ */
+ dictionary.defineTag('ui5-updated-doclet', {
+ mustNotHaveValue: true,
+ onTagged: function(doclet, tag) {
+ ui5data(doclet).updatedDoclet = true;
+ }
+ });
+
+ /**
+ * The @hideconstructor tag tells JSDoc that the generated documentation should not display the constructor for a class.
+ * Note: this tag will be natively available in JSDoc >= 3.5.0
+ */
+ dictionary.defineTag('hideconstructor', {
+ mustNotHaveValue: true,
+ onTagged: function(doclet, tag) {
+ doclet.hideconstructor = true;
+ }
+ });
+
+};
+
+exports.handlers = {
+
+ /**
+ * Before all files are parsed, determine the common path prefix of all filenames
+ */
+ parseBegin : function(e) {
+
+ pathPrefixes = env.opts._.reduce(function(result, fileOrDir) {
+ fileOrDir = path.resolve( path.normalize(fileOrDir) );
+ if ( fs.statSync(fileOrDir).isDirectory() ) {
+ if ( !fileOrDir.endsWith(path.sep) ) {
+ fileOrDir += path.sep;
+ }
+ result.push(fileOrDir);
+ }
+ return result;
+ }, []);
+ resourceNamePrefixes = pluginConfig.resourceNamePrefixes || [];
+ if ( !Array.isArray(resourceNamePrefixes) ) {
+ resourceNamePrefixes = [resourceNamePrefixes];
+ }
+ resourceNamePrefixes.forEach(ensureEndingSlash);
+ while ( resourceNamePrefixes.length < pathPrefixes.length ) {
+ resourceNamePrefixes.push('');
+ }
+
+ debug("path prefixes " + JSON.stringify(pathPrefixes));
+ debug("resource name prefixes " + JSON.stringify(resourceNamePrefixes));
+ },
+
+ /**
+ * Log each file before it is parsed
+ */
+ fileBegin: function (e) {
+ currentProgram = undefined;
+ currentModule = {
+ name: null,
+ resource: getResourceName(e.filename),
+ module: getModuleName(getResourceName(e.filename)),
+ localNames: Object.create(null)
+ };
+ debug(currentModule);
+ },
+
+ fileComplete: function (e) {
+ currentSource = undefined;
+ currentProgram = undefined;
+ currentModule = undefined;
+ },
+
+ jsdocCommentFound: function(e) {
+ // console.log("jsdocCommentFound: " + e.comment);
+ e.comment = preprocessComment(e);
+ },
+
+ symbolFound: function(e) {
+ // console.log("symbolFound: " + e.comment);
+ },
+
+ newDoclet: function(e) {
+
+ var _ui5data = ui5data(e.doclet);
+
+ // remove code: this is a try to reduce the required heap size
+ if ( e.doclet.meta ) {
+ if ( e.doclet.meta.code ) {
+ e.doclet.meta.code = {};
+ }
+ var filepath = (e.doclet.meta.path && e.doclet.meta.path !== 'null' ) ? path.join(e.doclet.meta.path, e.doclet.meta.filename) : e.doclet.meta.filename;
+ e.doclet.meta.__shortpath = getRelativePath(filepath);
+ _ui5data.resource = currentModule.resource;
+ _ui5data.module = currentModule.name || currentModule.module;
+ }
+
+
+ // JSDoc 3 has a bug when it encounters a property in an object literal with an empty string as name
+ // (e.g. { "" : something } will result in a doclet without longname
+ if ( !e.doclet.longname ) {
+ if ( e.doclet.memberof ) {
+ e.doclet.longname = e.doclet.memberof + "." + e.doclet.name; // TODO '.' depends on scope?
+ warning("found doclet without longname, derived longname: " + e.doclet.longname + " " + location(e.doclet));
+ } else {
+ error("found doclet without longname, could not derive longname " + location(e.doclet));
+ }
+ return;
+ }
+
+ // try to detect misused memberof
+ if ( e.doclet.memberof && e.doclet.longname.indexOf(e.doclet.memberof) !== 0 ) {
+ warning("potentially unsupported use of @name and @memberof " + location(e.doclet));
+ //console.log(e.doclet);
+ }
+
+ if ( e.doclet.returns
+ && e.doclet.returns.length > 0
+ && e.doclet.returns[0]
+ && e.doclet.returns[0].type
+ && e.doclet.returns[0].type.names
+ && e.doclet.returns[0].type.names[0] === 'this'
+ && e.doclet.memberof ) {
+ warning("fixing return type 'this' with " + e.doclet.memberof);
+ e.doclet.returns[0].type.names[0] = e.doclet.memberof;
+ }
+ },
+
+ beforeParse : function(e) {
+ msgHeader("parsing " + getRelativePath(e.filename));
+ currentSource = e.source;
+ },
+
+ parseComplete : function(e) {
+
+ var doclets = e.doclets;
+ var l = doclets.length,i,j,doclet;
+ //var noprivate = !env.opts.private;
+ var rAnonymous = /^new
) or as a normal function.
+ * It always returns an immutable Version instance.
+ *
+ * The parts of the version number (major, minor, patch, suffix) can be provided in several ways:
+ *
+ *
+ *
+ * To keep the code size small, this implementation mainly validates the single string variant.
+ * All other variants are only validated to some degree. It is the responsibility of the caller to
+ * provide proper parts.
+ *
+ * @param {int|string|any[]|jQuery.sap.Version} vMajor the major part of the version (int) or any of the single parameter variants explained above.
+ * @param {int} iMinor the minor part of the version number
+ * @param {int} iPatch the patch part of the version number
+ * @param {string} sSuffix the suffix part of the version number
+ * @return {jQuery.sap.Version} the version object as determined from the parameters
+ *
+ * @class Represents a version consisting of major, minor, patch version and suffix, e.g. '1.2.7-SNAPSHOT'.
+ *
+ * @author SAP SE
+ * @version ${version}
+ * @constructor
+ * @public
+ * @since 1.15.0
+ * @name jQuery.sap.Version
+ */
+ function Version(versionStr) {
+
+ var match = rVersion.exec(versionStr) || [];
+
+ function norm(v) {
+ v = parseInt(v,10);
+ return isNaN(v) ? 0 : v;
+ }
+
+ Object.defineProperty(this, "major", {
+ enumerable: true,
+ value: norm(match[0])
+ });
+ Object.defineProperty(this, "minor", {
+ enumerable: true,
+ value: norm(match[1])
+ });
+ Object.defineProperty(this, "patch", {
+ enumerable: true,
+ value: norm(match[2])
+ });
+ Object.defineProperty(this, "suffix", {
+ enumerable: true,
+ value: String(match[3] || "")
+ });
+
+ }
+
+ Version.prototype.toMajorMinor = function() {
+ return new Version(this.major + "." + this.minor);
+ };
+
+ Version.prototype.toString = function() {
+ return this.major + "." + this.minor + "." + this.patch + this.suffix;
+ };
+
+ Version.prototype.compareTo = function(other) {
+ return this.major - other.major ||
+ this.minor - other.minor ||
+ this.patch - other.patch ||
+ ((this.suffix < other.suffix) ? -1 : (this.suffix === other.suffix) ? 0 : 1);
+ };
+
+ return Version;
+
+}());
+
+// ---- Link class --------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+//TODO move to separate module
+
+var Link = (function() {
+
+ var Link = function() {
+ };
+
+ Link.prototype.toSymbol = function(longname) {
+ if ( longname != null ) {
+ longname = String(longname);
+ if ( /#constructor$/.test(longname) ) {
+ if ( !this.innerName ) {
+ this.innerName = 'constructor';
+ }
+ longname = longname.slice(0, -"#constructor".length);
+ }
+ this.longname = longname;
+ }
+ return this;
+ };
+
+ Link.prototype.withText = function(text) {
+ this.text = text;
+ return this;
+ };
+
+ Link.prototype.withTooltip = function(text) {
+ this.tooltip = text;
+ return this;
+ };
+
+ Link.prototype.toFile = function(file) {
+ if ( file != null ) this.file = file;
+ return this;
+ };
+
+ function _makeLink(href, target, tooltip, text) {
+ return '' + text + '';
+ }
+
+ Link.prototype.toString = function() {
+ var longname = this.longname,
+ linkString;
+
+ if (longname) {
+
+ if ( /^(?:(?:ftp|https?):\/\/|\.\.?\/)/.test(longname) ) {
+ // handle real hyperlinks (TODO should be handled with a different "to" method
+ linkString = _makeLink(longname, this.targetName, this.tooltip, this.text || longname);
+ } else if ( /^topic:/.test(longname) ) {
+ // handle documentation links
+ longname = conf.topicUrlPattern.replace("{{topic}}", longname.slice("topic:".length));
+ linkString = _makeLink(longname, this.targetName, this.tooltip, this.text || longname);
+ } else {
+ linkString = this._makeSymbolLink(longname);
+ }
+
+ } else if (this.file) {
+ linkString = _makeLink(Link.base + this.file, this.targetName, null, this.text || this.file);
+ }
+
+ return linkString;
+ };
+
+ var missingTypes = {};
+ Link.getMissingTypes = function() {
+ return Object.keys(missingTypes);
+ };
+
+ Link.prototype._makeSymbolLink = function(longname) {
+
+ // normalize .prototype. and #
+ longname = longname.replace(/\.prototype\./g, '#');
+
+ // if it is an internal reference, then don't validate against symbols, just create a link
+ if ( longname.charAt(0) == "#" ) {
+
+ return _makeLink(longname + (this.innerName ? "#" + this.innerName : ""), this.targetName, this.tooltip, this.text || longname.slice(1));
+
+ }
+
+ var linkTo = lookup(longname);
+ // if there is no symbol by that name just return the name unaltered
+ if ( !linkTo ) {
+
+ missingTypes[longname] = true;
+
+ return this.text || longname;
+
+ }
+
+ // it's a full symbol reference (potentially to another file)
+ var mainSymbol, anchor;
+ if ( (linkTo.kind === 'member' && !linkTo.isEnum) || linkTo.kind === 'constant' || linkTo.kind === 'function' || linkTo.kind === 'event' ) { // it's a method or property
+
+ mainSymbol = linkTo.memberof;
+ anchor = ( linkTo.kind === 'event' ? "event:" : "") + Link.symbolNameToLinkName(linkTo);
+
+ } else {
+
+ mainSymbol = linkTo.longname;
+ anchor = this.innerName;
+
+ }
+
+ return _makeLink(Link.baseSymbols + __uniqueFilenames[mainSymbol] + conf.ext + (anchor ? "#" + anchor : ""), this.targetName, this.tooltip, this.text || longname);
+ }
+
+ Link.symbolNameToLinkName = function(symbol) {
+ var linker = "";
+ if ( symbol.scope === 'static' ) {
+ linker = ".";
+ } else if (symbol.isInner) {
+ linker = "-"; // TODO-migrate?
+ }
+ return linker + symbol.name;
+ };
+
+ return Link;
+
+}());
+
+
+
+// ---- publish() - main entry point for JSDoc templates -------------------------------------------------------------------------------------------------------
+
+/** Called automatically by JsDoc Toolkit. */
+function publish(symbolSet) {
+
+ info("entering sapui5 template");
+
+ // create output dir
+ fs.mkPath(env.opts.destination);
+
+// if ( symbolSet().count() < 20000 ) {
+// info("writing raw symbols to " + path.join(env.opts.destination, "symbols-unpruned-ui5.json"));
+// fs.writeFileSync(path.join(env.opts.destination, "symbols-unpruned-ui5.json"), JSON.stringify(symbolSet().get(), filter, "\t"), 'utf8');
+// }
+
+ info("before prune: " + symbolSet().count() + " symbols.");
+ symbolSet = helper.prune(symbolSet);
+ info("after prune: " + symbolSet().count() + " symbols.");
+
+ __db = symbolSet;
+ __longnames = {};
+ __db().each(function($) {
+ __longnames[$.longname] = $;
+ });
+
+ if ( templateConf.apiJsonFolder ) {
+ info("loading external apis from folder '" + templateConf.apiJsonFolder + "'");
+ loadExternalSymbols(templateConf.apiJsonFolder);
+ }
+
+ var templatePath = path.join(env.opts.template, 'tmpl/');
+ info("using templates from '" + templatePath + "'");
+ view = new template.Template(templatePath);
+
+ function filter(key,value) {
+ if ( key === 'meta' ) {
+ //return;
+ }
+ if ( key === '__ui5' && value ) {
+ var v = {
+ resource: value.resource,
+ module: value.module,
+ stakeholders: value.stakeholders
+ };
+ if ( value.derived ) {
+ v.derived = value.derived.map(function($) { return $.longname });
+ }
+ if ( value.base ) {
+ v.base = value.base.longname;
+ }
+ if ( value.implementations ) {
+ v.base = value.implementations.map(function($) { return $.longname });
+ }
+ if ( value.parent ) {
+ v.parent = value.parent.longname;
+ }
+ if ( value.children ) {
+ v.children = value.children.map(function($) { return $.longname });
+ }
+ return v;
+ }
+ return value;
+ }
+
+ // now resolve relationships
+ var aRootNamespaces = createNamespaceTree();
+ var hierarchyRoots = createInheritanceTree();
+ collectMembers();
+ mergeEventDocumentation();
+
+ if ( symbolSet().count() < 20000 ) {
+ info("writing raw symbols to " + path.join(env.opts.destination, "symbols-pruned-ui5.json"));
+ fs.writeFileSync(path.join(env.opts.destination, "symbols-pruned-ui5.json"), JSON.stringify(symbolSet().get(), filter, "\t"), 'utf8');
+ }
+
+ // used to allow Link to check the details of things being linked to
+ Link.symbolSet = symbolSet;
+
+ // get an array version of the symbol set, useful for filtering
+ var symbols = symbolSet().get();
+
+ // -----
+
+ var PUBLISHING_VARIANTS = {
+
+ "apixml" : {
+ defaults : {
+ apiXmlFile: path.join(env.opts.destination, "jsapi.xml")
+ },
+ processor : function(conf) {
+ createAPIXML(symbols, conf.apiXmlFile, {
+ legacyContent: true
+ });
+ }
+ },
+
+ "apijson" : {
+ defaults : {
+ apiJsonFile: path.join(env.opts.destination, "api.json")
+ },
+ processor : function(conf) {
+ createAPIJSON(symbols, conf.apiJsonFile);
+ }
+ },
+
+ "fullapixml" : {
+ defaults : {
+ fullXmlFile: path.join(env.opts.destination, "fulljsapi.xml")
+ },
+ processor : function(conf) {
+ createAPIXML(symbols, conf.fullXmlFile, {
+ roots: aRootNamespaces,
+ omitDefaults : conf.omitDefaultsInFullXml,
+ resolveInheritance: true
+ });
+ }
+ },
+
+ "apijs" : {
+ defaults: {
+ jsapiFile: path.join(env.opts.destination, "api.js")
+ },
+ processor: function(conf) {
+ createAPIJS(symbols, conf.jsapiFile);
+ }
+ },
+
+ "full" : {
+ defaults : {
+ outdir: path.join(env.opts.destination, "full/"),
+ contentOnly: false,
+ hierarchyIndex: true
+ },
+ processor: function() {
+ publishClasses(symbolSet, aRootNamespaces, hierarchyRoots);
+ }
+ },
+
+ "public" : {
+ defaults: {
+ outdir: path.join(env.opts.destination, "public/"),
+ filter: function($) { return $.access === 'public' || $.access === 'protected' || $.access == null; },
+ contentOnly: false,
+ hierarchyIndex: true
+ },
+ processor: function(conf) {
+ publishClasses(symbolSet, aRootNamespaces, hierarchyRoots);
+ }
+ },
+
+ "demokit" : {
+ defaults: {
+ outdir: path.join(env.opts.destination, "demokit/"),
+ filter: function($) { return $.access === 'public' || $.access === 'protected' || $.access == null; },
+ contentOnly: true,
+ modulePages: true,
+ hierarchyIndex: false,
+ securityIndex: true,
+ sinceIndex: true,
+ deprecationIndex: true,
+ experimentalIndex: true,
+ suppressAuthor: true,
+ suppressVersion: true
+ },
+ processor: function(conf) {
+ publishClasses(symbolSet, aRootNamespaces, hierarchyRoots);
+ }
+ },
+
+ "demokit-internal" : {
+ defaults: {
+ outdir: path.join(env.opts.destination, "demokit-internal/"),
+ // filter: function($) { return $.access === 'public' || $.access === 'protected' || $.access === 'restricted' || $.access == null; },
+ contentOnly: true,
+ modulePages: true,
+ hierarchyIndex: false,
+ securityIndex: true,
+ sinceIndex: true,
+ deprecationIndex: true,
+ experimentalIndex: true,
+ suppressAuthor: true,
+ suppressVersion: true
+ },
+ processor: function(conf) {
+ publishClasses(symbolSet, aRootNamespaces, hierarchyRoots);
+ }
+ }
+
+ };
+
+ var now = new Date();
+
+ info("start publishing");
+ for (var i = 0; i < templateConf.variants.length; i++) {
+
+ var vVariant = templateConf.variants[i];
+ if ( typeof vVariant === "string" ) {
+ vVariant = { variant : vVariant };
+ }
+
+ info("");
+
+ if ( PUBLISHING_VARIANTS[vVariant.variant] ) {
+
+ // Merge different sources of configuration (listed in increasing priority order - last one wins)
+ // and expose the result in the global 'conf' variable
+ // - global defaults
+ // - defaults for current variant
+ // - user configuration for sapui5 template
+ // - user configuration for current variant
+ //
+ // Note: trailing slash expected for dirs
+ conf = merge({
+ ext: ".html",
+ filter: function($) { return true; },
+ templatesDir: "/templates/sapui5/",
+ symbolsDir: "symbols/",
+ modulesDir: "modules/",
+ topicUrlPattern: "../../guide/{{topic}}.html",
+ srcDir: "symbols/src/",
+ creationDate : now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDay() + " " + now.getHours() + ":" + now.getMinutes(),
+ outdir: env.opts.destination
+ }, PUBLISHING_VARIANTS[vVariant.variant].defaults, templateConf, vVariant);
+
+ info("publishing as variant '" + vVariant.variant + "'");
+ debug("final configuration:");
+ debug(conf);
+
+ PUBLISHING_VARIANTS[vVariant.variant].processor(conf);
+
+ info("done with variant " + vVariant.variant);
+
+ } else {
+
+ info("cannot publish unknown variant '" + vVariant.variant + "' (ignored)");
+
+ }
+ }
+
+ var builtinSymbols = templateConf.builtinSymbols;
+ if ( builtinSymbols ) {
+ Link.getMissingTypes().filter(function($) {
+ return builtinSymbols.indexOf($) < 0;
+ }).sort().forEach(function($) {
+ error(" unresolved reference: " + $);
+ });
+ }
+ info("publishing done.");
+
+}
+
+//---- namespace tree --------------------------------------------------------------------------------
+
+/**
+ * Completes the tree of namespaces. Namespaces for which content is available
+ * but which have not been documented are created as dummy without documentation.
+ */
+function createNamespaceTree() {
+
+ info("create namespace tree (" + __db().count() + " symbols)");
+
+ var aRootNamespaces = [];
+ var aTypes = __db(function() { return isaClass(this); }).get();
+
+ for (var i = 0; i < aTypes.length; i++) { // loop with a for-loop as it can handle concurrent modifications
+
+ var symbol = aTypes[i];
+ if ( symbol.memberof ) {
+
+ var parent = lookup(symbol.memberof);
+ if ( !parent ) {
+ warning("create missing namespace '" + symbol.memberof + "' (referenced by " + symbol.longname + ")");
+ parent = makeNamespace(symbol.memberof);
+ __longnames[symbol.memberof] = parent;
+ __db.insert(parent);
+ aTypes.push(parent); // concurrent modification: parent will be processed later in this loop
+ }
+ symbol.__ui5.parent = parent;
+ parent.__ui5.children = parent.__ui5.children || [];
+ parent.__ui5.children.push(symbol);
+
+ } else if ( symbol.longname !== ANONYMOUS_LONGNAME ) {
+
+ aRootNamespaces.push(symbol);
+
+ }
+ }
+
+ return aRootNamespaces;
+}
+
+function makeNamespace(memberof) {
+
+ info("adding synthetic namespace symbol " + memberof);
+
+ var comment = [
+ "@name " + memberof,
+ "@namespace",
+ "@synthetic",
+ "@public"
+ ];
+
+ var symbol = new doclet.Doclet("/**\n * " + comment.join("\n * ") + "\n */", {});
+ symbol.__ui5 = {};
+
+ return symbol;
+}
+
+//---- inheritance hierarchy ----------------------------------------------------------------------------
+
+/**
+ * Calculates the inheritance hierarchy for all class/interface/namespace symbols.
+ * Each node in the tree has the content
+ *
+ * Node : {
+ * longname : {string} // name of the node (usually equals symbol.longname)
+ * symbol : {Symbol} // backlink to the original symbol
+ * base : {Node} // parent node or undefined for root nodes
+ * derived : {Node[]} // subclasses/-types
+ * }
+ *
+ */
+function createInheritanceTree() {
+
+ function makeDoclet(longname, lines) {
+ lines.push("@name " + longname);
+ var newDoclet = new doclet.Doclet("/**\n * " + lines.join("\n * ") + "\n */", {});
+ newDoclet.__ui5 = {};
+ __longnames[longname] = newDoclet;
+ __db.insert(newDoclet);
+ return newDoclet;
+ }
+
+ info("create inheritance tree (" + __db().count() + " symbols)");
+
+ var oTypes = __db(function() { return isaClass(this); });
+ var aRootTypes = [];
+
+ var oObject = lookup("Object");
+ if ( !oObject ) {
+ oObject = makeDoclet("Object", [
+ "@class",
+ "@synthetic",
+ "@public"
+ ]);
+ aRootTypes.push(oObject);
+ }
+
+ function getOrCreateClass(sClass, sExtendingClass) {
+ var oClass = lookup(sClass);
+ if ( !oClass ) {
+ warning("create missing class " + sClass + " (extended by " + sExtendingClass + ")");
+ var sBaseClass = 'Object';
+ if ( externalSymbols[sClass] ) {
+ sBaseClass = externalSymbols[sClass].extends || sBaseClass;
+ }
+ var oBaseClass = getOrCreateClass(sBaseClass, sClass);
+ oClass = makeDoclet(sClass, [
+ "@extends " + sBaseClass,
+ "@class",
+ "@synthetic",
+ "@public"
+ ]);
+ oClass.__ui5.base = oBaseClass;
+ oBaseClass.__ui5.derived = oBaseClass.__ui5.derived || [];
+ oBaseClass.__ui5.derived.push(oClass);
+ }
+ return oClass;
+ }
+
+ // link them according to the inheritance infos
+ oTypes.each(function(oClass) {
+
+ if ( oClass.longname === 'Object') {
+ return;
+ }
+
+ var sBaseClass = "Object";
+ if ( oClass.augments && oClass.augments.length > 0 ) {
+ if ( oClass.augments.length > 1 ) {
+ warning("multiple inheritance detected in " + oClass.longname);
+ }
+ sBaseClass = oClass.augments[0];
+ } else {
+ aRootTypes.push(oClass);
+ }
+
+ var oBaseClass = getOrCreateClass(sBaseClass, oClass.longname);
+ oClass.__ui5.base = oBaseClass;
+ oBaseClass.__ui5.derived = oBaseClass.__ui5.derived || [];
+ oBaseClass.__ui5.derived.push(oClass);
+
+ if ( oClass.implements ) {
+ for (var j = 0; j < oClass.implements.length; j++) {
+ var oInterface = lookup(oClass.implements[j]);
+ if ( !oInterface ) {
+ warning("create missing interface " + oClass.implements[j]);
+ oInterface = makeDoclet(oClass.implements[j], [
+ "@extends Object",
+ "@interface",
+ "@synthetic",
+ "@public"
+ ]);
+ oInterface.__ui5.base = oObject;
+ oObject.__ui5.derived = oObject.__ui5.derived || [];
+ oObject.__ui5.derived.push(oInterface);
+ }
+ oInterface.__ui5.implementations = oInterface.__ui5.implementations || [];
+ oInterface.__ui5.implementations.push(oClass);
+ }
+ }
+ });
+
+ function setStereotype(oSymbol, sStereotype) {
+ if ( !oSymbol ) {
+ return;
+ }
+ oSymbol.__ui5.stereotype = sStereotype;
+ var derived = oSymbol.__ui5.derived;
+ if ( derived ) {
+ for (var i = 0; i < derived.length; i++ ) {
+ if ( !derived[i].__ui5.stereotype ) {
+ setStereotype(derived[i], sStereotype);
+ }
+ }
+ }
+ }
+
+ setStereotype(lookup("sap.ui.core.Component"), "component");
+ setStereotype(lookup("sap.ui.core.Control"), "control");
+ setStereotype(lookup("sap.ui.core.Element"), "element");
+ setStereotype(lookup("sap.ui.base.Object"), "object");
+
+ // check for cyclic inheritance (not supported)
+ // Note: the check needs to run bottom up, not top down as a typical cyclic dependency never will end at the root node
+ oTypes.each(function(oStartClass) {
+ var visited = {};
+ function visit(oClass) {
+ if ( visited[oClass.longname] ) {
+ throw new Error("cyclic inheritance detected: " + JSON.stringify(Object.keys(visited)));
+ }
+ if ( oClass.__ui5.base ) {
+ visited[oClass.longname] = true;
+ visit(oClass.__ui5.base);
+ delete visited[oClass.longname];
+ }
+ }
+ visit(oStartClass);
+ });
+
+ // collect root nodes (and ignore pure packages)
+ return aRootTypes;
+ /*
+ return __db(function() {
+ return R_KINDS.test(this.kind) && this.__ui5 && this.__ui5.base == null;
+ }).get();
+ */
+}
+
+function collectMembers() {
+ __db().each(function($) {
+ if ( $.memberof ) {
+ var parent = lookup($.memberof);
+ if ( parent && isaClass(parent) ) {
+ parent.__ui5.members = parent.__ui5.members || [];
+ parent.__ui5.members.push($);
+ }
+ }
+ });
+}
+
+function mergeEventDocumentation() {
+
+ console.log("merging JSDoc event documentation into UI5 metadata");
+
+ var oTypes = __db(function() { return isaClass(this); });
+
+ oTypes.each(function(symbol) {
+
+ var metadata = symbol.__ui5.metadata;
+ var members = symbol.__ui5.members;
+
+ if ( !metadata || !metadata.events || Object.keys(metadata.events).length <= 0 || !members ) {
+ return;
+ }
+
+ // console.log('mergeing events for ' + symbol.longname);
+ members.forEach(function($) {
+ if ( $.kind === 'event' && !$.inherited
+ && ($.access === 'public' || $.access === 'protected' || $.access == null)
+ && metadata.events[$.name]
+ && Array.isArray($.params)
+ && !$.synthetic ) {
+
+ var event = metadata.events[$.name];
+ var modified = false;
+ //console.log("<<<<<<<");
+ //console.log(event);
+ //console.log("=======");
+ //console.log($);
+
+ $.params.forEach(function(param) {
+ var m = /^\w+\.getParameters\.(.*)$/.exec(param.name);
+ if ( m ) {
+ var pname = m[1];
+ var ui5param = event.parameters[pname] || ( event.parameters[pname] = {});
+ if ( ui5param.type == null ) {
+ ui5param.type = listTypes(param.type);
+ modified = true;
+ }
+ if ( ui5param.doc == null ) {
+ ui5param.doc = param.description;
+ modified = true;
+ }
+ }
+ });
+
+ if ( modified ) {
+ console.log(" merged documentation for managed event " + symbol.longname + "#" + $.name);
+ }
+
+ //console.log("=======");
+ //console.log(JSON.stringify(event, null, '\t'));
+ //console.log(">>>>>>>");
+ }
+ });
+
+ });
+
+}
+
+// ---- publishing -----------------------------------------------------------------------
+
+function publishClasses(symbols, aRootNamespaces, hierarchyRoots) {
+
+ // create output dir
+ fs.mkPath(path.join(conf.outdir, conf.symbolsDir));
+
+ // get a list of all the classes in the symbolset
+ var classes = symbols(function() {
+ return isaClass(this) && conf.filter(this);
+ }).order("longname");
+
+ // create unique file names
+ __uniqueFilenames = {};
+ var filenames = {};
+ classes.get().sort(sortByAlias).forEach(function(symbol) {
+ var filename = escape(symbol.longname);
+ if ( filenames.hasOwnProperty(filename.toUpperCase()) && (filenames[filename.toUpperCase()].longname !== symbol.longname) ) {
+ // find an unused filename by appending "-n" where n is an integer > 0
+ for (var j = 1; filenames.hasOwnProperty(filename.toUpperCase() + "-" + j); j++);
+ warning("duplicate symbol names " + filenames[filename.toUpperCase()].longname + " and " + symbol.longname + ", renaming the latter to " + filename + "-" + j);
+ filename = filename + "-" + j;
+ }
+ filenames[filename.toUpperCase()] = symbol;
+ __uniqueFilenames[symbol.longname] = filename;
+ });
+ filenames = null;
+
+ // create a class index, displayed in the left-hand column of every class page
+ var classTemplate;
+ if ( !conf.contentOnly ) {
+ info("create embedded class index");
+ Link.base = "../";
+ Link.baseSymbols = "";
+ classTemplate = 'classWithIndex.html.tmpl';
+ publish.header = processTemplate("_header.tmpl", classes);
+ publish.footer = processTemplate("_footer.tmpl", classes);
+ publish.classesIndex = processTemplate("_navIndex.tmpl", classes); // kept in memory
+ } else {
+ var newStyle = !!pluginConf.newStyle;
+ classTemplate = newStyle ? "class-new.html.tmpl" : "class.html.tmpl";
+ publish.header = '';
+ publish.footer = '';
+ publish.classesIndex = '';
+
+ // instead create an index as XML
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ processTemplateAndSave("index.xml.tmpl", aRootNamespaces, "index.xml");
+ }
+
+ // create each of the class pages
+ info("create class/namespace pages");
+ Link.base = "../";
+ Link.baseSymbols = "";
+ classes.each(function(symbol) {
+ var sOutName = path.join(conf.symbolsDir, __uniqueFilenames[symbol.longname]) + conf.ext;
+ processTemplateAndSave(classTemplate, symbol, sOutName);
+ });
+
+ if ( conf.modulePages ) {
+ info("create module pages");
+ Link.base = "../";
+ Link.baseSymbols = "../" + conf.symbolsDir;
+ fs.mkPath(path.join(conf.outdir, conf.modulesDir));
+ groupByModule(classes.get()).forEach(function(module) {
+ var sOutName = path.join(conf.modulesDir, module.name.replace(/\//g, '_')) + conf.ext;
+ processTemplateAndSave("module.html.tmpl", module, sOutName);
+ });
+ }
+
+ // regenerate the index with a different link base, used in the overview pages
+ info("create global class/namespace index");
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ publish.header = processTemplate("_header.tmpl", classes);
+ publish.footer = processTemplate("_footer.tmpl", classes);
+ publish.classesIndex = processTemplate("_navIndex.tmpl", classes);
+
+ // create the all classes index
+ processTemplateAndSave("index.html.tmpl", classes, "index" + conf.ext);
+
+ // create the class hierarchy page
+ if ( conf.hierarchyIndex ) {
+ info("create class hierarchy index");
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ processTemplateAndSave("hierarchy.html.tmpl", hierarchyRoots.filter(conf.filter), "hierarchy" + conf.ext);
+ }
+
+ if ( conf.sinceIndex ) {
+ info("create API by version index");
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ var sinceSymbols = symbols(function() {
+ var r = !!this.since && !this.inherited && conf.filter(this);
+ if ( r && this.memberof ) {
+ var parent = lookup(this.memberof);
+ // filter out symbol when parent is filtered out
+ if ( !parent || !conf.filter(parent) ) {
+ debug("since index: filtering out " + this.longname + ", member of " + this.memberof);
+ r = false;
+ }
+ if ( parent && parent.since === this.since ) {
+ // r = false;
+ }
+ }
+ return r;
+ }).order("longname");
+ processTemplateAndSave("since.html.tmpl", sinceSymbols, "since" + conf.ext);
+ }
+
+ if ( conf.deprecationIndex ) {
+ info("create deprecated API index");
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ var deprecatedSymbols = symbols(function() {
+ return !!this.deprecated && !this.inherited && conf.filter(this);
+ }).order("longname");
+ processTemplateAndSave("deprecation.html.tmpl", deprecatedSymbols, "deprecation" + conf.ext);
+ }
+
+ if ( conf.experimentalIndex ) {
+ info("create experimental API index");
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ var experimentalSymbols = symbols(function() {
+ return !!this.experimental && !this.inherited && conf.filter(this);
+ }).order("longname");
+ processTemplateAndSave("experimental.html.tmpl", experimentalSymbols, "experimental" + conf.ext);
+ }
+
+ if ( conf.securityIndex ) {
+ info("create Security Relevant API index");
+
+ var securityRelevantSymbols = {};
+ A_SECURITY_TAGS.forEach(function(oTagDef) {
+ securityRelevantSymbols[oTagDef.name.toLowerCase()] = { tag : oTagDef, symbols: [] };
+ });
+ symbols().each(function($) {
+ var tags = $.tags;
+ if ( !$.inherited && conf.filter($) && tags ) {
+ for (var i = 0; i < tags.length; i++) {
+ if ( rSecurityTags.test(tags[i].title) ) {
+ securityRelevantSymbols[tags[i].title.toLowerCase()].symbols.push({ symbol: $, tag : tags[i]});
+ }
+ }
+ }
+ });
+
+ Link.base = "";
+ Link.baseSymbols = conf.symbolsDir;
+ processTemplateAndSave("security.html.tmpl", securityRelevantSymbols, "security" + conf.ext);
+ }
+
+ classes = null;
+
+ // copy needed mimes
+ info("copy mimes");
+ // copy the template's static files to outdir
+ var templatePath = env.opts.template;
+ var fromDir = path.join(templatePath, 'static');
+ var staticFiles = fs.ls(fromDir, 3);
+ staticFiles.forEach(function(fileName) {
+ var toDir = fs.toDir( fileName.replace(fromDir, conf.outdir) );
+ fs.mkPath(toDir);
+ fs.copyFileSync(fileName, toDir);
+ });
+
+ __uniqueFilenames = null;
+
+ info("publishing done.");
+}
+
+// ---- helper functions for the templates ----
+
+var rSinceVersion = /^([0-9]+(?:\.[0-9]+(?:\.[0-9]+)?)?([-.][0-9A-Z]+)?)(?:\s|$)/i;
+
+function extractVersion(value) {
+
+ if ( !value ) {
+ return;
+ }
+
+ if ( value === true ) {
+ value = '';
+ } else {
+ value = String(value);
+ }
+
+ var m = rSinceVersion.exec(value);
+ return m ? m[1] : undefined;
+
+}
+
+var rSince = /^(?:as\s+of|since)(?:\s+version)?\s*([0-9]+(?:\.[0-9]+(?:\.[0-9]+)?)?([-.][0-9A-Z]+)?)(?:\.$|\.\s+|[,:]\s*|\s-\s*|\s|$)/i;
+
+function extractSince(value) {
+
+ if ( !value ) {
+ return;
+ }
+
+ if ( value === true ) {
+ value = '';
+ } else {
+ value = String(value);
+ }
+
+ var m = rSince.exec(value);
+ if ( m ) {
+ return {
+ since : m[1],
+ pos : m[0].length,
+ value : value.slice(m[0].length).trim()
+ }
+ }
+
+ return {
+ pos : 0,
+ value: value.trim()
+ };
+
+}
+
+function sortByAlias(a, b) {
+ var partsA = a.longname.split(/[.#]/);
+ var partsB = b.longname.split(/[.#]/);
+ var i = 0;
+ while ( i < partsA.length && i < partsB.length ) {
+ if ( partsA[i].toLowerCase() < partsB[i].toLowerCase() )
+ return -1;
+ if ( partsA[i].toLowerCase() > partsB[i].toLowerCase() )
+ return 1;
+ i++;
+ }
+ if ( partsA.length < partsB.length )
+ return -1;
+ if ( partsA.length > partsB.length )
+ return 1;
+ // as a last resort, try to compare the aliases case sensitive in case we have aliases that only
+ // differ in case like with "sap.ui.model.type" and "sap.ui.model.Type"
+ if ( a.longname < b.longname ) {
+ return -1;
+ }
+ if ( a.longname > b.longname ) {
+ return 1;
+ }
+ return 0;
+}
+
+/*
+function isNonEmptyNamespace($) {
+ return $.isNamespace && (
+ ($.properties && $.properties.length > 0) ||
+ ($.methods && $.methods.length > 0) ||
+ ($.augments && $.augments.length > 0) ||
+ ($.children && $.children.length > 0));
+};*/
+
+/** Just the first sentence (up to a full stop). Should not break on dotted variable names. */
+function summarize(desc) {
+ if ( desc != null ) {
+ desc = String(desc).replace(/\s+/g, ' ').
+ replace(/"'/g, '"').
+ replace(/^(<\/?p>|
|\s)+/, '');
+
+ var match = /([\w\W]+?\.)[^a-z0-9_$]/i.exec(desc);
+ return match ? match[1] : desc;
+ }
+}
+
+/** Make a symbol sorter by some attribute. */
+function makeSortby(/* fields ...*/) {
+ var aFields = Array.prototype.slice.apply(arguments),
+ aNorms = [],
+ aFuncs = [];
+ for (var i = 0; i < arguments.length; i++) {
+ aNorms[i] = 1;
+ if ( typeof aFields[i] === 'function' ) {
+ aFuncs[i] = aFields[i];
+ continue;
+ }
+ aFuncs[i] = function($,n) { return $[n]; };
+ if ( aFields[i].indexOf("!") === 0 ) {
+ aNorms[i] = -1;
+ aFields[i] = aFields[i].slice(1);
+ }
+ if ( aFields[i] === 'deprecated' ) {
+ aFuncs[i] = function($,n) { return !!$[n]; };
+ } else if ( aFields[i] === 'static' ) {
+ aFields[i] = 'scope';
+ aFuncs[i] = function($,n) { return $[n] === 'static'; };
+ } else if ( aFields[i].indexOf("#") === 0 ) {
+ aFields[i] = aFields[i].slice(1);
+ aFuncs[i] = function($,n) { return $.comment.getTag(n).length > 0; };
+ }
+ }
+ return function(a, b) {
+ // info("compare " + a.longname + " : " + b.longname);
+ var r = 0,i,va,vb;
+ for (i = 0; r === 0 && i < aFields.length; i++) {
+ va = aFuncs[i](a,aFields[i]);
+ vb = aFuncs[i](b,aFields[i]);
+ if ( va && !vb ) {
+ r = -aNorms[i];
+ } else if ( !va && vb ) {
+ r = aNorms[i];
+ } else if ( va && vb ) {
+ va = String(va).toLowerCase();
+ vb = String(vb).toLowerCase();
+ if (va < vb) r = -aNorms[i];
+ if (va > vb) r = aNorms[i];
+ }
+ // debug(" " + aFields[i] + ": " + va + " ? " + vb + " = " + r);
+ }
+ return r;
+ }
+}
+
+/** Pull in the contents of an external file at the given path. */
+
+function processTemplateAndSave(sTemplateName, oData, sOutputName) {
+ var sResult = processTemplate(sTemplateName, oData);
+ if ( conf.normalizeWhitespace && /\.html$/.test(sOutputName) ) {
+ sResult = normalizeWhitespace(sResult);
+ }
+ var sOutpath = path.join(conf.outdir, sOutputName);
+ try {
+ fs.writeFileSync(sOutpath, sResult, 'utf8');
+ } catch (e) {
+ error("failed to write generated file '" + sOutpath + "':" + (e.message || String(e)));
+ }
+}
+
+function processTemplate(sTemplateName, data) {
+ debug("processing template '" + sTemplateName + "' for " + data.longname);
+
+ try {
+ var result = view.render(sTemplateName, {
+ asPlainSummary: asPlainSummary,
+ bySimpleName: bySimpleName,
+ childrenOfKind: childrenOfKind,
+ conf: conf,
+ data: data,
+ getConstructorDescription : getConstructorDescription,
+ getNSClass: getNSClass,
+ groupByVersion: groupByVersion,
+ extractSince: extractSince,
+ include: processTemplate,
+ Link: Link,
+ listTypes: listTypes,
+ linkTypes: linkTypes,
+ makeExample: makeExample,
+ makeLinkList: makeLinkList,
+ makeLinkToSymbolFile: makeLinkToSymbolFile,
+ makeSignature: makeSignature,
+ makeSortby: makeSortby,
+ publish : publish,
+ formatText: formatText,
+ simpleNameOf: simpleNameOf,
+ sortByAlias: sortByAlias,
+ summarize: summarize,
+ Version : Version
+ });
+ } catch (e) {
+ if ( e.source ) {
+ var filename = path.join(env.opts.destination, sTemplateName + ".js");
+ console.log("**** failed to process template, source written to " + filename);
+ fs.mkPath(path.dirname(filename));
+ fs.writeFileSync(filename, e.source, 'utf8');
+ }
+ console.log("error while processing " + sTemplateName);
+ throw e;
+ }
+ debug("processing template done.");
+ return result;
+}
+
+function groupByVersion(symbols, extractVersion) {
+
+ var map = {};
+
+ symbols.forEach(function(symbol) {
+
+ var version = extractVersion(symbol),
+ key = String(version);
+
+ if ( !map[key] ) {
+ map[key] = { version: version, symbols : [] };
+ }
+ map[key].symbols.push(symbol);
+
+ });
+
+ var groups = Object.keys(map).map(function(key) { return map[key]; });
+
+ return groups.sort(function(a,b) {
+ if ( !a.version && b.version ) {
+ return -1;
+ } else if ( a.version && !b.version ) {
+ return 1;
+ } else if ( a.version && b.version ) {
+ return -a.version.compareTo(b.version);
+ }
+ return 0;
+ });
+}
+
+function groupByModule(symbols) {
+
+ var map = {};
+
+ function add(key, symbol) {
+ if ( !map[key] ) {
+ map[key] = { name: key, symbols : [] };
+ }
+ if ( map[key].symbols.indexOf(symbol) < 0 ) {
+ map[key].symbols.push(symbol);
+ }
+ }
+
+ symbols.forEach(function(symbol) {
+
+ var key = symbol.__ui5.module;
+
+ if ( key ) {
+ add(key, symbol);
+ if ( symbol.__ui5.members ) {
+ symbol.__ui5.members.forEach(function($) {
+ if ( !$.inherited && $.__ui5.module && $.__ui5.module !== key && conf.filter($) ) {
+ add($.__ui5.module, $);
+ }
+ });
+ }
+ }
+
+ });
+
+ var groups = Object.keys(map).map(function(key) { return map[key]; });
+
+ return groups;
+}
+
+
+var REGEXP_TAG = /<(\/?(?:[A-Z][A-Z0-9_-]*:)?[A-Z][A-Z0-9_-]*)(?:\s[^>]*)?>/gi;
+
+/**
+ * Removes unnecessary whitespace from an HTML document:
+ * - if the text between two adjacent HTML tags consists of whitespace only, the whole text is removed
+ * - otherwise, any sequence of whitespace in the text is reduced to a single blank
+ * - inside a tag, whitespace is preserved
+ *
+ * Whitespace inside an element tag is not touched (although it could be normalized as well)
+ * @param {string} content raw HTML file
+ * @returns {string} HTML file with normalized whitespace
+ */
+function normalizeWhitespace(content) {
+ var compressed = '',
+ preformatted = 0,
+ p = 0, m, text;
+
+ REGEXP_TAG.lastIndex = 0;
+ while ( m = REGEXP_TAG.exec(content) ) {
+ if ( m.index > p ) {
+ text = content.slice(p, m.index);
+ if ( preformatted ) {
+ compressed += text;
+ // console.log(' "' + text + '" (preformatted)');
+ } else {
+ text = text.replace(/\s+/g,' ');
+ if ( text.trim() ) {
+ compressed += text;
+ }
+ // console.log(' "' + text + '" (trimmed)');
+ }
+ }
+
+ compressed += m[0];
+ // console.log(' "' + m[0] + '" (tag)');
+ p = m.index + m[0].length;
+
+ if ( /^pre$/i.test(m[1]) ) {
+ preformatted++;
+ } else if ( /^\/pre$/i.test(m[1]) && preformatted ) {
+ preformatted--;
+ }
+
+ }
+
+ if ( content.length > p ) {
+ text = content.slice(p, content.length);
+ if ( preformatted ) {
+ compressed += text;
+ // console.log(' "' + text + '" (preformatted)');
+ } else {
+ text = text.replace(/\s+/g,' ');
+ if ( text.trim() ) {
+ compressed += text;
+ }
+ // console.log(' "' + text + '" (trimmed)');
+ }
+ }
+
+ return compressed;
+}
+
+function makeLinkToSymbolFile(longname) {
+ return Link.baseSymbols + __uniqueFilenames[longname] + conf.ext;
+}
+
+function simpleNameOf(longname) {
+ longname = String(longname);
+ var p = longname.lastIndexOf('.');
+ return p < 0 ? longname : longname.slice(p + 1);
+}
+
+function bySimpleName(a,b) {
+ if ( a === b ) {
+ return 0;
+ }
+ var simpleA = simpleNameOf(a);
+ var simpleB = simpleNameOf(b);
+ if ( simpleA === simpleB ) {
+ return a < b ? -1 : 1;
+ } else {
+ return simpleA < simpleB ? -1 : 1;
+ }
+}
+
+/** Build output for displaying function parameters. */
+function makeSignature(params) {
+ var r = ['('], desc;
+ if ( params ) {
+ for (var i = 0, p; p = params[i]; i++) {
+ // ignore @param tags for 'virtual' params that are used to document members of config-like params
+ // (e.g. like "@param param1.key ...")
+ if (p.name && p.name.indexOf('.') == -1) {
+ if (i > 0)
+ r.push(', ');
+
+ r.push('');
+ r.push(p.name);
+ r.push('');
+ if ( p.optional )
+ r.push('?');
+ }
+ }
+ }
+ r.push(')');
+ return r.join('');
+}
+
+
+/*
+ * regexp to recognize important places in the text
+ *
+ * Capturing groups of the RegExp:
+ * group 1: begin of a pre block
+ * group 2: end of a pre block
+ * group 3: begin of a header/ul/ol/table, implicitly ends a paragraph
+ * group 4: end of a header/ul/ol/table, implicitly starts a new paragraph
+ * group 5: target portion of an inline @link tag
+ * group 6: (optional) text portion of an inline link tag
+ * group 7: an empty line which implicitly starts a new paragraph
+ *
+ * [-------
block -------] [----------------------- some flow content -----------------------] [---- an inline {@link ...} tag ----] [---------- an empty line ---------] */
+var rFormatText = /(
]*)?>)|(<\/pre>)|(<(?:h[\d+]|ul|ol|table)(?:\s[^>]*)?>)|(<\/(?:h[\d+]|ul|ol|table)>)|\{@link\s+([^}\s]+)(?:\s+([^\}]*))?\}|((?:\r\n|\r|\n)[ \t]*(?:\r\n|\r|\n))/gi;
+
+function formatText(text) {
+
+ if ( !text ) {
+ return '';
+ }
+
+ var inpre = false,
+ paragraphs = 0;
+
+ text = String(text).replace(rFormatText, function(match, pre, endpre, flow, endflow, linkTarget, linkText, emptyline) {
+ if ( pre ) {
+ inpre = true;
+ return pre.replace(/
/gi, "
").replace(/
/gi, "
");
+ } else if ( endpre ) {
+ inpre = false;
+ } else if ( flow ) {
+ if ( !inpre ) {
+ paragraphs++;
+ return '
'; + } + } else if ( emptyline ) { + if ( !inpre ) { + paragraphs++; + return '
'; + } + } else if ( linkTarget ) { + if ( !inpre ) { + // convert to a hyperlink + var link = new Link().toSymbol(linkTarget); + // if link tag contained a replacement text, use it + if ( linkText && linkText.trim()) { + link = link.withText(linkText.trim()); + } + return link.toString(); + } + } + return match; + }); + + if ( paragraphs > 0 ) { + text = '
' + text + '
'; + } + + // remove empty paragraphs + text = text.replace(/\s*<\/p>/g, '');
+
+ return text;
+}
+
+
+//console.log("#### samples");
+//console.log(formatText(summarize("This is a first\n\nparagraph with empty \n \n \nlines in it. This is the remainder.")));
+
+function childrenOfKind(data, kind) {
+ /* old version based on TaffyDB (slow)
+ var oChildren = symbolSet({kind: kind, memberof: data.longname === GLOBAL_LONGNAME ? {isUndefined: true} : data.longname}).filter(function() { return conf.filter(this); });
+ return {
+ own : oChildren.filter({inherited: {isUndefined:true}}).get().sort(makeSortby("!deprecated","static","name")),
+ borrowed : groupByContributors(data, oChildren.filter({inherited: true}).get().sort(makeSortby("name")))
+ } */
+ var oResult = {
+ own: [],
+ borrowed: []
+ };
+ //console.log("calculating kind " + kind + " from " + data.longname);
+ //console.log(data);
+ var fnFilter;
+ switch (kind) {
+ case 'property':
+ fnFilter = function($) {
+ return $.kind === 'constant' || ($.kind === 'member' && !$.isEnum);
+ }
+ break;
+ case 'event':
+ fnFilter = function($) {
+ return $.kind === 'event';
+ }
+ break;
+ case 'method':
+ fnFilter = function($) {
+ return $.kind === 'function';
+ }
+ break;
+ default:
+ // default: none
+ fnFilter = function($) { return false; };
+ break;
+ }
+
+ if ( data.__ui5.members ) {
+ data.__ui5.members.forEach(function($) {
+ if ( fnFilter($) && conf.filter($) ) {
+ oResult[$.inherited ? 'borrowed' : 'own'].push($);
+ }
+ });
+ }
+ oResult.own.sort(makeSortby("!deprecated","static","name"));
+ oResult.borrowed = groupByContributors(data, oResult.borrowed);
+
+ return oResult;
+}
+
+/**
+ * Determines the set of contributors of the given borrowed members.
+ * The contributors are sorted according to the inheritance hierarchy:
+ * first the base class of symbol, then the base class of the base class etc.
+ * Any contributors that can not be found in the hierarchy are appended
+ * to the set.
+ *
+ * @param symbol of which these are the members
+ * @param borrowedMembers set of borrowed members to determine the contributors for
+ * @return sorted array of contributors
+ */
+function groupByContributors(symbol, aBorrowedMembers) {
+
+ var MAX_ORDER = 1000, // a sufficiently large number
+ mContributors = {},
+ aSortedContributors = [],
+ i,order;
+
+ aBorrowedMembers.forEach(function($) {
+ $ = lookup($.inherits);
+ if ($ && mContributors[$.memberof] == null) {
+ mContributors[$.memberof] = { order : MAX_ORDER, items : [$] };
+ } else {
+ mContributors[$.memberof].items.push($);
+ }
+ });
+
+ // order contributors according to their distance in the inheritance hierarchy
+ order = 0;
+ (function handleAugments(oSymbol) {
+ var i,oTarget,aParentsToVisit;
+ if ( oSymbol.augments ) {
+ aParentsToVisit = [];
+ // first assign an order
+ for (i = 0; i < oSymbol.augments.length; i++) {
+ if ( mContributors[oSymbol.augments[i]] != null && mContributors[oSymbol.augments[i]].order === MAX_ORDER ) {
+ mContributors[oSymbol.augments[i]].order = ++order;
+ aParentsToVisit.push(oSymbol.augments[i]);
+ }
+ }
+ // only then dive into parents (breadth first search)
+ for (i = 0; i < aParentsToVisit.length; i++) {
+ oTarget = lookup(aParentsToVisit);
+ if ( oTarget ) {
+ handleAugments(oTarget);
+ }
+ }
+ }
+ }(symbol));
+
+ // convert to an array and sort by order
+ for (i in mContributors) {
+ aSortedContributors.push(mContributors[i]);
+ }
+ aSortedContributors.sort(function (a,b) { return a.order - b.order; });
+
+ return aSortedContributors;
+
+}
+
+function makeLinkList(aSymbols) {
+ return aSymbols
+ .sort(makeSortby("name"))
+ .map(function($) { return new Link().toSymbol($.longname).withText($.name); })
+ .join(", ");
+}
+
+// ---- type parsing ---------------------------------------------------------------------------------------------
+
+function TypeParser(defaultBuilder) {
+
+ /* TODO
+ * - function(this:) // type of this
+ * - function(new:) // constructor
+ */
+ var rLexer = /\s*(Array\.?<|Object\.?<|Set\.?<|Promise\.?<|function\(|\{|:|\(|\||\}|>|\)|,|\[\]|\*|\?|!|\.\.\.)|\s*(\w+(?:[.#~]\w+)*)|./g;
+
+ var input,
+ builder,
+ token,
+ tokenStr;
+
+ function next(expected) {
+ if ( expected !== undefined && token !== expected ) {
+ throw new SyntaxError("TypeParser: expected '" + expected + "', but found '" + tokenStr + "' (pos: " + rLexer.lastIndex + ", input='" + input + "')");
+ }
+ var match = rLexer.exec(input);
+ if ( match ) {
+ tokenStr = match[1] || match[2];
+ token = match[1] || (match[2] && 'symbol');
+ if ( !token ) {
+ throw new SyntaxError("TypeParser: unexpected '" + tokenStr + "' (pos: " + match.index + ", input='" + input + "')");
+ }
+ } else {
+ tokenStr = token = null;
+ }
+ }
+
+ function parseType() {
+ var nullable = false;
+ var mandatory = false;
+ if ( token === '?' ) {
+ next();
+ nullable = true;
+ } else if ( token === '!' ) {
+ next();
+ mandatory = true;
+ }
+
+ var type;
+
+ if ( token === 'Array.<' || token === 'Array<' ) {
+ next();
+ var componentType = parseType();
+ next('>');
+ type = builder.array(componentType);
+ } else if ( token === 'Object.<' || token === 'Object<' ) {
+ next();
+ var keyType;
+ var valueType = parseType();
+ if ( token === ',' ) {
+ next();
+ keyType = valueType;
+ valueType = parseType();
+ } else {
+ keyType = builder.synthetic(builder.simpleType('string'));
+ }
+ next('>');
+ type = builder.object(keyType, valueType);
+ } else if ( token === 'Set.<' || token === 'Set<' ) {
+ next();
+ var elementType = parseType();
+ next('>');
+ type = builder.set(elementType);
+ } else if ( token === 'Promise.<' || token === 'Promise<' ) {
+ next();
+ var elementType = parseType();
+ next('>');
+ type = builder.promise(elementType);
+ } else if ( token === 'function(' ) {
+ next();
+ var thisType, constructorType, paramTypes = [], returnType;
+ if ( tokenStr === 'this' ) {
+ next();
+ next(':');
+ thisType = parseType();
+ if ( token === ',' ) {
+ next();
+ }
+ } else if ( tokenStr === 'new' ) {
+ next();
+ next(':');
+ constructorType = parseType();
+ if ( token === ',' ) {
+ next();
+ }
+ }
+ while ( token === 'symbol' || token === '...' ) {
+ var repeatable = token === '...';
+ if ( repeatable) {
+ next();
+ }
+ var paramType = parseType();
+ if ( repeatable ) {
+ paramType = builder.repeatable(paramType);
+ }
+ paramTypes.push(paramType);
+ if ( token === ',' ) {
+ if ( repeatable ) {
+ throw new SyntaxError("TypeParser: only the last parameter of a function can be repeatable (pos: " + rLexer.lastIndex + ", input='" + input + "')");
+ }
+ next();
+ }
+ }
+ next(')');
+ if ( token === ':' ) {
+ next(':');
+ returnType = parseType();
+ }
+ type = builder.function(paramTypes, returnType, thisType, constructorType);
+ } else if ( token === '{' ) {
+ var structure = Object.create(null);
+ var propName,propType;
+ next();
+ do {
+ propName = tokenStr;
+ if ( !/^\w+$/.test(propName) ) {
+ throw new SyntaxError("TypeParser: structure field must have a simple name (pos: " + rLexer.lastIndex + ", input='" + input + "', field:'" + propName + "')");
+ }
+ next('symbol');
+ if ( token === ':' ) {
+ next();
+ propType = parseType();
+ } else {
+ propType = builder.synthetic(builder.simpleType('any'));
+ }
+ structure[propName] = propType;
+ if ( token === '}' ) {
+ break;
+ }
+ next(',');
+ } while (token);
+ next('}');
+ type = builder.structure(structure);
+ } else if ( token === '(' ) {
+ next();
+ type = parseTypes();
+ next(')');
+ } else if ( token === '*' ) {
+ next();
+ type = builder.simpleType('*');
+ } else {
+ type = builder.simpleType(tokenStr);
+ next('symbol');
+ while ( token === '[]' ) {
+ next();
+ type = builder.array(type);
+ }
+ }
+ if ( nullable ) {
+ type = builder.nullable(type);
+ }
+ if ( mandatory ) {
+ type = builder.mandatory(type);
+ }
+ return type;
+ }
+
+ function parseTypes() {
+ var types = [];
+ do {
+ types.push(parseType());
+ if ( token !== '|' ) {
+ break;
+ }
+ next();
+ } while (token);
+ return types.length === 1 ? types[0] : builder.union(types);
+ }
+
+ this.parse = function(typeStr, tempBuilder) {
+ builder = tempBuilder || defaultBuilder || TypeParser.ASTBuilder;
+ input = String(typeStr);
+ rLexer.lastIndex = 0;
+ next();
+ var type = parseTypes();
+ next(null);
+ return type;
+ }
+
+}
+
+TypeParser.ASTBuilder = {
+ simpleType: function(type) {
+ return {
+ type: 'simpleType',
+ name: type
+ };
+ },
+ array: function(componentType) {
+ return {
+ type: 'array',
+ component: componentType
+ };
+ },
+ object: function(keyType, valueType) {
+ return {
+ type: 'object',
+ key: keyType,
+ value: valueType
+ };
+ },
+ set: function(elementType) {
+ return {
+ type: 'set',
+ element: elementType
+ };
+ },
+ promise: function(fulfillmentType) {
+ return {
+ type: 'promise',
+ fulfill: fulfillmentType
+ };
+ },
+ function: function(paramTypes, returnType, thisType, constructorType) {
+ return {
+ type: 'function',
+ params: paramTypes,
+ return: returnType,
+ this: thisType,
+ constructor: constructorType
+ };
+ },
+ structure: function(structure) {
+ return {
+ type: 'structure',
+ fields: structure
+ };
+ },
+ union: function(types) {
+ return {
+ type: 'union',
+ types: types
+ };
+ },
+ synthetic: function(type) {
+ type.synthetic = true;
+ return type;
+ },
+ nullable: function(type) {
+ type.nullable = true;
+ return type;
+ },
+ mandatory: function(type) {
+ type.mandatory = true;
+ return type;
+ },
+ repeatable: function(type) {
+ type.repeatable = true;
+ return type;
+ }
+};
+
+TypeParser.LinkBuilder = function(style, encoded) {
+ this.linkStyle = style;
+ this.lt = encoded ? "<" : "<";
+ this.gt = encoded ? ">" : ">";
+};
+TypeParser.LinkBuilder.prototype = {
+ safe: function(type) {
+ return type.needsParenthesis ? "(" + type.str + ")" : type.str;
+ },
+ simpleType: function(type) {
+ if ( this.linkStyle === 'text' ) {
+ return {
+ str: type
+ };
+ }
+ var link = new Link().toSymbol(type);
+ if ( this.linkStyle === 'short' ) {
+ link.withText(simpleNameOf(type)).withTooltip(type);
+ }
+ return {
+ str: link.toString()
+ };
+ },
+ array: function(componentType) {
+ if ( componentType.needsParenthesis ) {
+ return {
+ str: "Array.<" + componentType.str + ">"
+ };
+ }
+ return {
+ str: componentType.str + "[]"
+ };
+ },
+ object: function(keyType, valueType) {
+ if ( keyType.synthetic ) {
+ return {
+ str: "Object." + this.lt + valueType.str + this.gt
+ };
+ }
+ return {
+ str: "Object." + this.lt + keyType.str + "," + valueType.str + this.gt
+ };
+ },
+ set: function(elementType) {
+ return {
+ str: 'Set.' + this.lt + elementType.str + this.gt
+ };
+ },
+ promise: function(fulfillmentType) {
+ return {
+ str: 'Promise.' + this.lt + fulfillmentType.str + this.gt
+ };
+ },
+ function: function(paramTypes, returnType) {
+ return {
+ str: "function(" + paramTypes.map(function(type) { return type.str; }).join(',') + ")" + ( returnType ? " : " + this.safe(returnType) : "")
+ };
+ },
+ structure: function(structure) {
+ var r = [];
+ for ( var fieldName in structure ) {
+ if ( structure[fieldName].synthetic ) {
+ r.push(fieldName);
+ } else {
+ r.push(fieldName + ":" + structure[fieldName].str);
+ }
+ }
+ return {
+ str: "{" + r.join(",") + "}"
+ };
+ },
+ union: function(types) {
+ return {
+ needsParenthesis: true,
+ str: types.map( this.safe.bind(this) ).join('|')
+ };
+ },
+ synthetic: function(type) {
+ type.synthetic = true;
+ return type;
+ },
+ nullable: function(type) {
+ type.str = "?" + type.str;
+ return type;
+ },
+ mandatory: function(type) {
+ type.str = "!" + type.str;
+ return type;
+ },
+ repeatable: function(type) {
+ type.str = "..." + type.str;
+ return type;
+ }
+};
+
+var typeParser = new TypeParser();
+var _SHORT_BUILDER = new TypeParser.LinkBuilder('short', true);
+var _LONG_BUILDER = new TypeParser.LinkBuilder('long', true);
+var _TEXT_BUILDER = new TypeParser.LinkBuilder('text', false);
+var _TEXT_BUILDER_ENCODED = new TypeParser.LinkBuilder('text', true);
+
+/*
+function testTypeParser(type) {
+ console.log("Type: '" + type + "' gives AST");
+ try {
+ console.log(typeParser.parse(type));
+ } catch (e) {
+ console.log("**** throws: " + e);
+ }
+}
+
+testTypeParser("Array. \s*(\r\n|\r|\n)?/gm, "\n");
+ // skip empty documentation
+ if ( !s ) return;
+
+ // for namespaces, enforce the @.memberof tag
+ if ( sMetaType === "namespace" && $.memberof && s.indexOf("@memberof") < 0 ) {
+ s = s + "\n@memberof " + $.memberof;
+ }
+
+ writeln("/**\n * " + s.replace(/\n/g, "\n * ") + "\n */");
+
+ /*
+ writeln("/**");
+ writeln(s.split(/\r\n|\r|\n/g).map(function($) { return " * " + $;}).join("\r\n"));
+ writeln(" * /");
+ */
+
+ }
+
+ function signature($) {
+ var p = $.params,
+ r = [],
+ i;
+ if ( p ) {
+ for (i = 0; i < p.length; i++) {
+ // ignore @param tags for 'virtual' params that are used to document members of config-like params
+ // (e.g. like "@param param1.key ...")
+ if (p[i].name && p[i].name.indexOf('.') < 0) {
+ r.push(p[i].name);
+ }
+ }
+ }
+ return r.join(',');
+ }
+
+ function qname(member,parent) {
+ var r = member.memberof;
+ if ( member.scope !== 'static' ) {
+ r += ".prototype";
+ }
+ return (r ? r + "." : "") + member.name;
+ }
+
+ var mValues = {
+ "boolean" : "false",
+ "int" : "0",
+ "float" : "0.0",
+ "number" : "0.0",
+ "string" : "\"\"",
+ "object" : "new Object()",
+ "function" : "function() {}"
+ };
+
+ function valueForType(type) {
+ if ( type && type.names && type.names[0] ) {
+ type = type.names[0];
+ if ( REGEXP_ARRAY_TYPE.test(type) || type.indexOf("[]") > 0 ) {
+ return "new Array()";
+ } else if ( mValues[type] ) {
+ return mValues[type];
+ } else if ( type.indexOf(".") > 0 ) {
+ return "new " + type + "()";
+ } else {
+ // return "/* unsupported type: " + member.type + " */ null";
+ return "null";
+ }
+ }
+ }
+
+ function value(member) {
+ return valueForType(member.type);
+ }
+
+ function retvalue(member) {
+ //console.log(member);
+ var r = valueForType(member.type || (member.returns && member.returns.length && member.returns[0] && member.returns[0].type && member.returns[0].type));
+ if ( r ) {
+ return "return " + r + ";";
+ }
+ return "";
+ }
+
+ var sortedSymbols = symbols.slice(0).filter(function($) { return isaClass($) && isAPI($) && !$.synthetic; }).sort(sortByAlias); // sort only a copy(!) of the symbols, otherwise the SymbolSet lookup is broken
+ sortedSymbols.forEach(function(symbol) {
+
+ var sMetaType = (symbol.kind === 'member' && symbol.isEnum) ? 'enum' : symbol.kind;
+ if ( sMetaType ) {
+
+ writeln("");
+ writeln("// ---- " + symbol.longname + " --------------------------------------------------------------------------");
+ writeln("");
+
+ var memberId, member;
+
+ var ownProperties = childrenOfKind(symbol, 'property').own.filter(isNoKeyword).sort(sortByAlias);
+ if ( sMetaType === "class" ) {
+ comment(symbol, sMetaType);
+ writeln(symbol.longname + " = function(" + signature(symbol) + ") {};");
+ for ( memberId in ownProperties ) {
+ member = ownProperties[memberId];
+ comment(member, sMetaType);
+ writeln(qname(member, symbol) + " = " + value(member));
+ writeln("");
+ }
+ } else if ( sMetaType === 'namespace' || sMetaType === 'enum' ) {
+ //console.log("found namespace " + symbol.longname);
+ //console.log(ownProperties);
+ if ( ownProperties.length ) {
+ writeln("// dummy function to make Eclipse aware of namespace");
+ writeln(symbol.longname + ".toString = function() { return \"\"; };");
+ }
+ }
+
+ var ownEvents = childrenOfKind(symbol, 'event').own.filter(isNoKeyword).sort(sortByAlias);
+ if ( ownEvents.length ) {
+ for ( memberId in ownEvents ) {
+ member = ownEvents[memberId];
+ comment(member, sMetaType);
+ writeln(qname(member, symbol) + " = function(" + signature(member) + ") { " + retvalue(member) + " };");
+ writeln("");
+ }
+ }
+
+ var ownMethods = childrenOfKind(symbol, 'method').own.filter(isNoKeyword).sort(sortByAlias);
+ if ( ownMethods.length ) {
+ for ( memberId in ownMethods ) {
+ member = ownMethods[memberId];
+ comment(member, sMetaType);
+ writeln(qname(member, symbol) + " = function(" + signature(member) + ") { " + retvalue(member) + " };");
+ writeln("");
+ }
+ }
+
+ }
+ });
+
+ writeln("// ---- static fields of namespaces ---------------------------------------------------------------------");
+
+ sortedSymbols.forEach(function(symbol) {
+
+ var sMetaType = (symbol.kind === 'member' && symbol.isEnum) ? 'enum' : symbol.kind;
+
+ if ( sMetaType === 'namespace' || sMetaType === 'enum' ) {
+
+ var ownProperties = childrenOfKind(symbol, 'property').own.filter(isNoKeyword).sort(sortByAlias);
+ if ( ownProperties.length ) {
+ writeln("");
+ writeln("// ---- " + symbol.longname + " --------------------------------------------------------------------------");
+ writeln("");
+
+ for (var memberId in ownProperties ) {
+ var member = ownProperties[memberId];
+ comment(member, sMetaType);
+ writeln(qname(member, symbol) + " = " + value(member) + ";");
+ writeln("");
+ }
+ }
+ }
+
+ });
+
+ fs.mkPath(path.dirname(filename));
+ fs.writeFileSync(filename, output.join(""), 'utf8');
+ info(" saved as " + filename);
+}
+
+// Description + Settings
+
+function getConstructorDescription(symbol) {
+ var description = symbol.description;
+ var tags = symbol.tags;
+ if ( tags ) {
+ for (var i = 0; i < tags.length; i++) {
+ if ( tags[i].title === "ui5-settings" && tags[i].text) {
+ description += "\n \n" + tags[i].text;
+ break;
+ }
+ }
+ }
+ return description;
+}
+
+
+// Example
+
+function makeExample(example) {
+ var result = {
+ caption: null,
+ example: example
+ },
+ match = /^\s* block -------] [---- an empty line and surrounding whitespace ----] [---- new line or whitespaces ----] */
+var rNormalizeText = /(
]*)?>)|(<\/pre>)|([ \t]*(?:\r\n|\r|\n)[ \t]*(?:\r\n|\r|\n)[ \t\r\n]*)|([ \t]*(?:\r\n|\r|\n)[ \t]*|[ \t]+)/gi;
+
+function normalizeWS(text) {
+ if ( text == null ) {
+ return text;
+ }
+
+ var inpre = false;
+ return String(text).replace(rNormalizeText, function(match, pre, endpre, emptyline, ws) {
+ if ( pre ) {
+ inpre = true;
+ return pre;
+ } else if ( endpre ) {
+ inpre = false;
+ return endpre;
+ } else if ( emptyline ) {
+ return inpre ? emptyline : '\n\n';
+ } else if ( ws ) {
+ return inpre ? ws : ' ';
+ }
+ return match;
+ });
+
+}
+
+//---- add on: API JSON -----------------------------------------------------------------
+
+function createAPIJSON(symbols, filename) {
+
+ var api = {
+ "$schema-ref": "http://schemas.sap.com/sapui5/designtime/api.json/1.0"
+ }
+
+ if ( templateConf.version ) {
+ api.version = templateConf.version.replace(/-SNAPSHOT$/,"");
+ }
+ if ( templateConf.uilib ) {
+ api.library = templateConf.uilib;
+ }
+
+ api.symbols = [];
+ // sort only a copy(!) of the symbols, otherwise the SymbolSet lookup is broken
+ symbols.slice(0).sort(sortByAlias).forEach(function(symbol) {
+ if ( isaClass(symbol) && !symbol.synthetic ) { // dump a symbol if it as a class symbol and if it is not a synthetic symbol
+ api.symbols.push(createAPIJSON4Symbol(symbol, false));
+ }
+ });
+
+ postProcessAPIJSON(api);
+
+ fs.mkPath(path.dirname(filename));
+ fs.writeFileSync(filename, JSON.stringify(api), 'utf8');
+ info(" apiJson saved as " + filename);
+}
+
+function createAPIJSON4Symbol(symbol, omitDefaults) {
+
+ var obj = [];
+ var curr = obj;
+ var attribForKind = 'kind';
+ var stack = [];
+
+ function isEmpty(obj) {
+ if ( !obj ) {
+ return true;
+ }
+ for (var n in obj) {
+ if ( obj.hasOwnProperty(n) ) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ function tag(name, value, omitEmpty) {
+
+ if ( omitEmpty && !value ) {
+ return;
+ }
+ if ( arguments.length === 1 ) { // opening tag
+ stack.push(curr);
+ stack.push(attribForKind);
+ var obj = {};
+ if ( Array.isArray(curr) ) {
+ if ( attribForKind != null ) {
+ obj[attribForKind] = name;
+ }
+ curr.push(obj);
+ } else {
+ curr[name] = obj;
+ }
+ curr = obj;
+ attribForKind = null;
+ return;
+ }
+ if ( value == null ) {
+ curr[name] = true;
+ } else {
+ curr[name] = String(value);
+ }
+ }
+
+ function attrib(name, value, defaultValue, raw) {
+ var emptyTag = arguments.length === 1;
+ if ( omitDefaults && arguments.length >= 3 && value === defaultValue ) {
+ return;
+ }
+ curr[name] = emptyTag ? true : (raw ? value : String(value));
+ }
+
+ function closeTag(name, noIndent) {
+ attribForKind = stack.pop();
+ curr = stack.pop();
+ }
+
+ function collection(name, attribForKind) {
+ stack.push(curr);
+ stack.push(attribForKind);
+ // TODO only supported if this.curr was an object check or fully implement
+ curr = curr[name] = [];
+ attribForKind = attribForKind || null;
+ }
+
+ function endCollection(name) {
+ attribForKind = stack.pop();
+ curr = stack.pop();
+ }
+
+ function tagWithSince(name, value) {
+
+ if ( !value ) {
+ return;
+ }
+
+ var info = extractSince(value);
+
+ tag(name);
+ if ( info.since ) {
+ attrib("since", info.since);
+ }
+ if ( info.value ) {
+ curr["text"] = normalizeWS(info.value);
+ }
+ closeTag(name, true);
+
+ }
+
+ function examples(symbol) {
+ var j, example;
+
+ if ( symbol.examples && symbol.examples.length ) {
+ collection("examples");
+ for ( j = 0; j < symbol.examples.length; j++) {
+ example = makeExample(symbol.examples[j]);
+ tag("example");
+ if ( example.caption ) {
+ attrib("caption", example.caption);
+ }
+ attrib("text", example.example);
+ closeTag("example");
+ }
+ endCollection("examples");
+ }
+ }
+
+ function referencesList(symbol) {
+ if ( symbol.see && symbol.see.length ) {
+ curr["references"] = symbol.see.slice();
+ }
+ }
+
+ function visibility($) {
+ if ( $.access === 'protected' ) {
+ return "protected";
+ } else if ( $.access === 'restricted' ) {
+ return "restricted";
+ } else if ( $.access === 'private' ) {
+ return "private";
+ } else {
+ return "public";
+ }
+ }
+
+ function exceptions(symbol) {
+ var array = symbol.exceptions,
+ j, exception;
+
+ if ( Array.isArray(array) ) {
+ array = array.filter( function (ex) {
+ return (ex.type && listTypes(ex.type)) || (ex.description && ex.description.trim());
+ });
+ }
+ if ( array == null || array.length === 0 ) {
+ return;
+ }
+
+ collection("throws");
+ for (j = 0; j < array.length; j++) {
+ exception = array[j];
+ tag("exception");
+ if ( exception.type !== undefined ) {
+ attrib("type", listTypes(exception.type));
+ }
+ tag("description", normalizeWS(exception.description), true);
+ closeTag("exception");
+ }
+ endCollection("throws");
+ }
+
+ function methodList(tagname, methods) {
+ methods = methods && Object.keys(methods).map(function(key) { return methods[key]; });
+ if ( methods != null && methods.length > 0 ) {
+ curr[tagname] = methods;
+ }
+ }
+
+ function interfaceList(tagname, interfaces) {
+ if ( interfaces != null && interfaces.length > 0 ) {
+ curr[tagname] = interfaces.slice();
+ }
+ }
+
+ function hasSettings($, visited) {
+
+ visited = visited || {};
+
+ if ( $.augments && $.augments.length > 0 ) {
+ var baseSymbol = $.augments[0];
+ if ( visited.hasOwnProperty(baseSymbol) ) {
+ error("detected cyclic inheritance when looking at " + $.longname + ": " + JSON.stringify(visited));
+ return false;
+ }
+ visited[baseSymbol] = true;
+ baseSymbol = lookup(baseSymbol) ;
+ if ( hasSettings(baseSymbol, visited) ) {
+ return true;
+ }
+ }
+
+ var metadata = $.__ui5.metadata;
+ return metadata &&
+ (
+ !isEmpty(metadata.specialSettings)
+ || !isEmpty(metadata.properties)
+ || !isEmpty(metadata.aggregations)
+ || !isEmpty(metadata.associations)
+ || !isEmpty(metadata.annotations)
+ || !isEmpty(metadata.events)
+ );
+ }
+
+ function writeMetadata($) {
+
+ var metadata = $.__ui5.metadata;
+ if ( !metadata ) {
+ return;
+ }
+
+ var n;
+
+ if ( metadata.specialSettings && Object.keys(metadata.specialSettings).length > 0 ) {
+ collection("specialSettings");
+ for ( n in metadata.specialSettings ) {
+ var special = metadata.specialSettings[n];
+ tag("specialSetting");
+ attrib("name", special.name);
+ attrib("type", special.type);
+ attrib("visibility", special.visibility, 'public');
+ if ( special.since ) {
+ attrib("since", extractVersion(special.since));
+ }
+ tag("description", normalizeWS(special.doc), true);
+ tagWithSince("experimental", special.experimental);
+ tagWithSince("deprecated", special.deprecation);
+ methodList("method", special.methods);
+ closeTag("specialSetting");
+ }
+ endCollection("specialSettings");
+ }
+
+ if ( metadata.properties && Object.keys(metadata.properties).length > 0 ) {
+ collection("properties");
+ for ( n in metadata.properties ) {
+ var prop = metadata.properties[n];
+ tag("property");
+ attrib("name", prop.name);
+ attrib("type", prop.type, 'string');
+ attrib("defaultValue", prop.defaultValue, null, /* raw = */true);
+ attrib("group", prop.group, 'Misc');
+ attrib("visibility", prop.visibility, 'public');
+ if ( prop.since ) {
+ attrib("since", extractVersion(prop.since));
+ }
+ if ( prop.bindable ) {
+ attrib("bindable", prop.bindable, false, /* raw = */true);
+ }
+ tag("description", normalizeWS(prop.doc), true);
+ tagWithSince("experimental", prop.experimental);
+ tagWithSince("deprecated", prop.deprecation);
+ methodList("methods", prop.methods);
+ closeTag("property");
+ }
+ endCollection("properties");
+ }
+
+ if ( metadata.defaultProperty ) {
+ tag("defaultProperty", metadata.defaultProperty);
+ }
+
+ if ( metadata.dnd ) {
+ curr.dnd = metadata.dnd;
+ }
+
+ if ( metadata.aggregations && Object.keys(metadata.aggregations).length > 0 ) {
+ collection("aggregations");
+ for ( n in metadata.aggregations ) {
+ var aggr = metadata.aggregations[n];
+ tag("aggregation");
+ attrib("name", aggr.name);
+ attrib("singularName", aggr.singularName); // TODO omit default?
+ attrib("type", aggr.type, 'sap.ui.core.Control');
+ if ( aggr.altTypes ) {
+ curr.altTypes = aggr.altTypes.slice();
+ }
+ attrib("cardinality", aggr.cardinality, '0..n');
+ attrib("visibility", aggr.visibility, 'public');
+ if ( aggr.since ) {
+ attrib("since", extractVersion(aggr.since));
+ }
+ if ( aggr.bindable ) {
+ attrib("bindable", aggr.bindable, false, /* raw = */true);
+ }
+ if ( aggr.dnd ) {
+ curr.dnd = aggr.dnd;
+ }
+ tag("description", normalizeWS(aggr.doc), true);
+ tagWithSince("experimental", aggr.experimental);
+ tagWithSince("deprecated", aggr.deprecation);
+ methodList("methods", aggr.methods);
+ closeTag("aggregation");
+ }
+ endCollection("aggregations");
+ }
+
+ if ( metadata.defaultAggregation ) {
+ tag("defaultAggregation", metadata.defaultAggregation);
+ }
+
+ if ( metadata.associations && Object.keys(metadata.associations).length > 0 ) {
+ collection("associations");
+ for ( n in metadata.associations ) {
+ var assoc = metadata.associations[n];
+ tag("association");
+ attrib("name", assoc.name);
+ attrib("singularName", assoc.singularName); // TODO omit default?
+ attrib("type", assoc.type, 'sap.ui.core.Control');
+ attrib("cardinality", assoc.cardinality, '0..1');
+ attrib("visibility", assoc.visibility, 'public');
+ if ( assoc.since ) {
+ attrib("since", extractVersion(assoc.since));
+ }
+ tag("description", normalizeWS(assoc.doc), true);
+ tagWithSince("experimental", assoc.experimental);
+ tagWithSince("deprecated", assoc.deprecation);
+ methodList("methods", assoc.methods);
+ closeTag("association");
+ }
+ endCollection("associations");
+ }
+
+ if ( metadata.events && Object.keys(metadata.events).length > 0 ) {
+ collection("events");
+ for ( n in metadata.events ) {
+ var event = metadata.events[n];
+ tag("event");
+ attrib("name", event.name);
+ attrib("visibility", event.visibility, 'public');
+ if ( event.since ) {
+ attrib("since", extractVersion(event.since));
+ }
+ tag("description", normalizeWS(event.doc), true);
+ tagWithSince("experimental", event.experimental);
+ tagWithSince("deprecated", event.deprecation);
+ if ( event.parameters && Object.keys(event.parameters).length > 0 ) {
+ tag("parameters");
+ for ( var pn in event.parameters ) {
+ if ( event.parameters.hasOwnProperty(pn) ) {
+ var param = event.parameters[pn];
+ tag(pn);
+ attrib("name", pn);
+ attrib("type", param.type);
+ if ( param.since ) {
+ attrib("since", extractVersion(param.since));
+ }
+ tag("description", normalizeWS(param.doc), true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecation);
+ closeTag(pn);
+ }
+ }
+ closeTag("parameters");
+ }
+ methodList("methods", event.methods, true);
+ closeTag("event");
+ }
+ endCollection("events");
+ }
+
+ if ( metadata.annotations && Object.keys(metadata.annotations).length > 0 ) {
+ collection("annotations");
+ for ( n in metadata.annotations ) {
+ var anno = metadata.annotations[n];
+ tag("annotation");
+ attrib("name", anno.name);
+ attrib("namespace", anno.namespace);
+ if ( anno.target && anno.target.length > 0 ) {
+ curr.target = anno.target.slice();
+ }
+ attrib("annotation", anno.annotation);
+ attrib("defaultValue", anno.defaultValue);
+ if ( anno.appliesTo && anno.appliesTo.length > 0 ) {
+ curr.appliesTo = anno.appliesTo.slice();
+ }
+ if ( anno.since ) {
+ attrib("since", extractVersion(anno.since));
+ }
+ tag("description", normalizeWS(anno.doc), true);
+ tagWithSince("deprecated", anno.deprecation);
+ closeTag("annotation");
+ }
+ endCollection("annotations");
+ }
+
+ if ( metadata.designtime ) { // don't write falsy values
+ tag("designtime", metadata.designtime);
+ }
+
+ }
+
+ function writeParameterProperties(paramName, params) {
+ var prefix = paramName + '.',
+ count = 0,
+ i;
+
+ for ( i = 0; i < params.length; i++ ) {
+
+ var name = params[i].name;
+ if ( name.lastIndexOf(prefix, 0) !== 0 ) { // startsWith
+ continue;
+ }
+ name = name.slice(prefix.length);
+ if ( name.indexOf('.') >= 0 ) {
+ continue;
+ }
+
+ if ( count === 0 ) {
+ tag("parameterProperties");
+ }
+
+ count++;
+
+ tag(name);
+ attrib("name", name);
+ attrib("type", listTypes(params[i].type));
+ attrib("optional", !!params[i].optional, false, /* raw = */true);
+ if ( params[i].defaultvalue !== undefined ) {
+ attrib("defaultValue", params[i].defaultvalue, undefined, /* raw = */true);
+ }
+ if ( params[i].since ) {
+ attrib("since", extractVersion(params[i].since));
+ }
+
+ writeParameterProperties(params[i].name, params);
+
+ tag("description", normalizeWS(params[i].description), true);
+ tagWithSince("experimental", params[i].experimental);
+ tagWithSince("deprecated", params[i].deprecated);
+
+ closeTag(name);
+ }
+
+ if ( count > 0 ) {
+ closeTag("parameterProperties");
+ }
+ }
+
+ /*
+ var rSplitSecTag = /^\s*\{([^\}]*)\}/;
+
+ function secTags($) {
+ if ( true ) {
+ return;
+ }
+ var aTags = $.tags;
+ if ( !aTags ) {
+ return;
+ }
+ for (var iTag = 0; iTag < A_SECURITY_TAGS.length; iTag++ ) {
+ var oTagDef = A_SECURITY_TAGS[iTag];
+ for (var j = 0; j < aTags.length; j++ ) {
+ if ( aTags[j].title.toLowerCase() === oTagDef.name.toLowerCase() ) {
+ tag(oTagDef.name);
+ var m = rSplitSecTag.exec(aTags[j].text);
+ if ( m && m[1].trim() ) {
+ var aParams = m[1].trim().split(/\s*\|\s* /); <-- remember to remove the space!
+ for (var iParam = 0; iParam < aParams.length; iParam++ ) {
+ tag(oTagDef.params[iParam], aParams[iParam]);
+ }
+ }
+ var sDesc = aTags[j].description;
+ tag("description", sDesc, true);
+ closeTag(oTagDef.name);
+ }
+ }
+ }
+ }
+ */
+
+ var kind = (symbol.kind === 'member' && symbol.isEnum) ? "enum" : symbol.kind; // handle pseudo-kind 'enum'
+
+ tag(kind);
+
+ attrib("name", symbol.longname);
+ attrib("basename", symbol.name);
+ if ( symbol.__ui5.resource ) {
+ attrib("resource", symbol.__ui5.resource);
+ }
+ if ( symbol.__ui5.module ) {
+ attrib("module", symbol.__ui5.module);
+ attrib("export", undefined, '', true);
+ }
+ if ( symbol.virtual ) {
+ attrib("abstract", true, false, /* raw = */true);
+ }
+ if ( symbol.final_ ) {
+ attrib("final", true, false, /* raw = */true);
+ }
+ if ( symbol.scope === 'static' ) {
+ attrib("static", true, false, /* raw = */true);
+ }
+ attrib("visibility", visibility(symbol), 'public');
+ if ( symbol.since ) {
+ attrib("since", extractVersion(symbol.since));
+ }
+ if ( symbol.augments && symbol.augments.length ) {
+ tag("extends", symbol.augments.sort().join(",")); // TODO what about multiple inheritance?
+ }
+ interfaceList("implements", symbol.implements);
+ tag("description", normalizeWS(symbol.classdesc || (symbol.kind === 'class' ? '' : symbol.description)), true);
+ tagWithSince("experimental", symbol.experimental);
+ tagWithSince("deprecated", symbol.deprecated);
+ if ( symbol.tags && symbol.tags.some(function(tag) { return tag.title === 'ui5-metamodel'; }) ) {
+ attrib('ui5-metamodel', true, false, /* raw = */true);
+ }
+
+ var i, j, member, param;
+
+ if ( kind === 'class' ) {
+
+ if ( symbol.__ui5.stereotype || hasSettings(symbol) ) {
+
+ tag("ui5-metadata");
+
+ if ( symbol.__ui5.stereotype ) {
+ attrib("stereotype", symbol.__ui5.stereotype);
+ }
+
+ writeMetadata(symbol);
+
+ closeTag("ui5-metadata");
+ }
+
+
+ // IF @hideconstructor tag is present we omit the whole constructor
+ if ( !symbol.hideconstructor ) {
+
+ tag("constructor");
+ attrib("visibility", visibility(symbol));
+ if (symbol.params && symbol.params.length > 0) {
+ collection("parameters");
+ for (j = 0; j < symbol.params.length; j++) {
+ param = symbol.params[j];
+ if (param.name.indexOf('.') >= 0) {
+ continue;
+ }
+ tag("parameter");
+ attrib("name", param.name);
+ attrib("type", listTypes(param.type));
+ attrib("optional", !!param.optional, false, /* raw = */true);
+ if (param.defaultvalue !== undefined) {
+ attrib("defaultValue", param.defaultvalue, undefined, /* raw = */true);
+ }
+ if (param.since) {
+ attrib("since", extractVersion(param.since));
+ }
+
+ writeParameterProperties(param.name, symbol.params);
+ tag("description", normalizeWS(param.description), true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+ closeTag("parameter");
+ }
+ endCollection("parameters");
+ }
+ exceptions(symbol);
+ tag("description", normalizeWS(symbol.description), true);
+ // tagWithSince("experimental", symbol.experimental); // TODO repeat from class?
+ // tagWithSince("deprecated", symbol.deprecated); // TODO repeat from class?
+ examples(symbol); // TODO here or for class?
+ referencesList(symbol); // TODO here or for class?
+ // secTags(symbol); // TODO repeat from class?
+ closeTag("constructor");
+
+ }
+ } else if ( kind === 'namespace' ) {
+ if ( symbol.__ui5.stereotype || symbol.__ui5.metadata ) {
+ tag("ui5-metadata");
+
+ if ( symbol.__ui5.stereotype ) {
+ attrib("stereotype", symbol.__ui5.stereotype);
+ }
+
+ if ( symbol.__ui5.metadata && symbol.__ui5.metadata.basetype ) {
+ attrib("basetype", symbol.__ui5.metadata.basetype);
+ }
+
+ if ( symbol.__ui5.metadata && symbol.__ui5.metadata.pattern ) {
+ attrib("pattern", symbol.__ui5.metadata.pattern);
+ }
+
+ if ( symbol.__ui5.metadata && symbol.__ui5.metadata.range ) {
+ attrib("range", symbol.__ui5.metadata.range, null, /* raw = */ true);
+ }
+
+ closeTag("ui5-metadata");
+ }
+ }
+
+ var ownProperties = childrenOfKind(symbol, "property").own.sort(sortByAlias);
+ if ( ownProperties.length > 0 ) {
+ collection("properties");
+ for ( i = 0; i < ownProperties.length; i++ ) {
+ member = ownProperties[i];
+ tag("property");
+ attrib("name", member.name);
+ if ( member.__ui5.module && member.__ui5.module !== symbol.__ui5.module ) {
+ attrib("module", member.__ui5.module);
+ attrib("export", undefined, '', true);
+ }
+ attrib("visibility", visibility(member), 'public');
+ if ( member.scope === 'static' ) {
+ attrib("static", true, false, /* raw = */true);
+ }
+ if ( member.since ) {
+ attrib("since", extractVersion(member.since));
+ }
+ attrib("type", listTypes(member.type));
+ tag("description", normalizeWS(member.description), true);
+ tagWithSince("experimental", member.experimental);
+ tagWithSince("deprecated", member.deprecated);
+ examples(member);
+ referencesList(member);
+ if ( member.__ui5.resource && member.__ui5.resource !== symbol.__ui5.resource ) {
+ attrib("resource", member.__ui5.resource);
+ }
+ closeTag("property");
+ }
+ endCollection("properties");
+ }
+
+ var ownEvents = childrenOfKind(symbol, 'event').own.sort(sortByAlias);
+ if ( ownEvents.length > 0 ) {
+ collection("events");
+ for (i = 0; i < ownEvents.length; i++ ) {
+ member = ownEvents[i];
+ tag("event");
+ attrib("name", member.name);
+ if ( member.__ui5.module && member.__ui5.module !== symbol.__ui5.module ) {
+ attrib("module", member.__ui5.module);
+ attrib("export", undefined, '', true);
+ }
+ attrib("visibility", visibility(member), 'public');
+ if ( member.scope === 'static' ) {
+ attrib("static", true, false, /* raw = */true);
+ }
+ if ( member.since ) {
+ attrib("since", extractVersion(member.since));
+ }
+
+ if ( member.params && member.params.length > 0 ) {
+ collection("parameters");
+ for (j = 0; j < member.params.length; j++) {
+ param = member.params[j];
+ if ( param.name.indexOf('.') >= 0 ) {
+ continue;
+ }
+
+ tag("parameter");
+ attrib("name", param.name);
+ attrib("type", listTypes(param.type));
+ if ( param.since ) {
+ attrib("since", extractVersion(param.since));
+ }
+ writeParameterProperties(param.name, member.params);
+ tag("description", normalizeWS(param.description), true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+ closeTag("parameter");
+ }
+ endCollection("parameters");
+ }
+ tag("description", normalizeWS(member.description), true);
+ tagWithSince("deprecated", member.deprecated);
+ tagWithSince("experimental", member.experimental);
+ examples(member);
+ referencesList(member);
+ //secTags(member);
+ if ( member.__ui5.resource && member.__ui5.resource !== symbol.__ui5.resource ) {
+ attrib("resource", member.__ui5.resource);
+ }
+ closeTag("event");
+ }
+ endCollection("events");
+ }
+
+ var ownMethods = childrenOfKind(symbol, 'method').own.sort(sortByAlias);
+ if ( ownMethods.length > 0 ) {
+ collection("methods");
+ for ( i = 0; i < ownMethods.length; i++ ) {
+ member = ownMethods[i];
+ tag("method");
+ attrib("name", member.name);
+ if ( member.__ui5.module && member.__ui5.module !== symbol.__ui5.module ) {
+ attrib("module", member.__ui5.module);
+ attrib("export", undefined, '', true);
+ }
+ attrib("visibility", visibility(member), 'public');
+ if ( member.scope === 'static' ) {
+ attrib("static", true, false, /* raw = */true);
+ }
+ if ( member.tags && member.tags.some(function(tag) { return tag.title === 'ui5-metamodel'; }) ) {
+ attrib('ui5-metamodel', true, false, /* raw = */true);
+ }
+
+ var returns = member.returns && member.returns.length && member.returns[0];
+ var type = member.type || (returns && returns.type);
+ type = listTypes(type);
+ //if ( type && type !== 'void' ) {
+ // attrib("type", type, 'void');
+ //}
+ if ( type && type !== 'void' || returns && returns.description ) {
+ tag("returnValue");
+ if ( type && type !== 'void' ) {
+ attrib("type", type);
+ }
+ if ( returns && returns.description ) {
+ attrib("description", normalizeWS(returns.description));
+ }
+ closeTag("returnValue");
+ }
+ if ( member.since ) {
+ attrib("since", extractVersion(member.since));
+ }
+
+ if ( member.params && member.params.length > 0 ) {
+ collection("parameters");
+ for ( j = 0; j < member.params.length; j++) {
+ param = member.params[j];
+ if ( param.name.indexOf('.') >= 0 ) {
+ continue;
+ }
+ tag("parameter");
+ attrib("name", param.name);
+ attrib("type", listTypes(param.type));
+ attrib("optional", !!param.optional, false, /* raw = */true);
+ if ( param.defaultvalue !== undefined ) {
+ attrib("defaultValue", param.defaultvalue, undefined, /* raw = */true);
+ }
+ if ( param.since ) {
+ attrib("since", extractVersion(param.since));
+ }
+ writeParameterProperties(param.name, member.params);
+ tag("description", normalizeWS(param.description), true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+ closeTag("parameter");
+ }
+ endCollection("parameters");
+ }
+ exceptions(member);
+ tag("description", normalizeWS(member.description), true);
+ tagWithSince("experimental", member.experimental);
+ tagWithSince("deprecated", member.deprecated);
+ examples(member);
+ referencesList(member);
+ //secTags(member);
+ if ( member.__ui5.resource && member.__ui5.resource !== symbol.__ui5.resource ) {
+ attrib("resource", member.__ui5.resource);
+ }
+ closeTag("method");
+ }
+ endCollection("methods");
+ }
+
+// if ( roots && symbol.__ui5.children && symbol.__ui5.children.length ) {
+// collection("children", "kind");
+// symbol.__ui5.children.forEach(writeSymbol);
+// endCollection("children");
+// }
+
+ closeTag(kind);
+
+ return obj[0];
+}
+
+function postProcessAPIJSON(api) {
+ var modules = {};
+ var symbols = api.symbols;
+ var i,j,n,symbol,defaultExport;
+
+ // collect modules and the symbols that refer to them
+ for ( i = 0; i < symbols.length; i++) {
+ symbol = symbols[i];
+ if ( symbol.module ) {
+ modules[symbol.module] = modules[symbol.module] || [];
+ modules[symbol.module].push({
+ name: symbol.name,
+ symbol: symbol
+ });
+ }
+ if ( symbol.properties ) {
+ for ( j = 0; j < symbol.properties.length; j++ ) {
+ if ( symbol.properties[j].static && symbol.properties[j].module ) {
+ modules[symbol.properties[j].module] = modules[symbol.properties[j].module] || [];
+ modules[symbol.properties[j].module].push({
+ name: symbol.name + "." + symbol.properties[j].name,
+ symbol: symbol.properties[j]
+ });
+ }
+ }
+ }
+ if ( symbol.methods ) {
+ for ( j = 0; j < symbol.methods.length; j++ ) {
+ if ( symbol.methods[j].static && symbol.methods[j].module ) {
+ modules[symbol.methods[j].module] = modules[symbol.methods[j].module] || [];
+ modules[symbol.methods[j].module].push({
+ name: symbol.name + "." + symbol.methods[j].name,
+ symbol: symbol.methods[j]
+ });
+ }
+ }
+ }
+ }
+
+ function guessExport(defaultExport, symbol) {
+ if ( symbol.name === defaultExport ) {
+ // default export equals the symbol name
+ symbol.symbol.export = "";
+ //console.log(" (default):" + defaultExport);
+ } else if ( symbol.name.lastIndexOf(defaultExport + ".", 0) === 0 ) {
+ // default export is a prefix of the symbol name
+ symbol.symbol.export = symbol.name.slice(defaultExport.length + 1);
+ //console.log(" " + symbol.name.slice(defaultExport.length + 1) + ":" + symbol.name);
+ } else {
+ // default export is not a prefix of the symbol name -> no way to access it in AMD
+ symbol.symbol.export = undefined;
+ console.log(" **** could not identify module export for API " + symbol.name);
+ }
+ }
+
+ for ( n in modules ) {
+
+ symbols = modules[n].sort(function(a,b) {
+ if ( a.name === b.name ) {
+ return 0;
+ }
+ return a.name < b.name ? -1 : 1;
+ });
+
+ // console.log(' resolved exports of ' + n + ": " + symbols.map(function(symbol) { return symbol.name; } ));
+ if ( /^jquery\.sap\./.test(n) ) {
+ // the jquery.sap.* modules all export 'jQuery'.
+ // any API from those modules is reachable via 'jQuery.*'
+ defaultExport = 'jQuery';
+ symbols.forEach(
+ guessExport.bind(this, defaultExport)
+ );
+ } else if ( /\/library$/.test(n) ) {
+ // library.js modules export the library namespace
+ defaultExport = n.replace(/\/library$/, "").replace(/\//g, ".");
+ if ( symbols.some(function(symbol) { return symbol.name === defaultExport; }) ) {
+ // if there is a symbol for the namespace, then all other symbols from the module should be sub-exports of that symbol
+ symbols.forEach(
+ guessExport.bind(this, defaultExport)
+ );
+ } else {
+ // otherwise, we don't know how to map it to an export
+ symbols.forEach(function(symbol) {
+ symbol.symbol.export = symbol.name;
+ console.log(" **** unresolved " + symbol.name + " in library.js (no export that matches module name)");
+ });
+ }
+ } else {
+ // for all other modules, the assumed default export is identical to the name of the module (converted to a 'dot' name)
+ defaultExport = n.replace(/\//g, ".");
+ if ( symbols.some(function(symbol) { return symbol.name === defaultExport; }) ) {
+ symbols.forEach(
+ guessExport.bind(this, defaultExport)
+ );
+ //} else if ( symbols.length === 1 && (symbols[0].symbol.kind === 'class' || symbols[0].symbol.kind === 'namespace') ) {
+ // if there is only one symbol and if that symbol is of type class or namespace, assume it is the default export
+ // TODO is that assumption safe? Was only done because of IBarPageEnabler (which maybe better should be fixed in the JSDoc)
+ //symbols[0].symbol.export = '';
+ } else {
+ symbols.forEach(function(symbol) {
+ symbol.symbol.export = undefined;
+ console.log(" **** unresolved " + symbol.name + " (no export that matches module name)");
+ });
+ }
+ }
+ }
+}
+
+//---- add on: API XML -----------------------------------------------------------------
+
+function createAPIXML(symbols, filename, options) {
+
+ options = options || {};
+ var roots = options.roots || null;
+ var legacyContent = !!options.legacyContent;
+ var omitDefaults = !!options.omitDefaults;
+ var addRedundancy = !!options.resolveInheritance;
+
+ var indent = 0;
+ var output = [];
+ var sIndent = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
+ var tags = [];
+ var ENUM = legacyContent ? "namespace" : "enum" ;
+ var BASETYPE = legacyContent ? "baseType" : "extends";
+ var PROPERTY = legacyContent ? "parameter" : "property";
+ var unclosedStartTag = false;
+
+ function getAPIJSON(name) {
+
+ var symbol = lookup(name);
+ if ( symbol && !symbol.synthetic ) {
+ return createAPIJSON4Symbol(symbol, false);
+ }
+ if ( addRedundancy && externalSymbols[name] ) {
+ debug(" using " + name + " from external dependency");
+ return externalSymbols[name];
+ }
+ return symbol;
+ }
+
+ function encode(s) {
+ return s ? s.replace(/&/g, "&").replace(/ 0 )
+ output.push(sIndent.slice(0,indent));
+ if ( arguments.length ) {
+ for (var i = 0; i < arguments.length; i++)
+ output.push(arguments[i]);
+ }
+ output.push("\n");
+ }
+
+ function rootTag(name) {
+ tags = [];
+ unclosedStartTag = false;
+ tag(name);
+ }
+
+ function closeRootTag(name) {
+ closeTag(name);
+ }
+
+ function namespace(alias, namespace) {
+ attrib(alias, namespace);
+ }
+
+ function tag(name, value, omitEmpty) {
+
+ if ( omitEmpty && !value ) {
+ return;
+ }
+ if ( unclosedStartTag ) {
+ unclosedStartTag = false;
+ write('>\n');
+ }
+ if ( arguments.length === 1 ) { // opening tag
+ if ( indent > 0 ) {
+ output.push(sIndent.slice(0,indent));
+ }
+ write("<", name);
+ unclosedStartTag = true;
+ if ( legacyContent ) {
+ unclosedStartTag = false;
+ write(">\n");
+ }
+ tags.push(name);
+ indent++;
+ return;
+ }
+ if ( value == null ) {
+ writeln("<", name, "/>");
+ } else {
+ writeln("<", name, ">", encode(String(value)), "", name, ">");
+ }
+ }
+
+ function attrib(name, value, defaultValue) {
+ var emptyTag = arguments.length === 1;
+ if ( omitDefaults && arguments.length === 3 && value === defaultValue ) {
+ return;
+ }
+
+ if ( !legacyContent ) {
+ write(" " + name + "=\"");
+ write(emptyTag ? "true" : encode(String(value)).replace(/"/g, """));
+ write("\"");
+ } else {
+ if ( emptyTag ) {
+ writeln("<", name, "/>");
+ } else {
+ writeln("<", name, ">", encode(String(value)), "", name, ">");
+ }
+ }
+ }
+
+ function closeTag(name, noIndent) {
+
+ indent--;
+ var top = tags.pop();
+ if ( top != name ) {
+ // ERROR?
+ }
+
+ if ( unclosedStartTag ) {
+ unclosedStartTag = false;
+ write("/>\n");
+ } else if ( noIndent ) {
+ write("", name, ">\n");
+ } else {
+ writeln("", name, ">");
+ }
+ }
+
+ function textContent(text) {
+ if ( unclosedStartTag ) {
+ unclosedStartTag = false;
+ write('>');
+ }
+ write(encode(text));
+ }
+
+ function tagWithSince(tagName, prop) {
+ if ( prop ) {
+ tag(tagName);
+ if ( prop.since ) {
+ attrib("since", prop.since);
+ }
+ if ( prop.text && prop.text.trim() ) {
+ textContent(prop.text);
+ }
+ closeTag(tagName, true);
+ }
+ }
+
+ function getAsString() {
+ return output.join("");
+ }
+
+ function writeMetadata(symbolAPI, inherited) {
+
+ var ui5Metadata = symbolAPI["ui5-metadata"];
+ if ( !ui5Metadata ) {
+ return;
+ }
+
+ if ( addRedundancy && symbolAPI["extends"] ) {
+ var baseSymbolAPI = getAPIJSON(symbolAPI["extends"]);
+ if ( baseSymbolAPI ) {
+ writeMetadata(baseSymbolAPI, true);
+ }
+ }
+
+ if ( ui5Metadata.specialSettings ) {
+ ui5Metadata.specialSettings.forEach(function(special) {
+ tag("specialSetting");
+ attrib("name", special.name);
+ attrib("type", special.type);
+ attrib("visibility", special.visibility, 'public');
+ if ( special.since ) {
+ attrib("since", special.since);
+ }
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", special.description, true);
+ tagWithSince("experimental", special.experimental);
+ tagWithSince("deprecated", special.deprecated);
+ tag("methods", special.methods);
+ closeTag("specialSetting");
+ });
+ }
+
+ if ( ui5Metadata.properties ) {
+ ui5Metadata.properties.forEach(function(prop) {
+ tag("property");
+ attrib("name", prop.name);
+ attrib("type", prop.type, 'string');
+ if ( prop.defaultValue !== null ) {
+ attrib("defaultValue", prop.defaultValue, null);
+ }
+ attrib("visibility", prop.visibility, 'public');
+ if ( prop.since ) {
+ attrib("since", prop.since);
+ }
+ if ( prop.bindable ) {
+ attrib("bindable", prop.bindable);
+ }
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", prop.description, true);
+ tagWithSince("experimental", prop.experimental);
+ tagWithSince("deprecated", prop.deprecated);
+ tag("methods", prop.methods);
+ closeTag("property");
+ });
+ }
+
+ if ( ui5Metadata.defaultProperty ) {
+ tag("defaultProperty", ui5Metadata.defaultProperty);
+ }
+
+ if ( ui5Metadata.aggregations ) {
+ ui5Metadata.aggregations.forEach(function(aggr) {
+ tag("aggregation");
+ attrib("name", aggr.name);
+ attrib("singularName", aggr.singularName); // TODO omit default?
+ attrib("type", aggr.type, 'sap.ui.core.Control');
+ if ( aggr.altTypes ) {
+ attrib("altTypes", aggr.altTypes.join(","));
+ }
+ attrib("cardinality", aggr.cardinality, '0..n');
+ attrib("visibility", aggr.visibility, 'public');
+ if ( aggr.since ) {
+ attrib("since", aggr.since);
+ }
+ if ( aggr.bindable ) {
+ attrib("bindable", aggr.bindable);
+ }
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", aggr.description, true);
+ tagWithSince("experimental", aggr.experimental);
+ tagWithSince("deprecated", aggr.deprecated);
+ tag("methods", aggr.methods);
+ closeTag("aggregation");
+ });
+ }
+
+ if ( ui5Metadata.defaultAggregation ) {
+ tag("defaultAggregation", ui5Metadata.defaultAggregation);
+ }
+
+ if ( ui5Metadata.associations ) {
+ ui5Metadata.associations.forEach(function(assoc) {
+ tag("association");
+ attrib("name", assoc.name);
+ attrib("singularName", assoc.singularName); // TODO omit default?
+ attrib("type", assoc.type, 'sap.ui.core.Control');
+ attrib("cardinality", assoc.cardinality, '0..1');
+ attrib("visibility", assoc.visibility, 'public');
+ if ( assoc.since ) {
+ attrib("since", assoc.since);
+ }
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", assoc.description, true);
+ tagWithSince("experimental", assoc.experimental);
+ tagWithSince("deprecated", assoc.deprecated);
+ tag("methods", assoc.methods);
+ closeTag("association");
+ });
+ }
+
+ if ( ui5Metadata.events ) {
+ ui5Metadata.events.forEach(function(event) {
+ tag("event");
+ attrib("name", event.name);
+ attrib("visibility", event.visibility, 'public');
+ if ( event.since ) {
+ attrib("since", event.since);
+ }
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", event.description, true);
+ tagWithSince("experimental", event.experimental);
+ tagWithSince("deprecated", event.deprecated);
+ if ( event.parameters ) {
+ tag("parameters");
+ for ( var pn in event.parameters ) {
+ if ( event.parameters.hasOwnProperty(pn) ) {
+ var param = event.parameters[pn];
+
+ tag("parameter");
+ attrib("name", param.name);
+ attrib("type", param.type);
+ if ( param.since ) {
+ attrib("since", param.since);
+ }
+ tag("description", param.description, true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+ closeTag("parameter");
+ }
+ }
+ closeTag("parameters");
+ }
+ tag("methods", event.methods, true);
+ closeTag("event");
+ });
+ }
+
+ if ( ui5Metadata.annotations ) {
+ ui5Metadata.annotations.forEach(function(anno) {
+ tag("annotation");
+ attrib("name", anno.name);
+ attrib("namespace", anno.namespace); // TODO omit default?
+ attrib("target", anno.target);
+ attrib("annotation", anno.annotation);
+ attrib("appliesTo", anno.appliesTo);
+ if ( anno.since ) {
+ attrib("since", anno.since);
+ }
+ tag("description", anno.description, true);
+ tagWithSince("deprecated", anno.deprecated);
+ closeTag("annotation");
+ });
+ }
+
+ }
+
+ function writeParameterPropertiesForMSettings(symbolAPI, inherited) {
+
+ var ui5Metadata = symbolAPI["ui5-metadata"];
+ if ( !ui5Metadata ) {
+ return;
+ }
+
+ if ( symbolAPI["extends"] ) {
+ var baseSymbolAPI = getAPIJSON(symbolAPI["extends"]);
+ writeParameterPropertiesForMSettings(baseSymbolAPI, true);
+ }
+
+ if ( ui5Metadata.specialSettings ) {
+ ui5Metadata.specialSettings.forEach(function(special) {
+ if ( special.visibility !== 'hidden' ) {
+ tag("property");
+ attrib("name", special.name);
+ attrib("type", special.type);
+ attrib("optional");
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", special.description, true);
+ closeTag("property");
+ }
+ });
+ }
+
+ if ( ui5Metadata.properties ) {
+ ui5Metadata.properties.forEach(function(prop) {
+ tag("property");
+ attrib("name", prop.name);
+ attrib("type", prop.type);
+ attrib("group", prop.group, 'Misc');
+ if ( prop.defaultValue !== null ) {
+ attrib("defaultValue", typeof prop.defaultValue === 'string' ? "\"" + prop.defaultValue + "\"" : prop.defaultValue);
+ }
+ attrib("optional");
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", prop.description, true);
+ closeTag("property");
+ });
+ }
+
+ if ( ui5Metadata.aggregations ) {
+ ui5Metadata.aggregations.forEach(function(aggr) {
+ if ( aggr.visibility !== "hidden" ) {
+ tag("property");
+ attrib("name", aggr.name);
+ attrib("type", aggr.type + (aggr.cardinality === '0..1' ? "" : "[]"));
+ if ( aggr.altTypes ) {
+ attrib("altTypes", aggr.altTypes.join(","));
+ }
+ attrib("optional");
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", aggr.description, true);
+ closeTag("property");
+ }
+ });
+ }
+
+ if ( ui5Metadata.associations ) {
+ ui5Metadata.associations.forEach(function(assoc) {
+ if ( assoc.visibility !== "hidden" ) {
+ tag("property");
+ attrib("name", assoc.name);
+ attrib("type", "(" + assoc.type + "|" + "string)" + (assoc.cardinality === '0..1' ? "" : "[]"));
+ attrib("optional");
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", assoc.description, true);
+ closeTag("property");
+ }
+ });
+ }
+
+ if ( ui5Metadata.events ) {
+ ui5Metadata.events.forEach(function(event) {
+ tag("property");
+ attrib("name", event.name);
+ attrib("type", "function|array");
+ attrib("optional");
+ if ( inherited ) {
+ attrib("origin", symbolAPI.name);
+ }
+ tag("description", event.description, true);
+ closeTag("property");
+ });
+ }
+
+ }
+
+ function writeParameterProperties(param, paramName) {
+ var props = param.parameterProperties,
+ prefix = paramName + '.',
+ count = 0;
+
+ if ( props ) {
+ for (var n in props ) {
+ if ( props.hasOwnProperty(n) ) {
+
+ param = props[n];
+
+ if ( !legacyContent && count === 0 ) {
+ tag("parameterProperties");
+ }
+
+ count++;
+
+ tag(PROPERTY);
+ attrib("name", legacyContent ? prefix + n : n);
+ attrib("type", param.type);
+ if ( param.since ) {
+ attrib("since", param.since);
+ }
+ if ( param.optional ) {
+ attrib("optional", param.optional);
+ }
+
+ if ( !legacyContent ) {
+ writeParameterProperties(param, prefix + n);
+ }
+
+ tag("description", param.description, true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+
+ closeTag(PROPERTY);
+
+ if ( legacyContent ) {
+ writeParameterProperties(param, prefix + n);
+ }
+ }
+ }
+ }
+
+ if ( !legacyContent && count > 0 ) {
+ closeTag("parameterProperties");
+ }
+ }
+
+ /*
+ var rSplitSecTag = /^\s*\{([^\}]*)\}/;
+
+ function secTags($) {
+ if ( !legacyContent ) {
+ return;
+ }
+ var aTags = $.tags;
+ if ( !aTags ) {
+ return;
+ }
+ for (var iTag = 0; iTag < A_SECURITY_TAGS.length; iTag++ ) {
+ var oTagDef = A_SECURITY_TAGS[iTag];
+ for (var j = 0; j < aTags.length; j++ ) {
+ if ( aTags[j].title.toLowerCase() === oTagDef.name.toLowerCase() ) {
+ tag(oTagDef.name);
+ var m = rSplitSecTag.exec(aTags[j].text);
+ if ( m && m[1].trim() ) {
+ var aParams = m[1].trim().split(/\s*\|\s* /); <-- remove the blank!
+ for (var iParam = 0; iParam < aParams.length; iParam++ ) {
+ tag(oTagDef.params[iParam], aParams[iParam]);
+ }
+ }
+ var sDesc = aTags[j].description;
+ tag("description", sDesc, true);
+ closeTag(oTagDef.name);
+ }
+ }
+ }
+ }
+ */
+
+ function writeSymbol(symbol) {
+
+ var kind;
+
+ if ( isaClass(symbol) && (roots || !symbol.synthetic) ) { // dump a symbol if it as a class symbol and if either hierarchies are dumped or if it is not a synthetic symbol
+
+ // for the hierarchy we use only the local information
+ var symbolAPI = createAPIJSON4Symbol(symbol);
+
+ kind = symbolAPI.kind === 'enum' ? ENUM : symbolAPI.kind;
+
+ tag(kind);
+
+ attrib("name", symbolAPI.name);
+ attrib("basename", symbolAPI.basename);
+// if ( symbolAPI["resource"] ) {
+// attrib("resource");
+// }
+ if ( symbolAPI["module"] ) {
+ attrib("module", symbolAPI["module"]);
+ }
+ if ( symbolAPI["abstract"] ) {
+ attrib("abstract");
+ }
+ if ( symbolAPI["final"] ) {
+ attrib("final");
+ }
+ if ( symbolAPI["static"] ) {
+ attrib("static");
+ }
+ attrib("visibility", symbolAPI.visibility, 'public');
+ if ( symbolAPI.since ) {
+ attrib("since", symbolAPI.since);
+ }
+ if ( symbolAPI["extends"] ) {
+ tag(BASETYPE, symbolAPI["extends"]); // TODO what about multiple inheritance?
+ }
+ tag("description", symbolAPI.description, true);
+ tagWithSince("experimental", symbolAPI.experimental);
+ tagWithSince("deprecated", symbolAPI.deprecated);
+
+ if ( kind === 'class' ) {
+
+ var hasSettings = symbolAPI["ui5-metadata"];
+
+ if ( !legacyContent && symbolAPI["ui5-metadata"] ) {
+
+ tag("ui5-metadata");
+
+ if ( symbolAPI["ui5-metadata"].stereotype ) {
+ attrib("stereotype", symbolAPI["ui5-metadata"].stereotype);
+ }
+
+ writeMetadata(symbolAPI);
+
+ closeTag("ui5-metadata");
+
+ }
+
+ tag("constructor");
+ if ( legacyContent ) {
+ attrib("name", symbolAPI.basename);
+ }
+ attrib("visibility", symbolAPI.visibility, 'public');
+ if ( symbolAPI.constructor.parameters ) {
+ symbolAPI.constructor.parameters.forEach(function(param, j) {
+
+ tag("parameter");
+ attrib("name", param.name);
+ attrib("type", param.type);
+ attrib("optional", param.optional, false);
+ if ( param.defaultValue !== undefined ) {
+ attrib("defaultValue", param.defaultValue);
+ }
+ if ( param.since ) {
+ attrib("since", param.since);
+ }
+
+ if ( !legacyContent ) {
+ if ( hasSettings && j == 1 && /setting/i.test(param.name) && /object/i.test(param.type) ) {
+ if ( addRedundancy ) {
+ tag("parameterProperties");
+ writeParameterPropertiesForMSettings(symbolAPI);
+ closeTag("parameterProperties");
+ }
+ } else {
+ writeParameterProperties(param, param.name);
+ }
+ }
+ tag("description", param.description, true);
+ tagWithSince("experimental", param.experimental);
+ tagWithSince("deprecated", param.deprecated);
+ closeTag("parameter");
+ if ( legacyContent ) {
+ writeParameterProperties(param, param.name);
+ }
+ });
+ }
+
+ tag("description", getConstructorDescription(symbol), true);
+ // tagWithSince("experimental", symbol.experimental); // TODO repeat from class?
+ // tagWithSince("deprecated", symbol.deprecated); // TODO repeat from class?
+ // secTags(symbol); // TODO repeat from class?
+ closeTag("constructor");
+ }
+
+ /* TODO MIGRATE or remove, if not needed
+ var ownSubspaces = ( symbol.__ui5.children || [] ).filter(function($) { return $.kind === 'namespace' }).sort(sortByAlias);
+ for (var i=0; i
undefined
once data has been written
+ */
+module.exports = async function({workspace, options}) {
+ let allResources;
+ if (workspace.byGlobSource) { // API only available on duplex collections
+ allResources = await workspace.byGlobSource(options.pattern);
+ } else {
+ allResources = await workspace.byGlob(options.pattern);
+ }
+ return runJSDoc({
+ resources: allResources,
+ options
+ }).then((createdResources) => {
+ console.log(createdResources);
+ return Promise.all(createdResources.map((resource) => {
+ return workspace.write(resource);
+ }));
+ });
+};
diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js
index 72e703fd9..7a5f4bf1c 100644
--- a/lib/types/library/LibraryBuilder.js
+++ b/lib/types/library/LibraryBuilder.js
@@ -8,6 +8,7 @@ const tasks = { // can't require index.js due to circular dependency
generateStandaloneAppBundle: require("../../tasks/bundlers/generateStandaloneAppBundle"),
buildThemes: require("../../tasks/buildThemes"),
createDebugFiles: require("../../tasks/createDebugFiles"),
+ createJSDoc: require("../../tasks/createJSDoc"),
generateVersionInfo: require("../../tasks/generateVersionInfo"),
replaceCopyright: require("../../tasks/replaceCopyright"),
replaceVersion: require("../../tasks/replaceVersion"),
@@ -22,6 +23,7 @@ class LibraryBuilder extends AbstractBuilder {
this.availableTasks = [
"replaceCopyright",
"replaceVersion",
+ "createJSDoc",
"generateComponentPreload",
"generateBundle",
"generateLibraryPreload",
@@ -52,6 +54,20 @@ class LibraryBuilder extends AbstractBuilder {
});
});
+ this.addTask("createJSDoc", () => {
+ const createJSDoc = tasks.createJSDoc;
+ return createJSDoc({
+ workspace: resourceCollections.workspace,
+ options: {
+ libraryName: project.metadata.name,
+ version: project.version,
+ pattern: "/resources/**/*.js"
+ }
+ }).then(() => {
+ console.log("createJSDOC done");
+ });
+ });
+
const componentPreload = project.builder && project.builder.componentPreload;
if (componentPreload) {
const generateComponentPreload = tasks.generateComponentPreload;
@@ -77,6 +93,9 @@ class LibraryBuilder extends AbstractBuilder {
options: {
projectName: project.metadata.name
}
+ }).catch((err) => {
+ console.log("generateLibraryPreload failed:", err);
+ throw err;
});
});
diff --git a/package-lock.json b/package-lock.json
index 8d5c4ae62..0f73aef86 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,18 +16,18 @@
"integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==",
"dev": true,
"requires": {
- "babel-plugin-check-es2015-constants": "^6.8.0",
- "babel-plugin-syntax-trailing-function-commas": "^6.20.0",
- "babel-plugin-transform-async-to-generator": "^6.16.0",
- "babel-plugin-transform-es2015-destructuring": "^6.19.0",
- "babel-plugin-transform-es2015-function-name": "^6.9.0",
- "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0",
- "babel-plugin-transform-es2015-parameters": "^6.21.0",
- "babel-plugin-transform-es2015-spread": "^6.8.0",
- "babel-plugin-transform-es2015-sticky-regex": "^6.8.0",
- "babel-plugin-transform-es2015-unicode-regex": "^6.11.0",
- "babel-plugin-transform-exponentiation-operator": "^6.8.0",
- "package-hash": "^1.2.0"
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "6.22.0",
+ "babel-plugin-transform-async-to-generator": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
+ "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
+ "babel-plugin-transform-exponentiation-operator": "6.24.1",
+ "package-hash": "1.2.0"
},
"dependencies": {
"md5-hex": {
@@ -36,7 +36,7 @@
"integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=",
"dev": true,
"requires": {
- "md5-o-matic": "^0.1.1"
+ "md5-o-matic": "0.1.1"
}
},
"package-hash": {
@@ -45,7 +45,7 @@
"integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=",
"dev": true,
"requires": {
- "md5-hex": "^1.3.0"
+ "md5-hex": "1.3.0"
}
}
}
@@ -56,8 +56,8 @@
"integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=",
"dev": true,
"requires": {
- "@ava/babel-plugin-throws-helper": "^2.0.0",
- "babel-plugin-espower": "^2.3.2"
+ "@ava/babel-plugin-throws-helper": "2.0.0",
+ "babel-plugin-espower": "2.4.0"
}
},
"@ava/write-file-atomic": {
@@ -66,9 +66,9 @@
"integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
}
},
"@concordance/react": {
@@ -77,7 +77,7 @@
"integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==",
"dev": true,
"requires": {
- "arrify": "^1.0.1"
+ "arrify": "1.0.1"
}
},
"@ladjs/time-require": {
@@ -86,10 +86,10 @@
"integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==",
"dev": true,
"requires": {
- "chalk": "^0.4.0",
- "date-time": "^0.1.1",
- "pretty-ms": "^0.2.1",
- "text-table": "^0.2.0"
+ "chalk": "0.4.0",
+ "date-time": "0.1.1",
+ "pretty-ms": "0.2.2",
+ "text-table": "0.2.0"
},
"dependencies": {
"ansi-styles": {
@@ -104,9 +104,9 @@
"integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
"dev": true,
"requires": {
- "ansi-styles": "~1.0.0",
- "has-color": "~0.1.0",
- "strip-ansi": "~0.1.0"
+ "ansi-styles": "1.0.0",
+ "has-color": "0.1.7",
+ "strip-ansi": "0.1.1"
}
},
"pretty-ms": {
@@ -115,7 +115,7 @@
"integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=",
"dev": true,
"requires": {
- "parse-ms": "^0.1.0"
+ "parse-ms": "0.1.2"
}
},
"strip-ansi": {
@@ -131,16 +131,16 @@
"resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-0.1.0.tgz",
"integrity": "sha512-S4FK6YjPdVHBpzi1bSnqVCWbH/C6aSR8efZASkAuBl9r84VcRNS+yCuGO+MzD7HRLW9oJWmDFNS/+flaRTGtfQ==",
"requires": {
- "@ui5/logger": "^0.1.0",
- "clone": "^2.1.0",
- "defaults": "^1.0.3",
- "globby": "^7.1.1",
- "graceful-fs": "^4.1.11",
- "make-dir": "^1.1.0",
- "micromatch": "^3.1.4",
- "minimatch": "^3.0.3",
- "pretty-hrtime": "^1.0.3",
- "random-int": "^1.0.0"
+ "@ui5/logger": "0.1.0",
+ "clone": "2.1.1",
+ "defaults": "1.0.3",
+ "globby": "7.1.1",
+ "graceful-fs": "4.1.11",
+ "make-dir": "1.3.0",
+ "micromatch": "3.1.10",
+ "minimatch": "3.0.4",
+ "pretty-hrtime": "1.0.3",
+ "random-int": "1.0.0"
}
},
"@ui5/logger": {
@@ -148,7 +148,7 @@
"resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-0.1.0.tgz",
"integrity": "sha512-IlRE/cr9ky45nSw0z5yJSwJGglauego0naCR9BBtSvy2JqYZAdvVRhrBFED05UY/ZmRTScyg2qrsTlokJYYYKw==",
"requires": {
- "npmlog": "^4.1.2"
+ "npmlog": "4.1.2"
}
},
"acorn": {
@@ -163,7 +163,7 @@
"integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
"dev": true,
"requires": {
- "acorn": "^3.0.4"
+ "acorn": "3.3.0"
},
"dependencies": {
"acorn": {
@@ -185,10 +185,10 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
}
},
"ajv-keywords": {
@@ -208,7 +208,7 @@
"integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
"dev": true,
"requires": {
- "string-width": "^2.0.0"
+ "string-width": "2.1.1"
},
"dependencies": {
"ansi-regex": {
@@ -229,8 +229,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -239,7 +239,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -261,7 +261,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "^1.9.0"
+ "color-convert": "1.9.1"
}
},
"anymatch": {
@@ -270,8 +270,8 @@
"integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
"dev": true,
"requires": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
},
"dependencies": {
"arr-diff": {
@@ -280,7 +280,7 @@
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
"requires": {
- "arr-flatten": "^1.0.1"
+ "arr-flatten": "1.1.0"
}
},
"array-unique": {
@@ -295,9 +295,9 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
"requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
}
},
"expand-brackets": {
@@ -306,7 +306,7 @@
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
"requires": {
- "is-posix-bracket": "^0.1.0"
+ "is-posix-bracket": "0.1.1"
}
},
"extglob": {
@@ -315,7 +315,7 @@
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "is-extglob": "1.0.0"
}
},
"kind-of": {
@@ -324,7 +324,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
},
"micromatch": {
@@ -333,19 +333,19 @@
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
"requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.4"
}
}
}
@@ -360,14 +360,14 @@
"resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz",
"integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=",
"requires": {
- "archiver-utils": "^1.3.0",
- "async": "^2.0.0",
- "buffer-crc32": "^0.2.1",
- "glob": "^7.0.0",
- "lodash": "^4.8.0",
- "readable-stream": "^2.0.0",
- "tar-stream": "^1.5.0",
- "zip-stream": "^1.2.0"
+ "archiver-utils": "1.3.0",
+ "async": "2.6.1",
+ "buffer-crc32": "0.2.13",
+ "glob": "7.1.2",
+ "lodash": "4.17.10",
+ "readable-stream": "2.3.6",
+ "tar-stream": "1.6.1",
+ "zip-stream": "1.2.0"
}
},
"archiver-utils": {
@@ -375,12 +375,12 @@
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
"integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
"requires": {
- "glob": "^7.0.0",
- "graceful-fs": "^4.1.0",
- "lazystream": "^1.0.0",
- "lodash": "^4.8.0",
- "normalize-path": "^2.0.0",
- "readable-stream": "^2.0.0"
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "lazystream": "1.0.0",
+ "lodash": "4.17.10",
+ "normalize-path": "2.1.1",
+ "readable-stream": "2.3.6"
}
},
"are-we-there-yet": {
@@ -388,8 +388,8 @@
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
}
},
"argparse": {
@@ -398,7 +398,7 @@
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
- "sprintf-js": "~1.0.2"
+ "sprintf-js": "1.0.3"
}
},
"arr-diff": {
@@ -434,8 +434,8 @@
"integrity": "sha1-/0KsU+ZvSF1viDI0wyJSvCKGEw4=",
"dev": true,
"requires": {
- "async-arrays": "*",
- "extended-emitter": "*"
+ "async-arrays": "1.0.1",
+ "extended-emitter": "1.0.2"
}
},
"array-find-index": {
@@ -449,7 +449,7 @@
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"requires": {
- "array-uniq": "^1.0.1"
+ "array-uniq": "1.0.3"
}
},
"array-uniq": {
@@ -493,7 +493,7 @@
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": {
- "lodash": "^4.17.10"
+ "lodash": "4.17.10"
}
},
"async-arrays": {
@@ -502,7 +502,7 @@
"integrity": "sha1-NHrytw8qeldnotVnnMQrvxwiD9k=",
"dev": true,
"requires": {
- "sift": "*"
+ "sift": "5.1.0"
}
},
"async-each": {
@@ -533,89 +533,89 @@
"integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==",
"dev": true,
"requires": {
- "@ava/babel-preset-stage-4": "^1.1.0",
- "@ava/babel-preset-transform-test-files": "^3.0.0",
- "@ava/write-file-atomic": "^2.2.0",
- "@concordance/react": "^1.0.0",
- "@ladjs/time-require": "^0.1.4",
- "ansi-escapes": "^3.0.0",
- "ansi-styles": "^3.1.0",
- "arr-flatten": "^1.0.1",
- "array-union": "^1.0.1",
- "array-uniq": "^1.0.2",
- "arrify": "^1.0.0",
- "auto-bind": "^1.1.0",
- "ava-init": "^0.2.0",
- "babel-core": "^6.17.0",
- "babel-generator": "^6.26.0",
- "babel-plugin-syntax-object-rest-spread": "^6.13.0",
- "bluebird": "^3.0.0",
- "caching-transform": "^1.0.0",
- "chalk": "^2.0.1",
- "chokidar": "^1.4.2",
- "clean-stack": "^1.1.1",
- "clean-yaml-object": "^0.1.0",
- "cli-cursor": "^2.1.0",
- "cli-spinners": "^1.0.0",
- "cli-truncate": "^1.0.0",
- "co-with-promise": "^4.6.0",
- "code-excerpt": "^2.1.1",
- "common-path-prefix": "^1.0.0",
- "concordance": "^3.0.0",
- "convert-source-map": "^1.5.1",
- "core-assert": "^0.2.0",
- "currently-unhandled": "^0.4.1",
- "debug": "^3.0.1",
- "dot-prop": "^4.1.0",
- "empower-core": "^0.6.1",
- "equal-length": "^1.0.0",
- "figures": "^2.0.0",
- "find-cache-dir": "^1.0.0",
- "fn-name": "^2.0.0",
- "get-port": "^3.0.0",
- "globby": "^6.0.0",
- "has-flag": "^2.0.0",
- "hullabaloo-config-manager": "^1.1.0",
- "ignore-by-default": "^1.0.0",
- "import-local": "^0.1.1",
- "indent-string": "^3.0.0",
- "is-ci": "^1.0.7",
- "is-generator-fn": "^1.0.0",
- "is-obj": "^1.0.0",
- "is-observable": "^1.0.0",
- "is-promise": "^2.1.0",
- "last-line-stream": "^1.0.0",
- "lodash.clonedeepwith": "^4.5.0",
- "lodash.debounce": "^4.0.3",
- "lodash.difference": "^4.3.0",
- "lodash.flatten": "^4.2.0",
- "loud-rejection": "^1.2.0",
- "make-dir": "^1.0.0",
- "matcher": "^1.0.0",
- "md5-hex": "^2.0.0",
- "meow": "^3.7.0",
- "ms": "^2.0.0",
- "multimatch": "^2.1.0",
- "observable-to-promise": "^0.5.0",
- "option-chain": "^1.0.0",
- "package-hash": "^2.0.0",
- "pkg-conf": "^2.0.0",
- "plur": "^2.0.0",
- "pretty-ms": "^3.0.0",
- "require-precompiled": "^0.1.0",
- "resolve-cwd": "^2.0.0",
- "safe-buffer": "^5.1.1",
- "semver": "^5.4.1",
- "slash": "^1.0.0",
- "source-map-support": "^0.5.0",
- "stack-utils": "^1.0.1",
- "strip-ansi": "^4.0.0",
- "strip-bom-buf": "^1.0.0",
- "supertap": "^1.0.0",
- "supports-color": "^5.0.0",
- "trim-off-newlines": "^1.0.1",
- "unique-temp-dir": "^1.0.0",
- "update-notifier": "^2.3.0"
+ "@ava/babel-preset-stage-4": "1.1.0",
+ "@ava/babel-preset-transform-test-files": "3.0.0",
+ "@ava/write-file-atomic": "2.2.0",
+ "@concordance/react": "1.0.0",
+ "@ladjs/time-require": "0.1.4",
+ "ansi-escapes": "3.1.0",
+ "ansi-styles": "3.2.1",
+ "arr-flatten": "1.1.0",
+ "array-union": "1.0.2",
+ "array-uniq": "1.0.3",
+ "arrify": "1.0.1",
+ "auto-bind": "1.2.0",
+ "ava-init": "0.2.1",
+ "babel-core": "6.26.3",
+ "babel-generator": "6.26.1",
+ "babel-plugin-syntax-object-rest-spread": "6.13.0",
+ "bluebird": "3.5.1",
+ "caching-transform": "1.0.1",
+ "chalk": "2.4.1",
+ "chokidar": "1.7.0",
+ "clean-stack": "1.3.0",
+ "clean-yaml-object": "0.1.0",
+ "cli-cursor": "2.1.0",
+ "cli-spinners": "1.3.1",
+ "cli-truncate": "1.1.0",
+ "co-with-promise": "4.6.0",
+ "code-excerpt": "2.1.1",
+ "common-path-prefix": "1.0.0",
+ "concordance": "3.0.0",
+ "convert-source-map": "1.5.1",
+ "core-assert": "0.2.1",
+ "currently-unhandled": "0.4.1",
+ "debug": "3.1.0",
+ "dot-prop": "4.2.0",
+ "empower-core": "0.6.2",
+ "equal-length": "1.0.1",
+ "figures": "2.0.0",
+ "find-cache-dir": "1.0.0",
+ "fn-name": "2.0.1",
+ "get-port": "3.2.0",
+ "globby": "6.1.0",
+ "has-flag": "2.0.0",
+ "hullabaloo-config-manager": "1.1.1",
+ "ignore-by-default": "1.0.1",
+ "import-local": "0.1.1",
+ "indent-string": "3.2.0",
+ "is-ci": "1.1.0",
+ "is-generator-fn": "1.0.0",
+ "is-obj": "1.0.1",
+ "is-observable": "1.1.0",
+ "is-promise": "2.1.0",
+ "last-line-stream": "1.0.0",
+ "lodash.clonedeepwith": "4.5.0",
+ "lodash.debounce": "4.0.8",
+ "lodash.difference": "4.5.0",
+ "lodash.flatten": "4.4.0",
+ "loud-rejection": "1.6.0",
+ "make-dir": "1.3.0",
+ "matcher": "1.1.1",
+ "md5-hex": "2.0.0",
+ "meow": "3.7.0",
+ "ms": "2.0.0",
+ "multimatch": "2.1.0",
+ "observable-to-promise": "0.5.0",
+ "option-chain": "1.0.0",
+ "package-hash": "2.0.0",
+ "pkg-conf": "2.1.0",
+ "plur": "2.1.2",
+ "pretty-ms": "3.2.0",
+ "require-precompiled": "0.1.0",
+ "resolve-cwd": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "semver": "5.5.0",
+ "slash": "1.0.0",
+ "source-map-support": "0.5.6",
+ "stack-utils": "1.0.1",
+ "strip-ansi": "4.0.0",
+ "strip-bom-buf": "1.0.0",
+ "supertap": "1.0.0",
+ "supports-color": "5.4.0",
+ "trim-off-newlines": "1.0.1",
+ "unique-temp-dir": "1.0.0",
+ "update-notifier": "2.5.0"
},
"dependencies": {
"ansi-regex": {
@@ -639,11 +639,11 @@
"integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
"dev": true,
"requires": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
}
},
"pify": {
@@ -664,7 +664,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
},
"strip-ansi": {
@@ -673,7 +673,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -684,11 +684,11 @@
"integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==",
"dev": true,
"requires": {
- "arr-exclude": "^1.0.0",
- "execa": "^0.7.0",
- "has-yarn": "^1.0.0",
- "read-pkg-up": "^2.0.0",
- "write-pkg": "^3.1.0"
+ "arr-exclude": "1.0.0",
+ "execa": "0.7.0",
+ "has-yarn": "1.0.0",
+ "read-pkg-up": "2.0.0",
+ "write-pkg": "3.1.0"
}
},
"aws-sign2": {
@@ -707,9 +707,9 @@
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
},
"dependencies": {
"ansi-styles": {
@@ -724,11 +724,11 @@
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
}
},
"supports-color": {
@@ -745,25 +745,25 @@
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
"dev": true,
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.1",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
+ "lodash": "4.17.10",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.8",
+ "slash": "1.0.0",
+ "source-map": "0.5.7"
}
},
"babel-generator": {
@@ -772,14 +772,14 @@
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"dev": true,
"requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.10",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
},
"dependencies": {
"jsesc": {
@@ -796,9 +796,9 @@
"integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
"dev": true,
"requires": {
- "babel-helper-explode-assignable-expression": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-helper-explode-assignable-expression": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-call-delegate": {
@@ -807,10 +807,10 @@
"integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
"dev": true,
"requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-explode-assignable-expression": {
@@ -819,9 +819,9 @@
"integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-function-name": {
@@ -830,11 +830,11 @@
"integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
"dev": true,
"requires": {
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-get-function-arity": {
@@ -843,8 +843,8 @@
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-hoist-variables": {
@@ -853,8 +853,8 @@
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-regex": {
@@ -863,9 +863,9 @@
"integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.10"
}
},
"babel-helper-remap-async-to-generator": {
@@ -874,11 +874,11 @@
"integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
"dev": true,
"requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helpers": {
@@ -887,8 +887,8 @@
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-messages": {
@@ -897,7 +897,7 @@
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-check-es2015-constants": {
@@ -906,7 +906,7 @@
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-espower": {
@@ -915,13 +915,13 @@
"integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==",
"dev": true,
"requires": {
- "babel-generator": "^6.1.0",
- "babylon": "^6.1.0",
- "call-matcher": "^1.0.0",
- "core-js": "^2.0.0",
- "espower-location-detector": "^1.0.0",
- "espurify": "^1.6.0",
- "estraverse": "^4.1.1"
+ "babel-generator": "6.26.1",
+ "babylon": "6.18.0",
+ "call-matcher": "1.0.1",
+ "core-js": "2.5.7",
+ "espower-location-detector": "1.0.0",
+ "espurify": "1.8.0",
+ "estraverse": "4.2.0"
}
},
"babel-plugin-syntax-async-functions": {
@@ -954,9 +954,9 @@
"integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
"dev": true,
"requires": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-functions": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "babel-helper-remap-async-to-generator": "6.24.1",
+ "babel-plugin-syntax-async-functions": "6.13.0",
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-destructuring": {
@@ -965,7 +965,7 @@
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-function-name": {
@@ -974,9 +974,9 @@
"integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
"dev": true,
"requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-commonjs": {
@@ -985,10 +985,10 @@
"integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
"dev": true,
"requires": {
- "babel-plugin-transform-strict-mode": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-parameters": {
@@ -997,12 +997,12 @@
"integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
"dev": true,
"requires": {
- "babel-helper-call-delegate": "^6.24.1",
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-spread": {
@@ -1011,7 +1011,7 @@
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-sticky-regex": {
@@ -1020,9 +1020,9 @@
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
"dev": true,
"requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-unicode-regex": {
@@ -1031,9 +1031,9 @@
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
"dev": true,
"requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "regexpu-core": "^2.0.0"
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "regexpu-core": "2.0.0"
}
},
"babel-plugin-transform-exponentiation-operator": {
@@ -1042,9 +1042,9 @@
"integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
"dev": true,
"requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "6.13.0",
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-strict-mode": {
@@ -1053,8 +1053,8 @@
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-register": {
@@ -1063,13 +1063,13 @@
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
"dev": true,
"requires": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
+ "babel-core": "6.26.3",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.7",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.10",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
},
"dependencies": {
"mkdirp": {
@@ -1087,7 +1087,7 @@
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
- "source-map": "^0.5.6"
+ "source-map": "0.5.7"
}
}
}
@@ -1098,8 +1098,8 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "core-js": "2.5.7",
+ "regenerator-runtime": "0.11.1"
}
},
"babel-template": {
@@ -1108,11 +1108,11 @@
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.10"
}
},
"babel-traverse": {
@@ -1121,15 +1121,15 @@
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"dev": true,
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.4",
+ "lodash": "4.17.10"
}
},
"babel-types": {
@@ -1138,10 +1138,10 @@
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.10",
+ "to-fast-properties": "1.0.3"
}
},
"babylon": {
@@ -1160,13 +1160,13 @@
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
+ "cache-base": "1.0.1",
+ "class-utils": "0.3.6",
+ "component-emitter": "1.2.1",
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "mixin-deep": "1.3.1",
+ "pascalcase": "0.1.1"
},
"dependencies": {
"define-property": {
@@ -1174,7 +1174,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
@@ -1182,7 +1182,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -1190,7 +1190,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -1198,9 +1198,9 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -1211,7 +1211,7 @@
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"optional": true,
"requires": {
- "tweetnacl": "^0.14.3"
+ "tweetnacl": "0.14.5"
}
},
"binary-extensions": {
@@ -1226,7 +1226,7 @@
"integrity": "sha512-UGtq08LSiazxL4zVmBzrhdCWnT4RWx3JhhD/3crhfv8xxjnVHxf/WoVjEstjSUaZeZRP7kZrWNqup1VvUClCaQ==",
"dev": true,
"requires": {
- "array-events": "^0.2.0"
+ "array-events": "0.2.0"
}
},
"bl": {
@@ -1234,8 +1234,8 @@
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
"integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
"requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
+ "readable-stream": "2.3.6",
+ "safe-buffer": "5.1.2"
}
},
"bluebird": {
@@ -1250,13 +1250,13 @@
"integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
"dev": true,
"requires": {
- "ansi-align": "^2.0.0",
- "camelcase": "^4.0.0",
- "chalk": "^2.0.1",
- "cli-boxes": "^1.0.0",
- "string-width": "^2.0.0",
- "term-size": "^1.2.0",
- "widest-line": "^2.0.0"
+ "ansi-align": "2.0.0",
+ "camelcase": "4.1.0",
+ "chalk": "2.4.1",
+ "cli-boxes": "1.0.0",
+ "string-width": "2.1.1",
+ "term-size": "1.2.0",
+ "widest-line": "2.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -1283,8 +1283,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -1293,7 +1293,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -1303,7 +1303,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -1312,16 +1312,16 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
},
"dependencies": {
"extend-shallow": {
@@ -1329,7 +1329,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -1345,8 +1345,8 @@
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"requires": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
+ "buffer-alloc-unsafe": "1.1.0",
+ "buffer-fill": "1.0.0"
}
},
"buffer-alloc-unsafe": {
@@ -1381,15 +1381,15 @@
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "collection-visit": "1.0.0",
+ "component-emitter": "1.2.1",
+ "get-value": "2.0.6",
+ "has-value": "1.0.0",
+ "isobject": "3.0.1",
+ "set-value": "2.0.0",
+ "to-object-path": "0.3.0",
+ "union-value": "1.0.0",
+ "unset-value": "1.0.0"
}
},
"caching-transform": {
@@ -1398,9 +1398,9 @@
"integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=",
"dev": true,
"requires": {
- "md5-hex": "^1.2.0",
- "mkdirp": "^0.5.1",
- "write-file-atomic": "^1.1.4"
+ "md5-hex": "1.3.0",
+ "mkdirp": "0.5.1",
+ "write-file-atomic": "1.3.4"
},
"dependencies": {
"md5-hex": {
@@ -1409,7 +1409,7 @@
"integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=",
"dev": true,
"requires": {
- "md5-o-matic": "^0.1.1"
+ "md5-o-matic": "0.1.1"
}
},
"mkdirp": {
@@ -1427,9 +1427,9 @@
"integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
}
}
}
@@ -1440,10 +1440,10 @@
"integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=",
"dev": true,
"requires": {
- "core-js": "^2.0.0",
- "deep-equal": "^1.0.0",
- "espurify": "^1.6.0",
- "estraverse": "^4.0.0"
+ "core-js": "2.5.7",
+ "deep-equal": "1.0.1",
+ "espurify": "1.8.0",
+ "estraverse": "4.2.0"
}
},
"call-me-maybe": {
@@ -1464,7 +1464,7 @@
"integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
"dev": true,
"requires": {
- "callsites": "^0.2.0"
+ "callsites": "0.2.0"
}
},
"callsites": {
@@ -1485,8 +1485,8 @@
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"dev": true,
"requires": {
- "camelcase": "^2.0.0",
- "map-obj": "^1.0.0"
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
}
},
"capture-stack-trace": {
@@ -1506,7 +1506,7 @@
"integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=",
"dev": true,
"requires": {
- "underscore-contrib": "~0.3.0"
+ "underscore-contrib": "0.3.0"
}
},
"chai": {
@@ -1515,12 +1515,12 @@
"integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
"dev": true,
"requires": {
- "assertion-error": "^1.0.1",
- "check-error": "^1.0.1",
- "deep-eql": "^3.0.0",
- "get-func-name": "^2.0.0",
- "pathval": "^1.0.0",
- "type-detect": "^4.0.0"
+ "assertion-error": "1.1.0",
+ "check-error": "1.0.2",
+ "deep-eql": "3.0.1",
+ "get-func-name": "2.0.0",
+ "pathval": "1.1.0",
+ "type-detect": "4.0.8"
}
},
"chai-fs": {
@@ -1529,8 +1529,8 @@
"integrity": "sha1-Na4Dn7uwcQ9RIqrhf6uh6PQRB8Y=",
"dev": true,
"requires": {
- "bit-mask": "^1.0.1",
- "readdir-enhanced": "^1.4.0"
+ "bit-mask": "1.0.2",
+ "readdir-enhanced": "1.5.2"
}
},
"chalk": {
@@ -1539,9 +1539,9 @@
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "3.2.1",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "5.4.0"
}
},
"chardet": {
@@ -1562,15 +1562,15 @@
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
"dev": true,
"requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
- "is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
+ "anymatch": "1.3.2",
+ "async-each": "1.0.1",
+ "fsevents": "1.2.4",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0"
}
},
"ci-info": {
@@ -1590,10 +1590,10 @@
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "arr-union": "3.1.0",
+ "define-property": "0.2.5",
+ "isobject": "3.0.1",
+ "static-extend": "0.1.2"
},
"dependencies": {
"define-property": {
@@ -1601,7 +1601,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -1612,7 +1612,7 @@
"integrity": "sha1-6TfN/cxXgaAIF67EB56Fs+wVeiA=",
"optional": true,
"requires": {
- "commander": "2.0.x"
+ "commander": "2.0.0"
}
},
"clean-stack": {
@@ -1639,7 +1639,7 @@
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "restore-cursor": "^2.0.0"
+ "restore-cursor": "2.0.0"
}
},
"cli-spinners": {
@@ -1654,8 +1654,8 @@
"integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==",
"dev": true,
"requires": {
- "slice-ansi": "^1.0.0",
- "string-width": "^2.0.0"
+ "slice-ansi": "1.0.0",
+ "string-width": "2.1.1"
},
"dependencies": {
"ansi-regex": {
@@ -1676,8 +1676,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -1686,7 +1686,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -1713,7 +1713,7 @@
"integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=",
"dev": true,
"requires": {
- "pinkie-promise": "^1.0.0"
+ "pinkie-promise": "1.0.0"
}
},
"code-excerpt": {
@@ -1722,7 +1722,7 @@
"integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==",
"dev": true,
"requires": {
- "convert-to-spaces": "^1.0.1"
+ "convert-to-spaces": "1.0.2"
}
},
"code-point-at": {
@@ -1735,8 +1735,8 @@
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "map-visit": "1.0.0",
+ "object-visit": "1.0.1"
}
},
"color-convert": {
@@ -1745,7 +1745,7 @@
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
- "color-name": "^1.1.1"
+ "color-name": "1.1.3"
}
},
"color-name": {
@@ -1759,7 +1759,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"requires": {
- "delayed-stream": "~1.0.0"
+ "delayed-stream": "1.0.0"
}
},
"commander": {
@@ -1790,10 +1790,10 @@
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
"integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
"requires": {
- "buffer-crc32": "^0.2.1",
- "crc32-stream": "^2.0.0",
- "normalize-path": "^2.0.0",
- "readable-stream": "^2.0.0"
+ "buffer-crc32": "0.2.13",
+ "crc32-stream": "2.0.0",
+ "normalize-path": "2.1.1",
+ "readable-stream": "2.3.6"
}
},
"concat-map": {
@@ -1807,10 +1807,10 @@
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "buffer-from": "1.1.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.6",
+ "typedarray": "0.0.6"
}
},
"concordance": {
@@ -1819,17 +1819,17 @@
"integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==",
"dev": true,
"requires": {
- "date-time": "^2.1.0",
- "esutils": "^2.0.2",
- "fast-diff": "^1.1.1",
- "function-name-support": "^0.2.0",
- "js-string-escape": "^1.0.1",
- "lodash.clonedeep": "^4.5.0",
- "lodash.flattendeep": "^4.4.0",
- "lodash.merge": "^4.6.0",
- "md5-hex": "^2.0.0",
- "semver": "^5.3.0",
- "well-known-symbols": "^1.0.0"
+ "date-time": "2.1.0",
+ "esutils": "2.0.2",
+ "fast-diff": "1.1.2",
+ "function-name-support": "0.2.0",
+ "js-string-escape": "1.0.1",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.flattendeep": "4.4.0",
+ "lodash.merge": "4.6.1",
+ "md5-hex": "2.0.0",
+ "semver": "5.5.0",
+ "well-known-symbols": "1.0.0"
},
"dependencies": {
"date-time": {
@@ -1838,7 +1838,7 @@
"integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==",
"dev": true,
"requires": {
- "time-zone": "^1.0.0"
+ "time-zone": "1.0.0"
}
}
}
@@ -1849,12 +1849,12 @@
"integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
"dev": true,
"requires": {
- "dot-prop": "^4.1.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^1.0.0",
- "unique-string": "^1.0.0",
- "write-file-atomic": "^2.0.0",
- "xdg-basedir": "^3.0.0"
+ "dot-prop": "4.2.0",
+ "graceful-fs": "4.1.11",
+ "make-dir": "1.3.0",
+ "unique-string": "1.0.0",
+ "write-file-atomic": "2.3.0",
+ "xdg-basedir": "3.0.0"
}
},
"console-control-strings": {
@@ -1885,8 +1885,8 @@
"integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=",
"dev": true,
"requires": {
- "buf-compare": "^1.0.0",
- "is-error": "^2.2.0"
+ "buf-compare": "1.0.1",
+ "is-error": "2.2.1"
}
},
"core-js": {
@@ -1906,11 +1906,11 @@
"integrity": "sha512-FAzXwiDOYLGDWH+zgoIA+8GbWv50hlx+kpEJyvzLKOdnIBv9uWoVl4DhqGgyUHpiRjAlF8KYZSipWXYtllWH6Q==",
"dev": true,
"requires": {
- "js-yaml": "^3.6.1",
- "lcov-parse": "^0.0.10",
- "log-driver": "^1.2.5",
- "minimist": "^1.2.0",
- "request": "^2.79.0"
+ "js-yaml": "3.12.0",
+ "lcov-parse": "0.0.10",
+ "log-driver": "1.2.7",
+ "minimist": "1.2.0",
+ "request": "2.87.0"
},
"dependencies": {
"minimist": {
@@ -1931,8 +1931,8 @@
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
"integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
"requires": {
- "crc": "^3.4.4",
- "readable-stream": "^2.0.0"
+ "crc": "3.5.0",
+ "readable-stream": "2.3.6"
}
},
"create-error-class": {
@@ -1941,7 +1941,7 @@
"integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
"dev": true,
"requires": {
- "capture-stack-trace": "^1.0.0"
+ "capture-stack-trace": "1.0.0"
}
},
"cross-env": {
@@ -1950,19 +1950,18 @@
"integrity": "sha512-VWTDq+G4v383SzgRS7jsAVWqEWF0aKZpDz1GVjhONvPRgHB1LnxP2sXUVFKbykHkPSnfRKS8YdiDevWFwZmQ9g==",
"dev": true,
"requires": {
- "cross-spawn": "^5.1.0",
- "is-windows": "^1.0.0"
+ "cross-spawn": "5.1.0",
+ "is-windows": "1.0.2"
}
},
"cross-spawn": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "dev": true,
"requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.1"
}
},
"crypto-random-string": {
@@ -1976,10 +1975,10 @@
"resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
"integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
"requires": {
- "inherits": "^2.0.1",
- "source-map": "^0.1.38",
- "source-map-resolve": "^0.5.1",
- "urix": "^0.1.0"
+ "inherits": "2.0.3",
+ "source-map": "0.1.43",
+ "source-map-resolve": "0.5.2",
+ "urix": "0.1.0"
},
"dependencies": {
"source-map": {
@@ -1987,7 +1986,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
"integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"requires": {
- "amdefine": ">=0.0.4"
+ "amdefine": "1.0.1"
}
}
}
@@ -1998,7 +1997,7 @@
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"dev": true,
"requires": {
- "array-find-index": "^1.0.1"
+ "array-find-index": "1.0.2"
}
},
"d": {
@@ -2006,7 +2005,7 @@
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"requires": {
- "es5-ext": "^0.10.9"
+ "es5-ext": "0.10.45"
}
},
"dashdash": {
@@ -2014,7 +2013,7 @@
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
- "assert-plus": "^1.0.0"
+ "assert-plus": "1.0.0"
}
},
"date-time": {
@@ -2048,7 +2047,7 @@
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"requires": {
- "type-detect": "^4.0.0"
+ "type-detect": "4.0.8"
}
},
"deep-equal": {
@@ -2074,7 +2073,7 @@
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"requires": {
- "clone": "^1.0.2"
+ "clone": "1.0.4"
},
"dependencies": {
"clone": {
@@ -2089,8 +2088,8 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
},
"dependencies": {
"is-accessor-descriptor": {
@@ -2098,7 +2097,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -2106,7 +2105,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -2114,9 +2113,9 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -2127,13 +2126,13 @@
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
"dev": true,
"requires": {
- "globby": "^5.0.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "rimraf": "^2.2.8"
+ "globby": "5.0.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.1",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "rimraf": "2.6.2"
},
"dependencies": {
"globby": {
@@ -2142,12 +2141,12 @@
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
"dev": true,
"requires": {
- "array-union": "^1.0.1",
- "arrify": "^1.0.0",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
}
},
"pify": {
@@ -2168,7 +2167,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
}
}
@@ -2189,7 +2188,7 @@
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"dev": true,
"requires": {
- "repeating": "^2.0.0"
+ "repeating": "2.0.1"
}
},
"dir-glob": {
@@ -2197,8 +2196,8 @@
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
"integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
"requires": {
- "arrify": "^1.0.1",
- "path-type": "^3.0.0"
+ "arrify": "1.0.1",
+ "path-type": "3.0.0"
}
},
"docdash": {
@@ -2213,7 +2212,7 @@
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
- "esutils": "^2.0.2"
+ "esutils": "2.0.2"
}
},
"dot-prop": {
@@ -2222,7 +2221,7 @@
"integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
"dev": true,
"requires": {
- "is-obj": "^1.0.0"
+ "is-obj": "1.0.1"
}
},
"duplexer2": {
@@ -2231,7 +2230,7 @@
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dev": true,
"requires": {
- "readable-stream": "^2.0.2"
+ "readable-stream": "2.3.6"
}
},
"duplexer3": {
@@ -2246,7 +2245,7 @@
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
- "jsbn": "~0.1.0"
+ "jsbn": "0.1.1"
}
},
"empower-core": {
@@ -2256,7 +2255,7 @@
"dev": true,
"requires": {
"call-signature": "0.0.2",
- "core-js": "^2.0.0"
+ "core-js": "2.5.7"
}
},
"end-of-stream": {
@@ -2264,7 +2263,7 @@
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"requires": {
- "once": "^1.4.0"
+ "once": "1.4.0"
}
},
"equal-length": {
@@ -2279,7 +2278,7 @@
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
"dev": true,
"requires": {
- "is-arrayish": "^0.2.1"
+ "is-arrayish": "0.2.1"
}
},
"es5-ext": {
@@ -2287,9 +2286,9 @@
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
"integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
"requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.1",
- "next-tick": "1"
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "next-tick": "1.0.0"
}
},
"es6-error": {
@@ -2303,9 +2302,9 @@
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
"requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
+ "d": "1.0.0",
+ "es5-ext": "0.10.45",
+ "es6-symbol": "3.1.1"
}
},
"es6-map": {
@@ -2313,12 +2312,12 @@
"resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
"integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
"requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-set": "~0.1.5",
- "es6-symbol": "~3.1.1",
- "event-emitter": "~0.3.5"
+ "d": "1.0.0",
+ "es5-ext": "0.10.45",
+ "es6-iterator": "2.0.3",
+ "es6-set": "0.1.5",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
}
},
"es6-promise": {
@@ -2332,11 +2331,11 @@
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
"integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
"requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
+ "d": "1.0.0",
+ "es5-ext": "0.10.45",
+ "es6-iterator": "2.0.3",
"es6-symbol": "3.1.1",
- "event-emitter": "~0.3.5"
+ "event-emitter": "0.3.5"
}
},
"es6-symbol": {
@@ -2344,8 +2343,8 @@
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
"requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
+ "d": "1.0.0",
+ "es5-ext": "0.10.45"
}
},
"es6-weak-map": {
@@ -2353,10 +2352,10 @@
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"requires": {
- "d": "1",
- "es5-ext": "^0.10.14",
- "es6-iterator": "^2.0.1",
- "es6-symbol": "^3.1.1"
+ "d": "1.0.0",
+ "es5-ext": "0.10.45",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
}
},
"escape-string-regexp": {
@@ -2369,10 +2368,10 @@
"resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
"integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
"requires": {
- "es6-map": "^0.1.3",
- "es6-weak-map": "^2.0.1",
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
+ "es6-map": "0.1.5",
+ "es6-weak-map": "2.0.2",
+ "esrecurse": "4.2.1",
+ "estraverse": "4.2.0"
}
},
"eslint": {
@@ -2381,44 +2380,44 @@
"integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
"dev": true,
"requires": {
- "ajv": "^5.3.0",
- "babel-code-frame": "^6.22.0",
- "chalk": "^2.1.0",
- "concat-stream": "^1.6.0",
- "cross-spawn": "^5.1.0",
- "debug": "^3.1.0",
- "doctrine": "^2.1.0",
- "eslint-scope": "^3.7.1",
- "eslint-visitor-keys": "^1.0.0",
- "espree": "^3.5.4",
- "esquery": "^1.0.0",
- "esutils": "^2.0.2",
- "file-entry-cache": "^2.0.0",
- "functional-red-black-tree": "^1.0.1",
- "glob": "^7.1.2",
- "globals": "^11.0.1",
- "ignore": "^3.3.3",
- "imurmurhash": "^0.1.4",
- "inquirer": "^3.0.6",
- "is-resolvable": "^1.0.0",
- "js-yaml": "^3.9.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.3.0",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.2",
- "mkdirp": "^0.5.1",
- "natural-compare": "^1.4.0",
- "optionator": "^0.8.2",
- "path-is-inside": "^1.0.2",
- "pluralize": "^7.0.0",
- "progress": "^2.0.0",
- "regexpp": "^1.0.1",
- "require-uncached": "^1.0.3",
- "semver": "^5.3.0",
- "strip-ansi": "^4.0.0",
- "strip-json-comments": "~2.0.1",
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.4.1",
+ "concat-stream": "1.6.2",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.1.0",
+ "eslint-scope": "3.7.1",
+ "eslint-visitor-keys": "1.0.0",
+ "espree": "3.5.4",
+ "esquery": "1.0.1",
+ "esutils": "2.0.2",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
+ "glob": "7.1.2",
+ "globals": "11.5.0",
+ "ignore": "3.3.8",
+ "imurmurhash": "0.1.4",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.1.0",
+ "js-yaml": "3.12.0",
+ "json-stable-stringify-without-jsonify": "1.0.1",
+ "levn": "0.3.0",
+ "lodash": "4.17.10",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
+ "optionator": "0.8.2",
+ "path-is-inside": "1.0.2",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
+ "regexpp": "1.1.0",
+ "require-uncached": "1.0.3",
+ "semver": "5.5.0",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
"table": "4.0.2",
- "text-table": "~0.2.0"
+ "text-table": "0.2.0"
},
"dependencies": {
"ansi-regex": {
@@ -2457,7 +2456,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -2474,8 +2473,8 @@
"integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
"dev": true,
"requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
+ "esrecurse": "4.2.1",
+ "estraverse": "4.2.0"
}
},
"eslint-visitor-keys": {
@@ -2490,10 +2489,10 @@
"integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=",
"dev": true,
"requires": {
- "is-url": "^1.2.1",
- "path-is-absolute": "^1.0.0",
- "source-map": "^0.5.0",
- "xtend": "^4.0.0"
+ "is-url": "1.2.4",
+ "path-is-absolute": "1.0.1",
+ "source-map": "0.5.7",
+ "xtend": "4.0.1"
}
},
"espree": {
@@ -2502,8 +2501,8 @@
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
- "acorn": "^5.5.0",
- "acorn-jsx": "^3.0.0"
+ "acorn": "5.6.2",
+ "acorn-jsx": "3.0.1"
}
},
"esprima": {
@@ -2517,7 +2516,7 @@
"integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==",
"dev": true,
"requires": {
- "core-js": "^2.0.0"
+ "core-js": "2.5.7"
}
},
"esquery": {
@@ -2526,7 +2525,7 @@
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
"dev": true,
"requires": {
- "estraverse": "^4.0.0"
+ "estraverse": "4.2.0"
}
},
"esrecurse": {
@@ -2534,7 +2533,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"requires": {
- "estraverse": "^4.1.0"
+ "estraverse": "4.2.0"
}
},
"estraverse": {
@@ -2553,8 +2552,8 @@
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
"requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
+ "d": "1.0.0",
+ "es5-ext": "0.10.45"
}
},
"events-to-array": {
@@ -2569,13 +2568,13 @@
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"dev": true,
"requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
}
},
"expand-brackets": {
@@ -2583,13 +2582,13 @@
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -2597,7 +2596,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -2605,7 +2604,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -2616,7 +2615,7 @@
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
"requires": {
- "fill-range": "^2.1.0"
+ "fill-range": "2.2.4"
},
"dependencies": {
"fill-range": {
@@ -2625,11 +2624,11 @@
"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"dev": true,
"requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "3.0.0",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
}
},
"is-number": {
@@ -2638,7 +2637,7 @@
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
},
"isobject": {
@@ -2656,7 +2655,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -2671,8 +2670,8 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -2680,7 +2679,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -2691,8 +2690,8 @@
"integrity": "sha1-olIauT87G2mjX/OjXamIk4Wpm6A=",
"dev": true,
"requires": {
- "sift": "*",
- "wolfy87-eventemitter": "*"
+ "sift": "5.1.0",
+ "wolfy87-eventemitter": "5.2.4"
}
},
"external-editor": {
@@ -2701,9 +2700,20 @@
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
- "chardet": "^0.4.0",
- "iconv-lite": "^0.4.17",
- "tmp": "^0.0.33"
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.23",
+ "tmp": "0.0.33"
+ },
+ "dependencies": {
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ }
}
},
"extglob": {
@@ -2711,14 +2721,14 @@
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -2726,7 +2736,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"extend-shallow": {
@@ -2734,7 +2744,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"is-accessor-descriptor": {
@@ -2742,7 +2752,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -2750,7 +2760,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -2758,9 +2768,9 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -2798,7 +2808,7 @@
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "^1.0.5"
+ "escape-string-regexp": "1.0.5"
}
},
"file-entry-cache": {
@@ -2807,8 +2817,8 @@
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
- "flat-cache": "^1.2.1",
- "object-assign": "^4.0.1"
+ "flat-cache": "1.3.0",
+ "object-assign": "4.1.1"
}
},
"file-type": {
@@ -2828,10 +2838,10 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
},
"dependencies": {
"extend-shallow": {
@@ -2839,7 +2849,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -2850,9 +2860,9 @@
"integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
"dev": true,
"requires": {
- "commondir": "^1.0.1",
- "make-dir": "^1.0.0",
- "pkg-dir": "^2.0.0"
+ "commondir": "1.0.1",
+ "make-dir": "1.3.0",
+ "pkg-dir": "2.0.0"
}
},
"find-up": {
@@ -2861,7 +2871,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
+ "locate-path": "2.0.0"
}
},
"flat-cache": {
@@ -2870,10 +2880,10 @@
"integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
- "circular-json": "^0.3.1",
- "del": "^2.0.2",
- "graceful-fs": "^4.1.2",
- "write": "^0.2.1"
+ "circular-json": "0.3.3",
+ "del": "2.2.2",
+ "graceful-fs": "4.1.11",
+ "write": "0.2.1"
}
},
"fn-name": {
@@ -2893,7 +2903,7 @@
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
"dev": true,
"requires": {
- "for-in": "^1.0.1"
+ "for-in": "1.0.2"
}
},
"forever-agent": {
@@ -2906,9 +2916,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"requires": {
- "asynckit": "^0.4.0",
+ "asynckit": "0.4.0",
"combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
+ "mime-types": "2.1.18"
}
},
"fragment-cache": {
@@ -2916,7 +2926,7 @@
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
"requires": {
- "map-cache": "^0.2.2"
+ "map-cache": "0.2.2"
}
},
"fs-constants": {
@@ -2936,8 +2946,8 @@
"dev": true,
"optional": true,
"requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
+ "nan": "2.10.0",
+ "node-pre-gyp": "0.10.0"
},
"dependencies": {
"abbrev": {
@@ -2963,8 +2973,8 @@
"dev": true,
"optional": true,
"requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
}
},
"balanced-match": {
@@ -2977,7 +2987,7 @@
"bundled": true,
"dev": true,
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -3041,7 +3051,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"fs.realpath": {
@@ -3056,14 +3066,14 @@
"dev": true,
"optional": true,
"requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
}
},
"glob": {
@@ -3072,12 +3082,12 @@
"dev": true,
"optional": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"has-unicode": {
@@ -3092,7 +3102,7 @@
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "^2.1.0"
+ "safer-buffer": "2.1.2"
}
},
"ignore-walk": {
@@ -3101,7 +3111,7 @@
"dev": true,
"optional": true,
"requires": {
- "minimatch": "^3.0.4"
+ "minimatch": "3.0.4"
}
},
"inflight": {
@@ -3110,8 +3120,8 @@
"dev": true,
"optional": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -3130,7 +3140,7 @@
"bundled": true,
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"isarray": {
@@ -3144,7 +3154,7 @@
"bundled": true,
"dev": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -3157,8 +3167,8 @@
"bundled": true,
"dev": true,
"requires": {
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.0"
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
}
},
"minizlib": {
@@ -3167,7 +3177,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "^2.2.1"
+ "minipass": "2.2.4"
}
},
"mkdirp": {
@@ -3190,9 +3200,9 @@
"dev": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
}
},
"node-pre-gyp": {
@@ -3201,16 +3211,16 @@
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.0",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.1.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
+ "detect-libc": "1.0.3",
+ "mkdirp": "0.5.1",
+ "needle": "2.2.0",
+ "nopt": "4.0.1",
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.7",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
}
},
"nopt": {
@@ -3219,8 +3229,8 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
}
},
"npm-bundled": {
@@ -3235,8 +3245,8 @@
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
}
},
"npmlog": {
@@ -3245,10 +3255,10 @@
"dev": true,
"optional": true,
"requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
}
},
"number-is-nan": {
@@ -3267,7 +3277,7 @@
"bundled": true,
"dev": true,
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"os-homedir": {
@@ -3288,8 +3298,8 @@
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
@@ -3310,10 +3320,10 @@
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "^0.5.1",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
+ "deep-extend": "0.5.1",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
@@ -3330,13 +3340,13 @@
"dev": true,
"optional": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"rimraf": {
@@ -3345,7 +3355,7 @@
"dev": true,
"optional": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "7.1.2"
}
},
"safe-buffer": {
@@ -3388,9 +3398,9 @@
"bundled": true,
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"string_decoder": {
@@ -3399,7 +3409,7 @@
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.1"
}
},
"strip-ansi": {
@@ -3407,7 +3417,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
@@ -3422,13 +3432,13 @@
"dev": true,
"optional": true,
"requires": {
- "chownr": "^1.0.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.2"
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
}
},
"util-deprecate": {
@@ -3443,7 +3453,7 @@
"dev": true,
"optional": true,
"requires": {
- "string-width": "^1.0.2"
+ "string-width": "1.0.2"
}
},
"wrappy": {
@@ -3475,14 +3485,14 @@
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.3"
}
},
"get-func-name": {
@@ -3519,7 +3529,7 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
- "assert-plus": "^1.0.0"
+ "assert-plus": "1.0.0"
}
},
"glob": {
@@ -3527,12 +3537,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"glob-base": {
@@ -3541,8 +3551,8 @@
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"dev": true,
"requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
}
},
"glob-parent": {
@@ -3551,7 +3561,7 @@
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"dev": true,
"requires": {
- "is-glob": "^2.0.0"
+ "is-glob": "2.0.1"
}
},
"glob-to-regexp": {
@@ -3566,7 +3576,7 @@
"integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
"dev": true,
"requires": {
- "ini": "^1.3.4"
+ "ini": "1.3.5"
}
},
"globals": {
@@ -3580,12 +3590,12 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
"integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
"requires": {
- "array-union": "^1.0.1",
- "dir-glob": "^2.0.0",
- "glob": "^7.1.2",
- "ignore": "^3.3.5",
- "pify": "^3.0.0",
- "slash": "^1.0.0"
+ "array-union": "1.0.2",
+ "dir-glob": "2.0.0",
+ "glob": "7.1.2",
+ "ignore": "3.3.8",
+ "pify": "3.0.0",
+ "slash": "1.0.0"
}
},
"got": {
@@ -3594,17 +3604,17 @@
"integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
"dev": true,
"requires": {
- "create-error-class": "^3.0.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-redirect": "^1.0.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "lowercase-keys": "^1.0.0",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "unzip-response": "^2.0.1",
- "url-parse-lax": "^1.0.0"
+ "create-error-class": "3.0.2",
+ "duplexer3": "0.1.4",
+ "get-stream": "3.0.0",
+ "is-redirect": "1.0.0",
+ "is-retry-allowed": "1.1.0",
+ "is-stream": "1.1.0",
+ "lowercase-keys": "1.0.1",
+ "safe-buffer": "5.1.2",
+ "timed-out": "4.0.1",
+ "unzip-response": "2.0.1",
+ "url-parse-lax": "1.0.0"
}
},
"graceful-fs": {
@@ -3622,8 +3632,8 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"requires": {
- "ajv": "^5.1.0",
- "har-schema": "^2.0.0"
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
}
},
"has-ansi": {
@@ -3632,7 +3642,7 @@
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"has-color": {
@@ -3657,9 +3667,9 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
+ "get-value": "2.0.6",
+ "has-values": "1.0.0",
+ "isobject": "3.0.1"
}
},
"has-values": {
@@ -3667,8 +3677,8 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
"requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
},
"dependencies": {
"kind-of": {
@@ -3676,7 +3686,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -3693,8 +3703,8 @@
"integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
"dev": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.1"
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
}
},
"hosted-git-info": {
@@ -3708,9 +3718,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.14.2"
}
},
"hullabaloo-config-manager": {
@@ -3719,20 +3729,20 @@
"integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==",
"dev": true,
"requires": {
- "dot-prop": "^4.1.0",
- "es6-error": "^4.0.2",
- "graceful-fs": "^4.1.11",
- "indent-string": "^3.1.0",
- "json5": "^0.5.1",
- "lodash.clonedeep": "^4.5.0",
- "lodash.clonedeepwith": "^4.5.0",
- "lodash.isequal": "^4.5.0",
- "lodash.merge": "^4.6.0",
- "md5-hex": "^2.0.0",
- "package-hash": "^2.0.0",
- "pkg-dir": "^2.0.0",
- "resolve-from": "^3.0.0",
- "safe-buffer": "^5.0.1"
+ "dot-prop": "4.2.0",
+ "es6-error": "4.1.1",
+ "graceful-fs": "4.1.11",
+ "indent-string": "3.2.0",
+ "json5": "0.5.1",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.clonedeepwith": "4.5.0",
+ "lodash.isequal": "4.5.0",
+ "lodash.merge": "4.6.1",
+ "md5-hex": "2.0.0",
+ "package-hash": "2.0.0",
+ "pkg-dir": "2.0.0",
+ "resolve-from": "3.0.0",
+ "safe-buffer": "5.1.2"
}
},
"iconv-lite": {
@@ -3741,7 +3751,7 @@
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"dev": true,
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": "2.1.2"
}
},
"ignore": {
@@ -3767,8 +3777,8 @@
"integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
"dev": true,
"requires": {
- "pkg-dir": "^2.0.0",
- "resolve-cwd": "^2.0.0"
+ "pkg-dir": "2.0.0",
+ "resolve-cwd": "2.0.0"
}
},
"imurmurhash": {
@@ -3788,8 +3798,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -3809,20 +3819,20 @@
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^2.0.4",
- "figures": "^2.0.0",
- "lodash": "^4.3.0",
+ "ansi-escapes": "3.1.0",
+ "chalk": "2.4.1",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.2.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.10",
"mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rx-lite": "^4.0.8",
- "rx-lite-aggregates": "^4.0.8",
- "string-width": "^2.1.0",
- "strip-ansi": "^4.0.0",
- "through": "^2.3.6"
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
},
"dependencies": {
"ansi-regex": {
@@ -3843,8 +3853,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -3853,7 +3863,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -3864,7 +3874,7 @@
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"dev": true,
"requires": {
- "loose-envify": "^1.0.0"
+ "loose-envify": "1.3.1"
}
},
"irregular-plurals": {
@@ -3878,7 +3888,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -3886,7 +3896,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -3903,7 +3913,7 @@
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"requires": {
- "binary-extensions": "^1.0.0"
+ "binary-extensions": "1.11.0"
}
},
"is-buffer": {
@@ -3917,7 +3927,7 @@
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true,
"requires": {
- "builtin-modules": "^1.0.0"
+ "builtin-modules": "1.1.1"
}
},
"is-ci": {
@@ -3926,7 +3936,7 @@
"integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
"dev": true,
"requires": {
- "ci-info": "^1.0.0"
+ "ci-info": "1.1.3"
}
},
"is-data-descriptor": {
@@ -3934,7 +3944,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -3942,7 +3952,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -3952,9 +3962,9 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
},
"dependencies": {
"kind-of": {
@@ -3976,7 +3986,7 @@
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"dev": true,
"requires": {
- "is-primitive": "^2.0.0"
+ "is-primitive": "2.0.0"
}
},
"is-error": {
@@ -4002,7 +4012,7 @@
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"is-fullwidth-code-point": {
@@ -4010,7 +4020,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"is-generator-fn": {
@@ -4025,7 +4035,7 @@
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "is-extglob": "1.0.0"
}
},
"is-installed-globally": {
@@ -4034,8 +4044,8 @@
"integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
"dev": true,
"requires": {
- "global-dirs": "^0.1.0",
- "is-path-inside": "^1.0.0"
+ "global-dirs": "0.1.1",
+ "is-path-inside": "1.0.1"
}
},
"is-npm": {
@@ -4049,7 +4059,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -4057,7 +4067,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -4074,7 +4084,7 @@
"integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
"dev": true,
"requires": {
- "symbol-observable": "^1.1.0"
+ "symbol-observable": "1.2.0"
}
},
"is-odd": {
@@ -4082,7 +4092,7 @@
"resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
"integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
"requires": {
- "is-number": "^4.0.0"
+ "is-number": "4.0.0"
},
"dependencies": {
"is-number": {
@@ -4104,7 +4114,7 @@
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
"dev": true,
"requires": {
- "is-path-inside": "^1.0.0"
+ "is-path-inside": "1.0.1"
}
},
"is-path-inside": {
@@ -4113,7 +4123,7 @@
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"dev": true,
"requires": {
- "path-is-inside": "^1.0.1"
+ "path-is-inside": "1.0.2"
}
},
"is-plain-obj": {
@@ -4127,7 +4137,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
}
},
"is-posix-bracket": {
@@ -4202,8 +4212,7 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject": {
"version": "3.0.1",
@@ -4233,8 +4242,8 @@
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"dev": true,
"requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "argparse": "1.0.10",
+ "esprima": "4.0.0"
},
"dependencies": {
"esprima": {
@@ -4251,7 +4260,7 @@
"integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=",
"dev": true,
"requires": {
- "xmlcreate": "^1.0.1"
+ "xmlcreate": "1.0.2"
}
},
"jsbn": {
@@ -4267,17 +4276,17 @@
"dev": true,
"requires": {
"babylon": "7.0.0-beta.19",
- "bluebird": "~3.5.0",
- "catharsis": "~0.8.9",
- "escape-string-regexp": "~1.0.5",
- "js2xmlparser": "~3.0.0",
- "klaw": "~2.0.0",
- "marked": "~0.3.6",
- "mkdirp": "~0.5.1",
- "requizzle": "~0.2.1",
- "strip-json-comments": "~2.0.1",
+ "bluebird": "3.5.1",
+ "catharsis": "0.8.9",
+ "escape-string-regexp": "1.0.5",
+ "js2xmlparser": "3.0.0",
+ "klaw": "2.0.0",
+ "marked": "0.3.19",
+ "mkdirp": "0.5.1",
+ "requizzle": "0.2.1",
+ "strip-json-comments": "2.0.1",
"taffydb": "2.6.2",
- "underscore": "~1.8.3"
+ "underscore": "1.8.3"
},
"dependencies": {
"babylon": {
@@ -4358,7 +4367,7 @@
"integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.9"
+ "graceful-fs": "4.1.11"
}
},
"last-line-stream": {
@@ -4367,7 +4376,7 @@
"integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=",
"dev": true,
"requires": {
- "through2": "^2.0.0"
+ "through2": "2.0.3"
}
},
"latest-version": {
@@ -4376,7 +4385,7 @@
"integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
"dev": true,
"requires": {
- "package-json": "^4.0.0"
+ "package-json": "4.0.1"
}
},
"lazystream": {
@@ -4384,7 +4393,7 @@
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
"integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
"requires": {
- "readable-stream": "^2.0.5"
+ "readable-stream": "2.3.6"
}
},
"lcov-parse": {
@@ -4398,11 +4407,11 @@
"resolved": "https://registry.npmjs.org/less/-/less-1.6.3.tgz",
"integrity": "sha1-cc6J7DC3dLNWfyVMZ5WPLywZO94=",
"requires": {
- "clean-css": "2.0.x",
- "mime": "1.2.x",
- "mkdirp": "~0.3.5",
- "request": ">=2.12.0",
- "source-map": "0.1.x"
+ "clean-css": "2.0.8",
+ "mime": "1.2.11",
+ "mkdirp": "0.3.5",
+ "request": "2.87.0",
+ "source-map": "0.1.43"
},
"dependencies": {
"source-map": {
@@ -4411,7 +4420,7 @@
"integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"optional": true,
"requires": {
- "amdefine": ">=0.0.4"
+ "amdefine": "1.0.1"
}
}
}
@@ -4421,10 +4430,10 @@
"resolved": "https://registry.npmjs.org/less-openui5/-/less-openui5-0.5.3.tgz",
"integrity": "sha512-e6k/ZXS2ZIDm+5/mp5bkm8Nnt/fpMAzbe1JG9sw3ax54MKq57597nHA3yBGE+LjMe64OtEjXO/kI25Kyi6HIRw==",
"requires": {
- "clone": "^2.1.0",
- "css": "^2.2.1",
+ "clone": "2.1.1",
+ "css": "2.2.3",
"less": "1.6.3",
- "object-assign": "^4.0.1"
+ "object-assign": "4.1.1"
}
},
"levn": {
@@ -4433,8 +4442,8 @@
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
"requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
}
},
"load-json-file": {
@@ -4443,10 +4452,10 @@
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
},
"dependencies": {
"pify": {
@@ -4463,8 +4472,8 @@
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
}
},
"lodash": {
@@ -4532,7 +4541,7 @@
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
"dev": true,
"requires": {
- "js-tokens": "^3.0.0"
+ "js-tokens": "3.0.2"
}
},
"loud-rejection": {
@@ -4541,8 +4550,8 @@
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
"requires": {
- "currently-unhandled": "^0.4.1",
- "signal-exit": "^3.0.0"
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
}
},
"lowercase-keys": {
@@ -4555,10 +4564,9 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
"integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
- "dev": true,
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
}
},
"make-dir": {
@@ -4566,7 +4574,7 @@
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"requires": {
- "pify": "^3.0.0"
+ "pify": "3.0.0"
}
},
"map-cache": {
@@ -4585,7 +4593,7 @@
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
"requires": {
- "object-visit": "^1.0.0"
+ "object-visit": "1.0.1"
}
},
"marked": {
@@ -4600,7 +4608,7 @@
"integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==",
"dev": true,
"requires": {
- "escape-string-regexp": "^1.0.4"
+ "escape-string-regexp": "1.0.5"
}
},
"math-random": {
@@ -4615,7 +4623,7 @@
"integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=",
"dev": true,
"requires": {
- "md5-o-matic": "^0.1.1"
+ "md5-o-matic": "0.1.1"
}
},
"md5-o-matic": {
@@ -4630,16 +4638,16 @@
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"dev": true,
"requires": {
- "camelcase-keys": "^2.0.0",
- "decamelize": "^1.1.2",
- "loud-rejection": "^1.0.0",
- "map-obj": "^1.0.1",
- "minimist": "^1.1.3",
- "normalize-package-data": "^2.3.4",
- "object-assign": "^4.0.1",
- "read-pkg-up": "^1.0.1",
- "redent": "^1.0.0",
- "trim-newlines": "^1.0.0"
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
},
"dependencies": {
"find-up": {
@@ -4648,8 +4656,8 @@
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"dev": true,
"requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
}
},
"load-json-file": {
@@ -4658,11 +4666,11 @@
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
}
},
"minimist": {
@@ -4677,7 +4685,7 @@
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"dev": true,
"requires": {
- "pinkie-promise": "^2.0.0"
+ "pinkie-promise": "2.0.1"
}
},
"path-type": {
@@ -4686,9 +4694,9 @@
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
}
},
"pify": {
@@ -4709,7 +4717,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
},
"read-pkg": {
@@ -4718,9 +4726,9 @@
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"dev": true,
"requires": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
}
},
"read-pkg-up": {
@@ -4729,8 +4737,8 @@
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"dev": true,
"requires": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
}
},
"strip-bom": {
@@ -4739,7 +4747,7 @@
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"dev": true,
"requires": {
- "is-utf8": "^0.2.0"
+ "is-utf8": "0.2.1"
}
}
}
@@ -4749,19 +4757,19 @@
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
},
"mime": {
@@ -4780,7 +4788,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
"requires": {
- "mime-db": "~1.33.0"
+ "mime-db": "1.33.0"
}
},
"mimic-fn": {
@@ -4794,7 +4802,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -4808,8 +4816,8 @@
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
"requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
+ "for-in": "1.0.2",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -4817,7 +4825,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -4839,10 +4847,10 @@
"integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
"dev": true,
"requires": {
- "array-differ": "^1.0.0",
- "array-union": "^1.0.1",
- "arrify": "^1.0.0",
- "minimatch": "^3.0.0"
+ "array-differ": "1.0.0",
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "minimatch": "3.0.4"
}
},
"mute-stream": {
@@ -4863,18 +4871,18 @@
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
"integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-odd": "^2.0.0",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "fragment-cache": "0.2.1",
+ "is-odd": "2.0.0",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
},
"natural-compare": {
@@ -4894,10 +4902,10 @@
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"dev": true,
"requires": {
- "hosted-git-info": "^2.1.4",
- "is-builtin-module": "^1.0.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "hosted-git-info": "2.6.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.5.0",
+ "validate-npm-package-license": "3.0.3"
}
},
"normalize-path": {
@@ -4905,7 +4913,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"requires": {
- "remove-trailing-separator": "^1.0.1"
+ "remove-trailing-separator": "1.1.0"
}
},
"npm-run-path": {
@@ -4914,7 +4922,7 @@
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"dev": true,
"requires": {
- "path-key": "^2.0.0"
+ "path-key": "2.0.1"
}
},
"npmlog": {
@@ -4922,10 +4930,10 @@
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
+ "are-we-there-yet": "1.1.5",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
}
},
"number-is-nan": {
@@ -4939,33 +4947,33 @@
"integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==",
"dev": true,
"requires": {
- "archy": "^1.0.0",
- "arrify": "^1.0.1",
- "caching-transform": "^1.0.0",
- "convert-source-map": "^1.5.1",
- "debug-log": "^1.0.1",
- "default-require-extensions": "^1.0.0",
- "find-cache-dir": "^0.1.1",
- "find-up": "^2.1.0",
- "foreground-child": "^1.5.3",
- "glob": "^7.0.6",
- "istanbul-lib-coverage": "^1.1.2",
- "istanbul-lib-hook": "^1.1.0",
- "istanbul-lib-instrument": "^1.10.0",
- "istanbul-lib-report": "^1.1.3",
- "istanbul-lib-source-maps": "^1.2.3",
- "istanbul-reports": "^1.4.0",
- "md5-hex": "^1.2.0",
- "merge-source-map": "^1.1.0",
- "micromatch": "^3.1.10",
- "mkdirp": "^0.5.0",
- "resolve-from": "^2.0.0",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.1",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^4.2.0",
+ "archy": "1.0.0",
+ "arrify": "1.0.1",
+ "caching-transform": "1.0.1",
+ "convert-source-map": "1.5.1",
+ "debug-log": "1.0.1",
+ "default-require-extensions": "1.0.0",
+ "find-cache-dir": "0.1.1",
+ "find-up": "2.1.0",
+ "foreground-child": "1.5.6",
+ "glob": "7.1.2",
+ "istanbul-lib-coverage": "1.2.0",
+ "istanbul-lib-hook": "1.1.0",
+ "istanbul-lib-instrument": "1.10.1",
+ "istanbul-lib-report": "1.1.3",
+ "istanbul-lib-source-maps": "1.2.3",
+ "istanbul-reports": "1.4.0",
+ "md5-hex": "1.3.0",
+ "merge-source-map": "1.1.0",
+ "micromatch": "3.1.10",
+ "mkdirp": "0.5.1",
+ "resolve-from": "2.0.0",
+ "rimraf": "2.6.2",
+ "signal-exit": "3.0.2",
+ "spawn-wrap": "1.4.2",
+ "test-exclude": "4.2.1",
"yargs": "11.1.0",
- "yargs-parser": "^8.0.0"
+ "yargs-parser": "8.1.0"
},
"dependencies": {
"align-text": {
@@ -4973,9 +4981,9 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
}
},
"amdefine": {
@@ -4998,7 +5006,7 @@
"bundled": true,
"dev": true,
"requires": {
- "default-require-extensions": "^1.0.0"
+ "default-require-extensions": "1.0.0"
}
},
"archy": {
@@ -5051,9 +5059,9 @@
"bundled": true,
"dev": true,
"requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
}
},
"babel-generator": {
@@ -5061,14 +5069,14 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.10",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
}
},
"babel-messages": {
@@ -5076,7 +5084,7 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-runtime": {
@@ -5084,8 +5092,8 @@
"bundled": true,
"dev": true,
"requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "core-js": "2.5.6",
+ "regenerator-runtime": "0.11.1"
}
},
"babel-template": {
@@ -5093,11 +5101,11 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.10"
}
},
"babel-traverse": {
@@ -5105,15 +5113,15 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.4",
+ "lodash": "4.17.10"
}
},
"babel-types": {
@@ -5121,10 +5129,10 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.10",
+ "to-fast-properties": "1.0.3"
}
},
"babylon": {
@@ -5142,13 +5150,13 @@
"bundled": true,
"dev": true,
"requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
+ "cache-base": "1.0.1",
+ "class-utils": "0.3.6",
+ "component-emitter": "1.2.1",
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "mixin-deep": "1.3.1",
+ "pascalcase": "0.1.1"
},
"dependencies": {
"define-property": {
@@ -5156,7 +5164,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
@@ -5164,7 +5172,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -5172,7 +5180,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -5180,9 +5188,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"isobject": {
@@ -5202,7 +5210,7 @@
"bundled": true,
"dev": true,
"requires": {
- "balanced-match": "^1.0.0",
+ "balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@@ -5211,16 +5219,16 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
},
"dependencies": {
"extend-shallow": {
@@ -5228,7 +5236,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -5243,15 +5251,15 @@
"bundled": true,
"dev": true,
"requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "collection-visit": "1.0.0",
+ "component-emitter": "1.2.1",
+ "get-value": "2.0.6",
+ "has-value": "1.0.0",
+ "isobject": "3.0.1",
+ "set-value": "2.0.0",
+ "to-object-path": "0.3.0",
+ "union-value": "1.0.0",
+ "unset-value": "1.0.0"
},
"dependencies": {
"isobject": {
@@ -5266,9 +5274,9 @@
"bundled": true,
"dev": true,
"requires": {
- "md5-hex": "^1.2.0",
- "mkdirp": "^0.5.1",
- "write-file-atomic": "^1.1.4"
+ "md5-hex": "1.3.0",
+ "mkdirp": "0.5.1",
+ "write-file-atomic": "1.3.4"
}
},
"camelcase": {
@@ -5283,8 +5291,8 @@
"dev": true,
"optional": true,
"requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
}
},
"chalk": {
@@ -5292,11 +5300,11 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
}
},
"class-utils": {
@@ -5304,10 +5312,10 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "arr-union": "3.1.0",
+ "define-property": "0.2.5",
+ "isobject": "3.0.1",
+ "static-extend": "0.1.2"
},
"dependencies": {
"define-property": {
@@ -5315,7 +5323,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"isobject": {
@@ -5331,8 +5339,8 @@
"dev": true,
"optional": true,
"requires": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
"wordwrap": "0.0.2"
},
"dependencies": {
@@ -5354,8 +5362,8 @@
"bundled": true,
"dev": true,
"requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "map-visit": "1.0.0",
+ "object-visit": "1.0.1"
}
},
"commondir": {
@@ -5393,8 +5401,8 @@
"bundled": true,
"dev": true,
"requires": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
+ "lru-cache": "4.1.3",
+ "which": "1.3.0"
}
},
"debug": {
@@ -5425,7 +5433,7 @@
"bundled": true,
"dev": true,
"requires": {
- "strip-bom": "^2.0.0"
+ "strip-bom": "2.0.0"
}
},
"define-property": {
@@ -5433,8 +5441,8 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
},
"dependencies": {
"is-accessor-descriptor": {
@@ -5442,7 +5450,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -5450,7 +5458,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -5458,9 +5466,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"isobject": {
@@ -5480,7 +5488,7 @@
"bundled": true,
"dev": true,
"requires": {
- "repeating": "^2.0.0"
+ "repeating": "2.0.1"
}
},
"error-ex": {
@@ -5488,7 +5496,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-arrayish": "^0.2.1"
+ "is-arrayish": "0.2.1"
}
},
"escape-string-regexp": {
@@ -5506,13 +5514,13 @@
"bundled": true,
"dev": true,
"requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
},
"dependencies": {
"cross-spawn": {
@@ -5520,9 +5528,9 @@
"bundled": true,
"dev": true,
"requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
}
}
}
@@ -5532,13 +5540,13 @@
"bundled": true,
"dev": true,
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -5546,7 +5554,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -5554,7 +5562,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -5564,8 +5572,8 @@
"bundled": true,
"dev": true,
"requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -5573,7 +5581,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -5583,14 +5591,14 @@
"bundled": true,
"dev": true,
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -5598,7 +5606,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"extend-shallow": {
@@ -5606,7 +5614,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"is-accessor-descriptor": {
@@ -5614,7 +5622,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -5622,7 +5630,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -5630,9 +5638,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"kind-of": {
@@ -5647,10 +5655,10 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
},
"dependencies": {
"extend-shallow": {
@@ -5658,7 +5666,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -5668,9 +5676,9 @@
"bundled": true,
"dev": true,
"requires": {
- "commondir": "^1.0.1",
- "mkdirp": "^0.5.1",
- "pkg-dir": "^1.0.0"
+ "commondir": "1.0.1",
+ "mkdirp": "0.5.1",
+ "pkg-dir": "1.0.0"
}
},
"find-up": {
@@ -5678,7 +5686,7 @@
"bundled": true,
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
+ "locate-path": "2.0.0"
}
},
"for-in": {
@@ -5691,8 +5699,8 @@
"bundled": true,
"dev": true,
"requires": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
+ "cross-spawn": "4.0.2",
+ "signal-exit": "3.0.2"
}
},
"fragment-cache": {
@@ -5700,7 +5708,7 @@
"bundled": true,
"dev": true,
"requires": {
- "map-cache": "^0.2.2"
+ "map-cache": "0.2.2"
}
},
"fs.realpath": {
@@ -5728,12 +5736,12 @@
"bundled": true,
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"globals": {
@@ -5751,10 +5759,10 @@
"bundled": true,
"dev": true,
"requires": {
- "async": "^1.4.0",
- "optimist": "^0.6.1",
- "source-map": "^0.4.4",
- "uglify-js": "^2.6"
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
},
"dependencies": {
"source-map": {
@@ -5762,7 +5770,7 @@
"bundled": true,
"dev": true,
"requires": {
- "amdefine": ">=0.0.4"
+ "amdefine": "1.0.1"
}
}
}
@@ -5772,7 +5780,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"has-flag": {
@@ -5785,9 +5793,9 @@
"bundled": true,
"dev": true,
"requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
+ "get-value": "2.0.6",
+ "has-values": "1.0.0",
+ "isobject": "3.0.1"
},
"dependencies": {
"isobject": {
@@ -5802,8 +5810,8 @@
"bundled": true,
"dev": true,
"requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
},
"dependencies": {
"is-number": {
@@ -5811,7 +5819,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -5819,7 +5827,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -5829,7 +5837,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -5849,8 +5857,8 @@
"bundled": true,
"dev": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
}
},
"inherits": {
@@ -5863,7 +5871,7 @@
"bundled": true,
"dev": true,
"requires": {
- "loose-envify": "^1.0.0"
+ "loose-envify": "1.3.1"
}
},
"invert-kv": {
@@ -5876,7 +5884,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
},
"is-arrayish": {
@@ -5894,7 +5902,7 @@
"bundled": true,
"dev": true,
"requires": {
- "builtin-modules": "^1.0.0"
+ "builtin-modules": "1.1.1"
}
},
"is-data-descriptor": {
@@ -5902,7 +5910,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
},
"is-descriptor": {
@@ -5910,9 +5918,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
},
"dependencies": {
"kind-of": {
@@ -5932,7 +5940,7 @@
"bundled": true,
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"is-fullwidth-code-point": {
@@ -5945,7 +5953,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
},
"is-odd": {
@@ -5953,7 +5961,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-number": "^4.0.0"
+ "is-number": "4.0.0"
},
"dependencies": {
"is-number": {
@@ -5968,7 +5976,7 @@
"bundled": true,
"dev": true,
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
},
"dependencies": {
"isobject": {
@@ -6018,7 +6026,7 @@
"bundled": true,
"dev": true,
"requires": {
- "append-transform": "^0.4.0"
+ "append-transform": "0.4.0"
}
},
"istanbul-lib-instrument": {
@@ -6026,13 +6034,13 @@
"bundled": true,
"dev": true,
"requires": {
- "babel-generator": "^6.18.0",
- "babel-template": "^6.16.0",
- "babel-traverse": "^6.18.0",
- "babel-types": "^6.18.0",
- "babylon": "^6.18.0",
- "istanbul-lib-coverage": "^1.2.0",
- "semver": "^5.3.0"
+ "babel-generator": "6.26.1",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "istanbul-lib-coverage": "1.2.0",
+ "semver": "5.5.0"
}
},
"istanbul-lib-report": {
@@ -6040,10 +6048,10 @@
"bundled": true,
"dev": true,
"requires": {
- "istanbul-lib-coverage": "^1.1.2",
- "mkdirp": "^0.5.1",
- "path-parse": "^1.0.5",
- "supports-color": "^3.1.2"
+ "istanbul-lib-coverage": "1.2.0",
+ "mkdirp": "0.5.1",
+ "path-parse": "1.0.5",
+ "supports-color": "3.2.3"
},
"dependencies": {
"supports-color": {
@@ -6051,7 +6059,7 @@
"bundled": true,
"dev": true,
"requires": {
- "has-flag": "^1.0.0"
+ "has-flag": "1.0.0"
}
}
}
@@ -6061,11 +6069,11 @@
"bundled": true,
"dev": true,
"requires": {
- "debug": "^3.1.0",
- "istanbul-lib-coverage": "^1.1.2",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.6.1",
- "source-map": "^0.5.3"
+ "debug": "3.1.0",
+ "istanbul-lib-coverage": "1.2.0",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "source-map": "0.5.7"
},
"dependencies": {
"debug": {
@@ -6083,7 +6091,7 @@
"bundled": true,
"dev": true,
"requires": {
- "handlebars": "^4.0.3"
+ "handlebars": "4.0.11"
}
},
"js-tokens": {
@@ -6101,7 +6109,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
},
"lazy-cache": {
@@ -6115,7 +6123,7 @@
"bundled": true,
"dev": true,
"requires": {
- "invert-kv": "^1.0.0"
+ "invert-kv": "1.0.0"
}
},
"load-json-file": {
@@ -6123,11 +6131,11 @@
"bundled": true,
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
}
},
"locate-path": {
@@ -6135,8 +6143,8 @@
"bundled": true,
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
},
"dependencies": {
"path-exists": {
@@ -6161,7 +6169,7 @@
"bundled": true,
"dev": true,
"requires": {
- "js-tokens": "^3.0.0"
+ "js-tokens": "3.0.2"
}
},
"lru-cache": {
@@ -6169,8 +6177,8 @@
"bundled": true,
"dev": true,
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
}
},
"map-cache": {
@@ -6183,7 +6191,7 @@
"bundled": true,
"dev": true,
"requires": {
- "object-visit": "^1.0.0"
+ "object-visit": "1.0.1"
}
},
"md5-hex": {
@@ -6191,7 +6199,7 @@
"bundled": true,
"dev": true,
"requires": {
- "md5-o-matic": "^0.1.1"
+ "md5-o-matic": "0.1.1"
}
},
"md5-o-matic": {
@@ -6204,7 +6212,7 @@
"bundled": true,
"dev": true,
"requires": {
- "mimic-fn": "^1.0.0"
+ "mimic-fn": "1.2.0"
}
},
"merge-source-map": {
@@ -6212,7 +6220,7 @@
"bundled": true,
"dev": true,
"requires": {
- "source-map": "^0.6.1"
+ "source-map": "0.6.1"
},
"dependencies": {
"source-map": {
@@ -6227,19 +6235,19 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"kind-of": {
@@ -6259,7 +6267,7 @@
"bundled": true,
"dev": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -6272,8 +6280,8 @@
"bundled": true,
"dev": true,
"requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
+ "for-in": "1.0.2",
+ "is-extendable": "1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -6281,7 +6289,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "2.0.4"
}
}
}
@@ -6304,18 +6312,18 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-odd": "^2.0.0",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "fragment-cache": "0.2.1",
+ "is-odd": "2.0.0",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"arr-diff": {
@@ -6340,10 +6348,10 @@
"bundled": true,
"dev": true,
"requires": {
- "hosted-git-info": "^2.1.4",
- "is-builtin-module": "^1.0.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "hosted-git-info": "2.6.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.5.0",
+ "validate-npm-package-license": "3.0.3"
}
},
"npm-run-path": {
@@ -6351,7 +6359,7 @@
"bundled": true,
"dev": true,
"requires": {
- "path-key": "^2.0.0"
+ "path-key": "2.0.1"
}
},
"number-is-nan": {
@@ -6369,9 +6377,9 @@
"bundled": true,
"dev": true,
"requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
+ "copy-descriptor": "0.1.1",
+ "define-property": "0.2.5",
+ "kind-of": "3.2.2"
},
"dependencies": {
"define-property": {
@@ -6379,7 +6387,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -6389,7 +6397,7 @@
"bundled": true,
"dev": true,
"requires": {
- "isobject": "^3.0.0"
+ "isobject": "3.0.1"
},
"dependencies": {
"isobject": {
@@ -6404,7 +6412,7 @@
"bundled": true,
"dev": true,
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
},
"dependencies": {
"isobject": {
@@ -6419,7 +6427,7 @@
"bundled": true,
"dev": true,
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"optimist": {
@@ -6427,8 +6435,8 @@
"bundled": true,
"dev": true,
"requires": {
- "minimist": "~0.0.1",
- "wordwrap": "~0.0.2"
+ "minimist": "0.0.8",
+ "wordwrap": "0.0.3"
}
},
"os-homedir": {
@@ -6441,9 +6449,9 @@
"bundled": true,
"dev": true,
"requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
}
},
"p-finally": {
@@ -6456,7 +6464,7 @@
"bundled": true,
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "p-try": "1.0.0"
}
},
"p-locate": {
@@ -6464,7 +6472,7 @@
"bundled": true,
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "p-limit": "1.2.0"
}
},
"p-try": {
@@ -6477,7 +6485,7 @@
"bundled": true,
"dev": true,
"requires": {
- "error-ex": "^1.2.0"
+ "error-ex": "1.3.1"
}
},
"pascalcase": {
@@ -6490,7 +6498,7 @@
"bundled": true,
"dev": true,
"requires": {
- "pinkie-promise": "^2.0.0"
+ "pinkie-promise": "2.0.1"
}
},
"path-is-absolute": {
@@ -6513,9 +6521,9 @@
"bundled": true,
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
}
},
"pify": {
@@ -6533,7 +6541,7 @@
"bundled": true,
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
},
"pkg-dir": {
@@ -6541,7 +6549,7 @@
"bundled": true,
"dev": true,
"requires": {
- "find-up": "^1.0.0"
+ "find-up": "1.1.2"
},
"dependencies": {
"find-up": {
@@ -6549,8 +6557,8 @@
"bundled": true,
"dev": true,
"requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
}
}
}
@@ -6570,9 +6578,9 @@
"bundled": true,
"dev": true,
"requires": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
}
},
"read-pkg-up": {
@@ -6580,8 +6588,8 @@
"bundled": true,
"dev": true,
"requires": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
},
"dependencies": {
"find-up": {
@@ -6589,8 +6597,8 @@
"bundled": true,
"dev": true,
"requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
}
}
}
@@ -6605,8 +6613,8 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
}
},
"repeat-element": {
@@ -6624,7 +6632,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-finite": "^1.0.0"
+ "is-finite": "1.0.2"
}
},
"require-directory": {
@@ -6658,7 +6666,7 @@
"dev": true,
"optional": true,
"requires": {
- "align-text": "^0.1.1"
+ "align-text": "0.1.4"
}
},
"rimraf": {
@@ -6666,7 +6674,7 @@
"bundled": true,
"dev": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "7.1.2"
}
},
"safe-regex": {
@@ -6674,7 +6682,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ret": "~0.1.10"
+ "ret": "0.1.15"
}
},
"semver": {
@@ -6692,10 +6700,10 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "split-string": "3.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -6703,7 +6711,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -6713,7 +6721,7 @@
"bundled": true,
"dev": true,
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "1.0.0"
}
},
"shebang-regex": {
@@ -6736,14 +6744,14 @@
"bundled": true,
"dev": true,
"requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
+ "base": "0.11.2",
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "map-cache": "0.2.2",
+ "source-map": "0.5.7",
+ "source-map-resolve": "0.5.1",
+ "use": "3.1.0"
},
"dependencies": {
"define-property": {
@@ -6751,7 +6759,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -6759,7 +6767,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -6769,9 +6777,9 @@
"bundled": true,
"dev": true,
"requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "snapdragon-util": "3.0.1"
},
"dependencies": {
"define-property": {
@@ -6779,7 +6787,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
@@ -6787,7 +6795,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -6795,7 +6803,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -6803,9 +6811,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"isobject": {
@@ -6825,7 +6833,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.2.0"
+ "kind-of": "3.2.2"
}
},
"source-map": {
@@ -6838,11 +6846,11 @@
"bundled": true,
"dev": true,
"requires": {
- "atob": "^2.0.0",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
+ "atob": "2.1.1",
+ "decode-uri-component": "0.2.0",
+ "resolve-url": "0.2.1",
+ "source-map-url": "0.4.0",
+ "urix": "0.1.0"
}
},
"source-map-url": {
@@ -6855,12 +6863,12 @@
"bundled": true,
"dev": true,
"requires": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
+ "foreground-child": "1.5.6",
+ "mkdirp": "0.5.1",
+ "os-homedir": "1.0.2",
+ "rimraf": "2.6.2",
+ "signal-exit": "3.0.2",
+ "which": "1.3.0"
}
},
"spdx-correct": {
@@ -6868,8 +6876,8 @@
"bundled": true,
"dev": true,
"requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-exceptions": {
@@ -6882,8 +6890,8 @@
"bundled": true,
"dev": true,
"requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-exceptions": "2.1.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-license-ids": {
@@ -6896,7 +6904,7 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^3.0.0"
+ "extend-shallow": "3.0.2"
}
},
"static-extend": {
@@ -6904,8 +6912,8 @@
"bundled": true,
"dev": true,
"requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
+ "define-property": "0.2.5",
+ "object-copy": "0.1.0"
},
"dependencies": {
"define-property": {
@@ -6913,7 +6921,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -6923,8 +6931,8 @@
"bundled": true,
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -6937,7 +6945,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -6947,7 +6955,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-bom": {
@@ -6955,7 +6963,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-utf8": "^0.2.0"
+ "is-utf8": "0.2.1"
}
},
"strip-eof": {
@@ -6973,11 +6981,11 @@
"bundled": true,
"dev": true,
"requires": {
- "arrify": "^1.0.1",
- "micromatch": "^3.1.8",
- "object-assign": "^4.1.0",
- "read-pkg-up": "^1.0.1",
- "require-main-filename": "^1.0.1"
+ "arrify": "1.0.1",
+ "micromatch": "3.1.10",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "require-main-filename": "1.0.1"
},
"dependencies": {
"arr-diff": {
@@ -6995,16 +7003,16 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
},
"dependencies": {
"extend-shallow": {
@@ -7012,7 +7020,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -7022,13 +7030,13 @@
"bundled": true,
"dev": true,
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -7036,7 +7044,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -7044,7 +7052,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"is-accessor-descriptor": {
@@ -7052,7 +7060,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -7060,7 +7068,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -7070,7 +7078,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -7078,7 +7086,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -7088,9 +7096,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
}
},
"kind-of": {
@@ -7105,14 +7113,14 @@
"bundled": true,
"dev": true,
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"define-property": {
@@ -7120,7 +7128,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"extend-shallow": {
@@ -7128,7 +7136,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -7138,10 +7146,10 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
},
"dependencies": {
"extend-shallow": {
@@ -7149,7 +7157,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -7159,7 +7167,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -7167,7 +7175,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -7175,9 +7183,9 @@
"bundled": true,
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"is-number": {
@@ -7185,7 +7193,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -7193,7 +7201,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -7213,19 +7221,19 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
}
}
@@ -7240,7 +7248,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
},
"to-regex": {
@@ -7248,10 +7256,10 @@
"bundled": true,
"dev": true,
"requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
}
},
"to-regex-range": {
@@ -7259,8 +7267,8 @@
"bundled": true,
"dev": true,
"requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1"
},
"dependencies": {
"is-number": {
@@ -7268,7 +7276,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
}
}
}
@@ -7284,9 +7292,9 @@
"dev": true,
"optional": true,
"requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
},
"dependencies": {
"yargs": {
@@ -7295,9 +7303,9 @@
"dev": true,
"optional": true,
"requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
"window-size": "0.1.0"
}
}
@@ -7314,10 +7322,10 @@
"bundled": true,
"dev": true,
"requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
+ "arr-union": "3.1.0",
+ "get-value": "2.0.6",
+ "is-extendable": "0.1.1",
+ "set-value": "0.4.3"
},
"dependencies": {
"extend-shallow": {
@@ -7325,7 +7333,7 @@
"bundled": true,
"dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"set-value": {
@@ -7333,10 +7341,10 @@
"bundled": true,
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "to-object-path": "0.3.0"
}
}
}
@@ -7346,8 +7354,8 @@
"bundled": true,
"dev": true,
"requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "has-value": "0.3.1",
+ "isobject": "3.0.1"
},
"dependencies": {
"has-value": {
@@ -7355,9 +7363,9 @@
"bundled": true,
"dev": true,
"requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
+ "get-value": "2.0.6",
+ "has-values": "0.1.4",
+ "isobject": "2.1.0"
},
"dependencies": {
"isobject": {
@@ -7392,7 +7400,7 @@
"bundled": true,
"dev": true,
"requires": {
- "kind-of": "^6.0.2"
+ "kind-of": "6.0.2"
},
"dependencies": {
"kind-of": {
@@ -7407,8 +7415,8 @@
"bundled": true,
"dev": true,
"requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "spdx-correct": "3.0.0",
+ "spdx-expression-parse": "3.0.0"
}
},
"which": {
@@ -7416,7 +7424,7 @@
"bundled": true,
"dev": true,
"requires": {
- "isexe": "^2.0.0"
+ "isexe": "2.0.0"
}
},
"which-module": {
@@ -7440,8 +7448,8 @@
"bundled": true,
"dev": true,
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
},
"dependencies": {
"is-fullwidth-code-point": {
@@ -7449,7 +7457,7 @@
"bundled": true,
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "number-is-nan": "1.0.1"
}
},
"string-width": {
@@ -7457,9 +7465,9 @@
"bundled": true,
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
}
}
@@ -7474,9 +7482,9 @@
"bundled": true,
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
}
},
"y18n": {
@@ -7494,18 +7502,18 @@
"bundled": true,
"dev": true,
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.1.1",
- "find-up": "^2.1.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^9.0.2"
+ "cliui": "4.1.0",
+ "decamelize": "1.2.0",
+ "find-up": "2.1.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "9.0.2"
},
"dependencies": {
"ansi-regex": {
@@ -7523,9 +7531,9 @@
"bundled": true,
"dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "wrap-ansi": "2.1.0"
}
},
"strip-ansi": {
@@ -7533,7 +7541,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
},
"yargs-parser": {
@@ -7541,7 +7549,7 @@
"bundled": true,
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "camelcase": "4.1.0"
}
}
}
@@ -7551,7 +7559,7 @@
"bundled": true,
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "camelcase": "4.1.0"
},
"dependencies": {
"camelcase": {
@@ -7578,9 +7586,9 @@
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
+ "copy-descriptor": "0.1.1",
+ "define-property": "0.2.5",
+ "kind-of": "3.2.2"
},
"dependencies": {
"define-property": {
@@ -7588,7 +7596,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"kind-of": {
@@ -7596,7 +7604,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -7606,7 +7614,7 @@
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
"requires": {
- "isobject": "^3.0.0"
+ "isobject": "3.0.1"
}
},
"object.omit": {
@@ -7615,8 +7623,8 @@
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
"dev": true,
"requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
}
},
"object.pick": {
@@ -7624,7 +7632,7 @@
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"requires": {
- "isobject": "^3.0.1"
+ "isobject": "3.0.1"
}
},
"observable-to-promise": {
@@ -7633,8 +7641,8 @@
"integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=",
"dev": true,
"requires": {
- "is-observable": "^0.2.0",
- "symbol-observable": "^1.0.4"
+ "is-observable": "0.2.0",
+ "symbol-observable": "1.2.0"
},
"dependencies": {
"is-observable": {
@@ -7643,7 +7651,7 @@
"integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=",
"dev": true,
"requires": {
- "symbol-observable": "^0.2.2"
+ "symbol-observable": "0.2.4"
},
"dependencies": {
"symbol-observable": {
@@ -7661,7 +7669,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1"
+ "wrappy": "1.0.2"
}
},
"onetime": {
@@ -7670,7 +7678,7 @@
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "mimic-fn": "^1.0.0"
+ "mimic-fn": "1.2.0"
}
},
"opn": {
@@ -7679,8 +7687,8 @@
"integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
"dev": true,
"requires": {
- "object-assign": "^4.0.1",
- "pinkie-promise": "^2.0.0"
+ "object-assign": "4.1.1",
+ "pinkie-promise": "2.0.1"
},
"dependencies": {
"pinkie": {
@@ -7695,7 +7703,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
}
}
@@ -7706,11 +7714,11 @@
"integrity": "sha1-+BmubK4LQRvQFJuFYP5siK2tIPg=",
"dev": true,
"requires": {
- "file-type": "^3.6.0",
- "get-stdin": "^5.0.1",
- "meow": "^3.7.0",
- "opn": "^4.0.0",
- "temp-write": "^2.1.0"
+ "file-type": "3.9.0",
+ "get-stdin": "5.0.1",
+ "meow": "3.7.0",
+ "opn": "4.0.2",
+ "temp-write": "2.1.0"
},
"dependencies": {
"get-stdin": {
@@ -7733,12 +7741,12 @@
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.4",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "wordwrap": "~1.0.0"
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
}
},
"os-homedir": {
@@ -7750,8 +7758,7 @@
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"p-finally": {
"version": "1.0.0",
@@ -7765,7 +7772,7 @@
"integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "p-try": "1.0.0"
}
},
"p-locate": {
@@ -7774,7 +7781,7 @@
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "p-limit": "1.2.0"
}
},
"p-try": {
@@ -7789,10 +7796,10 @@
"integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "lodash.flattendeep": "^4.4.0",
- "md5-hex": "^2.0.0",
- "release-zalgo": "^1.0.0"
+ "graceful-fs": "4.1.11",
+ "lodash.flattendeep": "4.4.0",
+ "md5-hex": "2.0.0",
+ "release-zalgo": "1.0.0"
}
},
"package-json": {
@@ -7801,10 +7808,10 @@
"integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
"dev": true,
"requires": {
- "got": "^6.7.1",
- "registry-auth-token": "^3.0.1",
- "registry-url": "^3.0.3",
- "semver": "^5.1.0"
+ "got": "6.7.1",
+ "registry-auth-token": "3.3.2",
+ "registry-url": "3.1.0",
+ "semver": "5.5.0"
}
},
"parse-glob": {
@@ -7813,10 +7820,10 @@
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
"dev": true,
"requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
}
},
"parse-json": {
@@ -7825,7 +7832,7 @@
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"dev": true,
"requires": {
- "error-ex": "^1.2.0"
+ "error-ex": "1.3.1"
}
},
"parse-ms": {
@@ -7867,7 +7874,7 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"requires": {
- "pify": "^3.0.0"
+ "pify": "3.0.0"
}
},
"pathval": {
@@ -7898,7 +7905,7 @@
"integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=",
"dev": true,
"requires": {
- "pinkie": "^1.0.0"
+ "pinkie": "1.0.0"
}
},
"pkg-conf": {
@@ -7907,8 +7914,8 @@
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "load-json-file": "^4.0.0"
+ "find-up": "2.1.0",
+ "load-json-file": "4.0.0"
},
"dependencies": {
"load-json-file": {
@@ -7917,10 +7924,10 @@
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "graceful-fs": "4.1.11",
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
}
},
"parse-json": {
@@ -7929,8 +7936,8 @@
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.2"
}
}
}
@@ -7941,7 +7948,7 @@
"integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
"dev": true,
"requires": {
- "find-up": "^2.1.0"
+ "find-up": "2.1.0"
}
},
"plur": {
@@ -7950,7 +7957,7 @@
"integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
"dev": true,
"requires": {
- "irregular-plurals": "^1.0.0"
+ "irregular-plurals": "1.4.0"
}
},
"pluralize": {
@@ -7998,7 +8005,7 @@
"integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==",
"dev": true,
"requires": {
- "parse-ms": "^1.0.0"
+ "parse-ms": "1.0.1"
},
"dependencies": {
"parse-ms": {
@@ -8029,8 +8036,7 @@
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
"punycode": {
"version": "1.4.1",
@@ -8053,9 +8059,9 @@
"integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
"dev": true,
"requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
+ "is-number": "4.0.0",
+ "kind-of": "6.0.2",
+ "math-random": "1.0.1"
},
"dependencies": {
"is-number": {
@@ -8072,10 +8078,10 @@
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
+ "deep-extend": "0.6.0",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
@@ -8092,9 +8098,9 @@
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
"dev": true,
"requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
},
"dependencies": {
"path-type": {
@@ -8103,7 +8109,7 @@
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"dev": true,
"requires": {
- "pify": "^2.0.0"
+ "pify": "2.3.0"
}
},
"pify": {
@@ -8120,8 +8126,8 @@
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
}
},
"readable-stream": {
@@ -8129,13 +8135,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"readdir-enhanced": {
@@ -8144,9 +8150,9 @@
"integrity": "sha1-YUYwSGkKxqRVt1ti+nioj43IXlM=",
"dev": true,
"requires": {
- "call-me-maybe": "^1.0.1",
- "es6-promise": "^4.1.0",
- "glob-to-regexp": "^0.3.0"
+ "call-me-maybe": "1.0.1",
+ "es6-promise": "4.2.4",
+ "glob-to-regexp": "0.3.0"
}
},
"readdirp": {
@@ -8155,10 +8161,10 @@
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "minimatch": "^3.0.2",
- "readable-stream": "^2.0.2",
- "set-immediate-shim": "^1.0.1"
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "readable-stream": "2.3.6",
+ "set-immediate-shim": "1.0.1"
}
},
"recursive-readdir": {
@@ -8176,8 +8182,8 @@
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"dev": true,
"requires": {
- "indent-string": "^2.1.0",
- "strip-indent": "^1.0.1"
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
},
"dependencies": {
"indent-string": {
@@ -8186,7 +8192,7 @@
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
"requires": {
- "repeating": "^2.0.0"
+ "repeating": "2.0.1"
}
}
}
@@ -8209,7 +8215,7 @@
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"dev": true,
"requires": {
- "is-equal-shallow": "^0.1.3"
+ "is-equal-shallow": "0.1.3"
}
},
"regex-not": {
@@ -8217,8 +8223,8 @@
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
}
},
"regexpp": {
@@ -8233,9 +8239,9 @@
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"dev": true,
"requires": {
- "regenerate": "^1.2.1",
- "regjsgen": "^0.2.0",
- "regjsparser": "^0.1.4"
+ "regenerate": "1.4.0",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
}
},
"registry-auth-token": {
@@ -8244,8 +8250,8 @@
"integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
"dev": true,
"requires": {
- "rc": "^1.1.6",
- "safe-buffer": "^5.0.1"
+ "rc": "1.2.8",
+ "safe-buffer": "5.1.2"
}
},
"registry-url": {
@@ -8254,7 +8260,7 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true,
"requires": {
- "rc": "^1.0.1"
+ "rc": "1.2.8"
}
},
"regjsgen": {
@@ -8269,7 +8275,7 @@
"integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
"dev": true,
"requires": {
- "jsesc": "~0.5.0"
+ "jsesc": "0.5.0"
}
},
"release-zalgo": {
@@ -8278,7 +8284,7 @@
"integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
"dev": true,
"requires": {
- "es6-error": "^4.0.1"
+ "es6-error": "4.1.1"
}
},
"remove-trailing-separator": {
@@ -8302,7 +8308,7 @@
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"dev": true,
"requires": {
- "is-finite": "^1.0.0"
+ "is-finite": "1.0.2"
}
},
"replacestream": {
@@ -8310,9 +8316,9 @@
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
"integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
"requires": {
- "escape-string-regexp": "^1.0.3",
- "object-assign": "^4.0.1",
- "readable-stream": "^2.0.2"
+ "escape-string-regexp": "1.0.5",
+ "object-assign": "4.1.1",
+ "readable-stream": "2.3.6"
}
},
"request": {
@@ -8320,26 +8326,26 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
"requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.6.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.5",
- "extend": "~3.0.1",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.1",
- "har-validator": "~5.0.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.17",
- "oauth-sign": "~0.8.2",
- "performance-now": "^2.1.0",
- "qs": "~6.5.1",
- "safe-buffer": "^5.1.1",
- "tough-cookie": "~2.3.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.1.0"
+ "aws-sign2": "0.7.0",
+ "aws4": "1.7.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.6",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.2",
+ "har-validator": "5.0.3",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.18",
+ "oauth-sign": "0.8.2",
+ "performance-now": "2.1.0",
+ "qs": "6.5.2",
+ "safe-buffer": "5.1.2",
+ "tough-cookie": "2.3.4",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.2.1"
}
},
"require-precompiled": {
@@ -8354,8 +8360,8 @@
"integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
"dev": true,
"requires": {
- "caller-path": "^0.1.0",
- "resolve-from": "^1.0.0"
+ "caller-path": "0.1.0",
+ "resolve-from": "1.0.1"
},
"dependencies": {
"resolve-from": {
@@ -8372,7 +8378,7 @@
"integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=",
"dev": true,
"requires": {
- "underscore": "~1.6.0"
+ "underscore": "1.6.0"
},
"dependencies": {
"underscore": {
@@ -8389,7 +8395,7 @@
"integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
"dev": true,
"requires": {
- "resolve-from": "^3.0.0"
+ "resolve-from": "3.0.0"
}
},
"resolve-from": {
@@ -8409,8 +8415,8 @@
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
}
},
"ret": {
@@ -8424,7 +8430,7 @@
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "7.1.2"
}
},
"run-async": {
@@ -8433,7 +8439,7 @@
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
- "is-promise": "^2.1.0"
+ "is-promise": "2.1.0"
}
},
"rx-lite": {
@@ -8448,7 +8454,7 @@
"integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
"dev": true,
"requires": {
- "rx-lite": "*"
+ "rx-lite": "4.0.8"
}
},
"safe-buffer": {
@@ -8461,7 +8467,7 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"requires": {
- "ret": "~0.1.10"
+ "ret": "0.1.15"
}
},
"safer-buffer": {
@@ -8486,7 +8492,7 @@
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true,
"requires": {
- "semver": "^5.0.3"
+ "semver": "5.5.0"
}
},
"serialize-error": {
@@ -8511,10 +8517,10 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "split-string": "3.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -8522,7 +8528,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -8531,16 +8537,14 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dev": true,
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "1.0.0"
}
},
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
},
"sift": {
"version": "5.1.0",
@@ -8564,7 +8568,7 @@
"integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0"
+ "is-fullwidth-code-point": "2.0.0"
},
"dependencies": {
"is-fullwidth-code-point": {
@@ -8586,14 +8590,14 @@
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
+ "base": "0.11.2",
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "map-cache": "0.2.2",
+ "source-map": "0.5.7",
+ "source-map-resolve": "0.5.2",
+ "use": "3.1.0"
},
"dependencies": {
"define-property": {
@@ -8601,7 +8605,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
},
"extend-shallow": {
@@ -8609,7 +8613,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
}
}
@@ -8619,9 +8623,9 @@
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
+ "define-property": "1.0.0",
+ "isobject": "3.0.1",
+ "snapdragon-util": "3.0.1"
},
"dependencies": {
"define-property": {
@@ -8629,7 +8633,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
- "is-descriptor": "^1.0.0"
+ "is-descriptor": "1.0.2"
}
},
"is-accessor-descriptor": {
@@ -8637,7 +8641,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
@@ -8645,7 +8649,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"requires": {
- "kind-of": "^6.0.0"
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
@@ -8653,9 +8657,9 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
}
}
@@ -8665,7 +8669,7 @@
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"requires": {
- "kind-of": "^3.2.0"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -8673,7 +8677,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -8684,7 +8688,7 @@
"integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
"dev": true,
"requires": {
- "is-plain-obj": "^1.0.0"
+ "is-plain-obj": "1.1.0"
}
},
"source-map": {
@@ -8697,11 +8701,11 @@
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"requires": {
- "atob": "^2.1.1",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
+ "atob": "2.1.1",
+ "decode-uri-component": "0.2.0",
+ "resolve-url": "0.2.1",
+ "source-map-url": "0.4.0",
+ "urix": "0.1.0"
}
},
"source-map-support": {
@@ -8710,8 +8714,8 @@
"integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
"dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "buffer-from": "1.1.0",
+ "source-map": "0.6.1"
},
"dependencies": {
"source-map": {
@@ -8733,8 +8737,8 @@
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"dev": true,
"requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-exceptions": {
@@ -8749,8 +8753,8 @@
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"dev": true,
"requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "spdx-exceptions": "2.1.0",
+ "spdx-license-ids": "3.0.0"
}
},
"spdx-license-ids": {
@@ -8764,7 +8768,7 @@
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"requires": {
- "extend-shallow": "^3.0.0"
+ "extend-shallow": "3.0.2"
}
},
"sprintf-js": {
@@ -8778,15 +8782,15 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "safer-buffer": "2.1.2",
+ "tweetnacl": "0.14.5"
}
},
"stack-utils": {
@@ -8800,8 +8804,8 @@
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
+ "define-property": "0.2.5",
+ "object-copy": "0.1.0"
},
"dependencies": {
"define-property": {
@@ -8809,7 +8813,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "0.1.6"
}
}
}
@@ -8819,9 +8823,9 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
}
},
"string_decoder": {
@@ -8829,7 +8833,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "5.1.2"
}
},
"strip-ansi": {
@@ -8837,7 +8841,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "2.1.1"
}
},
"strip-bom": {
@@ -8852,7 +8856,7 @@
"integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=",
"dev": true,
"requires": {
- "is-utf8": "^0.2.1"
+ "is-utf8": "0.2.1"
}
},
"strip-eof": {
@@ -8867,7 +8871,7 @@
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"dev": true,
"requires": {
- "get-stdin": "^4.0.1"
+ "get-stdin": "4.0.1"
}
},
"strip-json-comments": {
@@ -8882,11 +8886,11 @@
"integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==",
"dev": true,
"requires": {
- "arrify": "^1.0.1",
- "indent-string": "^3.2.0",
- "js-yaml": "^3.10.0",
- "serialize-error": "^2.1.0",
- "strip-ansi": "^4.0.0"
+ "arrify": "1.0.1",
+ "indent-string": "3.2.0",
+ "js-yaml": "3.12.0",
+ "serialize-error": "2.1.0",
+ "strip-ansi": "4.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -8901,7 +8905,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -8912,7 +8916,7 @@
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "3.0.0"
},
"dependencies": {
"has-flag": {
@@ -8935,12 +8939,12 @@
"integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
- "ajv": "^5.2.3",
- "ajv-keywords": "^2.1.0",
- "chalk": "^2.1.0",
- "lodash": "^4.17.4",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.4.1",
+ "lodash": "4.17.10",
"slice-ansi": "1.0.0",
- "string-width": "^2.1.1"
+ "string-width": "2.1.1"
},
"dependencies": {
"ansi-regex": {
@@ -8961,8 +8965,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -8971,7 +8975,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -8988,10 +8992,10 @@
"integrity": "sha1-K40TofnKUcGzraDGzNsRd9IGW7A=",
"dev": true,
"requires": {
- "chalk": "^1.1.3",
- "duplexer2": "^0.1.4",
- "supports-color": "^3.1.2",
- "tap-parser": "^3.0.3"
+ "chalk": "1.1.3",
+ "duplexer2": "0.1.4",
+ "supports-color": "3.2.3",
+ "tap-parser": "3.0.5"
},
"dependencies": {
"ansi-styles": {
@@ -9006,11 +9010,11 @@
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
},
"dependencies": {
"supports-color": {
@@ -9033,7 +9037,7 @@
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "^1.0.0"
+ "has-flag": "1.0.0"
}
}
}
@@ -9044,9 +9048,9 @@
"integrity": "sha1-uUf2ngs+U9S5IBH2zFUuFtrcfsk=",
"dev": true,
"requires": {
- "events-to-array": "^1.0.1",
- "js-yaml": "^3.2.7",
- "readable-stream": "^2"
+ "events-to-array": "1.1.2",
+ "js-yaml": "3.12.0",
+ "readable-stream": "2.3.6"
}
},
"tar-stream": {
@@ -9054,13 +9058,13 @@
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz",
"integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==",
"requires": {
- "bl": "^1.0.0",
- "buffer-alloc": "^1.1.0",
- "end-of-stream": "^1.0.0",
- "fs-constants": "^1.0.0",
- "readable-stream": "^2.3.0",
- "to-buffer": "^1.1.0",
- "xtend": "^4.0.0"
+ "bl": "1.2.2",
+ "buffer-alloc": "1.2.0",
+ "end-of-stream": "1.4.1",
+ "fs-constants": "1.0.0",
+ "readable-stream": "2.3.6",
+ "to-buffer": "1.1.1",
+ "xtend": "4.0.1"
}
},
"temp-write": {
@@ -9069,12 +9073,12 @@
"integrity": "sha1-WYkJGODvCdVIqqNC9L00CdhATpY=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "mkdirp": "^0.5.0",
- "os-tmpdir": "^1.0.0",
- "pify": "^2.2.0",
- "pinkie-promise": "^2.0.0",
- "uuid": "^2.0.1"
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "os-tmpdir": "1.0.2",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "uuid": "2.0.3"
},
"dependencies": {
"mkdirp": {
@@ -9104,7 +9108,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "pinkie": "2.0.4"
}
},
"uuid": {
@@ -9121,7 +9125,7 @@
"integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
"dev": true,
"requires": {
- "execa": "^0.7.0"
+ "execa": "0.7.0"
}
},
"text-table": {
@@ -9142,8 +9146,8 @@
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
"dev": true,
"requires": {
- "readable-stream": "^2.1.5",
- "xtend": "~4.0.1"
+ "readable-stream": "2.3.6",
+ "xtend": "4.0.1"
}
},
"time-zone": {
@@ -9159,12 +9163,11 @@
"dev": true
},
"tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
+ "version": "0.0.31",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
"requires": {
- "os-tmpdir": "~1.0.2"
+ "os-tmpdir": "1.0.2"
}
},
"to-buffer": {
@@ -9183,7 +9186,7 @@
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"requires": {
- "kind-of": "^3.0.2"
+ "kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
@@ -9191,7 +9194,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "is-buffer": "^1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -9201,10 +9204,10 @@
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
}
},
"to-regex-range": {
@@ -9212,8 +9215,8 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1"
}
},
"tough-cookie": {
@@ -9221,7 +9224,7 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"requires": {
- "punycode": "^1.4.1"
+ "punycode": "1.4.1"
}
},
"trim-newlines": {
@@ -9247,7 +9250,7 @@
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "^5.0.1"
+ "safe-buffer": "5.1.2"
}
},
"tweetnacl": {
@@ -9262,7 +9265,7 @@
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
"requires": {
- "prelude-ls": "~1.1.2"
+ "prelude-ls": "1.1.2"
}
},
"type-detect": {
@@ -9282,8 +9285,8 @@
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
"requires": {
- "commander": "~2.13.0",
- "source-map": "~0.6.1"
+ "commander": "2.13.0",
+ "source-map": "0.6.1"
},
"dependencies": {
"commander": {
@@ -9332,10 +9335,10 @@
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
+ "arr-union": "3.1.0",
+ "get-value": "2.0.6",
+ "is-extendable": "0.1.1",
+ "set-value": "0.4.3"
},
"dependencies": {
"extend-shallow": {
@@ -9343,7 +9346,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "is-extendable": "^0.1.0"
+ "is-extendable": "0.1.1"
}
},
"set-value": {
@@ -9351,10 +9354,10 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
+ "extend-shallow": "2.0.1",
+ "is-extendable": "0.1.1",
+ "is-plain-object": "2.0.4",
+ "to-object-path": "0.3.0"
}
}
}
@@ -9365,7 +9368,7 @@
"integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
"dev": true,
"requires": {
- "crypto-random-string": "^1.0.0"
+ "crypto-random-string": "1.0.0"
}
},
"unique-temp-dir": {
@@ -9374,8 +9377,8 @@
"integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=",
"dev": true,
"requires": {
- "mkdirp": "^0.5.1",
- "os-tmpdir": "^1.0.1",
+ "mkdirp": "0.5.1",
+ "os-tmpdir": "1.0.2",
"uid2": "0.0.3"
},
"dependencies": {
@@ -9395,8 +9398,8 @@
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "has-value": "0.3.1",
+ "isobject": "3.0.1"
},
"dependencies": {
"has-value": {
@@ -9404,9 +9407,9 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
+ "get-value": "2.0.6",
+ "has-values": "0.1.4",
+ "isobject": "2.1.0"
},
"dependencies": {
"isobject": {
@@ -9438,16 +9441,16 @@
"integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
"dev": true,
"requires": {
- "boxen": "^1.2.1",
- "chalk": "^2.0.1",
- "configstore": "^3.0.0",
- "import-lazy": "^2.1.0",
- "is-ci": "^1.0.10",
- "is-installed-globally": "^0.1.0",
- "is-npm": "^1.0.0",
- "latest-version": "^3.0.0",
- "semver-diff": "^2.0.0",
- "xdg-basedir": "^3.0.0"
+ "boxen": "1.3.0",
+ "chalk": "2.4.1",
+ "configstore": "3.1.2",
+ "import-lazy": "2.1.0",
+ "is-ci": "1.1.0",
+ "is-installed-globally": "0.1.0",
+ "is-npm": "1.0.0",
+ "latest-version": "3.1.0",
+ "semver-diff": "2.1.0",
+ "xdg-basedir": "3.0.0"
}
},
"urix": {
@@ -9461,7 +9464,7 @@
"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dev": true,
"requires": {
- "prepend-http": "^1.0.1"
+ "prepend-http": "1.0.4"
}
},
"use": {
@@ -9469,7 +9472,7 @@
"resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
"integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
"requires": {
- "kind-of": "^6.0.2"
+ "kind-of": "6.0.2"
}
},
"util-deprecate": {
@@ -9488,8 +9491,8 @@
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"dev": true,
"requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "spdx-correct": "3.0.0",
+ "spdx-expression-parse": "3.0.0"
}
},
"verror": {
@@ -9497,9 +9500,9 @@
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
- "assert-plus": "^1.0.0",
+ "assert-plus": "1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
+ "extsprintf": "1.3.0"
}
},
"well-known-symbols": {
@@ -9512,9 +9515,8 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
"requires": {
- "isexe": "^2.0.0"
+ "isexe": "2.0.0"
}
},
"wide-align": {
@@ -9522,7 +9524,7 @@
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"requires": {
- "string-width": "^1.0.2 || 2"
+ "string-width": "1.0.2"
}
},
"widest-line": {
@@ -9531,7 +9533,7 @@
"integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
"dev": true,
"requires": {
- "string-width": "^2.1.1"
+ "string-width": "2.1.1"
},
"dependencies": {
"ansi-regex": {
@@ -9552,8 +9554,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
}
},
"strip-ansi": {
@@ -9562,7 +9564,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "3.0.0"
}
}
}
@@ -9590,7 +9592,7 @@
"integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
"dev": true,
"requires": {
- "mkdirp": "^0.5.1"
+ "mkdirp": "0.5.1"
},
"dependencies": {
"mkdirp": {
@@ -9610,9 +9612,9 @@
"integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "signal-exit": "3.0.2"
}
},
"write-json-file": {
@@ -9621,12 +9623,12 @@
"integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
"dev": true,
"requires": {
- "detect-indent": "^5.0.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^1.0.0",
- "pify": "^3.0.0",
- "sort-keys": "^2.0.0",
- "write-file-atomic": "^2.0.0"
+ "detect-indent": "5.0.0",
+ "graceful-fs": "4.1.11",
+ "make-dir": "1.3.0",
+ "pify": "3.0.0",
+ "sort-keys": "2.0.0",
+ "write-file-atomic": "2.3.0"
},
"dependencies": {
"detect-indent": {
@@ -9643,8 +9645,8 @@
"integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=",
"dev": true,
"requires": {
- "sort-keys": "^2.0.0",
- "write-json-file": "^2.2.0"
+ "sort-keys": "2.0.0",
+ "write-json-file": "2.3.0"
}
},
"xdg-basedir": {
@@ -9658,8 +9660,8 @@
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
"requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~9.0.1"
+ "sax": "1.2.4",
+ "xmlbuilder": "9.0.7"
}
},
"xmlbuilder": {
@@ -9681,18 +9683,17 @@
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
},
"zip-stream": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
"integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
"requires": {
- "archiver-utils": "^1.3.0",
- "compress-commons": "^1.2.0",
- "lodash": "^4.8.0",
- "readable-stream": "^2.0.0"
+ "archiver-utils": "1.3.0",
+ "compress-commons": "1.2.2",
+ "lodash": "4.17.10",
+ "readable-stream": "2.3.6"
}
}
}
diff --git a/package.json b/package.json
index e6770ca0e..532fa9af3 100644
--- a/package.json
+++ b/package.json
@@ -101,15 +101,18 @@
"@ui5/fs": "^0.1.0",
"@ui5/logger": "^0.1.0",
"archiver": "^2.1.0",
+ "cross-spawn": "^5.1.0",
"escope": "^3.6.0",
"esprima": "^2.7.2",
"estraverse": "^4.2.0",
"globby": "^7.1.1",
"graceful-fs": "^4.1.11",
"less-openui5": "^0.5.3",
+ "jsdoc": "^3.5.5",
"pretty-data": "^0.40.0",
"pretty-hrtime": "^1.0.3",
"replacestream": "^4.0.3",
+ "tmp": "0.0.31",
"uglify-es": "^3.2.2",
"xml2js": "^0.4.17"
},
@@ -123,7 +126,6 @@
"docdash": "^0.4.0",
"eslint": "^4.13.1",
"eslint-config-google": "^0.9.1",
- "jsdoc": "^3.5.5",
"nyc": "^11.8.0",
"opn-cli": "^3.1.0",
"recursive-readdir": "^2.1.1",