{"_id":"@druide-informatique/antidote-api-js","_rev":"13-12f0dc19e220457ee8b44c0974db45bd","name":"@druide-informatique/antidote-api-js","dist-tags":{"latest":"1.3.7"},"versions":{"1.0.0":{"name":"@druide-informatique/antidote-api-js","version":"1.0.0","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.0.0","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"354959ac9671b020036455c9a168312143911a90","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.0.0.tgz","fileCount":7,"integrity":"sha512-uZL1uK6GaZKtnolwQ5r4QHj46TV1eAgulK/X004/3Pt6qJXK9tiFpB0Y+lsA7Najv4zAlko10Z2WBR5KjIkSaw==","signatures":[{"sig":"MEQCID7RB8CPFpUeHCwiBn9EZ3kmrOoQOaA2ds1+byAxSGhWAiAG1nsjgoGF9sSWGKASNucQWGDrmGQ8jTLSAoh9lHQosQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100247},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"}},"gitHead":"d4b2fd98ea1d4064a8ce28fec165f6a339ca80ff","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:node","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"`antidote-api-js` est une bibliothèque JavaScript/TypeScript permettant d'intégrer le correcteur Antidote dans vos applications Web ou hybrides (Cordova, Electron, etc.). Elle fournit des fonctions pour lancer le correcteur, gérer la communication avec An","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"node":["dist/node.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.0.0_1760020786549_0.661024372943954","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@druide-informatique/antidote-api-js","version":"1.1.0","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.1.0","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"58a1d345d466b544806b720feb918a943d5e369e","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.1.0.tgz","fileCount":7,"integrity":"sha512-E+bPigo5RWnJnJl9mMKYXTiM+5nj749/A91qGPTG1+oCSd05dGNpTH1B9refe+2ajqcUfA02R7skyV4L9Iv6oA==","signatures":[{"sig":"MEYCIQCHrBIpeYbGl8C7GTgA+SN+hU3yZjYPSy7j66He9bYAUgIhAKw312nbtHU2g1Yg/LD8HVmGrtYe3ZOngAOWHwnI4o3X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102342},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"}},"gitHead":"ccc2e37095d3256664155b426220d35133eb98a8","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:node","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"`antidote-api-js` est une bibliothèque JavaScript/TypeScript permettant d'intégrer le correcteur Antidote dans vos applications Web ou hybrides (Cordova, Electron, etc.). Elle fournit des fonctions pour lancer le correcteur, gérer la communication avec An","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"node":["dist/node.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.1.0_1762800550195_0.001087670891609438","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@druide-informatique/antidote-api-js","version":"1.1.1","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.1.1","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"8268f365598c278bad19dab970354172d2e3174a","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.1.1.tgz","fileCount":7,"integrity":"sha512-V0exaW7T7hdPNHpBHfF7lwCppll2Ubty0ASfp00Xty5YogaVQ0pHHybljrNNb4LKshmxHmVFHj/sWYETWqXXAw==","signatures":[{"sig":"MEUCICFun84sJyTwVJn0p/0U/RHhLRa43mSuHx9M2aUKRM4PAiEAi0C+J3tpLNec7VuX5eck2PY39IbPIXKz0uz1p29ARfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102342},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"}},"gitHead":"a139dbc8f0f7827e59e8645a197e73bd000ad2a4","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:node","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"`antidote-api-js` est une bibliothèque JavaScript/TypeScript permettant d'intégrer le correcteur Antidote dans vos applications Web ou hybrides (Cordova, Electron, etc.). Elle fournit des fonctions pour lancer le correcteur, gérer la communication avec An","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"node":["dist/node.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.1.1_1762802229910_0.8068782239258421","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@druide-informatique/antidote-api-js","version":"1.1.2","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.1.2","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"2cd133ab709159afe8a4998d6ef3430f183ad021","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.1.2.tgz","fileCount":7,"integrity":"sha512-yOfpDTqRvWHMozekyEFUzYKT3sYdSmxVMmOEEcs5t16+9eUc68dcd3euu76QQF7RXt8jGboI/oLdKht4V39yIA==","signatures":[{"sig":"MEYCIQCWzvoHztni9FcXAdLIxlxzxfZMK7jSqmp8L9Curt8BoQIhANOzF7aeoH3ilfhMkiVDcVr5GdghgJ2EFPARjVo94Zid","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100281},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"}},"gitHead":"153d5475f4471030b88675b2037549c2b26a55cc","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:node","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"`antidote-api-js` est une bibliothèque JavaScript/TypeScript permettant d'intégrer le correcteur Antidote dans vos applications Web ou hybrides (Cordova, Electron, etc.). Elle fournit des fonctions pour lancer le correcteur, gérer la communication avec An","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"node":["dist/node.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.1.2_1762802607640_0.9229619392157837","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@druide-informatique/antidote-api-js","version":"1.3.0","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.0","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"453f0fe668347129f29462bb0a75adfb950fb2fb","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.0.tgz","fileCount":11,"integrity":"sha512-jXN+LNPljIrMqiPEctK0AfaeQ+pl11OC1XW83aWh4uK5oRVDayEI4wnU/FIqpmjmKcHreSTB3+4MZ7TUsFXbBg==","signatures":[{"sig":"MEQCIFIx0njrHywjU6tAcJs1RxovStcvH/mQsEX28nZpX2e3AiASagSyjgOgIHf4jVmiBktXpU8Gm8r0mO+CVAOzYCaJ7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187528},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"50d5257d5d2dbee60935079aecb732d77ec00055","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"`antidote-api-js` est une bibliothèque JavaScript/TypeScript permettant d'intégrer le correcteur Antidote dans vos applications Web ou hybrides (Cordova, Electron, etc.). Elle fournit des fonctions pour lancer le correcteur, gérer la communication avec An","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.0_1763766610674_0.9875192697467328","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@druide-informatique/antidote-api-js","version":"1.3.1","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.1","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"0037ffb39677300187be954e9de0f124d30d0744","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.1.tgz","fileCount":12,"integrity":"sha512-rGCTwBGBfs1O61dGDnlL/jrXfcSVfcMY6BjnLR3XoGN0gf+6rexXHsvoPvyiySr8rMEZhaO60s/KupqmmlUTHA==","signatures":[{"sig":"MEUCIBCFVSGe1FnSktrqH+p6z9FLLeqxDAoLmQGAjGh9pIy+AiEA0kRa8/U5yehbUy8x38Gn9TENss2ZJtkEkk2qUGWT+Do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207565},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"255e8373f728835d13c60f385616555b6a4e731d","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.1_1764277613079_0.537000866268206","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@druide-informatique/antidote-api-js","version":"1.3.2","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.2","maintainers":[{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"a0b316dc373a5fe6497be3e18c0521477fc66832","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.2.tgz","fileCount":12,"integrity":"sha512-1jvnk72vzFpqVRRGYkg6o/RyKCiGTkThugsagASikE5pR1/W1WuMpYCHZf/ECmD5/XjCmyU95IXKNXvgzHvFpg==","signatures":[{"sig":"MEQCIDAsWHvupz6OZIclBHfTBBqQx8lfjzv1Zm02FtXvzRyhAiBFSC7wlHotaOWsQTMqacfWEPrfopqqjHoTURNINiLPEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207744},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"7249a0ff67edd8cebf7b24286bf5d4c0ecc50e08","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.9.0","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.2_1764278783302_0.4751060089684882","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@druide-informatique/antidote-api-js","version":"1.3.3","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.3","maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"2893cd42cac8a08e6426be048d5ff8332ccf49f5","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.3.tgz","fileCount":12,"integrity":"sha512-erzFOEefI/PXYl7ueHvYecXAcx5w4RyHblqmBMRj+afVjSK4PhabtzCbVUVQrIa+ixMDQX6drEy/8H8iJ9ntIw==","signatures":[{"sig":"MEQCIFJdqroiE4ka2th3h8pDkRU3R8Zoxk5068a10jRnq8tiAiAGIQPEvwDh1jasPdFdktDJu9cE84AIKS3HKY1ZDlSbVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208830},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"adb73cf04afed577553917d4e7f42d9361df355c","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.8.2","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.3_1764886817955_0.7301486690099179","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@druide-informatique/antidote-api-js","version":"1.3.4","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.4","maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"4803141d90e0a93c13edb0d08a4946a38aa4e908","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.4.tgz","fileCount":12,"integrity":"sha512-T9Wx3POa0bGFGmOmJFolCuBOnzxSWusdQEuX2NfMzscpVnrJpVhAkctOX8n0wU0QhbW7K9xU1t8znPz5JYhZOg==","signatures":[{"sig":"MEQCIHcOY2vK+NPIBLdlfYNjB5hmbGJ2g+1iQPxaxMZ+2BeZAiB1GAMfeoedwdZVfASgTwfTXDdYS0UUfKLB8OAeuYtj4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208972},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"fb9bd2cbd74df446cf65075a55fd61c9c661f8af","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.8.2","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.4_1765219777032_0.07481651391933619","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@druide-informatique/antidote-api-js","version":"1.3.5","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.5","maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"0eed2eed25850c7c78699e858997fc663da679b1","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.5.tgz","fileCount":12,"integrity":"sha512-JyA5KVIVyevUn7nNig1nsnkJcdB6DvAP2DHJbX0Hdid9DaqoUVtTqgTPQY8MLr0g4eSFNPLXFHZZ4tf9xyOUTQ==","signatures":[{"sig":"MEYCIQCh0pwC/6wvctkyTzjutBygUWLC78jWePG7uJfSvEA7+AIhALyFhYPFPQ2rHNRuf6JgpJkXs6u/HBr3mJXDy/HCXFeU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209706},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"237dd67f49d9b98595d3bb840aa3448f1f533d1e","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","build:ts":"tsc","build:api":"npm run build:api:browser && npm run build:api:browser-fr && npm run build:api:node && npm run build:api:node-fr","build:min":"node build.js","build:api:node":"npx api-extractor run --local --config src/node/api-extractor.json","build:api:browser":"npx api-extractor run --local","build:api:node-fr":"npx api-extractor run --local --config src/node/api-extractor-fr.json","build:api:browser-fr":"npx api-extractor run --local --config api-extractor-fr.json"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.8.2","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.5_1786457243355_0.15715645728286343","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@druide-informatique/antidote-api-js","version":"1.3.6","keywords":[],"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","_id":"@druide-informatique/antidote-api-js@1.3.6","maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"dist":{"shasum":"a0b8c1dddfa1957b2e09bc57d529542108110d5d","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.6.tgz","fileCount":12,"integrity":"sha512-h2ScVvyMkXYS7AaXdRDjQEUYGWGOANik3v8v36kM5CuFVkxuEet/WOQ09nNlnhyT0vNKCDcySEkRwtdKTTX98A==","signatures":[{"sig":"MEQCIFzYO002v3bFgh5+KlCWS118jrU+0MYr+mEIb/849IqAAiBBCD6F5aluiRpWzK3m4qXtHzfpsPsnYjOcRbDyCb0jNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211793},"main":"dist/index.min.js","type":"module","types":"dist/index.min.d.ts","exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"dd358c47bc95fd5c9507f4d419ec782c1bb90b52","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","build:ts":"tsc","prebuild":"npm run clean","build:api":"node build-api.js --local","build:min":"node build.js","verifie:api":"node build-api.js","build:api:node":"node build-api.js --local node","build:api:browser":"node build-api.js --local browser","build:api:node-fr":"node build-api.js --local node-fr","build:api:browser-fr":"node build-api.js --local browser-fr"},"_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"_npmVersion":"10.8.2","description":"[Lire en français](README.fr.md)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/antidote-api-js_1.3.6_1788546636600_0.0997854614495608","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"_id":"@druide-informatique/antidote-api-js@1.3.7","dist":{"shasum":"2703b2829ed051b175f6a3f9f84207efba39a416","tarball":"https://registry.npmjs.org/@druide-informatique/antidote-api-js/-/antidote-api-js-1.3.7.tgz","fileCount":13,"integrity":"sha512-hfdCd9ymn2nkVZzfdZ3ro2/tFHKYogARWKdvkKmQcq0gHE+45Y3oZ/mb0ZyW4gXf8bubqYBfv0GPGF4UTF6e0A==","signatures":[{"sig":"MEYCIQCjjnTXpuv/5sPEbfsGkAHD8PwuDNjwwkKeV0i73iAksAIhAJMD15GWVyRRTOIRV/8vt7AEHOd1UfCMO4pUlnSo8dQI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBszsJAYaggfZEdgSVP3TGrwTWZtT6xMZWwp/Bdt67ZSAiEA7WUBzB0Q2cLqaiNlY0JpWr4T9WKOb8KXuWZsLlD68Yo="}],"unpackedSize":216843},"main":"dist/index.min.js","name":"@druide-informatique/antidote-api-js","type":"module","types":"dist/index.min.d.ts","author":{"name":"Équipe des intégrations logicielles"},"exports":{".":{"import":"./dist/index.min.js","require":"./dist/index.min.js"},"./fr":{"import":"./dist/fr.min.js","require":"./dist/fr.min.js"},"./node":{"import":"./dist/node.min.js","require":"./dist/node.min.js"},"./node/fr":{"import":"./dist/node-fr.min.js","require":"./dist/node-fr.min.js"}},"gitHead":"fc77b8f9dbe8024249fbea56d1ab853c318ce859","license":"MIT","scripts":{"lint":"npx eslint .","build":"npm run build:ts && npm run build:api && npm run build:min","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","build:ts":"tsc","prebuild":"npm run clean","build:api":"node build-api.js --local","build:min":"node build.js","verifie:api":"node build-api.js","build:api:node":"node build-api.js --local node","build:api:browser":"node build-api.js --local browser","build:api:node-fr":"node build-api.js --local node-fr","build:api:browser-fr":"node build-api.js --local browser-fr"},"version":"1.3.7","_npmUser":{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"},"keywords":["antidote","druide","correcteur","corrector","grammar","grammar-checker","spellcheck","proofreading","french","cordova","electron"],"_npmVersion":"10.8.2","description":"JavaScript/TypeScript library to integrate the Antidote corrector into web and hybrid applications (Cordova, Electron, etc.).","directories":{},"maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","i18next":"^25.5.2","compare-versions":"^6.1.1","i18next-browser-languagedetector":"^8.2.0"},"typesVersions":{"*":{"*":["dist/index.min.d.ts"],"fr":["dist/fr.min.d.ts"],"node":["dist/node.min.d.ts"],"node/fr":["dist/node-fr.min.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.34.0","esbuild":"^0.25.9","@eslint/js":"^9.33.0","typescript":"^5.9.2","@types/node":"^24.10.1","@types/uuid":"^10.0.0","typescript-eslint":"^8.39.1","eslint-plugin-headers":"^1.3.3","eslint-plugin-prettier":"^5.5.4","@types/compare-versions":"^3.0.0","@microsoft/api-extractor":"^7.52.11","@stylistic/eslint-plugin":"^5.2.3"},"peerDependencies":{"cordova-plugin-inappbrowser":"^6.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/antidote-api-js_1.3.7_1790281125735_0.03637315029536348"}}},"time":{"created":"2025-10-09T14:39:46.481Z","modified":"2026-09-24T20:18:46.132Z","1.0.0":"2025-10-09T14:39:46.746Z","1.1.0":"2025-11-10T18:49:10.400Z","1.1.1":"2025-11-10T19:17:10.092Z","1.1.2":"2025-11-10T19:23:27.839Z","1.3.0":"2025-11-21T23:10:10.918Z","1.3.1":"2025-11-27T21:06:53.293Z","1.3.2":"2025-11-27T21:26:23.499Z","1.3.3":"2025-12-04T22:20:18.100Z","1.3.4":"2025-12-08T18:49:37.172Z","1.3.5":"2026-08-11T14:07:23.534Z","1.3.6":"2026-09-04T18:30:36.754Z","1.3.7":"2026-09-24T20:18:45.931Z"},"author":{"name":"Équipe des intégrations logicielles"},"license":"MIT","keywords":["antidote","druide","correcteur","corrector","grammar","grammar-checker","spellcheck","proofreading","french","cordova","electron"],"description":"JavaScript/TypeScript library to integrate the Antidote corrector into web and hybrid applications (Cordova, Electron, etc.).","maintainers":[{"name":"stephandagenais","email":"sdagenais@druide.com"},{"name":"jasminlapalme","email":"assistance_integration+npm@druide.com"}],"readme":"[Lire en français](README.fr.md)\n\n# antidote-api-js\n\n`antidote-api-js` is a JavaScript/TypeScript library that enables you to integrate the Antidote corrector into your web or hybrid applications (Cordova, Electron, etc.). It provides functions to launch the corrector, manage communication with Antidote Web, and interact with the texts to be corrected.\n\n## Installation\n\n```bash\nnpm install @druide-informatique/antidote-api-js\n```\n\nor\n\n```bash\nyarn add @druide-informatique/antidote-api-js\n```\n\n## Build\n\n### Package\n\n```bash\nnpm install\nnpm run build\n```\n\n## Communication API for interacting directly with the Antidote Connector or Antidote Web\n\nObjet principal : Antidote\n\n```typescript\nimport { AntidoteConnector } from '@druide-informatique/antidote-api-js';\nimport { Antidote } from '@druide-informatique/antidote-api-js';\n```\n\nFunctions for launching the corrector\n* `Antidote.launchAntidoteWebCorrector(noeud, creeFenetre?, appliedCorrectionFunction?)`\n* `Antidote.launchAntidoteCorrector(noeud, creeFenetre?, appliedCorrectionFunction?)`\n\nParameters\n* `noeud`: `HTMLElement | HTMLElement[]` – The DOM element(s) to be corrected.\n* `createWindow?`: `() => AntidoteWebWindow | null` – Optional function to create the corrector window.\n* `appliedCorrectionFunction?`: `() => void` – Optional function called after applying the corrections.\n\nConnector detection\n* `AntidoteConnector.isDetected()`: boolean – Checks whether the Antidote Connector is available.\n\n⸻\n\nCreation of Antidote windows\n* `createCordovaWindow()`: `AntidoteWebWindow` – For Cordova applications.\n* `createPostMessageAntidoteWebWindow()`: `AntidoteWebWindow | null` – For communication via _postMessage_.\n\n### AntidoteWebWindow Interface\n\n```typescript\nexport interface AntidoteWebWindow {\n  sendMessageToAntidoteWeb(jsonMessage: AntidoteMessage): void;\n  initializeCommunicationAntidoteWeb(): void;\n  showDocument(): void;\n  returnToDocument(): void;\n}\n```\n\n### Handling messages from Antidote Web\n\n```typescript\naWebMessageHandler(event: MessageEvent<AntidoteMessage>): void\n```\n\n### Types\n\n```typescript\ntype NodeOrListOfNodes = HTMLElement | HTMLElement[];\n\ninterface AntidoteMessage {\n}\n\ntype AppliedCorrectionFunction = () => void;\ntype CreateWindowAntidoteWebFunction = () => AntidoteWebWindow | null;\n```\n\n### Usage example\n\n```typescript\nimport { Antidote, creeFenetreWindowPostMessage } from '@druide-informatique/antidote-api-js';\n\nconst textarea = document.querySelector('#myTextarea');\n\nAntidote.launchAntidoteCorrector(\n    textarea,\n    createPostMessageAntidoteWebWindow,\n    () => console.log('applied correction!')\n);\n```\n\n## WebSocket API — Direct connection with Connectix\n\nThis API enables communication with Antidote tools: Corrector, Dictionaries, and Guides.\n\nOnce the protocol is established, the application allows bidirectional communication between the application's text and Antidote. Corrections suggested by Antidote are sent via messages to perform only the minimal replacements on the original text. It is possible to open the corrector to edit one or more documents—whether large or small—and to open dictionaries or guides for a short phrase or a single word. For dictionaries, this API allows managing the [_replace_](https://www.antidote.info/en/documentation/user-guide/the-dictionaries/functionalities/replacing-a-word-in-the-text) function.\n\n### Example\n\n#### Subclass of WordProcessorAgent\n\nThe WordProcessorAgent represents your application to Antidote. It is the one that will provide your application's information to Antidote. At a minimum, you must define the functions `configuration`, `correctIntoWordProcessor`, `allowEdit`, and `zonesToCorrect`. In the following example, we want to correct the content of the fields in `fieldsToCorrect`.\n\n```typescript\nimport { applyCorrection, retrieveText, selectInterval } from '@druide-informatique/antidote-api-js';\n\nexport class WordProcessorAgentTextArea extends WordProcessorAgent {\n  private fieldsToCorrect: HTMLElement[];\n\n  constructor(fieldsToCorrect: HTMLElement[]) {\n    super();\n    this.fieldsToCorrect = fieldsToCorrect;\n  }\n\n  async correctIntoWordProcessor(params: ParamsReplace): Promise<boolean> {\n    const fieldToCorrect = this.fieldsToCorrect[Number(params.zoneId)];\n    const rangeToCorrect = { start: params.positionStartReplace,\n      end: params.positionReplaceEnd,\n      string: params.newString };\n    return applyCorrection(fieldToCorrect, rangeToCorrect);\n  }\n\n  async configuration(): Promise<WordProcessorConfiguration> {\n    return {};\n  }\n\n  async allowEdit(params: ParamsAllowEdit): Promise<boolean> {\n    const fieldToCorrect = this.fieldsToCorrect[Number(params.zoneId)];\n    const text = retrieveText(fieldToCorrect);\n    return text.substring(params.positionStart, params.positionEnd) == params.context;\n  }\n\n  selectInterval(params: ParamsSelect): void {\n    const fieldToCorrect = this.fieldsToCorrect[Number(params.zoneId)];\n    selectInterval(fieldToCorrect, params.positionStart, params.positionEnd);\n  }\n\n  async zonesToCorrect(_params: ParamsGetZonesToCorrect): Promise<TextZone[]> {\n    return this.fieldsToCorrect.map(function(value, index) {\n      return {\n        text: retrieveText(value),\n        zoneId: index.toString(),\n        zoneIsFocused: index == 0\n      };\n    });\n  }\n}\n```\n\n## Using AgentConnectix\n\nTo communicate with Antidote, you must use the `AgentConnectix` class. To instantiate it, you need to provide the subclass of `WordProcessorAgent` as a parameter. Once the class is instantiated, you can open one of the three tools: Corrector, Dictionaries, or Guides.\n\n```typescript\nconst zones_to_correct = [\n  document.getElementById('text_area') as HTMLElement,\n  document.getElementById('div_editable') as HTMLElement\n];\nconst wordProcessorAgent = new WordProcessorAgentTextArea(zones_to_correct);\nconst agent = new ConnectixAgent(wordProcessorAgent, function() { return 3000; });\nawait agent.connectWithAntidote(); // Initializing communication with the ConnectixAgent process.\nagent.launchCorrector(); // Launches the corrector.\n```\n\n#### Choosing the WebSocket protocol\n\n`connectWithAntidote` accepts an optional parameter that selects the protocol used to open the WebSocket connection. It defaults to `ws`.\n\n```typescript\nimport { ConnectixAgent, Protocol } from '@druide-informatique/antidote-api-js';\n\nawait agent.connectWithAntidote('wss'); // Connects over wss:// instead of ws://\n```\n\nThe parameter is typed `Protocol`:\n\n```typescript\ntype Protocol = 'ws' | 'wss';\n```\n\nThe requested protocol is the only one attempted: there is no automatic fallback from `wss` to `ws`. If the connection cannot be established with that protocol, `connectWithAntidote` rejects.\n\n#### Complete exameple\n\nFor a complete example, see the the [demonstration projects](https://github.com/DruideInformatiqueInc/demo-antidote-api-js).\n\n# Principle\n\nThe `AgentConnectix` is a daemon process that manages communication between your word processors and Antidote. It is what allows you to correct your texts directly within applications. The `AgentConnectix` runs a local WebSocket server (`localhost`) that remains open, enabling you to communicate with it to launch Antidote (Corrector, Dictionaries, and Guides).\n\n## Connecting to the AgentConnectix WebSocket Server\n\nTo find the WebSocket server’s port, run the command-line application `AgentConnectixConsole` with the `--api` parameter. The location varies by platform:\n\n* **macOS**:\n  * `/Applications/Antidote/Connectix 11.app/Contents/SharedSupport/AgentConnectixConsole`\n  * `/Applications/Antidote/Connectix 12.app/Contents/SharedSupport/AgentConnectixConsole`\n  * `/Applications/Antidote/Connectix 13.app/Contents/SharedSupport/AgentConnectixConsole`\n* **Windows**: The folder path containing `AgentConnectixConsole` is specified in the following registry key:  \n  `HKEY_LOCAL_MACHINE\\SOFTWARE\\Druide informatique inc.\\Connectix`, under the value `DossierConnectix`.\n\nThe application returns the port number as JSON:\n\n```bash\n% AgentConnectixConsole --api\n{\"port\": 59004}\n```\n\nWith this value, connect to the WebSocket server using the URL `ws://localhost:PORT`, or `wss://localhost:PORT` for a secure connection, replacing `PORT` with the obtained number.\n\n## Communication Protocol\n\nAll received and sent packets are JSON documents. To handle JSON documents of any size, a packeting system is implemented. Each packet itself is a JSON document with the format:\n\n```jsonc\n{\n  \"idFrame\": x,\n  \"totalFrame\": y,\n  \"data\": z\n}\n```\n\n* `idFrame` corresponds to the packet number sent (between 0 and `totalFrame – 1`);\n* `totalFrame` is the total number of packets in the message being sent;\n* `data` is a string that, once all packets are received, can be concatenated to form a JSON document.\n\nWith this protocol, you cannot mix packets from different messages. Packets belonging to the same message must be sent consecutively.\n\nOnce packets 0 through N‑1 have been received, concatenate the `data` strings. The resulting string is then a JSON document that can be processed as a message.\n\n### Messages\n\n**Initiate a call to Antidote**\n\nTo launch a call to Antidote, send one of theses messages : \n\n* `LaunchTool` the parameters `tool_api` and `api_version` with the following JSON document :\n\n```jsonc\n{\n  \"api_version\": 2,\n  \"message\": \"LaunchTool\",\n  \"tool_api\": \"Corrector\" | \"Dictionaries\" | \"Guides\"\n}\n```\n\n\n* `AntiOops` with theses parameters :\n\n```jsonc\n{\n  \"api_version\": 2,\n  \"message\": \"AntiOops\",\n  \"subject\": subject, // string\n  \"body\": body, // string\n  \"recipients\": [ recipients’ names ], // optional, list of recipient email address strings\n  \"id\": identifiant // to allow responses to be associated with the request\n}\n```\n\n**Incoming messages to reply to**\n\nAntidote responds with a JSON document of the following format:\n\n```jsonc\n{\n  \"idMessage\": identifier,\n  \"message\": messageType,\n  \"data\": boolean | string | dictionary\n}\n```\n\nwhere\n\n* `idMessage` is a random string that must be returned in the reply to the message.\n* `message` is one of the types defined below.\n* `data` contains the message parameters. These parameters are optional depending on the message type and may be a boolean, a string, or a dictionary.\n\nBelow is the list of possible messages along with the required response. The parameters are contained in the value of the `data` key of the message.\n\n* `init` : Initialization message for the correction.\n\n  * **Parameters**: _No parameters_.\n  * **Response**: Word‑processor configuration. All keys are optional.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `init` message.\n      \"idMessage\": \"\",\n      // Document title. Will be displayed in Antidote’s Corrector title bar.\n      \"documentTitle\": \"\",\n      // Carriage‑return type (e.g., \"\\n\", \"\\r\", \"\\r\\n\").\n      \"carriageReturn\" : \"\",\n      // Indicates how to handle the correction state cache (only possible value: `forceEmplacementFichier`).\n      \"cacheIdType\": \"\", \n      // Whether carriage returns may be inserted from the Corrector.\n      \"allowCarriageReturn\": true | false,\n      // Whether the word processor allows non‑breaking spaces.\n      \"allowNBSpace\": true | false,\n      // Whether the word processor allows fine spaces.\n      \"allowThinSpace\": true | false,\n      // Indicates whether the context allows sending an email from Antidote (Anti-Oops!).\n      \"allowSending\": true | false,\n      // Whether text can be replaced without a selection.\n      \"replaceWithoutSelection\": true | false,\n      // Base64 string representing the state of the last correction. This is generated by Antidote; it should not be constructed manually.\n      \"correctionMemory\": \"\",\n      // Type of document to be corrected.\n      \"activeMarkup\": \"text\" | \"latex\" | \"markdown\" | \"subrip\" | \"html\",\n      // JSON dictionary of settings to use during correction. If omitted, the user’s settings will be used.\n      \"antidoteSettings\": {} \n    }\n    ```\n\n* `documentPath` : Message requesting the path of the document to be corrected.\n  * **Parameters**: _No parameters_.\n  * **Response**: Returns the document path in the `data` key.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `documentPath` message.\n      \"idMessage\": \"\",\n      // Path of the document being corrected. Used for the correction state managed by Antidote.\n      \"data\": \"\"\n    }\n    ```\n\n* `docIsAvailable` : Message asking whether the document being corrected is still accessible.\n  * **Parameters**: _No parameters_.\n  * **Response**: Boolean indicating whether the document can still be corrected. The document may become unavailable if the user closes it.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `docIsAvailable` message.\n      \"idMessage\": \"\",\n      // Boolean indicating the state of the document being corrected.\n      \"data\": true | false\n    }\n    ```\n\n* `zonesToCorrect` : Message requesting the text zones to be corrected.\n  * **Parameters**\n\n    ```jsonc\n    {\n      // If true, return a single text zone containing the current selection.\n      // Usually true for dictionary and guide calls, false for the corrector.\n      \"forActiveSelection\": true | false\n    }\n    ```\n\n  * **Response** : The list of text zones to be corrected.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `getTextZones` message.\n      \"idMessage\": \"\",\n      // List of text zones.\n      \"data\": [\n        {\n          // String corresponding to the text to correct.\n          \"text\": \"\",\n          // Optional integer indicating the start position of the selection within the word processor.\n          // Omit if there is no selection.\n          \"positionSelectionStart\": x,\n          // Optional integer indicating the end position of the selection within the word processor.\n          // Omit if there is no selection.\n          \"positionSelectionEnd\": x,\n          // Indicates whether this zone has focus (i.e., receives keyboard events).\n          \"zoneIsFocused\": true | false,\n          // Identifier for the text zone. Must be unique and allow easy retrieval of the zone using this string.\n          \"zoneId\": \"\",\n          // List of styles applied to the text (optional)\n          \"styleInfo\": [\n            {\n              \"positionStart\": x,\n              \"positionEnd\": y,\n              \"style\": \"bold\" | \"italic\" | \"superscript\" | \"subscript\" | \"strike\"\n            }\n          ]\n        },\n        …\n      ]\n    }\n    ```\n\n* `allowEdit` : Message asking whether the text at the requested positions is indeed the one Antidote expects.\n  * **Parameters**\n\n    ```jsonc\n    {\n      \"zoneId\": \"\",          // Identifier of the zone to check.\n      \"context\": \"\",        // Expected string at positions `positionStart` and `positionEnd` within zone `zoneId`.\n      \"positionStart\": x,    // Start position of the string to verify.\n      \"positionEnd\": x       // End position of the string to verify.\n    }\n    ```\n\n  * **Response** : A boolean indicating whether the string is exactly as expected.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `allowEdit` message.\n      \"idMessage\": \"\",\n      // Boolean indicating whether the string matches the expectation.\n      \"data\": true | false\n    }\n    ```\n\n* `replace` : Message requesting to perform a replacement in the document.\n  * **Parameters**\n\n    ```jsonc\n    {\n      // Identifier of the zone to correct.\n      \"zoneId\": \"\",\n      // String to replace between positions `positionRemplacementDebut`\n      // and `positionRemplacementFin` within zone `idZone`.\n      \"newString\": \"\", \n      // Start position of the string to replace.\n      \"positionStartReplace\": x,\n      // End position of the string to replace.\n      \"positionReplaceEnd\": x\n    }\n    ```\n\n  * **Response** : A boolean indicating whether the replacement was successfully performed.\n\n    ```jsonc\n    {\n      // String from the `idMessage` key received in the `replace` message.\n      \"idMessage\": \"\",\n      // Boolean indicating whether the replacement succeeded.\n      \"data\": true | false\n    }\n    ```\n\n* `select` : Message requesting to perform a selection in the document during correction.\n\n  * **Parameters**\n\n    ```jsonc\n    {\n      // Identifier of the zone to correct.\n      \"zoneId\": \"\",\n      // Position where the selection should start.\n      \"positionStart\": x,\n      // Position where the selection should end.\n      \"positionEnd\": x\n    }\n    ```\n\n  * **Response** : _No response to send_.\n\n* `returnToDocument` : Message requesting to bring the word processor to the foreground.\n\n  * **Parameters** : _None._\n\n  * **Response** : _No response to send._\n\n\n* `newCorrectionMemory` : Message indicating that a new correction state is available.\n\n  * **Parameters** : A base64‑encoded string containing the data of the correction state to be saved.\n\n  * **Response** : _No response to send._\n\n* `antiOopsResponse` : Message that provides the result of the Anti-Oops! call. Depending on the result, the corrector may need to be opened (message `LaunchTool` with `Corrector`).\n\n  * **Parameters** : \n  \n    ```jsonc\n    {\n      // Identifier of the call requesting an Anti-Oops! request.\n      \"id\": identifiant,\n      // Optional: error code of the call.\n      \"errorCode\": x, \n      // Optional: list of detections found by Anti-Oops!\n      // One of these detections may require opening the corrector\n      \"detections\": [ (\"errors\" | \"typography\" | \"attachments\" | \"inactiveLanguage\" | \"abrasiveTone\") ]\n    }\n    ```\n\n  * **Response** : _No response to send._\n\n* `send` : Message qui demande à envoyer le courriel dont la correction est en cours.\n  \n  * **Parameters** : _None._\n\n  * **Response** : _No response to send._\n","readmeFilename":"README.md"}