Skip to content
Snippets Groups Projects
Commit 1096b1a7 authored by Millicent Billette's avatar Millicent Billette
Browse files

FIX: now check at build if dependencies still present in production.

DOC: USE in readme talk about UNPKG
parent 7f94cc25
Branches
Tags
No related merge requests found
Pipeline #17860 passed with warnings
const fs = require('fs');
try {
fs.writeFileSync('generated/vendors/nacl.mjs',
fs.writeFileSync('generated/vendors/tweetnacl+ed2curve.mjs',
(fs.readFileSync('node_modules/tweetnacl/nacl-fast.js', 'utf8'))
.replace('(function(nacl) {', 'var nacl = {};')
.replace('})(typeof module !== \'undefined\' && module.exports ? module.exports : (self.nacl = self.nacl || {}));', 'export default nacl;')
+(fs.readFileSync('node_modules/ed2curve/src/index.mjs', 'utf8'))
.replace(/^[\s\S]+----\s+\/\/ Converts Ed25519[^\n]+/,'')
, 'utf8');
} catch (error) {
console.error(error);
......
import {readdirSync, readFileSync} from 'node:fs';
zeroDep('generated/npm/browser/');
async function zeroDep(folder) {
readdirSync(folder).forEach(async fileName => {
if (!fileName.includes('.mjs') || fileName.includes('.test.mjs') || fileName.includes('.test-e2e.mjs')) return;
const content = readFileSync(folder + fileName, 'utf8');
if(folder.includes('browser') && content.includes('import ')) throw new Error('Dependencies found in '+folder+fileName);//process.exit(1);
});
}
......@@ -27,6 +27,11 @@ pour mutualiser du code métier fiable, maintenable, facile à auditer et facile
## Usage
Pour la confidentialité de la navigation des internautes, les CDN publiques sont à proscrire en production.
Pour du prototypage rapide sans npm : https://unpkg.com/browse/g1lib/
### Via npm
Installez nodejs puis en cli :
```
npm install --save g1lib
......@@ -35,14 +40,11 @@ En js :
```
import * as g1lib from "g1lib"
```
Si vous souhaitez la lib en asm, cjs ou autre packaging, [demandez-le](https://framagit.org/g1/g1lib.js/-/issues)
Pour la confidentialité de la navigation des internautes, les CDN publiques sont à proscrire en production.
Pour du prototypage rapide sans npm : https://g1.frama.io/g1lib.js/dist/all.mjs
Si vous souhaitez la lib en asm, cjs ou autre packaging, [demandez-le](https://git.duniter.org/libs/g1lib.js/-/issues)
## Contribuer
Vous pouvez proposer des évolutions sous forme de [ticket](https://framagit.org/g1/g1lib.js/-/issues) aussi bien que des demandes d'aide (en français ou en anglais).
Vous pouvez proposer des évolutions sous forme de [ticket](https://git.duniter.org/libs/g1lib.js/-/issues) aussi bien que des demandes d'aide (en français ou en anglais).
Les merge-request sont bienvenue.
Elles seront acceptées si :
......@@ -50,7 +52,7 @@ Elles seront acceptées si :
- elles sont couvertes par des tests unitaires
- leur code respecte les bonnes pratiques décrites dans l'ouvrage [Clean Code / Coder proprement](https://dl.leneveu.fr/public/Coder_Proprement.pdf) ISBN : 978-2-7440-4104-4
Si vous avez besoin d'aide pour respecter les critères d'acceptation, n'hésitez pas à demander (par [ticket](https://framagit.org/g1/g1lib.js/-/issues) ou [email](https://1forma-tic.fr/#contact)).
Si vous avez besoin d'aide pour respecter les critères d'acceptation, n'hésitez pas à demander (par [ticket](https://git.duniter.org/libs/g1lib.js/-/issues) ou [email](https://1forma-tic.fr/#contact)).
## Financer le développement
......
......@@ -24,7 +24,10 @@ An ubiquitous static javascript lib for Ǧ1 / Duniter ecosystem with reliability
*modern esm import/export & high modularity improve tree-shaking
## Usage
For user privacy, CDN should not be used in production.
For quick prototyping without npm : https://unpkg.com/browse/g1lib/
### With npm
Install nodejs then in cli :
```
npm install --save g1lib
......@@ -33,14 +36,12 @@ In js :
```
import * as g1lib from "g1lib"
```
Other packaging use-case ? (asm, cjs...), [ask for it](https://framagit.org/g1/g1lib.js/-/issues)
Other packaging use-case ? (asm, cjs...), [ask for it](https://git.duniter.org/libs/g1lib.js/-/issues)
For user privacy, CDN should not be used in production.
For quick prototyping without npm : https://g1.frama.io/g1lib.js/dist/all.mjs
## Contribute
Ask for features or fix in [issues](https://framagit.org/g1/g1lib.js/-/issues).
Ask for features or fix in [issues](https://git.duniter.org/libs/g1lib.js/-/issues).
Merge-request welcome.
Quality requirement :
......@@ -48,7 +49,7 @@ Quality requirement :
- covered by unit-tests
- follow Clean Code good practices ISBN : 978-0-1323-5088-4
If you need help to reach quality requirement, ask it (in [issue](https://framagit.org/g1/g1lib.js/-/issues) or merge-request).
If you need help to reach quality requirement, ask it (in [issue](https://git.duniter.org/libs/g1lib.js/-/issues) or merge-request).
## Funding
......
......@@ -12,6 +12,7 @@
"build:npm:cp": "cp npm/* generated/npm/",
"build:npm:cp:readme": "cp README* generated/npm/",
"build:npm:min": "node CI/minify.mjs",
"build:npm:zeroDep": "node CI/zeroDependency.mjs",
"test": "run-s test:dev",
"test:dev": "run-s test:dev:**",
"xtest:dev:qualityCheck": "xo",
......
......@@ -2,8 +2,8 @@
// Alt deps : import scrypt from "ecma-nacl/build/lib/scrypt/scrypt.js";
import scrypt from '../generated/vendors/scrypt.mjs';
import sha256 from '../node_modules/js-sha256/src/sha256.mjs';
import nacl from '../generated/vendors/nacl.mjs';
import {convertPublicKey, convertSecretKey} from '../node_modules/ed2curve/src/index.mjs';
import nacl from '../generated/vendors/tweetnacl+ed2curve.mjs';
import {convertPublicKey, convertSecretKey} from '../generated/vendors/tweetnacl+ed2curve.mjs';
import {b16, b58, b64} from './basex.mjs';
import {random, ed25519} from './context-dependant/generics.mjs';
nacl.setPRNG(random);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment