Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"useTabs": true,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"overrides": [
{
"files": "*.svelte",
"options": {
"parser": "svelte"
}
}
]
}
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"github-enterprise.uri": "https://gitlab.groupeonepoint.com",
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "svelte"]
}
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# NumÉcoDiag
Ce projet est un fork du projet Numecodiag (sous licence EUPL v1.2).
Il a été modifié et amélioré par Onepoint.
La licence originale reste applicable.

Cette WebExtension développée et mise à disposition gratuitement par la [MiNumEco](https://ecoresponsable.numerique.gouv.fr/) facilite l’auto-diagnostic de l’écoconception d’un service numérique, conformément au [Référentiel Général d'Écoconception de Services Numériques](https://ecoresponsable.numerique.gouv.fr/publications/referentiel-general-ecoconception/) (RGESN).

Réalisation : [Pôle écoconception Temesis](https://www.temesis.com/).

## Code source

Cette extension est distribuée sous licence EUPL v1.2.

Le code source complet de cette extension est disponible sur GitHub :
[https://github.com/onepoint-numerique-responsable/NumEcoDiag](https://github.com/onepoint-numerique-responsable/NumEcoDiag)

## Installation

- [Firefox](https://addons.mozilla.org/fr/firefox/addon/numecodiag-rgesn2024/)
- Chrome (à venir, utiliser en attendant l'extension [Firefox](https://addons.mozilla.org/fr/firefox/addon/numecodiag-rgesn2024/))
- Edge (à venir, utiliser en attendant l'extension [Firefox](https://addons.mozilla.org/fr/firefox/addon/numecodiag-rgesn2024/))

## Installation manuelle

1. Installer [nodeJS](https://nodejs.org/fr/) (v16 minimum) et le gestionnaire de paquets NPM.
2. Dans un terminal, depuis le dossier téléchargé, lancer la commande `npm install` pour télécharger / installer les dépendances de développement du projet.
3. Dans le même terminal, lancer ensuite la commande `npm run build` pour construire l'application depuis les sources fournies.
4. Procédure d'installation spécifique
- Sur Firefox : charger l'extension depuis l'adresse `about:debbuging` en sélectionnant le fichier `public/manifest.json`.
- Sur Chrome :
1. Charger l'extension depuis l'adresse `chrome://extensions/` en sélectionnant le dossier `public`.
2. Activer le mode développeur et cliquer sur "Charger l'extension non empaquetée".
5. Pour utiliser l'extension, ouvrir les DevTools (F12) et naviguer vers l'onglet "NumEcoDiag".

## Licences

- Le RGESN est sous [licence ouverte Etalab v2](https://www.etalab.gouv.fr/licence-ouverte-open-licence).
- L'extension est sous [licence European Union Public License 1](https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20FR.txt)</a>.
101 changes: 101 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import prettier from 'eslint-config-prettier';
import js from '@eslint/js';
import { includeIgnoreFile } from '@eslint/compat';
import svelte from 'eslint-plugin-svelte';
import { fileURLToPath } from 'node:url';
import checkFile from 'eslint-plugin-check-file';

const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url));

export default [
{
ignores: ['**/*.scss', '**/*.sass', '**/*.css', 'src/app.html']
},
includeIgnoreFile(gitignorePath),
js.configs.recommended,
...svelte.configs.recommended,
prettier,
...svelte.configs.prettier,
{
rules: { 'no-undef': 'off' }
},
{
files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'],
languageOptions: {
parserOptions: {
projectService: true,
extraFileExtensions: ['.svelte']
}
},
rules: {
'svelte/button-has-type': 'error',
'svelte/no-at-debug-tags': 'error',
'svelte/no-ignored-unsubscribe': 'error',
'svelte/no-immutable-reactive-statements': 'error',
'svelte/no-inline-styles': 'warn',
'svelte/no-inspect': 'warn',
'svelte/no-reactive-functions': 'error',
'svelte/no-reactive-literals': 'error',
'svelte/no-svelte-internal': 'error',
'svelte/no-unnecessary-state-wrap': 'error',
'svelte/no-unused-props': 'warn',
'svelte/no-unused-svelte-ignore': 'error',
'svelte/no-useless-children-snippet': 'error',
'svelte/no-useless-mustaches': 'error',
'svelte/prefer-const': 'error',
'svelte/prefer-destructured-store-props': 'error',
'svelte/prefer-writable-derived': 'error',
'svelte/require-each-key': 'error',
'svelte/require-event-dispatcher-types': 'error',
'svelte/require-optimized-style-attribute': 'warn',
'svelte/require-stores-init': 'error',
'svelte/valid-each-key': 'error',

'svelte/derived-has-same-inputs-outputs': 'error',
'svelte/first-attribute-linebreak': 'off',
'svelte/html-closing-bracket-spacing': 'error',
'svelte/html-quotes': ['error', { prefer: 'double' }],
'svelte/html-self-closing': ['error', 'void'],
'svelte/mustache-spacing': 'error',
'svelte/no-extra-reactive-curlies': 'error',
'svelte/no-spaces-around-equal-signs-in-attribute': 'error',
'svelte/prefer-class-directive': 'error',
'svelte/prefer-style-directive': 'error',
'svelte/shorthand-attribute': 'error',
'svelte/shorthand-directive': 'error',
'svelte/spaced-html-comment': 'error',
'svelte/no-export-load-in-svelte-module-in-kit-pages': 'off',
'svelte/no-navigation-without-base': 'off',
'svelte/valid-prop-names-in-kit-pages': 'off'
}
},
{
files: ['src/**/*.*'],
plugins: {
'check-file': checkFile
},
rules: {
'check-file/filename-naming-convention': [
'error',
{
'**/*.{ts,js}': 'CAMEL_CASE',
'**/*.svelte': 'PASCAL_CASE',
'**/*.scss': 'KEBAB_CASE'
}
],
'check-file/folder-naming-convention': [
'error',
{
'src/**/': 'CAMEL_CASE'
}
]
}
},
{
files: ['src/app.d.ts', 'src/demo.spec.ts', 'src/app.html'],
rules: {
'check-file/filename-naming-convention': 'off',
'check-file/folder-naming-convention': 'off'
}
}
];
Loading