emilsoftware-utilities 2.0.0-dev.70 → 2.0.0-dev.72

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.
Files changed (39) hide show
  1. package/README.MD +30 -0
  2. package/dist/accessi/client/admin/index.d.ts +18 -0
  3. package/dist/accessi/client/admin/index.js +58 -0
  4. package/dist/accessi/client/admin/index.js.map +1 -0
  5. package/dist/accessi/client/createAccessiClient.d.ts +21 -0
  6. package/dist/accessi/client/createAccessiClient.js +31 -0
  7. package/dist/accessi/client/createAccessiClient.js.map +1 -0
  8. package/dist/accessi/client/generated/admin.d.ts +601 -0
  9. package/dist/accessi/client/generated/admin.js +557 -0
  10. package/dist/accessi/client/generated/admin.js.map +1 -0
  11. package/dist/accessi/client/generated/public.d.ts +121 -0
  12. package/dist/accessi/client/generated/public.js +119 -0
  13. package/dist/accessi/client/generated/public.js.map +1 -0
  14. package/dist/accessi/client/generated/service.d.ts +53 -0
  15. package/dist/accessi/client/generated/service.js +63 -0
  16. package/dist/accessi/client/generated/service.js.map +1 -0
  17. package/dist/accessi/client/index.d.ts +29 -11
  18. package/dist/accessi/client/index.js +52 -2
  19. package/dist/accessi/client/index.js.map +1 -1
  20. package/dist/accessi/client/public/index.d.ts +18 -0
  21. package/dist/accessi/client/public/index.js +58 -0
  22. package/dist/accessi/client/public/index.js.map +1 -0
  23. package/dist/accessi/client/service/index.d.ts +17 -0
  24. package/dist/accessi/client/service/index.js +57 -0
  25. package/dist/accessi/client/service/index.js.map +1 -0
  26. package/dist/accessi-module/Console/accessiFetch.d.ts +27 -0
  27. package/dist/accessi-module/Console/accessiFetch.js +41 -5
  28. package/dist/accessi-module/Console/accessiFetch.js.map +1 -1
  29. package/dist/accessi-module/Console/console.js +14 -3
  30. package/dist/accessi-module/Console/wiki.js +10 -1
  31. package/dist/accessi-module/Console/wiki.js.map +1 -1
  32. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +1 -1
  33. package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +1 -1
  34. package/dist/accessi-module/security/accessTokenRevocation.js +5 -2
  35. package/dist/accessi-module/security/accessTokenRevocation.js.map +1 -1
  36. package/dist/emilsoftware-utilities-2.0.0-dev.72.tgz +0 -0
  37. package/integration-prompt.md +6 -2
  38. package/package.json +23 -4
  39. package/dist/emilsoftware-utilities-2.0.0-dev.70.tgz +0 -0
@@ -41,7 +41,10 @@ Se per ora Accessi e montato dentro Backend A, va bene: Backend A e il proprieta
41
41
  |---|---|
42
42
  | `emilsoftware-utilities/accessi/server` | Backend che ospita Accessi: `AccessiModule`, `initializeAccessiModule`, updater DB, migrazioni, console. |
43
43
  | `emilsoftware-utilities/accessi/resource-server` | Backend fratello: middleware Express, guard Nest, verifica JWT e introspection. |
44
- | `emilsoftware-utilities/accessi/client` | Client OpenAPI generato per chiamare Accessi Service. |
44
+ | `emilsoftware-utilities/accessi/client` | Client OpenAPI completo, con configurazione globale o per istanza (`createAccessiClient`). |
45
+ | `emilsoftware-utilities/accessi/client/public` | Solo API pubbliche (login, refresh, 2FA, reset password, ticket console): da preferire nei frontend. |
46
+ | `emilsoftware-utilities/accessi/client/admin` | Solo API amministrative (utenti, ruoli, menu, filtri, provider federati, schema): console e tool admin. |
47
+ | `emilsoftware-utilities/accessi/client/service` | Solo API service-to-service (service token e introspezione): backend fratelli e job. |
45
48
  | `emilsoftware-utilities/accessi/contracts` | Tipi, enum e helper puri browser-safe. |
