Giter VIP home page Giter VIP logo

generator-karma's Introduction

Welcome, Friend!

Yeoman is a robust and opinionated set of tools, libraries, and a workflow that can help developers quickly build beautiful, compelling web apps.

image

Code of Conduct

Everyone in this community (from core members to random committers and volunteers) are asked to please act in accordance with the Yeoman Community Contributor Code of Conduct. We encourage you to follow these social rules which help guide our interactions with each other, and ensure we provide a safe environment for everyone. We aim to make Yeoman a positive, welcoming, open and inclusive project and community.

Code of Conduct

Issue Submission

Make sure you've read the issue submission guidelines before you open a new issue.

Yeoman is composed of a number of different sub-projects, most of which have their own dedicated repository. If you are looking for a repo for a particular piece, you'll find it on the organization page.

Feature requests

Feature requests should be submitted to the repo it concerns. Submit to yeoman/yeoman if you're unsure, otherwise the repositories for our officially maintained generators can be found here.

Contribute

See the contributing docs

Support

Need help or have a question?

Please don't use the issue trackers for support/questions.

Links

Team

Yeoman is beautifully crafted by these people and a bunch of awesome contributors

Addy Osmani Sindre Sorhus Pascal Hartig Stephen Sawchuk Simon Boudrias
Addy Osmani Sindre Sorhus Pascal Hartig Stephen Sawchuk Simon Boudrias
Brian Ford Eddie Monge Paul Irish Hemanth.HM Revath S Kumar
Brian Ford Eddie Monge Paul Irish Hemanth.HM Revath S Kumar
Jimmy Moon Frederick Ros Mickael Daniel Eric Bidelman Matija Marohnić
Jimmy Moon Frederick Ros Mickael Daniel Eric Bidelman Matija Marohnić
Kevin Mårtensson Arthur Verschaeve Michael Kühnel Mehdy Dara Ulises Gascon
Kevin Mårtensson Arthur Verschaeve Michael Kühnel Mehdy Dara Ulises Gascon

Backers

Love Yeoman work and community? Help us keep it alive by donating funds to cover project expenses!
[Become a backer]

License

BSD license Copyright (c) Google

generator-karma's People

Contributors

addyosmani avatar alfonso-presa avatar arthurvr avatar artoale avatar btford avatar daftmonk avatar eddiemonge avatar elob avatar globegitter avatar guzart avatar hemanth avatar jonathanhaynes avatar kevva avatar mklabs avatar passy avatar safjanowski avatar sboudrias avatar seriema avatar sindresorhus avatar sleeper avatar toilal avatar tomwayson avatar vojtajina avatar x1011 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

generator-karma's Issues

generator-karma is incompatible with karma 0.9

Karma 0.9 has a new configuration, that uses plugins and an array of enabled frameworks instead of the ADAPTER syntax within the files list.

Would it make sense to add karma as a peer dependencies in that step so it's clear which version the generator targets?

EDIT: I should make clear that karma 0.9 is unstable, so there's no rush, but it will need updating for 0.10 or 1.0.

Issue an error when used by yeoman

Using it through generator-angular yields an error due to the way a function is declared:

yo angular:all

/home/sleeper/dev/angular-tests/node_modules/generator-testacular/app/index.js:50
    function isLowerVersion(current, minimum) {
    ^^^^^^^^
Unable to register generator-testacular/app/index.js (Error: In strict mode code, functions can only be declared at top level or immediately within another function.)
Would you like to include Twitter Bootstrap? (Y/n) Error: canceled

"Could not open package.json for reading" when running the generator

An error occurred when running the generator:

selection_020

The log output is the following:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'install' ]
2 info using [email protected]
3 info using [email protected]
4 verbose readDependencies loading dependencies from /home/ahmehri/sandbox-old/karma-sandbox/package.json
5 error install Couldn't read dependencies
6 verbose stack Error: ENOENT, open '/home/ahmehri/sandbox-old/karma-sandbox/package.json'
6 verbose stack     at Error (native)
7 verbose cwd /home/ahmehri/sandbox-old/karma-sandbox
8 error Linux 3.2.0-4-amd64
9 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
10 error node v0.12.7
11 error npm  v2.11.3
12 error path /home/ahmehri/sandbox-old/karma-sandbox/package.json
13 error code ENOPACKAGEJSON
14 error errno -2
15 error package.json ENOENT, open '/home/ahmehri/sandbox-old/karma-sandbox/package.json'
15 error package.json This is most likely not a problem with npm itself.
15 error package.json npm can't find a package.json file in your current directory.
16 verbose exit [ -2, true ]

