diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bdef8c..44ef107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ Format: [SemVer](https://semver.org/lang/ro/) (MAJOR.MINOR.PATCH). Istoricul complet al versiunilor anterioare este în secțiunea „Istoric / Changelog” din [README.ro.md](README.ro.md). +## 2.2.0 — 2026-11-01 + +- Corectat: adaptorul «Trimite la…» nu mai aruncă eroare când kitul FFF lipsește (gardian pe fiecare bloc; găsit de testul «fără kit» din CI). + +Nou: «Trimite la…» (fff-kit, modulul FFF.bridge) — după orice export de fișier (GPX, ICS, CSV, Markdown) apare butonul «Trimite la…» către aplicațiile compatibile, iar importul de fișiere al aplicației primește plicuri .fff.json trimise de ele, cu confirmare înainte de import. Fără rețea, fără telemetrie. + ## 2.1.0 — 2026-10-27 ### Adăugat diff --git a/README.de.md b/README.de.md index e3eb90e..4c31b40 100644 --- a/README.de.md +++ b/README.de.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · [Português](README.pt.md) · **Deutsch** · [Magyar](README.hu.md) -**Version:** 2.1.0 · **Zuletzt aktualisiert:** 2026-10-27 +**Version:** 2.2.0 · **Zuletzt aktualisiert:** 2026-11-02 **Status:** stabil · **Offline:** braucht Internet für den Zitationsgenerator, die DOI-Prüfung (Crossref, OpenLibrary, doi.org) und die externen Werkzeuge diff --git a/README.es.md b/README.es.md index 3475982..b6210e5 100644 --- a/README.es.md +++ b/README.es.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · [Français](README.fr.md) · [Italiano](README.it.md) · **Español** · [Português](README.pt.md) · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Versión:** 2.1.0 · **Última actualización:** 2026-10-27 +**Versión:** 2.2.0 · **Última actualización:** 2026-11-02 **Estado:** estable · **Offline:** requiere Internet para el generador de citas, el análisis/comprobación de DOI (Crossref, OpenLibrary, doi.org) y las herramientas externas diff --git a/README.fr.md b/README.fr.md index 2ce4760..50e8c8b 100644 --- a/README.fr.md +++ b/README.fr.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · **Français** · [Italiano](README.it.md) · [Español](README.es.md) · [Português](README.pt.md) · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Version :** 2.1.0 · **Dernière mise à jour :** 2026-10-27 +**Version :** 2.2.0 · **Dernière mise à jour :** 2026-11-02 **Statut:** stable · **Offline:** nécessite Internet pour le générateur de citations, l'analyse/vérification des DOI (Crossref, OpenLibrary, doi.org) et les outils externes diff --git a/README.hu.md b/README.hu.md index fce40dc..02925ac 100644 --- a/README.hu.md +++ b/README.hu.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · [Português](README.pt.md) · [Deutsch](README.de.md) · **Magyar** -**Verzió:** 2.1.0 · **Utolsó frissítés:** 2026-10-27 +**Verzió:** 2.2.0 · **Utolsó frissítés:** 2026-11-02 **Állapot:** stabil · **Offline:** internet szükséges ehhez: az idézetgenerátorhoz, a DOI-ellenőrzéshez (Crossref, OpenLibrary, doi.org) és a külső eszközökhöz diff --git a/README.it.md b/README.it.md index 1c06f11..dcead0a 100644 --- a/README.it.md +++ b/README.it.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · [Français](README.fr.md) · **Italiano** · [Español](README.es.md) · [Português](README.pt.md) · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Versione:** 2.1.0 · **Ultimo aggiornamento:** 2026-10-27 +**Versione:** 2.2.0 · **Ultimo aggiornamento:** 2026-11-02 **Stato:** stabile · **Offline:** richiede Internet per il generatore di citazioni, la scansione/verifica dei DOI (Crossref, OpenLibrary, doi.org) e gli strumenti esterni diff --git a/README.md b/README.md index a1b0d8e..2258a9c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **English** · [Română](README.ro.md) · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · [Português](README.pt.md) · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Version:** 2.1.0 · **Last updated:** 2026-10-27 +**Version:** 2.2.0 · **Last updated:** 2026-11-02 **Status:** stable · **Offline:** needs internet for the citation generator, the DOI scan/check (Crossref, OpenLibrary, doi.org) and the external tools diff --git a/README.pt.md b/README.pt.md index 358b6e7..74ea00a 100644 --- a/README.pt.md +++ b/README.pt.md @@ -2,7 +2,7 @@ [English](README.md) · [Română](README.ro.md) · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · **Português** · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Versão:** 2.1.0 · **Última atualização:** 2026-10-27 +**Versão:** 2.2.0 · **Última atualização:** 2026-11-02 **Estado:** estável · **Offline:** requer Internet para o gerador de citações, a análise/verificação de DOI (Crossref, OpenLibrary, doi.org) e as ferramentas externas diff --git a/README.ro.md b/README.ro.md index 8eb3930..f2d509f 100644 --- a/README.ro.md +++ b/README.ro.md @@ -2,7 +2,7 @@ [English](README.md) · **Română** · [Français](README.fr.md) · [Italiano](README.it.md) · [Español](README.es.md) · [Português](README.pt.md) · [Deutsch](README.de.md) · [Magyar](README.hu.md) -**Versiune:** 2.1.0 · **Ultima actualizare:** 2026-10-27 +**Versiune:** 2.2.0 · **Ultima actualizare:** 2026-11-02 **Stare:** stabil · **Offline:** cere internet pentru generatorul de citări, scanarea și verificarea DOI (Crossref, OpenLibrary, doi.org) și instrumentele externe diff --git a/app.json b/app.json index 27f837f..6ff1e19 100644 --- a/app.json +++ b/app.json @@ -2,8 +2,8 @@ "schema": 1, "slug": "freedetect", "name": "FreeDetect Hub — Free Anti-Plagiarism & AI Detection Tools", - "version": "2.1.0", - "updated": "2026-10-27", + "version": "2.2.0", + "updated": "2026-11-02", "description": "A curated directory of free plagiarism and AI-detection tools. Paste your text once, check it everywhere.", "egress": [ { @@ -33,13 +33,13 @@ "storageKeys": [ "freedetect.lang" ], - "sizeBytes": 575296, - "sha256": "da96d60eb313d2f00f17563d76327a98779d32d40e14ded0f06f1fce7941a514", + "sizeBytes": 595352, + "sha256": "5df64340026677382f3b6407b850815949d3456c6a5058f15e920a74d38dcf23", "csp": { "present": true, "directives": { "default-src": "'self'", - "script-src": "'self' sha256×3", + "script-src": "'self' sha256×4", "style-src": "'self' 'unsafe-inline'", "img-src": "'self' data: blob:", "connect-src": "'self' https://api.crossref.org https://openlibrary.org https://doi.org", @@ -73,6 +73,7 @@ "dialog", "label", "bundle", + "bridge", "pii", "search" ] @@ -85,6 +86,7 @@ "dialog", "label", "bundle", + "bridge", "pii", "search" ] diff --git a/index.html b/index.html index 5e7db32..9b12332 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ Buy Me a Coffee: https://buymeacoffee.com/echo.of.the.strings ============================================================================ --> - + - + - + Buy Me a Coffee + diff --git a/sw.js b/sw.js index 5c5b4f7..e85b9cf 100644 --- a/sw.js +++ b/sw.js @@ -1,6 +1,6 @@ /* fff-pwa v1 · generat de fff-kit/pwa/pwa.mjs · fără cereri externe, fără importScripts */ 'use strict'; -var SLUG = "freedetect", VERSION = "2.1.0"; +var SLUG = "freedetect", VERSION = "2.2.0"; var PREFIX = 'fff-' + SLUG + '-', CACHE = PREFIX + VERSION; // versiunea nu conține '-', deci sufixul de după ultimul '-' e versiunea var SHELL = ['./manifest.webmanifest', './icon-192.png', './icon-512.png', './icon-maskable-512.png']; diff --git a/tests/doi-ai.test.mjs b/tests/doi-ai.test.mjs index 0333990..2a39a06 100644 --- a/tests/doi-ai.test.mjs +++ b/tests/doi-ai.test.mjs @@ -1,4 +1,4 @@ -// Teste 2.1.0: avertizarea despre detectoarele AI (8 limbi) și verificarea online (la cerere) a DOI-urilor din referințe. Rețeaua e simulată. +// Teste 2.2.0: avertizarea despre detectoarele AI (8 limbi) și verificarea online (la cerere) a DOI-urilor din referințe. Rețeaua e simulată. // Rulare: node tests/doi-ai.test.mjs import path from 'node:path'; import {fileURLToPath} from 'node:url'; @@ -81,7 +81,7 @@ const n2 = await page.evaluate(() => refState.res.reduce((a, r) => a + r.msgs.le check('a doua rulare nu dublează mesajele', n1 === n2, [n1, n2]); const [dl] = await Promise.all([page.waitForEvent('download'), page.click('#refExp')]); const md = (await import('node:fs')).readFileSync(await dl.path(), 'utf8'); -check('raportul .md include rezultatele online și versiunea curentă', /does not exist/.test(md) && /FreeDetect Hub v2\.1\.0/.test(md), md.slice(-200)); +check('raportul .md include rezultatele online și versiunea curentă', /does not exist/.test(md) && /FreeDetect Hub v2\.2\.0/.test(md), md.slice(-200)); // „Scan input text”: DOI din alt registru nu mai e numit „inventat” await page.evaluate(() => { document.querySelector('#citePanel').open = true; }); await page.fill('#text', 'Vezi 10.5281/zenodo.12345 și 10.1000/ghostpaper în text.'); @@ -93,4 +93,4 @@ check('scan: DOI inexistent rămâne semnalat', /10\.1000\/ghostpaper — not in const keys = await page.evaluate(() => { const ks = ['aiwH', 'aiwP', 'aiwL1', 'aiwL2', 'aiwL3', 'aiwP2', 'refDoi', 'refDoiTip', 'refDoiProg', 'refDoiDone', 'mDoiOk', 'mDoiOther', 'mDoiNone', 'mDoiNet', 'mDoiTitle', 'mDoiYear', 'mDoiSkip']; return ['en', 'ro', 'fr', 'de', 'es', 'pt', 'it', 'hu'].every((l) => ks.every((k) => I18N[l][k])); }); check('chei noi în cele 8 limbi', keys); check('fără erori JS', errs.length === 0, errs); -await b.close(); console.log(`\nFreeDetect 2.1.0: ${ok} ok, ${bad} eșuate`); process.exit(bad ? 1 : 0); +await b.close(); console.log(`\nFreeDetect 2.2.0: ${ok} ok, ${bad} eșuate`); process.exit(bad ? 1 : 0);