/*1Copyright (c) 2012, Yahoo! Inc. All rights reserved.2Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.3*/45/*jslint nomen: true */6var path = require('path'),7Store = require('./lib/store'),8Report = require('./lib/report'),9meta = require('./lib/util/meta');1011//register our standard plugins12require('./lib/register-plugins');1314/**15* the top-level API for `istanbul`. provides access to the key libraries in16* istanbul so you can write your own tools using `istanbul` as a library.17*18* Usage19* -----20*21* var istanbul = require('istanbul');22*23*24* @class Istanbul25* @static26* @module main27* @main main28*/2930module.exports = {31/**32* the Instrumenter class.33* @property Instrumenter34* @type Instrumenter35* @static36*/37Instrumenter: require('./lib/instrumenter'),38/**39* the Store class.40* @property Store41* @type Store42* @static43*/44Store: Store,45/**46* the Collector class47* @property Collector48* @type Collector49* @static50*/51Collector: require('./lib/collector'),52/**53* the hook module54* @property hook55* @type Hook56* @static57*/58hook: require('./lib/hook'),59/**60* the Report class61* @property Report62* @type Report63* @static64*/65Report: Report,66/**67* the config module68* @property config69* @type Config70* @static71*/72config: require('./lib/config'),73/**74* the Reporter class75* @property Reporter76* @type Reporter77* @static78*/79Reporter: require('./lib/reporter'),80/**81* utility for processing coverage objects82* @property utils83* @type ObjectUtils84* @static85*/86utils: require('./lib/object-utils'),87/**88* asynchronously returns a function that can match filesystem paths.89* The function returned in the callback may be passed directly as a `matcher`90* to the functions in the `hook` module.91*92* When no options are passed, the match function is one that matches all JS93* files under the current working directory except ones under `node_modules`94*95* Match patterns are `ant`-style patterns processed using the `fileset` library.96* Examples not provided due to limitations in putting asterisks inside97* jsdoc comments. Please refer to tests under `test/other/test-matcher.js`98* for examples.99*100* @method matcherFor101* @static102* @param {Object} options Optional. Lookup options.103* @param {String} [options.root] the root of the filesystem tree under104* which to match files. Defaults to `process.cwd()`105* @param {Array} [options.includes] an array of include patterns to match.106* Defaults to all JS files under the root.107* @param {Array} [options.excludes] and array of exclude patterns. File paths108* matching these patterns will be excluded by the returned matcher.109* Defaults to files under `node_modules` found anywhere under root.110* @param {Function(err, matchFunction)} callback The callback that is111* called with two arguments. The first is an `Error` object in case112* of errors or a falsy value if there were no errors. The second113* is a function that may be use as a matcher.114*/115matcherFor: require('./lib/util/file-matcher').matcherFor,116/**117* the version of the library118* @property VERSION119* @type String120* @static121*/122VERSION: meta.VERSION,123/**124* the abstract Writer class125* @property Writer126* @type Writer127* @static128*/129Writer: require('./lib/util/writer').Writer,130/**131* the abstract ContentWriter class132* @property ContentWriter133* @type ContentWriter134* @static135*/136ContentWriter: require('./lib/util/writer').ContentWriter,137/**138* the concrete FileWriter class139* @property FileWriter140* @type FileWriter141* @static142*/143FileWriter: require('./lib/util/file-writer'),144//undocumented145_yuiLoadHook: require('./lib/util/yui-load-hook'),146//undocumented147TreeSummarizer: require('./lib/util/tree-summarizer'),148//undocumented149assetsDir: path.resolve(__dirname, 'lib', 'vendor')150};151152153154155