Issue running e2e angular tests

I install the yeoman angular stack today (1.0, angular and karma generator) and while unit tests work out of the box, e2e testing does not. I created a simple e2e test based on the default yeoman angular app (see below) and no matter the configuration I can never get the karma e2e runner to connect to my running site. Any thoughts would be appreciated. Thanks

'use strict';

describe('Controller: MainCtrl', function () {

it('should filter results', function() {
browser().navigateTo('/')
expect(repeater('ul li').count()).toEqual(3);
});

});

Generator throws error during scaffolding

The generator throws an error mid-way through scaffolding an angular app, then continues on. I'm not sure if that's supposed to happen, and I'm not sure whether that has anything to do with the lack of e2e tests in the resulting app.

yo angular --minsafe
.... (some stuff)
   invoke   karma:app
   create     karma.conf.js
   create     karma-e2e.conf.js

events.js:130
    throw TypeError('listener must be a function');
          ^
TypeError: listener must be a function
    at TypeError (<anonymous>)
    at ChildProcess.EventEmitter.addListener (events.js:130:11)
    at runInstall (/Users/brian/.nvm/v0.10.8/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/install.js:63:6)
    at KarmaGenerator.install [as npmInstall] (/Users/brian/.nvm/v0.10.8/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/install.js:153:10)
    at KarmaGenerator.<anonymous> (/Users/brian/.nvm/v0.10.8/lib/node_modules/generator-karma/lib/generators/app/index.js:20:12)
    at KarmaGenerator.EventEmitter.emit (events.js:117:20)
    at /Users/brian/.nvm/v0.10.8/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/base.js:306:14
    at process._tickCallback (node.js:415:13)

Error UNMET PEER DEPENDENCY

Hello, i have a problem.
When i execute npm install -g generator-karma i have this error:

C:\WINDOWS\system32>npm install -g generator-karma

  • dateformat node_modules\generator-karma\node_modules\yeoman-generator\node_modules\dateformat
  • pretty-bytes node_modules\generator-karma\node_modules\yeoman-generator\node_modules\pretty-bytes
    C:\Users\ivan\AppData\Roaming\npm
    ├── [email protected]
    └── UNMET PEER DEPENDENCY yo@>=1.0.0
npm WARN EPEERINVALID [email protected] requires a peer of yo@>=1.0.0 but none was installed.

I thought it would be solved updating Yeoman, but i've been updated Yeoman to the last version (1.5.0) and i continue having the same problem.

Can anyone help me, please?

Gruntfile doesn't load karma which causes `Task "karma" not found.`

Overview

Running the generator with the option --gruntfile-path . creates broken gruntfile. The file is missing the loadNpmTasks tasks command, which means that karma is not loaded and is not usable.

Proposed fix:

Add to gruntfile: grunt.loadNpmTasks('grunt-karma');

"siblings' peerDependencies requirements"

I'd attach the log, but it's huge. Here are the last few lines of the console output upon running npm install -g generator-karma

