@mostajs/setup 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -15
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/lib/menu.d.ts +2 -0
- package/dist/lib/menu.js +16 -0
- package/package.json +15 -1
package/README.md
CHANGED
|
@@ -752,17 +752,68 @@ spanner://projects/my-project (Cloud Spanner)
|
|
|
752
752
|
|
|
753
753
|
## 6. Systeme de modules
|
|
754
754
|
|
|
755
|
-
###
|
|
755
|
+
### Catalogue des 7 modules connus
|
|
756
|
+
|
|
757
|
+
| Module | Package | Requis | Depend de | Standalone | Description |
|
|
758
|
+
|--------|---------|--------|-----------|------------|-------------|
|
|
759
|
+
| **orm** | `@mostajs/orm` | oui | — | — | ORM multi-dialecte (13 SGBD), pattern Hibernate |
|
|
760
|
+
| **auth** | `@mostajs/auth` | oui | orm | non | NextAuth, sessions, hashage mots de passe |
|
|
761
|
+
| **audit** | `@mostajs/audit` | non | orm | non | Journalisation des actions, tracabilite |
|
|
762
|
+
| **rbac** | `@mostajs/rbac` | non | auth, audit | non | Roles, permissions, matrice RBAC |
|
|
763
|
+
| **settings** | `@mostajs/settings` | non | orm | non | Parametres cle-valeur, formulaire auto, provider React |
|
|
764
|
+
| **face** | `@mostajs/face` | non | **aucune** | **oui** | Detection de visage, descripteurs, matching 1:N |
|
|
765
|
+
| **setup** | `@mostajs/setup` | oui | orm | non | Wizard d'installation, test DB, seed runner |
|
|
766
|
+
|
|
767
|
+
### Module standalone : @mostajs/face
|
|
768
|
+
|
|
769
|
+
`@mostajs/face` est **100% independant** — il n'importe aucun package `@mostajs/*` et peut etre utilise dans n'importe quelle application React >= 18 sans `@mostajs/orm` ni base de donnees.
|
|
770
|
+
|
|
771
|
+
**Dependance unique** : `@vladmandic/face-api` (reconnaissance faciale TensorFlow.js)
|
|
772
|
+
|
|
773
|
+
```bash
|
|
774
|
+
npm install @mostajs/face
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
```tsx
|
|
778
|
+
import { useCamera, useFaceDetection, compareFaces } from '@mostajs/face'
|
|
779
|
+
|
|
780
|
+
// Hooks React pour camera et detection
|
|
781
|
+
const { videoRef, start, stop } = useCamera()
|
|
782
|
+
const { detect, result } = useFaceDetection()
|
|
783
|
+
|
|
784
|
+
// API bas niveau
|
|
785
|
+
import { loadModels, detectFace, extractDescriptor } from '@mostajs/face'
|
|
786
|
+
import { findMatch, descriptorToArray, arrayToDescriptor } from '@mostajs/face'
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
Exports : `loadModels`, `detectFace`, `detectAllFaces`, `extractDescriptor`, `compareFaces`, `findMatch`, `findAllMatches`, `descriptorToArray`, `arrayToDescriptor`, `isValidDescriptor`, `drawDetection`, `useCamera`, `useFaceDetection`.
|
|
756
790
|
|
|
757
|
-
|
|
791
|
+
### Graphe de dependances
|
|
758
792
|
|
|
759
793
|
```
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
794
|
+
┌──────────┐
|
|
795
|
+
│ orm (R) │ R = requis
|
|
796
|
+
└────┬─────┘
|
|
797
|
+
┌────────┼────────┬──────────┐
|
|
798
|
+
v v v v
|
|
799
|
+
┌──────────┐ ┌──────┐ ┌──────────┐ ┌───────┐
|
|
800
|
+
│ auth (R) │ │audit │ │ settings │ │setup(R)│
|
|
801
|
+
└────┬─────┘ └──┬───┘ └──────────┘ └───────┘
|
|
802
|
+
│ │
|
|
803
|
+
v v
|
|
804
|
+
┌──────────────────┐
|
|
805
|
+
│ rbac │
|
|
806
|
+
└──────────────────┘
|
|
807
|
+
|
|
808
|
+
┌──────────────────────────┐
|
|
809
|
+
│ face (100% standalone) │ ← aucune dependance @mostajs
|
|
810
|
+
└──────────────────────────┘
|
|
764
811
|
```
|
|
765
812
|
|
|
813
|
+
### Liste statique vs decouverte dynamique
|
|
814
|
+
|
|
815
|
+
Le package maintient une **liste statique** des 7 modules ci-dessus avec metadata riches (required, dependsOn, icon, description).
|
|
816
|
+
|
|
766
817
|
Au runtime, `GET /api/setup/detect-modules` interroge aussi **npm** (`npm search @mostajs --json`) pour trouver des packages publies apres le deploiement. Ces modules decouverts sont ajoutes avec `discovered: true` et l'icone 📦.
|
|
767
818
|
|
|
768
819
|
### Resolution des dependances
|
|
@@ -773,15 +824,19 @@ import { resolveModuleDependencies } from '@mostajs/setup'
|
|
|
773
824
|
resolveModuleDependencies(['rbac'])
|
|
774
825
|
// → ['rbac', 'auth', 'audit', 'orm', 'setup']
|
|
775
826
|
// (rbac depend de auth + audit, auth depend de orm, setup est requis)
|
|
827
|
+
|
|
828
|
+
resolveModuleDependencies(['face'])
|
|
829
|
+
// → ['face', 'orm', 'auth', 'setup']
|
|
830
|
+
// (face n'a pas de dependance @mostajs, mais orm/auth/setup sont requis)
|
|
776
831
|
```
|
|
777
832
|
|
|
778
833
|
### Installation hybride (local + npm)
|
|
779
834
|
|
|
780
835
|
Le handler `install-modules` utilise une strategie hybride :
|
|
781
836
|
|
|
782
|
-
1. **
|
|
783
|
-
2. **
|
|
784
|
-
3. **
|
|
837
|
+
1. **Skip** : si deja dans `node_modules/@mostajs/xxx` → pas de `npm install` (evite hot-reload)
|
|
838
|
+
2. **Local** : si `packages/mosta-xxx/` existe → `npm install file:./packages/mosta-xxx`
|
|
839
|
+
3. **npm registry** : sinon → `npm install @mostajs/xxx`
|
|
785
840
|
|
|
786
841
|
Cela evite les 404 npm pour les packages non encore publies et les hot-reloads Next.js inutiles.
|
|
787
842
|
|
|
@@ -925,12 +980,14 @@ Puis recompilez : `cd packages/mosta-setup && npx tsc`
|
|
|
925
980
|
|
|
926
981
|
## Related Packages
|
|
927
982
|
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
983
|
+
| Package | Depend de orm | Standalone | Description |
|
|
984
|
+
|---------|:---:|:---:|-------------|
|
|
985
|
+
| [@mostajs/orm](https://www.npmjs.com/package/@mostajs/orm) | — | — | Multi-dialect ORM, 13 SGBD (requis) |
|
|
986
|
+
| [@mostajs/auth](https://www.npmjs.com/package/@mostajs/auth) | oui | non | Authentication NextAuth, sessions |
|
|
987
|
+
| [@mostajs/audit](https://www.npmjs.com/package/@mostajs/audit) | oui | non | Audit logging, tracabilite |
|
|
988
|
+
| [@mostajs/rbac](https://www.npmjs.com/package/@mostajs/rbac) | oui | non | Roles & Permissions RBAC |
|
|
989
|
+
| [@mostajs/settings](https://www.npmjs.com/package/@mostajs/settings) | oui | non | Parametres cle-valeur |
|
|
990
|
+
| [@mostajs/face](https://www.npmjs.com/package/@mostajs/face) | **non** | **oui** | Reconnaissance faciale (independant) |
|
|
934
991
|
|
|
935
992
|
## License
|
|
936
993
|
|
package/dist/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export { createInstallHandler } from './api/install.route';
|
|
|
10
10
|
export { createStatusHandler } from './api/status.route';
|
|
11
11
|
export { createDetectModulesHandler } from './api/detect-modules.route';
|
|
12
12
|
export { createInstallModulesHandler } from './api/install-modules.route';
|
|
13
|
+
export { setupMenuContribution } from './lib/menu';
|
|
13
14
|
export type { DialectType, DialectInfo, DbConfig, InstallConfig, SeedOptions, SeedDefinition, MostaSetupConfig, ModuleDefinition, } from './types/index';
|
package/dist/index.js
CHANGED
|
@@ -16,3 +16,5 @@ export { createInstallHandler } from './api/install.route';
|
|
|
16
16
|
export { createStatusHandler } from './api/status.route';
|
|
17
17
|
export { createDetectModulesHandler } from './api/detect-modules.route';
|
|
18
18
|
export { createInstallModulesHandler } from './api/install-modules.route';
|
|
19
|
+
// Menu contribution
|
|
20
|
+
export { setupMenuContribution } from './lib/menu';
|
package/dist/lib/menu.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// @mostajs/setup — Menu contribution
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
import { Wrench } from 'lucide-react';
|
|
4
|
+
export const setupMenuContribution = {
|
|
5
|
+
moduleKey: 'setup',
|
|
6
|
+
mergeIntoGroup: 'Administration',
|
|
7
|
+
order: 100,
|
|
8
|
+
items: [
|
|
9
|
+
{
|
|
10
|
+
label: 'setup.title',
|
|
11
|
+
href: '/setup',
|
|
12
|
+
icon: Wrench,
|
|
13
|
+
permission: 'admin:access',
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/setup",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Reusable setup wizard module — multi-dialect DB configuration, .env.local writer, seed runner",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
"types": "./dist/types/index.d.ts",
|
|
33
33
|
"import": "./dist/types/index.js",
|
|
34
34
|
"default": "./dist/types/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./lib/menu": {
|
|
37
|
+
"types": "./dist/lib/menu.d.ts",
|
|
38
|
+
"import": "./dist/lib/menu.js",
|
|
39
|
+
"default": "./dist/lib/menu.js"
|
|
35
40
|
}
|
|
36
41
|
},
|
|
37
42
|
"files": [
|
|
@@ -65,8 +70,17 @@
|
|
|
65
70
|
"bcryptjs": "^2.4.3"
|
|
66
71
|
},
|
|
67
72
|
"devDependencies": {
|
|
73
|
+
"@mostajs/menu": "^1.0.2",
|
|
68
74
|
"@types/bcryptjs": "^2.4.0",
|
|
69
75
|
"@types/node": "^25.3.3",
|
|
70
76
|
"typescript": "^5.6.0"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"@mostajs/menu": ">=1.0.2"
|
|
80
|
+
},
|
|
81
|
+
"peerDependenciesMeta": {
|
|
82
|
+
"@mostajs/menu": {
|
|
83
|
+
"optional": true
|
|
84
|
+
}
|
|
71
85
|
}
|
|
72
86
|
}
|