@ogygie/generate 0.32.0 → 0.32.1
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/index.js +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -228,7 +228,7 @@ function generationGrammarCard(generation) {
|
|
|
228
228
|
"- `contracts: { module: ./schemas.ts, resource: <Nom>Schema, table: snake_case, key?: champ (cl\xE9 m\xE9tier des \xE9critures par cl\xE9), columns?: { champ: \"type\" }, sharedTables?: [snake_case] }` \u2014 les sch\xE9mas sont des NOMS (suffixe Schema), jamais du code ; `columns` est FACULTATIF et ne force un type que quand le sch\xE9ma ne suffit pas, parmi la liste ferm\xE9e `text`, `integer`, `bigint`, `boolean`, `date`, `timestamptz`, `uuid` ; `sharedTables` nomme les tables du produit HORS du bloc qu'un trou `view` lit (`from`) \u2014 d\xE9clar\xE9es, jamais cr\xE9\xE9es ni \xE9crites ; sans cette d\xE9claration, la vue est refus\xE9e, `jsonb`, `numeric(p,s)`, `varchar(n)`, `char(n)` (jamais un type SQL Server, jamais `not null` : la cible traduit) ; `id` n'est jamais une cl\xE9 ni une colonne d\xE9clar\xE9e.",
|
|
229
229
|
`- \`operations\` : ${operationKinds.join(", ")} ; chaque op\xE9ration : \`{ id: camelCase, kind, method, path: /api/\u2026, guard: <un guard ci-dessous>, input: <Nom>Schema, output: <Nom>Schema, holes?: [ids], respondsWith?: <lecture du bloc>, invalidates?: [racine-kebab] }\` ; une \xE9criture par cl\xE9 ajoute \`by: <cl\xE9>\` et \`notFound: CODE\`, son path finit par \`/:<cl\xE9>\` ; une \`read\` ne prend AUCUN param\xE8tre de chemin : le filtre (une soci\xE9t\xE9, une p\xE9riode) passe par les champs de son \`input\`.`,
|
|
230
230
|
`- \`motifs\` : ${motifs.join(", ")} \u2014 une instance par motif, et SEULEMENT si une op\xE9ration l'emploie (\`uses: <motif>\` sur l'op\xE9ration, sauf \`signedWrite\` qui s'applique \xE0 toutes les \xE9critures) ; sinon \`motifs: {}\`.`,
|
|
231
|
-
`- \`holes\` : ${holeKinds.join(", ")} ; un trou \`view\` = \`{ id, kind: view, name: snake_case, from: [tables ou vues lues], writes: <champ de la ressource>, examples: { rows: [{\u2026}], value } }\` \u2014 \`from\` ne lit que la table de la ressource, une table de slot ou de r\xE9f\xE9rence, une autre vue du bloc ou une table de \`contracts.sharedTables\` ; un trou \`validate\` = \`{ id, kind: validate, reads: [champs de l'entr\xE9e], error: CODE, effects: [] | [clock], suggestedFix: true, examples: { accept: {\u2026}, reject: {\u2026} } }\` ; un \`derive\` = \`{ id, kind: derive, reads, writes: <champ de la ressource>, error: CODE, effects: [], examples: { accept: [{ input, output }], reject: { input } } }
|
|
231
|
+
`- \`holes\` : ${holeKinds.join(", ")} ; un trou \`view\` = \`{ id, kind: view, name: snake_case, from: [tables ou vues lues], writes: <champ de la ressource>, examples: { rows: [{\u2026}], value } }\` \u2014 \`from\` ne lit que la table de la ressource, une table de slot ou de r\xE9f\xE9rence, une autre vue du bloc ou une table de \`contracts.sharedTables\` ; un trou \`validate\` = \`{ id, kind: validate, reads: [champs de l'entr\xE9e], error: CODE, effects: [] | [clock], suggestedFix: true, examples: { accept: {\u2026}, reject: {\u2026} } }\` ; un \`derive\` = \`{ id, kind: derive, reads, writes: <champ de la ressource>, error: CODE, effects: [], examples: { accept: [{ input, output }], reject: { input } } }\` ; un \`transform\` (une ligne d'import, D22) = \`{ id, kind: transform, from: text/csv, columns: [colonnes lues], effects: [], error?: CODE, examples: { accept: { input, output }, reject: { input, line? } } }\` ; un \`project\` (la forme de la sortie d'une \`read\` selon l'appelant, D32) = \`{ id, kind: project, reads: [champs du CONTEXTE du guard \u2014 un r\xF4le, un e-mail \u2014 jamais de l'entr\xE9e], writes: [chemins de la sortie, ex. rows[].field], examples: { accept: [{ context: { <champ du contexte>: \u2026 }, input, output }] } }\` \u2014 chaque exemple \`accept\` d'un \`project\` porte son \`context\`, OBLIGATOIRE. Les exemples sont OBLIGATOIRES ; une date d'exemple se rapporte au 2026-01-01 (horloge fig\xE9e des tests).`,
|
|
232
232
|
"",
|
|
233
233
|
`Bloc d'un \xC9CRAN \u2014 cl\xE9s ${SCREEN_BLOCK_KEYS.map((key) => `\`${key}\``).join(", ")} : \`consumes: [{ feature, operations: [ids] }]\` (features DE LA CARTE ; vide ou absent quand toutes les vues sont de contenu), \`views: [{ id, kind: list, operation: <lecture> } | { id, kind: form, operation: <\xE9criture>, fields: [champs] } | { id, kind: custom, operation, hole } | { id, kind: content, content: <id d'une liste> }]\`, \`holes: [{ id, receives: [champs de la sortie], actions: [\xE9critures], examples: { input, renders: ["texte"] } }]\`, \`content: [{ id: camelCase, entries: [{ id: kebab-case, title, body, href? }] }]\` (la MATI\xC8RE d'une rubrique \u2014 une aide, une FAQ : du texte brut \xE9crit ici m\xEAme, dans la langue source du produit, un lien au plus par entr\xE9e, jamais un libell\xE9 d'interface), et UNE des deux : \`route?: /chemin\` (une page) ou \`mounts?: { point, id }\` (un emplacement d'un \xE9cran existant, parmi les points d'extension de la cible ci-dessous).`,
|
|
234
234
|
"",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ogygie/generate",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.1",
|
|
4
4
|
"description": "Ogygie generator: reads the `# Génération` block of a spec and its schemas.ts, derives everything deterministic without a model (routes, pipeline, database, factories, tests, screens, previews), fills the typed holes of logic.ts by library, draw and escalation, and draws the first schemas.ts of a new feature — judged by the gates. Sixth package of the lockstep (D55).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ogygie/core": "0.32.
|
|
32
|
+
"@ogygie/core": "0.32.1",
|
|
33
33
|
"tsx": "^4.20.0",
|
|
34
34
|
"yaml": "^2.9.0",
|
|
35
35
|
"zod": "^4.0.0"
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@lingui/babel-plugin-lingui-macro": "^5.9.5",
|
|
39
39
|
"@lingui/core": "^5.9.5",
|
|
40
40
|
"@lingui/react": "^5.9.5",
|
|
41
|
-
"@ogygie/ui": "0.32.
|
|
41
|
+
"@ogygie/ui": "0.32.1",
|
|
42
42
|
"@starter/api": "0.1.0",
|
|
43
43
|
"@tanstack/react-query": "^5.102.2",
|
|
44
44
|
"@tanstack/react-router": "^1.170.32",
|