npm http 304 https://registry.npmjs.org/es6-iterator
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants generator-karma@>=0.6.0
npm ERR! peerinvalid Peer [email protected] wants generator-karma@>=0.7.0
npm ERR! peerinvalid Peer [email protected] wants generator-karma@~0.5.0

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "generator-karma" "-g"
npm ERR! cwd /Users/kevinsuttle/Code/myApp
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/kevinsuttle/Code/myApp/npm-debug.log
npm ERR! not ok code 0

Maybe something in my system isn't configured correctly?

Error installing karma with Yeoman

Hi

i'll trying to install karma via
sudo npm install -g karma
or
sudo npm install -g generator-karma

and receive that same error... Already clean cache and still receive the error

.....
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants generator-karma@~0.3.0

npm ERR! System Darwin 11.4.2
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "karma"
npm ERR! cwd /Users/carlosmantilla/Dev/projects/ng-modules/angular-content
npm ERR! node -v v0.10.12
npm ERR! npm -v 1.2.32
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/carlosmantilla/Dev/projects/ng-modules/angular-content/npm-debug.log
npm ERR! not ok code 0

Thanks

Error installing generator

I can't seem to get npm to install the generator. I keep getting the following error.

npm ERR! argv "node" "/Users/geerzo/.node/bin/npm" "install" "-g" "generator-angular"
npm ERR! node v0.10.35
npm ERR! npm  v2.2.0
npm ERR! path /Users/geerzo/.node/lib/node_modules/generator-karma/node_modules/yeoman-generator/node_modules/download/node_modules/fs-extra/node_modules/ncp/package.json
npm ERR! code ENOENT
npm ERR! errno 34

In digging further it seems as if it's ultimately caused when trying to install this package [email protected] which is used by generator-karma >= 0.8.0. Newer versions of fs-extra seem to install (or older versions of generator-karma).

feat: Specify what plugins should be installed

When generating a project with generator-angular the package.json file is missing several important karma packages. According to this issue it's because of this project, generator-karma.

This is missing:

        "karma-ng-scenario": "~0.1.0",
        "grunt-karma": "~0.6.2",
        "karma-chrome-launcher": "~0.1.1",
        "karma-script-launcher": "~0.1.0",
        "karma-html2js-preprocessor": "~0.1.0",
        "karma-jasmine": "~0.1.4",
        "karma-firefox-launcher": "~0.1.2",
        "requirejs": "~2.1.9",
        "karma-requirejs": "~0.2.0",
        "karma-coffee-preprocessor": "~0.1.1",
        "karma-phantomjs-launcher": "~0.1.1",
        "karma": "~0.10.8",
        "karma-ng-html2js-preprocessor": "~0.1.0"

Can someone fix this? I can't find the file to change to submit a PR. :)

EPEERINVALID error when trying to update to [email protected] - looking for yo but not finding it?

Hi folks:

Having an issue here trying to update my yeoman environment after a period of inactivity. Running nodejs 0.12.7 on a Macbook under Yosemite (10.10) here. Am getting the following when I try to update generator-karma (either manually or through yo):

$ sudo npm install -g generator-karma
/usr/local/lib
├── [email protected]
└── UNMET PEER DEPENDENCY yo@>=1.0.0

npm WARN EPEERINVALID [email protected] requires a peer of yo@>=1.0.0 but none was installed.
$

For what it's worth, yo is installed and should be sufficiently up to date:

$ yo --version
1.4.8
$ which yo
/usr/local/bin/yo
$

Any ideas on this would be appreciated, thanks!

Publish new version over NPM?

Hi, I was wondering if it would be possible to publish the current version of the generator over npm. I'd like to set up my test folders with the configuration parameter that's now part of the generator.

Thanks!