46
49
  | `emilsoftware-utilities/accessi/contracts/dtos` | DTO Nest con `class-validator` e decoratori OpenAPI. Solo backend. |
47
50
  | `emilsoftware-utilities/accessi/openapi` | `setupOpenApi`, `mergeOpenApiDocuments`. |
@@ -628,6 +631,7 @@ I componenti sono frameworkless e ricevono i dati via proprieta; non fanno chiam
628
631
  - `accessi/contracts`: tipi/enum/helper puri, adatti anche al browser.
629
632
  - `accessi/contracts/dtos`: DTO Nest con decoratori; non usarli in bundle frontend leggeri.
630
633
  - `accessi/client`: tipi generati dall'OpenAPI e funzioni HTTP; e la fonte consigliata per frontend e backend fratelli.
634
+ - `accessi/client/public` / `admin` / `service`: stessi tipi e funzioni, filtrati per scope. Il client pubblico non espone operazioni amministrative; usare `createAccessiPublicClient`, `createAccessiAdminClient` o `createAccessiServiceClient` per isolare base URL e token per istanza.
631
635
 
632
636
  Non usare i DTO server come contratto pubblico se il frontend non ha `class-validator`, `class-transformer` e `reflect-metadata`.
633
637
 
@@ -755,7 +759,7 @@ Checklist:
755
759
 
756
760
  ### Per un frontend
757
761
 
758
- > Usa `emilsoftware-utilities/accessi/client`: chiama `configureAccessiClient({ baseUrl, token })` dopo il login e `getToken` se il token cambia. Il login, il refresh, il 2FA e il reset password passano da Accessi Service. Verso i backend usa `Authorization: Bearer <access-token>`. Non incorporare il database o il server Accessi. Per la console usa `buildAccessiConsoleUrl` con il ticket monouso restituito da `POST /api/accessi/console/entry`; non mettere mai il JWT nell'URL. Per i componenti UI usa gli asset di `accessi/ui`. Gestisci gli errori 401 (`AUTH_TOKEN_INVALID`) portando l'utente al login e 403 (`AUTH_INSUFFICIENT_PERMISSIONS`) mostrando un messaggio di permessi insufficienti.
762
+ > Usa `emilsoftware-utilities/accessi/client/public` nei frontend (mai il client admin) e `createAccessiClient`/`createAccessiPublicClient` se parli con piu Accessi Service o tenant: chiama `configureAccessiClient({ baseUrl, token })` dopo il login e `getToken` se il token cambia. Il login, il refresh, il 2FA e il reset password passano da Accessi Service. Verso i backend usa `Authorization: Bearer <access-token>`. Non incorporare il database o il server Accessi. Per la console usa `buildAccessiConsoleUrl` con il ticket monouso restituito da `POST /api/accessi/console/entry`; non mettere mai il JWT nell'URL. Per i componenti UI usa gli asset di `accessi/ui`. Gestisci gli errori 401 (`AUTH_TOKEN_INVALID`) portando l'utente al login e 403 (`AUTH_INSUFFICIENT_PERMISSIONS`) mostrando un messaggio di permessi insufficienti.
759
763
 
760
764
  ### Per un agente AI
761
765
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emilsoftware-utilities",
3
- "version": "2.0.0-dev.70",
3
+ "version": "2.0.0-dev.72",
4
4
  "description": "Utilities for EmilSoftware",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -60,6 +60,24 @@
60
60
  "import": "./dist/accessi/client/index.js",
61
61
  "default": "./dist/accessi/client/index.js"
62
62
  },
