<commit_before>/*global module:false*/
module.exports = function(grunt) {

	// Project configuration.
	grunt.initConfig({

		pkg: grunt.file.readJSON( 'package.json' ),

		watch: {
			js: {
				files: [ 'src/**/*.js', 'wrapper/**/*.js' ],
				tasks: [ 'clean:tmp', 'requirejs' ],
				options: {
					interrupt: true,
					force: true
				}
			}
		},

		nodeunit: {
			basic:  [ 'test/node/basic.js' ],
			parse:  [ 'test/node/parse.js' ],
			toHTML: [ 'test/node/toHTML.js' ]
		},

		qunit: {
			all:        [ 'test/tests/index.html'      ],
			parse:      [ 'test/tests/parse.html'      ],
			render:     [ 'test/tests/render.html'     ],
			mustache:   [ 'test/tests/mustache.html'   ],
			events:     [ 'test/tests/events.html'     ],
			misc:       [ 'test/tests/misc.html'       ],
			components: [ 'test/tests/components.html' ],
			merge:      [ 'test/tests/merge.html'      ],
			observe:    [ 'test/tests/observe.html'    ],
			find:       [ 'test/tests/find.html'       ],
			arrays:     [ 'test/tests/arrays.html'     ],
			options: {
				timeout: 30000
			}
		},

		requirejs: {
			full: {
				options: {
					out: 'tmp/Ractive.js',
					paths: {
						'legacy': 'empty/legacy'
					}
				}
			},
			legacy: {
				options: {
					out: 'tmp/Ractive-legacy.js'
				}
			},
			runtime: {
				options: {
					out: 'tmp/Ractive.runtime.js',
					paths: {
						'parse/_parse': 'empty/parse',
						'legacy': 'empty/legacy'
					}
				}
			},
			runtime_legacy: {
				options: {
					out: 'tmp/Ractive-legacy.runtime.js',
					paths: {
						'parse/_parse': 'empty/parse'
					}
				}
			},
			options: {
				baseUrl: 'src/',
				name: 'Ractive',
				optimize: 'none',
				logLevel: 2,
				onBuildWrite: function( name, path, contents ) {
					return require( 'amdclean' ).clean( contents ) + '\n';
				},
				wrap: {
					endFile: 'wrapper/export.js'
				}
			}
		},

		concat: {
			options: {
				banner: grunt.file.read( 'wrapper/banner.js' ),
				footer: grunt.file.read( 'wrapper/footer.js' ),
				process: {
					data: { version: '<%= pkg.version %>' }
				}
			},
			all: {
				files: [{
					expand: true,
					cwd: 'tmp/',
					src: '*.js',
					dest: 'build/'
				}]
			}
		},

		clean: {
			tmp: [ 'tmp/' ],
			build: [ 'build/' ]
		},

		jshint: {
			files: [ 'src/**/*.js' ],
			options: {
				proto: true,
				smarttabs: true,
				boss: true,
				evil: true,
				laxbreak: true,
				undef: true,
				unused: true,
				'-W018': true,
				'-W041': false,
				eqnull: true,
				strict: true,
				globals: {
					define: true,
					require: true,
					Element: true,
					window: true,
					setTimeout: true,
					setInterval: true,
					clearInterval: true,
					module: true,
					document: true,
					loadCircularDependency: true
				}<commit_msg>Reorder jshint options to alphabetical<commit_after>/*global module:false*/
module.exports = function(grunt) {

	// Project configuration.
	grunt.initConfig({

		pkg: grunt.file.readJSON( 'package.json' ),

		watch: {
			js: {
				files: [ 'src/**/*.js', 'wrapper/**/*.js' ],
				tasks: [ 'clean:tmp', 'requirejs' ],
				options: {
					interrupt: true,
					force: true
				}
			}
		},

		nodeunit: {
			basic:  [ 'test/node/basic.js' ],
			parse:  [ 'test/node/parse.js' ],
			toHTML: [ 'test/node/toHTML.js' ]
		},

		qunit: {
			all:        [ 'test/tests/index.html'      ],
			parse:      [ 'test/tests/parse.html'      ],
			render:     [ 'test/tests/render.html'     ],
			mustache:   [ 'test/tests/mustache.html'   ],
			events:     [ 'test/tests/events.html'     ],
			misc:       [ 'test/tests/misc.html'       ],
			components: [ 'test/tests/components.html' ],
			merge:      [ 'test/tests/merge.html'      ],
			observe:    [ 'test/tests/observe.html'    ],
			find:       [ 'test/tests/find.html'       ],
			arrays:     [ 'test/tests/arrays.html'     ],
			options: {
				timeout: 30000
			}
		},

		requirejs: {
			full: {
				options: {
					out: 'tmp/Ractive.js',
					paths: {
						'legacy': 'empty/legacy'
					}
				}
			},
			legacy: {
				options: {
					out: 'tmp/Ractive-legacy.js'
				}
			},
			runtime: {
				options: {
					out: 'tmp/Ractive.runtime.js',
					paths: {
						'parse/_parse': 'empty/parse',
						'legacy': 'empty/legacy'
					}
				}
			},
			runtime_legacy: {
				options: {
					out: 'tmp/Ractive-legacy.runtime.js',
					paths: {
						'parse/_parse': 'empty/parse'
					}
				}
			},
			options: {
				baseUrl: 'src/',
				name: 'Ractive',
				optimize: 'none',
				logLevel: 2,
				onBuildWrite: function( name, path, contents ) {
					return require( 'amdclean' ).clean( contents ) + '\n';
				},
				wrap: {
					endFile: 'wrapper/export.js'
				}
			}
		},

		concat: {
			options: {
				banner: grunt.file.read( 'wrapper/banner.js' ),
				footer: grunt.file.read( 'wrapper/footer.js' ),
				process: {
					data: { version: '<%= pkg.version %>' }
				}
			},
			all: {
				files: [{
					expand: true,
					cwd: 'tmp/',
					src: '*.js',
					dest: 'build/'
				}]
			}
		},

		clean: {
			tmp: [ 'tmp/' ],
			build: [ 'build/' ]
		},

		jshint: {
			files: [ 'src/**/*.js' ],
			options: {
				boss: true,
				eqnull: true,
				evil: true,
				laxbreak: true,
				proto: true,
				smarttabs: true,
				strict: true,
				undef: true,
				unused: true,
				'-W018': true,
				'-W041': false,
				globals: {
					clearInterval: true,
					define: true,
					document: true,
					Element: true,
					loadCircularDependency: true,
					module: true,
					require: true,
					setInterval: true,
					setTimeout: true,
					window: true
				}
{'fraction_non_alphanumeric': 0.18031311858916682, 'fraction_numerical': 0.004318877091956092, 'mean_word_length': 1.8963001563314226, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2582640', 'n_tokens_mistral': 2798, 'n_tokens_neox': 2059, 'n_words': 366}