Error while running yo karma

    /usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:193
    throw new Error('Unable to read "' + filepath + '" file (Error code: ' + e
      ^
Error: Unable to read "/usr/local/lib/node_modules/generator-karma/templates/karma.conf.js" file (Error code: ENOENT).
    at read (/usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:193:11)
    at template (/usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:288:19)
    at module.exports.yeoman.generators.Base.extend.makeConfig (/usr/local/lib/node_modules/generator-karma/app/index.js:170:10)
    at /usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/base.js:381:14
    at processImmediate [as _immediateCallback] (timers.js:330:15)

Help needed ?
OS: GhostBSD-3.5
Shell: Fish

Getting error: You need to include some adapter that implements __karma__.start method!

After generating with yo karma --gruntfile-path . and then fixing the gruntfile as described in this issue I get the following logs when running grunt test:

Running "karma:unit" (karma) task
INFO [karma]: Karma v0.12.16 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Mac OS X)]: Connected on socket F0yO4S5ud-PvmqXfaJDS with id 64667766
PhantomJS 1.9.7 (Mac OS X) ERROR
  You need to include some adapter that implements __karma__.start method!


Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.

Missing folders in modules

Hello

I've just run sudo npm install -g generator-karma

However, I encountered the following error :

/usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:193
    throw new Error('Unable to read "' + filepath + '" file (Error code: ' + e
          ^
Error: Unable to read "/usr/local/lib/node_modules/generator-karma/templates/karma.conf.js" file (Error code: ENOENT).
    at read (/usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:193:11)
    at template (/usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/actions/actions.js:288:19)
    at module.exports.yeoman.generators.Base.extend.makeConfig (/usr/local/lib/node_modules/generator-karma/app/index.js:170:10)
    at /usr/local/lib/node_modules/generator-karma/node_modules/yeoman-generator/lib/base.js:381:14
    at processImmediate [as _immediateCallback] (timers.js:330:15)

I've checked the downloaded generator-karma folder and indeed the templatesfolder is missing.

Best regards

Custom Template path

pretty sure setting a custom template path doesnt work properly since it has __dirname always attached

Deprecating CoffeeScript

Or rather removing it entirely as its easier than deprecating.

Planning on a quick refactor to get this up to yo-gen 0.22.5, simplify some things in it, make it a bit more opinionated and various other fixes. At the same, it would be easier to remove CS support instead of having to maintain multiple code branches. The functionality should be able to be replaced with another generator that composes on top of this one.

Anyone opposed?

Generator too angular-centric

Maybe this is the aim of the generator but isn't this, this, this and this making the generator too framework-centric? What happens if I use this with an Ember app? I'll have to manually change the file which defeats the purpose of generator-karma IMHO

Karma throws a TypeError

dupe of #20 but creating it anyway so it can be looked into and either have the fix documented or have the correct fix put in.

yo karma
----------------------------------------------------------------------------------
   create karma.conf.js
   create karma-e2e.conf.js

events.js:130
    throw TypeError('listener must be a function');
          ^
TypeError: listener must be a function
    at TypeError (<anonymous>)
    at ChildProcess.EventEmitter.addListener (events.js:130:11)
    at runInstall (/Users/eddie/Sites/OSS/generator-karma/node_modules/yeoman-generator/lib/actions/install.js:63:6)
    at KarmaGenerator.install [as npmInstall] (/Users/eddie/Sites/OSS/generator-karma/node_modules/yeoman-generator/lib/actions/install.js:153:10)
    at KarmaGenerator.<anonymous> (/Users/eddie/Sites/OSS/generator-karma/lib/generators/app/index.js:20:12)
    at KarmaGenerator.EventEmitter.emit (events.js:117:20)
    at /Users/eddie/Sites/OSS/generator-karma/node_modules/yeoman-generator/lib/base.js:306:14
    at process._tickCallback (node.js:415:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)

This is from a clean install of node, npm, yo, grunt-cli, and bower. I am using git version of karma npm linked. My npm folder looks like this:

drwxr-xr-x  16 eddie  staff   544B Jun  6 12:43 bower
lrwxr-xr-x   1 eddie  staff    40B Jun  6 13:41 generator-angular -> /Users/eddie/Sites/OSS/generator-angular
lrwxr-xr-x   1 eddie  staff    38B Jun  6 13:44 generator-karma -> /Users/eddie/Sites/OSS/generator-karma
drwxr-xr-x  13 eddie  staff   442B Jun  6 12:43 grunt-cli
drwxr-xr-x  13 eddie  staff   442B Jun  6 12:43 jshint
drwxr-xr-x  10 eddie  staff   340B Jun  6 13:41 yeoman-generator
drwxr-xr-x   7 eddie  staff   238B Jun  6 13:12 yo

Drop global install requirement

Now that it's run through grunt, shouldn't need to be a global install. Instead, it should add testacular and gruntacular to package.json and tell user to npm install.

bower-components-path default

bower-components-path should first check for a .bowerrc in the project root or use bower_components as the default

Dependency Conflict

Latest version of yo and angular-generator and karma-generator. Getting the following error:

npm ERR! peerinvalid The package karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@~0.12.0

npm ERR! System Darwin 12.5.0
npm ERR! command "/usr/local/Cellar/node/0.10.22/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/rdodev/Code/jsFormation
npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.14
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/rdodev/Code/jsFormation/npm-debug.log
npm ERR! not ok code 0

multiple test framework

How do I specify multiple test frameworks in the config file , like this

frameworks: ['jasmine', 'requirejs']

Cannot fint module 'map-key'

I'm having an error when creating a project with yo angular.


There are my system specs:
Node -v = v0.10.29
npm -v = 1.4.14
yo -v = 1.2.0
yo angular generator = 0.9.5
yo karma generator = 0.8.3
windows 7

At the end of the installation, i'm having this error.

module.js:340
throw err;
^
Error: Cannot find module 'map-key'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (C:\Users\xyz\AppData\Roaming\npm\node_modules\generator-karma\node_modules\yeoman-generator\node_modules\download\node_modules\decompress\index.js:4:11)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)

