@nodefony/devkit 10.0.0-alpha.2 → 10.0.0-alpha.4
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/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/decorateMetadata.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/decorateParam.js +1 -1
- package/dist/index.js +2 -2
- package/dist/nodefony/controllers/DevkitController.js +2 -2
- package/dist/nodefony/controllers/McpController.js +3 -3
- package/dist/nodefony/service/DevkitService.js +2 -2
- package/dist/types/index.d.ts +3 -3
- package/dist/types/nodefony/config/config.d.ts +3 -3
- package/dist/types/nodefony/config/defineModuleConfig.d.ts +2 -2
- package/dist/types/nodefony/interfaces/IDevkitService.d.ts +2 -2
- package/dist/types/nodefony/service/DevkitService.d.ts +2 -2
- package/package.json +7 -7
- package/skills/nodefony-protect-route/SKILL.md +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
2
2
|
function __decorate(decorators, target, key, desc) {
|
|
3
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateMetadata.js
|
|
2
2
|
function __decorateMetadata(k, v) {
|
|
3
3
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
4
4
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import defaults, { devkitConfigSchema } from "./nodefony/config/config.js";
|
|
2
2
|
import { defineDevkitConfig } from "./nodefony/config/defineModuleConfig.js";
|
|
3
3
|
import { buildCard } from "./nodefony/src/card.js";
|
|
4
|
-
import __decorateMetadata from "./_virtual/_@oxc-project_runtime@0.
|
|
5
|
-
import __decorate from "./_virtual/_@oxc-project_runtime@0.
|
|
4
|
+
import __decorateMetadata from "./_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
|
|
5
|
+
import __decorate from "./_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
|
|
6
6
|
import DevkitService_default from "./nodefony/service/DevkitService.js";
|
|
7
7
|
import DevkitController_default from "./nodefony/controllers/DevkitController.js";
|
|
8
8
|
import McpController_default from "./nodefony/controllers/McpController.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
|
|
3
3
|
import { Controller, controller, route } from "@nodefony/framework";
|
|
4
4
|
//#region nodefony/controllers/DevkitController.ts
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorateParam from "../../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
|
|
2
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
|
|
3
|
+
import __decorateParam from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateParam.js";
|
|
4
4
|
import { ACCESS_TOKEN_VERIFIER, JsonRpcError, Nodefony, authorizeProtectedResource, checkMcpAccess, collectMcpTools, handleMcpMessage, jsonRpcFailure, mcpCallerRoles, protectedResourceMetadataUrl, readBearerHeader } from "nodefony";
|
|
5
5
|
import { Body, Controller, Headers, controller, route } from "@nodefony/framework";
|
|
6
6
|
//#region nodefony/controllers/McpController.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import defaults from "../config/config.js";
|
|
2
2
|
import { buildCard } from "../src/card.js";
|
|
3
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
4
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
+
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
|
|
4
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
|
|
5
5
|
import { Module, Nodefony, Service, extend, injectable, mcpDeclaredScopes } from "nodefony";
|
|
6
6
|
//#region nodefony/service/DevkitService.ts
|
|
7
7
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kernel, Module } from "nodefony";
|
|
2
|
-
import { type
|
|
2
|
+
import { type IDevkitConfigInput } from "./nodefony/config/config.js";
|
|
3
3
|
import DevkitService from "./nodefony/service/DevkitService.js";
|
|
4
4
|
import DevkitController from "./nodefony/controllers/DevkitController.js";
|
|
5
5
|
import McpController from "./nodefony/controllers/McpController.js";
|
|
@@ -18,7 +18,7 @@ import McpController from "./nodefony/controllers/McpController.js";
|
|
|
18
18
|
*/
|
|
19
19
|
declare module "nodefony" {
|
|
20
20
|
interface NodefonyModuleConfig {
|
|
21
|
-
"@nodefony/devkit":
|
|
21
|
+
"@nodefony/devkit": IDevkitConfigInput;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
declare class DevkitModule extends Module {
|
|
@@ -48,5 +48,5 @@ export default DevkitModule;
|
|
|
48
48
|
export { DevkitService, DevkitController, McpController };
|
|
49
49
|
export { buildCard } from "./nodefony/src/card.js";
|
|
50
50
|
export { defineDevkitConfig } from "./nodefony/config/defineModuleConfig.js";
|
|
51
|
-
export { devkitConfigSchema, type
|
|
51
|
+
export { devkitConfigSchema, type IDevkitConfig, type IDevkitConfigInput, } from "./nodefony/config/config.js";
|
|
52
52
|
export type { IDevkitAppInfo, IDevkitCard, IDevkitCardInput, IDevkitDoor, IDevkitService, IDevkitVerb, } from "./nodefony/interfaces/IDevkitService.js";
|
|
@@ -17,9 +17,9 @@ export declare const devkitConfigSchema: z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strict>>;
|
|
18
18
|
}, z.core.$strict>;
|
|
19
19
|
/** Config telle que l'APP l'écrit dans `use()` — tous les champs optionnels. */
|
|
20
|
-
export type
|
|
20
|
+
export type IDevkitConfigInput = z.input<typeof devkitConfigSchema>;
|
|
21
21
|
/** Config telle que le CODE la lit — défauts appliqués, rien d'optionnel. */
|
|
22
|
-
export type
|
|
22
|
+
export type IDevkitConfig = z.output<typeof devkitConfigSchema>;
|
|
23
23
|
/** Défauts matérialisés (passés au `super()` du Module). */
|
|
24
|
-
declare const defaults:
|
|
24
|
+
declare const defaults: IDevkitConfig;
|
|
25
25
|
export default defaults;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IDevkitConfig, IDevkitConfigInput } from "./config.js";
|
|
2
2
|
/**
|
|
3
3
|
* @nodefony/devkit — LE COMMENT : builder PUR de la config.
|
|
4
4
|
*
|
|
@@ -19,7 +19,7 @@ import type { DevkitConfig, DevkitConfigInput } from "./config.js";
|
|
|
19
19
|
* @throws BootConfigurationError si un champ est invalide ou une clé inconnue
|
|
20
20
|
* (anomalies Zod agrégées) — le boot s'interrompt, en dev comme en prod.
|
|
21
21
|
*/
|
|
22
|
-
export declare function defineDevkitConfig(config?:
|
|
22
|
+
export declare function defineDevkitConfig(config?: IDevkitConfigInput): IDevkitConfig;
|
|
23
23
|
/**
|
|
24
24
|
* JSON Schema de la config — Studio en dérive son formulaire d'édition
|
|
25
25
|
* (libellés, types, défauts, descriptions), sans une ligne d'UI écrite à la main.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ICard, ICardAppInfo, ICardDoor, ICardInput, ICardVerb, IMcpToolDeps } from "nodefony";
|
|
2
|
-
import type {
|
|
2
|
+
import type { IDevkitConfig } from "../config/config.js";
|
|
3
3
|
/**
|
|
4
4
|
* Le contrat de la carte est celui du CŒUR — ces noms n'en sont que les alias,
|
|
5
5
|
* conservés parce qu'ils forment la surface publique de ce module.
|
|
@@ -49,7 +49,7 @@ export interface IDevkitService {
|
|
|
49
49
|
* allowlist d'outils viennent d'ICI, jamais d'une seconde lecture de la
|
|
50
50
|
* configuration — deux lectures divergent.
|
|
51
51
|
*/
|
|
52
|
-
mcpSettings():
|
|
52
|
+
mcpSettings(): IDevkitConfig["mcp"];
|
|
53
53
|
/**
|
|
54
54
|
* Ce dont les outils MCP intégrés ont besoin pour répondre.
|
|
55
55
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Service, Module } from "nodefony";
|
|
2
2
|
import type { IMcpToolDeps, IProtectedResourceInput } from "nodefony";
|
|
3
3
|
import type { IDevkitCard, IDevkitService } from "../interfaces/IDevkitService.js";
|
|
4
|
-
import { type
|
|
4
|
+
import { type IDevkitConfig } from "../config/config.js";
|
|
5
5
|
/**
|
|
6
6
|
* Service principal du module — la logique vit ici, pas dans les controllers
|
|
7
7
|
* (un controller traduit du HTTP/WS ; un service, lui, est réutilisable par la
|
|
@@ -80,7 +80,7 @@ declare class DevkitService extends Service implements IDevkitService {
|
|
|
80
80
|
* côté : les défauts du schéma sont déjà fusionnés avec ce que l'app a passé
|
|
81
81
|
* dans `use()`, une seconde lecture finirait par diverger de celle-ci.
|
|
82
82
|
*/
|
|
83
|
-
mcpSettings():
|
|
83
|
+
mcpSettings(): IDevkitConfig["mcp"];
|
|
84
84
|
/**
|
|
85
85
|
* Ce dont les outils MCP intégrés ont besoin pour répondre.
|
|
86
86
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodefony/devkit",
|
|
3
|
-
"version": "10.0.0-alpha.
|
|
3
|
+
"version": "10.0.0-alpha.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Outillage de développement d'une application Nodefony : carte de visite du projet et portes de découverte pour un agent de développement",
|
|
6
6
|
"author": "Christophe CAMENSULI <ccamensuli@gmail.com>",
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
"coverage": "vitest run --coverage"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@nodefony/framework": "^10.0.0-alpha.
|
|
29
|
-
"@nodefony/http": "^10.0.0-alpha.
|
|
30
|
-
"nodefony": "^10.0.0-alpha.
|
|
28
|
+
"@nodefony/framework": "^10.0.0-alpha.4",
|
|
29
|
+
"@nodefony/http": "^10.0.0-alpha.4",
|
|
30
|
+
"nodefony": "^10.0.0-alpha.4",
|
|
31
31
|
"zod": "^4.4.3",
|
|
32
32
|
"playwright": "^1.50.0",
|
|
33
33
|
"lighthouse": "^13.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@nodefony/framework": "^10.0.0-alpha.
|
|
37
|
-
"@nodefony/http": "^10.0.0-alpha.
|
|
38
|
-
"nodefony": "^10.0.0-alpha.
|
|
36
|
+
"@nodefony/framework": "^10.0.0-alpha.4",
|
|
37
|
+
"@nodefony/http": "^10.0.0-alpha.4",
|
|
38
|
+
"nodefony": "^10.0.0-alpha.4"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"axe-core": "4.13.0",
|
|
@@ -20,10 +20,10 @@ description: >
|
|
|
20
20
|
|
|
21
21
|
## Deux étages, et ils ne font pas la même chose
|
|
22
22
|
|
|
23
|
-
| Étage | Où
|
|
24
|
-
| -------------------- |
|
|
25
|
-
| **zone du pare-feu** | `nodefony
|
|
26
|
-
| **garde par route** | `@IsGranted("ROLE_X")` sur l'action
|
|
23
|
+
| Étage | Où | Ce qu'il protège |
|
|
24
|
+
| -------------------- | -------------------------------------- | ----------------------------------------- |
|
|
25
|
+
| **zone du pare-feu** | `nodefony/config/security.ts`, `areas` | un **espace** : `pattern: "^/api/secure"` |
|
|
26
|
+
| **garde par route** | `@IsGranted("ROLE_X")` sur l'action | **une** route précise |
|
|
27
27
|
|
|
28
28
|
Les deux se combinent : la zone décide **qui entre**, la garde décide **qui fait**.
|
|
29
29
|
|
|
@@ -134,7 +134,7 @@ d'appartenance à écrire dans l'action.
|
|
|
134
134
|
## Une API pour un PROGRAMME, pas pour un navigateur
|
|
135
135
|
|
|
136
136
|
Un service partenaire, un script, un agent ne stockent aucun cookie. **La zone est déjà posée**
|
|
137
|
-
dans le `nodefony
|
|
137
|
+
dans le `nodefony/config/security.ts` généré :
|
|
138
138
|
|
|
139
139
|
```ts
|
|
140
140
|
machine: {
|