diff --git a/index.js b/index.js index fca68cf6..c0d962b8 100644 --- a/index.js +++ b/index.js @@ -35,7 +35,7 @@ module.exports = { 'enum', // 'enumvalue', 'func', - // 'variable', + 'var', 'property', 'public-attrib', 'public-func', @@ -51,7 +51,7 @@ module.exports = { 'class', 'struct', 'union', - 'typedef', + 'typedef' // 'file' ] } @@ -70,6 +70,18 @@ module.exports = { if (options.templates == this.defaultOptions.templates) options.templates = path.join(__dirname, 'templates', options.language); + switch(options.language) { + case 'java': + options.filters.compounds.push('interface'); + options.filters.compounds.push('enum'); + options.filters.members.splice(1,1); + options.filters.members.push('public-static-attrib'); + options.filters.members.push('public-static-func'); + break; + default: + break; + } + // Load templates templates.registerHelpers(options); templates.load(options.templates); diff --git a/package.json b/package.json index bbcc0904..03dceac8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moxygen", - "version": "0.8.0", + "version": "0.8.1", "description": "Doxygen XML to Markdown documentation converter", "main": "index.js", "scripts": { diff --git a/src/helpers.js b/src/helpers.js index 1858d91d..b12b9b6e 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -25,7 +25,7 @@ module.exports = { var link = f.match(/\[(.*)\]\((.*)\)/); if (link) { isInline ? (s += '`') && (isInline = false) : null; - s += '[`' + link[1] + '`](' + link[2] + ')'; + s += ' [`' + link[1] + '`](' + link[2] + ')'; } } else if (f == '\n' || f == ' \n') { @@ -83,7 +83,11 @@ module.exports = { return '#' + refid; return this.compoundPath(ref, options) + '#' + refid; } else if (options.classes) { - var dest = this.findParent(ref, ['namespace', 'class', 'struct']); + var filtered = ['namespace', 'class', 'struct']; + if (options.language == 'java') { + filtered.concat(['interface', 'enum']); + } + var dest = this.findParent(ref, filtered); if (!dest || compound.refid == dest.refid) return '#' + refid; return this.compoundPath(dest, options) + '#' + refid; @@ -109,7 +113,9 @@ module.exports = { writeCompound: function(compound, contents, references, options) { this.writeFile(this.compoundPath(compound, options), contents.map(function(content) { - return this.resolveRefs(content, compound, references, options); + if (content) { + return this.resolveRefs(content, compound, references, options); + } }.bind(this))); }, diff --git a/src/parser.js b/src/parser.js index f4cf0b11..d7cd1d53 100644 --- a/src/parser.js +++ b/src/parser.js @@ -278,6 +278,7 @@ module.exports = { m = m.concat(toMarkdown(memberdef.type), ' '); // m = m.concat(memberdef.name[0]._); m = m.concat(markdown.refLink(member.name, member.refid)); + m = m.concat(memberdef.initializer ? memberdef.initializer[0]._ : ''); break; case 'property': @@ -351,6 +352,10 @@ module.exports = { }); }, + assignToClass: function(compound, child) { + compound.compounds[child.id] = child; + }, + extractPageSections: function(page, elements) { elements.forEach(function(element) { if (element['#name'] == 'sect1' || element['#name'] == 'sect2' || element['#name'] == 'sect3') { @@ -427,6 +432,8 @@ module.exports = { case 'struct': case 'union': case 'typedef': + case 'interface': + case 'enum': // set namespace reference var nsp = compound.name.split('::'); @@ -450,30 +457,14 @@ module.exports = { compound.groupname = compound.name; } - // handle innerclass for groups and namespaces - if (compounddef.innerclass) { - compounddef.innerclass.forEach(function (innerclassdef) { - if (compound.kind == 'namespace') { - // log.verbose('Assign ' + innerclassdef.$.refid + ' to namespace ' + compound.name); - - if (this.references[innerclassdef.$.refid]) - this.assignToNamespace(compound, this.references[innerclassdef.$.refid]); - } - else if (compound.kind == 'group') { - // log.verbose('Assign ' + innerclassdef.$.refid + ' to group ' + compound.name); - if (this.references[innerclassdef.$.refid]) - this.assignClassToGroup(compound, this.references[innerclassdef.$.refid]); - } - }.bind(this)); - } - // handle innernamespace for groups and namespaces if (compounddef.innernamespace) { compound.innernamespaces = []; compounddef.innernamespace.forEach(function (namespacedef) { if (compound.kind == 'group') { // log.verbose('Assign namespace ' + namespacedef.$.refid + ' to group ' + compound.name); - this.assignNamespaceToGroup(compound, this.references[namespacedef.$.refid]); + if (this.references[namespacedef.$.refid]) + this.assignNamespaceToGroup(compound, this.references[namespacedef.$.refid]); } }.bind(this)); } @@ -482,6 +473,35 @@ module.exports = { console.assert(true); } + switch(compound.kind) { + case 'class': + case 'interface': + case 'enum': + case 'namespace': + case 'group': + // handle innerclass for groups and namespaces and 'class'. + if (compounddef.innerclass) { + compounddef.innerclass.forEach(function (innerclassdef) { + if (compound.kind == 'namespace') { + // log.verbose('Assign ' + innerclassdef.$.refid + ' to namespace ' + compound.name); + + if (this.references[innerclassdef.$.refid]) + this.assignToNamespace(compound, this.references[innerclassdef.$.refid]); + } else if (compound.kind == 'group') { + // log.verbose('Assign ' + innerclassdef.$.refid + ' to group ' + compound.name); + if (this.references[innerclassdef.$.refid]) + this.assignClassToGroup(compound, this.references[innerclassdef.$.refid]); + } else if (compound.kind == 'class' || compound.kind == 'interface' || compound.kind == 'enum') { + if (this.references[innerclassdef.$.refid]) + this.assignToClass(compound, this.references[innerclassdef.$.refid]); + } + }.bind(this)); + } + break; + default: + break; + } + return; }, @@ -526,7 +546,9 @@ module.exports = { return; } this.root.kind = 'index'; - this.parseIndex(this.root, result.doxygenindex.compound, options); + this.parseIndex(this.root, result.doxygenindex.compound.sort(function(a, b){ + return b.$.refid.length - a.$.refid.length; + }), options); callback(null, this.root); // TODO: return errors properly }.bind(this)); }.bind(this)); diff --git a/src/templates.js b/src/templates.js index e87f9097..f5a25c53 100644 --- a/src/templates.js +++ b/src/templates.js @@ -55,6 +55,8 @@ module.exports = { break; case 'class': case 'struct': + case 'interface': + case 'enum': template = 'class'; break; default: diff --git a/templates/java/class.md b/templates/java/class.md new file mode 100644 index 00000000..09c4aaf6 --- /dev/null +++ b/templates/java/class.md @@ -0,0 +1,48 @@ +# {{kind}} `{{name}}` {{anchor refid}} + +{{#if basecompoundref}} +``` +{{kind}} {{name}} + {{#each basecompoundref}} + : {{prot}} {{name}} + {{/each}} +``` +{{/if}} + +{{briefdescription}} + +{{detaileddescription}} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +{{#each filtered.compounds}}{{cell proto}} | {{cell summary}} +{{/each}}{{#each filtered.members}}{{cell proto}} | {{cell summary}} +{{/each}} + +## Members + +{{#each filtered.compounds}} +#### {{title proto}} {{anchor refid}} + +{{briefdescription}} + +{{detaileddescription}} +{{/each}} + +{{#each filtered.members}} +#### {{title proto}} {{anchor refid}} + +{{#if enumvalue}} + Values | Descriptions +--------------------------------|--------------------------------------------- +{{#each enumvalue}}{{cell name}} | {{cell summary}} +{{/each}} +{{/if}} + +{{briefdescription}} + +{{detaileddescription}} + +{{/each}} diff --git a/templates/java/index.md b/templates/java/index.md new file mode 100644 index 00000000..5682bbf6 --- /dev/null +++ b/templates/java/index.md @@ -0,0 +1,27 @@ +# Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +{{#each filtered.members}}{{cell proto}} | {{cell summary}} +{{/each}}{{#each filtered.compounds}}{{cell proto}} | {{cell summary}} +{{/each}} + +{{#if filtered.members}} +## Members + +{{#each filtered.members}} +#### {{title proto}} {{anchor refid}} + +{{briefdescription}} + +{{#if enumvalue}} + Values | Descriptions +--------------------------------|--------------------------------------------- +{{#each enumvalue}}{{cell name}} | {{cell summary}} +{{/each}} +{{/if}} + +{{detaileddescription}} + +{{/each}} +{{/if}} diff --git a/templates/java/namespace.md b/templates/java/namespace.md new file mode 100644 index 00000000..358172c3 --- /dev/null +++ b/templates/java/namespace.md @@ -0,0 +1,33 @@ +# {{kind}} `{{name}}` {{anchor refid}} + +{{briefdescription}} + +{{detaileddescription}} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +{{#each filtered.members}}{{cell proto}} | {{cell summary}} +{{/each}}{{#each filtered.compounds}}{{cell proto}} | {{cell summary}} +{{/each}} + +{{#if filtered.members}} +## Members + +{{#each filtered.members}} +#### {{title proto}} {{anchor refid}} + +{{#if enumvalue}} + Values | Descriptions +--------------------------------|--------------------------------------------- +{{#each enumvalue}}{{cell name}} | {{cell summary}} +{{/each}} +{{/if}} + +{{briefdescription}} + +{{detaileddescription}} + +{{/each}} +{{/if}} diff --git a/templates/java/page.md b/templates/java/page.md new file mode 100644 index 00000000..e4dacc8e --- /dev/null +++ b/templates/java/page.md @@ -0,0 +1,34 @@ +# {{kind}} `{{name}}` {{anchor refid}} + +{{briefdescription}} + +{{detaileddescription}} + +{{#if filtered.members}} + +## Summary + + Members | Descriptions +--------------------------------|--------------------------------------------- +{{#each filtered.members}}{{cell proto}} | {{cell summary}} +{{/each}}{{#each filtered.compounds}}{{cell proto}} | {{cell summary}} +{{/each}} + +## Members + +{{#each filtered.members}} +#### {{title proto}} {{anchor refid}} + +{{#if enumvalue}} + Values | Descriptions +--------------------------------|--------------------------------------------- +{{#each enumvalue}}{{cell name}} | {{cell summary}} +{{/each}} +{{/if}} + +{{briefdescription}} + +{{detaileddescription}} + +{{/each}} +{{/if}} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..a6c59b71 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,321 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +async@^2.6.1: + version "2.6.2" + resolved "http://registry.npm.taobao.org/async/download/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E= + dependencies: + lodash "^4.17.11" + +color-convert@^1.9.1: + version "1.9.3" + resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0: + version "1.1.4" + resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= + +color-string@^1.5.2: + version "1.5.3" + resolved "http://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw= + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@3.0.x: + version "3.0.0" + resolved "http://registry.npm.taobao.org/color/download/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha1-2SC0Mo1TSjrIKV1o971LpsQnvpo= + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colornames@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/colornames/download/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" + integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= + +colors@^1.2.1: + version "1.3.3" + resolved "http://registry.npm.taobao.org/colors/download/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0= + +colorspace@1.1.x: + version "1.1.1" + resolved "http://registry.npm.taobao.org/colorspace/download/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972" + integrity sha1-msJJHhvG+PtpDiF2gU+NCRY22XI= + dependencies: + color "3.0.x" + text-hex "1.0.x" + +commander@^2.19.0, commander@~2.20.0: + version "2.20.0" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha1-1YuytcHuj4ew00ACfp6U4iLFpCI= + +core-util-is@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +diagnostics@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/diagnostics/download/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" + integrity sha1-yrasM99wydmnJ0kK5DrJladpsio= + dependencies: + colorspace "1.1.x" + enabled "1.0.x" + kuler "1.0.x" + +enabled@1.0.x: + version "1.0.2" + resolved "http://registry.npm.taobao.org/enabled/download/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" + integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= + dependencies: + env-variable "0.0.x" + +env-variable@0.0.x: + version "0.0.5" + resolved "http://registry.npm.taobao.org/env-variable/download/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88" + integrity sha1-kT3YML7xHpagOcA41BMGBOujf4g= + +fast-safe-stringify@^2.0.4: + version "2.0.6" + resolved "http://registry.npm.taobao.org/fast-safe-stringify/download/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" + integrity sha1-BLJhBsxWaB9RoETPwNds8ACKwsI= + +fecha@^2.3.3: + version "2.3.3" + resolved "http://registry.npm.taobao.org/fecha/download/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + integrity sha1-lI50FX3xoy/RsSw6PDzctuydls0= + +handlebars@^4.0.12: + version "4.1.2" + resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha1-trN8HO0DBrIh4JT8eso+wjsTG2c= + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +inherits@^2.0.3, inherits@~2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= + +is-stream@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +isarray@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +kuler@1.0.x: + version "1.0.1" + resolved "http://registry.npm.taobao.org/kuler/download/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" + integrity sha1-73x4TzbJ+24W3TFQ0VJneysCKKY= + dependencies: + colornames "^1.1.1" + +lodash@^4.17.11: + version "4.17.11" + resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha1-s56mIp72B+zYniyN8SU2iRysm40= + +logform@^2.1.1: + version "2.1.2" + resolved "http://registry.npm.taobao.org/logform/download/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" + integrity sha1-lXFV6+tnoTFkBpglzmfdtbst02A= + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^2.3.3" + ms "^2.1.1" + triple-beam "^1.3.0" + +minimist@~0.0.1: + version "0.0.10" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +ms@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= + +neo-async@^2.6.0: + version "2.6.0" + resolved "http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha1-udFeTXHGdikIZUtRg+04t1M0CDU= + +object-assign@^4.1.1: + version "4.1.1" + resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +one-time@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/one-time/download/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" + integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= + +optimist@^0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o= + +readable-stream@^2.3.6: + version "2.3.6" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8= + dependencies: + 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" + +readable-stream@^3.1.1: + version "3.3.0" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + integrity sha1-y4ARqtAC63F78EApH+uoVpyYb7k= + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +sax@>=0.6.0: + version "1.2.4" + resolved "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +stack-trace@0.0.x: + version "0.0.10" + resolved "http://registry.npm.taobao.org/stack-trace/download/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +string_decoder@^1.1.1: + version "1.2.0" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha1-/obnOLGVRK/nBGkkOyoe6SQOro0= + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +text-hex@1.0.x: + version "1.0.0" + resolved "http://registry.npm.taobao.org/text-hex/download/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha1-adycGxdEbueakr9biEu0uRJ1BvU= + +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/triple-beam/download/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha1-pZUhTHKY24M57u7gg+TRC9jLjdk= + +uglify-js@^3.1.4: + version "3.5.6" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.5.6.tgz#8a5f8a06ee7415ac1fa302f4623bc7344b553da4" + integrity sha1-il+KBu50FawfowL0YjvHNEtVPaQ= + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +winston-transport@^4.3.0: + version "4.3.0" + resolved "http://registry.npm.taobao.org/winston-transport/download/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66" + integrity sha1-32jAwgJILESNm0cxPAcwTC18LGY= + dependencies: + readable-stream "^2.3.6" + triple-beam "^1.2.0" + +winston@^3.2.1: + version "3.2.1" + resolved "http://registry.npm.taobao.org/winston/download/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" + integrity sha1-YwYTd5dsc1hAKL4kkKGEYFX3fwc= + dependencies: + async "^2.6.1" + diagnostics "^1.1.1" + is-stream "^1.1.0" + logform "^2.1.1" + one-time "0.0.4" + readable-stream "^3.1.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.3.0" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +xml2js@^0.4.19: + version "0.4.19" + resolved "http://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c= + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=