63
+ "./accessi/client/public": {
64
+ "types": "./dist/accessi/client/public/index.d.ts",
65
+ "require": "./dist/accessi/client/public/index.js",
66
+ "import": "./dist/accessi/client/public/index.js",
67
+ "default": "./dist/accessi/client/public/index.js"
68
+ },
69
+ "./accessi/client/admin": {
70
+ "types": "./dist/accessi/client/admin/index.d.ts",
71
+ "require": "./dist/accessi/client/admin/index.js",
72
+ "import": "./dist/accessi/client/admin/index.js",
73
+ "default": "./dist/accessi/client/admin/index.js"
74
+ },
75
+ "./accessi/client/service": {
76
+ "types": "./dist/accessi/client/service/index.d.ts",
77
+ "require": "./dist/accessi/client/service/index.js",
78
+ "import": "./dist/accessi/client/service/index.js",
79
+ "default": "./dist/accessi/client/service/index.js"
80
+ },
63
81
  "./accessi/openapi": {
64
82
  "types": "./dist/accessi/openapi/index.d.ts",
65
83
  "require": "./dist/accessi/openapi/index.js",
@@ -106,11 +124,12 @@
106
124
  "typecheck": "tsc --noEmit",
107
125
  "lint": "node scripts/lint.cjs",
108
126
  "test": "npm run typecheck && npm run lint && npm run test:unit",
109
- "test:unit": "node --test test/angular-components.cjs test/menus-catalog.mjs test/menu-scopes.cjs test/accessi-regressions.cjs test/password-reset-regressions.cjs test/two-factor.cjs test/accessi-schema.cjs test/utilities-regressions.cjs test/service-token-regressions.cjs test/accessi-email-config.cjs test/accessi-catalog-scripts.cjs test/openapi-config.cjs test/resource-server.cjs test/accessi-security-standards.cjs test/accessi-service.cjs test/refresh-token.cjs test/token-revocation.cjs",
110
- "test:coverage": "node --experimental-test-coverage --test-coverage-lines=50 --test-coverage-functions=60 --test-coverage-branches=60 --test test/angular-components.cjs test/menus-catalog.mjs test/menu-scopes.cjs test/accessi-regressions.cjs test/password-reset-regressions.cjs test/two-factor.cjs test/accessi-schema.cjs test/utilities-regressions.cjs test/service-token-regressions.cjs test/accessi-email-config.cjs test/accessi-catalog-scripts.cjs test/openapi-config.cjs test/resource-server.cjs test/accessi-security-standards.cjs test/accessi-service.cjs test/refresh-token.cjs test/token-revocation.cjs",
127
+ "test:unit": "node --test test/angular-components.cjs test/menus-catalog.mjs test/menu-scopes.cjs test/accessi-regressions.cjs test/password-reset-regressions.cjs test/two-factor.cjs test/accessi-schema.cjs test/utilities-regressions.cjs test/service-token-regressions.cjs test/accessi-email-config.cjs test/accessi-catalog-scripts.cjs test/openapi-config.cjs test/resource-server.cjs test/accessi-security-standards.cjs test/accessi-service.cjs test/refresh-token.cjs test/token-revocation.cjs test/accessi-client.cjs test/accessi-client-scopes.cjs",
128
+ "test:coverage": "node --experimental-test-coverage --test-coverage-lines=50 --test-coverage-functions=60 --test-coverage-branches=60 --test test/angular-components.cjs test/menus-catalog.mjs test/menu-scopes.cjs test/accessi-regressions.cjs test/password-reset-regressions.cjs test/two-factor.cjs test/accessi-schema.cjs test/utilities-regressions.cjs test/service-token-regressions.cjs test/accessi-email-config.cjs test/accessi-catalog-scripts.cjs test/openapi-config.cjs test/resource-server.cjs test/accessi-security-standards.cjs test/accessi-service.cjs test/refresh-token.cjs test/token-revocation.cjs test/accessi-client.cjs test/accessi-client-scopes.cjs",
111
129
  "test:accessi": "npm run test:unit",
112
- "test:all": "npm test && npm run test:integration",
130
+ "test:all": "npm test && npm run test:integration && npm run test:integration:redis",
113
131
  "test:integration": "node test/integration/run-firebird.cjs 5",
132
+ "test:integration:redis": "node --test test/integration/redis-stores.integration.cjs",
114
133
  "test:integration:fb5": "node test/integration/run-firebird.cjs 5",
115
134
  "test:integration:fb3": "node test/integration/run-firebird.cjs 3",
116
135
  "test:integration:fb25": "node test/integration/run-firebird.cjs 2.5",