Index: gc_core/js/lang_core/gc_engine.js ================================================================== --- gc_core/js/lang_core/gc_engine.js +++ gc_core/js/lang_core/gc_engine.js @@ -1,22 +1,30 @@ // Grammar checker engine -/*jslint esversion: 6*/ -/*global console,require,exports*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global require, exports, console */ "use strict"; -${string} -${regex} -${map} +//${string} +//${regex} +//${map} -if (typeof(require) !== 'undefined') { - var gc_options = require("resource://grammalecte/${lang}/gc_options.js"); - var gc_rules = require("resource://grammalecte/${lang}/gc_rules.js"); - var gc_rules_graph = require("resource://grammalecte/${lang}/gc_rules_graph.js"); - var cregex = require("resource://grammalecte/${lang}/cregex.js"); - var text = require("resource://grammalecte/text.js"); +if(typeof process !== 'undefined') { + var gc_options = require('./gc_options.js'); + var gc_rules = require('./gc_rules.js'); + var gc_rules_graph = require('./gc_rules_graph.js'); + var cregex = require('./cregex.js'); + var text = require('../text.js'); +} else if (typeof(require) !== 'undefined') { + var gc_options = require('resource://grammalecte/${lang}/gc_options.js'); + var gc_rules = require('resource://grammalecte/${lang}/gc_rules.js'); + var gc_rules_graph = require('resource://grammalecte/${lang}/gc_rules_graph.js'); + var cregex = require('resource://grammalecte/${lang}/cregex.js'); + var text = require('resource://grammalecte/text.js'); } function capitalizeArray (aArray) { // can’t map on user defined function?? @@ -51,12 +59,15 @@ //// Initialization load: function (sContext="JavaScript", sColorType="aRGB", sPath="") { try { - if (typeof(require) !== 'undefined') { - var spellchecker = require("resource://grammalecte/graphspell/spellchecker.js"); + if(typeof process !== 'undefined') { + var spellchecker = require('../graphspell/spellchecker.js'); + _oSpellChecker = new spellchecker.SpellChecker("${lang}", "", "${dic_main_filename_js}", "${dic_extended_filename_js}", "${dic_community_filename_js}", "${dic_personal_filename_js}"); + } else if (typeof require !== 'undefined') { + var spellchecker = require('resource://grammalecte/graphspell/spellchecker.js'); _oSpellChecker = new spellchecker.SpellChecker("${lang}", "", "${dic_main_filename_js}", "${dic_extended_filename_js}", "${dic_community_filename_js}", "${dic_personal_filename_js}"); } else { _oSpellChecker = new SpellChecker("${lang}", sPath, "${dic_main_filename_js}", "${dic_extended_filename_js}", "${dic_community_filename_js}", "${dic_personal_filename_js}"); } _sAppContext = sContext; @@ -179,11 +190,11 @@ this.dError = new Map(); this.dErrorPriority = new Map(); // Key = position; value = priority } asString () { - let s = "===== TEXT =====\n" + let s = "===== TEXT =====\n"; s += "sentence: " + this.sSentence0 + "\n"; s += "now: " + this.sSentence + "\n"; for (let dToken of this.lToken) { s += `#${dToken["i"]}\t${dToken["nStart"]}:${dToken["nEnd"]}\t${dToken["sValue"]}\t${dToken["sType"]}`; if (dToken.hasOwnProperty("lMorph")) { @@ -1387,11 +1398,11 @@ // callables for graph rules ${graph_callablesJS} } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.lang = gc_engine.lang; exports.locales = gc_engine.locales; exports.pkg = gc_engine.pkg; exports.name = gc_engine.name; exports.version = gc_engine.version; Index: gc_core/js/lang_core/gc_options.js ================================================================== --- gc_core/js/lang_core/gc_options.js +++ gc_core/js/lang_core/gc_options.js @@ -1,8 +1,10 @@ // Options for Grammalecte -/*jslint esversion: 6*/ -/*global exports*/ + +/* jshint esversion:6 */ +/* jslint esversion:6 */ +/* global exports */ ${map} var gc_options = { @@ -23,11 +25,11 @@ } return dColor; } catch (e) { console.error(e); - return {} + return {}; } }, lStructOpt: ${lStructOpt}, @@ -40,17 +42,17 @@ dColorType: ${dColorType}, dOptColor: ${dOptColor}, dOptLabel: ${dOptLabel} -} +}; -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.getOptions = gc_options.getOptions; - exports.getOptionsColors = gc_options.getOptionsColors; + exports.getOptionsColors = gc_options.getOptionsColors; exports.lStructOpt = gc_options.lStructOpt; - exports.dOpt = gc_options.dOpt; - exports.dColorType = gc_options.dColorType; - exports.dOptColor = gc_options.dOptColor; + exports.dOpt = gc_options.dOpt; + exports.dColorType = gc_options.dColorType; + exports.dOptColor = gc_options.dOptColor; exports.dOptLabel = gc_options.dOptLabel; } Index: gc_core/js/lang_core/gc_rules.js ================================================================== --- gc_core/js/lang_core/gc_rules.js +++ gc_core/js/lang_core/gc_rules.js @@ -1,7 +1,9 @@ // Grammar checker rules -/*jslint esversion: 6*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ /*global exports*/ "use strict"; ${string} @@ -9,12 +11,12 @@ var gc_rules = { lParagraphRules: ${paragraph_rules_JS}, lSentenceRules: ${sentence_rules_JS} -} +}; -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.lParagraphRules = gc_rules.lParagraphRules; exports.lSentenceRules = gc_rules.lSentenceRules; } Index: gc_core/js/lang_core/gc_rules_graph.js ================================================================== --- gc_core/js/lang_core/gc_rules_graph.js +++ gc_core/js/lang_core/gc_rules_graph.js @@ -1,20 +1,22 @@ // Grammar checker graph rules -/*jslint esversion: 6*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ /*global exports*/ "use strict"; -${string} +//${string} var gc_rules_graph = { dAllGraph: ${rules_graphsJS}, dRule: ${rules_actionsJS} -} +}; -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.dAllGraph = gc_rules_graph.dAllGraph; exports.dRule = gc_rules_graph.dRule; } Index: gc_core/js/tests.js ================================================================== --- gc_core/js/tests.js +++ gc_core/js/tests.js @@ -1,14 +1,18 @@ // JavaScript -/*jslint esversion: 6*/ -/*global console,require,exports*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global require, exports, console */ "use strict"; -if (typeof(require) !== 'undefined') { - var helpers = require("resource://grammalecte/graphspell/helpers.js"); +if(typeof process !== 'undefined') { + var helpers = require('./graphspell/helpers.js'); +} else if (typeof require !== 'undefined') { + var helpers = require('resource://grammalecte/graphspell/helpers.js'); } class TestGrammarChecking { @@ -18,11 +22,16 @@ this._aRuleTested = new Set(); } * testParse (bDebug=false) { const t0 = Date.now(); - let sURL = (this.spfTests !== "") ? this.spfTests : "resource://grammalecte/"+this.gce.lang+"/tests_data.json"; + let sURL; + if(typeof process !== 'undefined') { + sURL = (this.spfTests !== "") ? this.spfTests : "./"+this.gce.lang+"/tests_data.json"; + } else { + sURL = (this.spfTests !== "") ? this.spfTests : "resource://grammalecte/"+this.gce.lang+"/tests_data.json"; + } const aData = JSON.parse(helpers.loadFile(sURL)).aData; let nInvalid = 0; let nTotal = 0; let sErrorText; let sSugg; @@ -151,8 +160,8 @@ } } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.TestGrammarChecking = TestGrammarChecking; } Index: gc_core/js/text.js ================================================================== --- gc_core/js/text.js +++ gc_core/js/text.js @@ -1,8 +1,10 @@ // JavaScript -/*jslint esversion: 6*/ -/*global require,exports*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global require, exports, console */ "use strict"; var text = { @@ -57,10 +59,10 @@ } } }; -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.getParagraph = text.getParagraph; exports.wrap = text.wrap; exports.getReadableError = text.getReadableError; } Index: gc_lang/fr/modules-js/conj.js ================================================================== --- gc_lang/fr/modules-js/conj.js +++ gc_lang/fr/modules-js/conj.js @@ -1,17 +1,21 @@ // Grammalecte - Conjugueur // License: GPL 3 -/*jslint esversion: 6*/ -/*global console,require,exports,self,browser*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/*global require, exports, console, self, browser, chrome, __dirname */ "use strict"; -${map} +//${map} -if (typeof(require) !== 'undefined') { - var helpers = require("resource://grammalecte/graphspell/helpers.js"); +if(typeof process !== 'undefined') { + var helpers = require('../graphspell/helpers.js'); +} else if (typeof require !== 'undefined') { + var helpers = require('resource://grammalecte/graphspell/helpers.js'); } var conj = { _lVtyp: [], _lTags: [], @@ -494,33 +498,36 @@ } } // Initialization -if (!conj.bInit && typeof(browser) !== 'undefined') { +if(!conj.bInit && typeof process !== 'undefined') { + // Work with nodejs + conj.init(helpers.loadFile(__dirname+'/conj_data.json')); +} else if (!conj.bInit && typeof(browser) !== 'undefined') { // WebExtension Standard (but not in Worker) - conj.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/conj_data.json"))); -} else if (!conj.bInit && typeof(chrome) !== 'undefined') { + conj.init(helpers.loadFile(browser.extension.getURL('grammalecte/fr/conj_data.json'))); +} else if (!conj.bInit && typeof chrome !== 'undefined') { // WebExtension Chrome (but not in Worker) - conj.init(helpers.loadFile(chrome.extension.getURL("grammalecte/fr/conj_data.json"))); -} else if (!conj.bInit && typeof(require) !== 'undefined') { + conj.init(helpers.loadFile(chrome.extension.getURL('grammalecte/fr/conj_data.json'))); +} else if (!conj.bInit && typeof require !== 'undefined') { // Add-on SDK and Thunderbird - conj.init(helpers.loadFile("resource://grammalecte/fr/conj_data.json")); -} else if (!conj.bInit && typeof(self) !== 'undefined' && typeof(self.port) !== 'undefined' && typeof(self.port.on) !== "undefined") { + conj.init(helpers.loadFile('resource://grammalecte/fr/conj_data.json')); +} else if (!conj.bInit && typeof self !== 'undefined' && typeof self.port !== 'undefined' && typeof self.port.on !== 'undefined') { // used within Firefox content script (conjugation panel). // can’t load JSON from here, so we do it in ui.js and send it here. - self.port.on("provideConjData", function (sJSONData) { + self.port.on('provideConjData', function (sJSONData) { conj.init(sJSONData); - }); + }); } else if (conj.bInit){ - console.log("Module conj déjà initialisé"); + console.log('Module conj déjà initialisé'); } else { //console.log("Module conj non initialisé"); } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports._lVtyp = conj._lVtyp; exports._lTags = conj._lTags; exports._dPatternConj = conj._dPatternConj; exports._dVerb = conj._dVerb; exports.init = conj.init; Index: gc_lang/fr/modules-js/conj_generator.js ================================================================== --- gc_lang/fr/modules-js/conj_generator.js +++ gc_lang/fr/modules-js/conj_generator.js @@ -1,11 +1,13 @@ // JavaScript -/* - Conjugation generator - beta stage, unfinished, the root for a new way to generate flexions… -*/ +// Conjugation generator +// beta stage, unfinished, the root for a new way to generate flexions… + + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ "use strict"; var conj_generator = { @@ -137,11 +139,11 @@ [2, "ît", ":Sq:3s/*", false], [2, "is", ":E:2s/*", false], [2, "issons", ":E:1p/*", false], [2, "issez", ":E:2p/*", false] ], - + // premier groupe (bien plus irrégulier que prétendu) "V1": { // a // verbes en -er, -ger, -yer, -cer "er": [ Index: gc_lang/fr/modules-js/cregex.js ================================================================== --- gc_lang/fr/modules-js/cregex.js +++ gc_lang/fr/modules-js/cregex.js @@ -1,7 +1,9 @@ -//// Grammalecte - Compiled regular expressions -/*jslint esversion: 6*/ +// Grammalecte - Compiled regular expressions + +/* jshint esversion:6 */ +/* jslint esversion:6 */ var cregex = { ///// Lemme _zLemma: new RegExp(">([a-zà-öø-ÿ0-9Ā-ʯ][a-zà-öø-ÿ0-9Ā-ʯ-]+)"), @@ -265,11 +267,11 @@ return lMorph.some(s => this._zNPm.test(s)); } }; -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports._zLemma = cregex._zLemma; exports._zGender = cregex._zGender; exports._zNumber = cregex._zNumber; exports._zNA = cregex._zNA; exports._zNAs = cregex._zNAs; Index: gc_lang/fr/modules-js/gce_analyseur.js ================================================================== --- gc_lang/fr/modules-js/gce_analyseur.js +++ gc_lang/fr/modules-js/gce_analyseur.js @@ -1,7 +1,9 @@ -//// GRAMMAR CHECKING ENGINE PLUGIN: Parsing functions for French language -/*jslint esversion: 6*/ +// GRAMMAR CHECKING ENGINE PLUGIN: Parsing functions for French language + +/* jshint esversion:6 */ +/* jslint esversion:6 */ function g_morphVC (dToken, sPattern, sNegPattern="") { let nEnd = dToken["sValue"].lastIndexOf("-"); if (dToken["sValue"].includes("-t-")) { nEnd = nEnd - 2; @@ -128,11 +130,11 @@ } return false; } -//// Exceptions +// Exceptions const aREGULARPLURAL = new Set(["abricot", "amarante", "aubergine", "acajou", "anthracite", "brique", "caca", "café", "carotte", "cerise", "chataigne", "corail", "citron", "crème", "grave", "groseille", "jonquille", "marron", "olive", "pervenche", "prune", "sable"]); const aSHOULDBEVERB = new Set(["aller", "manger"]); Index: gc_lang/fr/modules-js/gce_date_verif.js ================================================================== --- gc_lang/fr/modules-js/gce_date_verif.js +++ gc_lang/fr/modules-js/gce_date_verif.js @@ -1,11 +1,12 @@ -//// GRAMMAR CHECKING ENGINE PLUGIN -/*jslint esversion: 6*/ +// GRAMMAR CHECKING ENGINE PLUGIN // Check date validity - // WARNING: when creating a Date, month must be between 0 and 11 + +/* jshint esversion:6 */ +/* jslint esversion:6 */ const _lDay = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]; const _dMonth = new Map ([ ["janvier", 1], ["février", 2], ["mars", 3], ["avril", 4], ["mai", 5], ["juin", 6], ["juillet", 7], Index: gc_lang/fr/modules-js/gce_suggestions.js ================================================================== --- gc_lang/fr/modules-js/gce_suggestions.js +++ gc_lang/fr/modules-js/gce_suggestions.js @@ -1,13 +1,19 @@ -//// GRAMMAR CHECKING ENGINE PLUGIN: Suggestion mechanisms -/*jslint esversion: 6*/ -/*global require*/ - -if (typeof(require) !== 'undefined') { - var conj = require("resource://grammalecte/fr/conj.js"); - var mfsp = require("resource://grammalecte/fr/mfsp.js"); - var phonet = require("resource://grammalecte/fr/phonet.js"); +// GRAMMAR CHECKING ENGINE PLUGIN: Suggestion mechanisms + +/* jshint esversion:6 */ +/* jslint esversion:6 */ +/* global require */ + +if(typeof process !== 'undefined') { + var conj = require('./conj.js'); + var mfsp = require('./mfsp.js'); + var phonet = require('./phonet.js'); +} else if (typeof require !== 'undefined') { + var conj = require('resource://grammalecte/fr/conj.js'); + var mfsp = require('resource://grammalecte/fr/mfsp.js'); + var phonet = require('resource://grammalecte/fr/phonet.js'); } //// verbs Index: gc_lang/fr/modules-js/lexicographe.js ================================================================== --- gc_lang/fr/modules-js/lexicographe.js +++ gc_lang/fr/modules-js/lexicographe.js @@ -1,9 +1,11 @@ // Grammalecte - Lexicographe // License: MPL 2 -/*jslint esversion: 6*/ -/*global require,exports*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global require, exports, console */ "use strict"; ${string} ${map} Index: gc_lang/fr/modules-js/mfsp.js ================================================================== --- gc_lang/fr/modules-js/mfsp.js +++ gc_lang/fr/modules-js/mfsp.js @@ -1,14 +1,18 @@ // Grammalecte -/*jslint esversion: 6*/ -/*global console,require,exports,browser*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global require, exports, console, browser,__dirname */ "use strict"; -if (typeof(require) !== 'undefined') { - var helpers = require("resource://grammalecte/graphspell/helpers.js"); +if(typeof process !== 'undefined') { + var helpers = require('../graphspell/helpers.js'); +} else if (typeof require !== 'undefined') { + var helpers = require('resource://grammalecte/graphspell/helpers.js'); } var mfsp = { // list of affix codes @@ -102,24 +106,27 @@ } }; // Initialization -if (!mfsp.bInit && typeof(browser) !== 'undefined') { +if(!mfsp.bInit && typeof process !== 'undefined') { + //Nodejs + mfsp.init(helpers.loadFile(__dirname+'/mfsp_data.json')); +} else if (!mfsp.bInit && typeof(browser) !== 'undefined') { // WebExtension - mfsp.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/mfsp_data.json"))); + mfsp.init(helpers.loadFile(browser.extension.getURL('grammalecte/fr/mfsp_data.json'))); } else if (!mfsp.bInit && typeof(require) !== 'undefined') { // Add-on SDK and Thunderbird - mfsp.init(helpers.loadFile("resource://grammalecte/fr/mfsp_data.json")); + mfsp.init(helpers.loadFile('resource://grammalecte/fr/mfsp_data.json')); } else if (mfsp.bInit){ - console.log("Module mfsp déjà initialisé"); + console.log('Module mfsp déjà initialisé'); } else { - //console.log("Module mfsp non initialisé"); + //console.log('Module mfsp non initialisé'); } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports._lTagMiscPlur = mfsp._lTagMiscPlur; exports._lTagMasForm = mfsp._lTagMasForm; exports._dMiscPlur = mfsp._dMiscPlur; exports._dMasForm = mfsp._dMasForm; exports.init = mfsp.init; Index: gc_lang/fr/modules-js/phonet.js ================================================================== --- gc_lang/fr/modules-js/phonet.js +++ gc_lang/fr/modules-js/phonet.js @@ -1,9 +1,14 @@ // Grammalecte - Suggestion phonétique -/*jslint esversion: 6*/ + +/* jshint esversion:6 */ +/* jslint esversion:6 */ +/* global __dirname */ -if (typeof(require) !== 'undefined') { +if(typeof process !== 'undefined') { + var helpers = require("../graphspell/helpers.js"); +} else if (typeof require !== 'undefined') { var helpers = require("resource://grammalecte/graphspell/helpers.js"); } var phonet = { @@ -82,27 +87,30 @@ } }; // Initialization -if (!phonet.bInit && typeof(browser) !== 'undefined') { +if (!phonet.bInit && typeof process !== 'undefined') { + //Nodejs + phonet.init(helpers.loadFile(__dirname+'/phonet_data.json')); +} else if (!phonet.bInit && typeof browser !== 'undefined') { // WebExtension - phonet.init(helpers.loadFile(browser.extension.getURL("grammalecte/fr/phonet_data.json"))); -} else if (!phonet.bInit && typeof(require) !== 'undefined') { + phonet.init(helpers.loadFile(browser.extension.getURL('grammalecte/fr/phonet_data.json'))); +} else if (!phonet.bInit && typeof require !== 'undefined') { // Add-on SDK and Thunderbird - phonet.init(helpers.loadFile("resource://grammalecte/fr/phonet_data.json")); + phonet.init(helpers.loadFile('resource://grammalecte/fr/phonet_data.json')); } else if (phonet.bInit){ - console.log("Module phonet déjà initialisé"); + console.log('Module phonet déjà initialisé'); } else { - //console.log("Module phonet non initialisé"); + //console.log('Module phonet non initialisé'); } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports._dWord = phonet._dWord; exports._lSet = phonet._lSet; exports._dMorph = phonet._dMorph; exports.init = phonet.init; exports.hasSimil = phonet.hasSimil; exports.getSimil = phonet.getSimil; exports.selectSimil = phonet.selectSimil; } Index: gc_lang/fr/modules-js/textformatter.js ================================================================== --- gc_lang/fr/modules-js/textformatter.js +++ gc_lang/fr/modules-js/textformatter.js @@ -1,8 +1,10 @@ // Grammalecte - text formatter -/*jslint esversion: 6*/ -/*global exports*/ + +/* jshint esversion:6, -W097 */ +/* jslint esversion:6 */ +/* global exports */ "use strict"; ${map} @@ -83,11 +85,11 @@ "ts_apostrophe": [ [/\b([ldnjmtscç])['´‘′`](?=[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ])/ig, "$1’"], [/\b(qu|jusqu|lorsqu|puisqu|quoiqu|quelqu|presqu|entr|aujourd|prud)['´‘′`]/ig, "$1’"] ], "ts_ellipsis": [ [/\.\.\./g, "…"], [/…\.\./g, "……"], [/…\.(?!\.)/g, "…"] ], - "ts_n_dash_middle": [ [/ [-—] /g, " – "], + "ts_n_dash_middle": [ [/ [-—] /g, " – "], [/ [-—],/g, " –,"] ], "ts_m_dash_middle": [ [/ [-–] /g, " — "], [/ [-–],/g, " —,"] ], "ts_n_dash_start": [ [/^[-—][  ]/gm, "– "], [/^– /gm, "– "], @@ -285,9 +287,9 @@ return dTFDefaultOptions; } } -if (typeof(exports) !== 'undefined') { +if (typeof exports !== 'undefined') { exports.TextFormatter = TextFormatter; exports.oReplTable = oReplTable; } Index: graphspell-js/ibdawg.js ================================================================== --- graphspell-js/ibdawg.js +++ graphspell-js/ibdawg.js @@ -1,10 +1,10 @@ // IBDAWG /* jshint esversion:6, -W097 */ /* jslint esversion:6 */ -/* global require, exports, console*/ +/* global require, exports, console, __dirname */ "use strict"; if(typeof process !== 'undefined') { var str_transform = require('./str_transform.js'); @@ -99,11 +99,16 @@ constructor (param1, sPath="") { // param1 can be a filename or a object with all the necessary data. try { let oData = null; if (typeof(param1) == "string") { - let sURL = (sPath !== "") ? sPath + "/" + param1 : "resource://grammalecte/graphspell/_dictionaries/"+param1; + let sURL; + if(typeof process !== 'undefined') { + sURL = (sPath !== "") ? sPath + "/" + param1 : __dirname + "/_dictionaries/"+param1; + } else { + sURL = (sPath !== "") ? sPath + "/" + param1 : "resource://grammalecte/graphspell/_dictionaries/"+param1; + } oData = JSON.parse(helpers.loadFile(sURL)); } else { oData = param1; } Object.assign(this, oData);