2026-05-11 23:55:27 +00:00
|
|
|
{
|
2026-05-12 20:15:36 +00:00
|
|
|
"name": "pseudonymizer-tool",
|
2026-05-17 11:59:35 +00:00
|
|
|
"version": "0.1.6",
|
2026-05-15 23:50:26 +00:00
|
|
|
"description": "Obsidian plugin for pseudonymizing and correcting interactional transcripts (Jefferson, ICOR, SRT, CHAT/CHA).",
|
2026-05-11 23:55:27 +00:00
|
|
|
"author": "Axelle Abbadie",
|
|
|
|
|
"homepage": "https://cv.hal.science/axelle-abbadie/",
|
|
|
|
|
"main": "main.js",
|
|
|
|
|
"scripts": {
|
|
|
|
|
"dev": "node esbuild.config.mjs",
|
|
|
|
|
"build": "tsc --noEmit --skipLibCheck && node esbuild.config.mjs production",
|
|
|
|
|
"test": "jest",
|
|
|
|
|
"test:watch": "jest --watch",
|
2026-05-12 20:15:36 +00:00
|
|
|
"lint": "eslint src --ext .ts",
|
feat: système de dictionnaires structurés v1.1 (Phase 9)
- Format DictionaryFile v1.1 : roles, configSchema, config, author, doi
- DictionaryLoader : index de détection, résolution de classes, scanText (n-grammes), nextReplacement
- Repo dédié pseudobsidian-dictionaries + fr-communes.dict.json (34 957 communes GeoAPI INSEE)
- Wizard : catalogue de dictionnaires téléchargeables depuis le repo dédié (icônes cloud-download/check)
- scripts/build-cities.mjs : génération du dictionnaire communes
- DictScanReviewModal : modale de révision en cards (contexte, préfixe éditable, index calculé)
- MappingScanReviewModal : modale de révision pour le scan par règles existantes
- Onglet Dictionnaires : mini cards avec checkbox, scan individuel, scan groupé
- Suppression onglet Candidats : scan règles → Mappings, scan NER → NER
- RuleModal : suggestions dictionnaire séparées de Coulmont
- docs : README, CHANGELOG, ROADMAP, SPECS §6 mis à jour
2026-05-13 23:08:25 +00:00
|
|
|
"build:cities": "node scripts/build-cities.mjs",
|
2026-05-12 23:59:59 +00:00
|
|
|
"deploy": "npm run build && node -e \"const {mkdirSync,copyFileSync,existsSync}=require('fs'),d='test_vault/.obsidian/plugins/pseudonymizer-tool',w='node_modules/@xenova/transformers/dist';mkdirSync(d,{recursive:true});['main.js','manifest.json','styles.css'].forEach(f=>{if(existsSync(f))copyFileSync(f,d+'/'+f);});['ort-wasm-simd-threaded.wasm','ort-wasm-simd.wasm','ort-wasm-threaded.wasm','ort-wasm.wasm'].forEach(f=>{if(existsSync(w+'/'+f))copyFileSync(w+'/'+f,d+'/'+f);})\""
|
2026-05-11 23:55:27 +00:00
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@types/jest": "^29.5.0",
|
|
|
|
|
"@types/node": "^18.0.0",
|
|
|
|
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
|
|
|
"@typescript-eslint/parser": "^5.62.0",
|
2026-05-12 22:15:51 +00:00
|
|
|
"@codemirror/state": "^6.0.0",
|
|
|
|
|
"@codemirror/view": "^6.0.0",
|
2026-05-11 23:55:27 +00:00
|
|
|
"esbuild": "^0.20.0",
|
|
|
|
|
"eslint": "^8.57.0",
|
fix: address Obsidian community plugin review bot issues
Floating promises: add `void` to all unhandled refreshHighlightData() calls
in callbacks and event listeners; extract processFilePicker() to fix the async
event listener returning a Promise where void was expected.
Inline styles: replace all style.cssText and setAttribute('style') with CSS
classes (pseudobs-hidden-input, pseudobs-legend-*, pseudobs-suggestions-*,
pseudobs-occ-*, pseudobs-disabled-input) across OccurrencesModal, RuleModal,
QuickPseudonymizeModal, EditRuleModal, and main.ts.
Settings headings: replace all createEl('h2'/'h3') with new Setting().setHeading()
in PseudObsSettingTab (5 headings).
Sentence case: fix linter-flagged occurrences (placeholder text, legend labels,
button text); 4 residual occurrences on legitimate proper nouns (Baptiste Coulmont,
Jefferson, ICOR, Synology Drive) left for human reviewer.
2026-05-12 09:13:22 +00:00
|
|
|
"eslint-plugin-obsidianmd": "^0.2.9",
|
2026-05-11 23:55:27 +00:00
|
|
|
"jest": "^29.5.0",
|
|
|
|
|
"obsidian": "latest",
|
|
|
|
|
"prettier": "^3.0.0",
|
|
|
|
|
"ts-jest": "^29.4.9",
|
|
|
|
|
"tslib": "^2.6.0",
|
|
|
|
|
"typescript": "^5.3.0"
|
2026-05-12 20:15:36 +00:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@xenova/transformers": "^2.17.2"
|
2026-05-11 23:55:27 +00:00
|
|
|
}
|
|
|
|
|
}
|