<commit_before>define([
	'./ymlTools',
	'./Store',
	'./smartEvents',
	'./MonitoredStruct'

], (ymlTools, Store, ev, mStruct) => {
	'use strict';
	const on = ev.on, send = ev.send;
	let urlHashStore;
	let config;

	function reset(){
		urlHashStore = false;
		config = false;
	}
	function init() {
		listenerInit();
		ymlTools.loadMerge(['staticApp/appDefault.yml', 'allData/config.yml'], 'config.default');
	}

	function listenerInit() {
		on('config.default', initUrlHashStore);
		on('urlHashStore.ready', completeConfigWithUrlHashStore);
		on('config delete', 'config.change');
		on('config change', storeConfig);
	}

	function initUrlHashStore(defaultConfig) {
		urlHashStore = new Store.UrlHashStore(defaultConfig);	// init url with default values
		send('urlHashStore.ready', urlHashStore);
	}

	function completeConfigWithUrlHashStore(url) {
		const fullConfig = new mStruct.MonitoredStruct(url.load(), 'config');	// init options from url hash
		setConfig(fullConfig);
		ev.give("config",getConfig);
	}

	function storeConfig(config) {
		urlHashStore.save(config);
	}

	function setConfig(fullConfig) {
		config = fullConfig;
	}

	function getConfig() {
		return config;
	}

	return {
		reset,
		init,<commit_msg>configLoader ready for parserPlugins<commit_after>define([
	'./ymlTools',
	'./Store',
	'./smartEvents',
	'./MonitoredStruct'

], (ymlTools, Store, ev, mStruct) => {
	'use strict';
	const on = ev.on, send = ev.send;
	let urlHashStore;
	let config;

	function reset(){
		urlHashStore = false;
		config = false;
	}
	function init() {
		listenerInit();
		ymlTools.loadMerge(['staticApp/appDefault.yml', 'allData/config.yml'], 'config.default');
	}

	function listenerInit() {
		on('config.default', initUrlHashStore);
		on('config.pre-ready', proxyfyConfigForGlobalDiffusion,1);
		on('config delete', 'config.change');
		on('config change', storeConfig);
	}

	function initUrlHashStore(defaultConfig) {
		urlHashStore = new Store.UrlHashStore(defaultConfig);	// init url with default values
		const preConfig = urlHashStore.load();
		send('config.pre-ready', preConfig); // init config from url hash
	}

	function proxyfyConfigForGlobalDiffusion(config) {
		const fullConfig = new mStruct.MonitoredStruct(config, 'config');
		setConfig(fullConfig);
		ev.give("config",getConfig);
	}

	function storeConfig(config) {
		urlHashStore.save(config);
	}

	function setConfig(fullConfig) {
		config = fullConfig;
	}

	function getConfig() {
		return config;
	}

	return {
		reset,
		init,
{'fraction_non_alphanumeric': 0.14549098196392785, 'fraction_numerical': 0.0004008016032064128, 'mean_word_length': 4.777777777777778, 'pattern_counts': {'":': 0, '<': 3, '<?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': '2819299', 'n_tokens_mistral': 884, 'n_tokens_neox': 814, 'n_words': 173}