How to tell ( or upgrade ) jasmine?

Hello. I have this in my karma.conf.js.

frameworks: ['jasmine'],

How can I tell which version jasmine is running based on the package manager config file like npm or bower. I was able to run jasmine.version_ in the console and found my version, but looking for a better way.

Thanks

Using default settings ReferenceError: Phantom is not defined

I also get Require not defined....
Using the default options, my karma.conf.js:

// Karma configuration
// http://karma-runner.github.io/0.12/config/configuration-file.html
// Generated on 2015-08-14 using
// generator-karma 1.0.0

module.exports = function(config) {
 'use strict';

config.set({
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,

// base path, that will be used to resolve files and exclude
basePath: '../test',

// testing framework to use (jasmine/mocha/qunit/...)
// as well as any additional frameworks (requirejs/chai/sinon/...)
frameworks: [
  "jasmine"
],

// list of files / patterns to load in the browser
files: [
  'hello.js',
  'snapshot.js'
],

// list of files / patterns to exclude
exclude: [
],

// web server port
port: 8080,

// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: [
  "PhantomJS"
],

// Which plugins to enable
plugins: [
  "karma-phantomjs-launcher",
  "karma-jasmine"
],

// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,

colors: true,

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG

Bower Components

bower_components doesn't actually install or use the components main property.

It should take a CSV list of the actual component names (or an explicit array) and then install those. After that it should read the main entry from their bower.json to determine where the files are actually located to use that in the config

Add option to support multiple frameworks

I see that this has been asked for before, and it seems relatively simple. I'm glad to make a PR, but wanted to validate my thinking first.

  1. option: --other-frameworks=requirejs,sinon (is this a good name for the option?)
  2. Update this line (and corresponding line in coffee template) to something like:
    // testing framework to use (jasmine/mocha/qunit/...)
    // and any additional frameworks in use (if any)
    frameworks: ['<%= options["test-framework"] %>' <%if (options["other-frameworks"]) { %>, <%= templateArray(options["other-frameworks"]]) %><% }%>],
  1. Update test accordingly

Anything I'm missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.