better-review 0.3.0 → 0.4.0
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 +27 -12
- package/dist/cli.js +709 -1315
- package/dist/web/assets/highlight.worker-BOqhB448.js +153 -0
- package/dist/web/assets/{html-Bv1KyTF7.js → html-B3xvRgDO.js} +1 -1
- package/dist/web/assets/html-BHZv6uqE.js +1 -0
- package/dist/web/assets/{index-DuH6feCh.js → index--X0HmlXh.js} +4 -3
- package/dist/web/assets/{index-rNKORPVq.css → index-CZyRc3NX.css} +1 -1
- package/dist/web/assets/{json-B88Oqtu5.js → json-qhed-kSA.js} +1 -1
- package/dist/web/assets/{jsx-D3KKoC5L.js → jsx-Bz0zcwM4.js} +1 -1
- package/dist/web/assets/{markdown-CboqBxpY.js → markdown-BYOwaDjH.js} +1 -1
- package/dist/web/assets/scss-8bKmll0B.js +1 -0
- package/dist/web/assets/{tsx-BOvsFOI6.js → tsx-udAQXfEw.js} +1 -1
- package/dist/web/assets/{typescript-j_1H8WHN.js → typescript-bsJCZSQ-.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/astro-BGCLva2-.js +0 -1
- package/dist/web/assets/bat-qdxAdBWQ.js +0 -1
- package/dist/web/assets/c-Cz4nF6n_.js +0 -1
- package/dist/web/assets/c-SSSlmE39.js +0 -1
- package/dist/web/assets/clojure-DqKBuwfJ.js +0 -1
- package/dist/web/assets/cmake-Bj61d0ZC.js +0 -1
- package/dist/web/assets/cpp-DK5F0KO4.js +0 -1
- package/dist/web/assets/cpp-pF_afpy8.js +0 -1
- package/dist/web/assets/csharp-dmMxLVLW.js +0 -1
- package/dist/web/assets/dart-CHZY9Xhz.js +0 -1
- package/dist/web/assets/diff-woXpYk--.js +0 -1
- package/dist/web/assets/dockerfile-IyjqRm3v.js +0 -1
- package/dist/web/assets/dotenv-CuH5my32.js +0 -1
- package/dist/web/assets/elixir-DcSoMxCm.js +0 -1
- package/dist/web/assets/erlang-59ohNboI.js +0 -1
- package/dist/web/assets/fsharp-D2W_zG4w.js +0 -1
- package/dist/web/assets/gleam-CSRkHgEL.js +0 -1
- package/dist/web/assets/go-rLFTqkRN.js +0 -1
- package/dist/web/assets/graphql-BoW1g5X9.js +0 -1
- package/dist/web/assets/graphql-C2HCcBds.js +0 -1
- package/dist/web/assets/groovy-CacY0gHj.js +0 -1
- package/dist/web/assets/haskell-D8IpX4py.js +0 -1
- package/dist/web/assets/hcl-Dh228itO.js +0 -1
- package/dist/web/assets/highlight.worker-D2jBd466.js +0 -153
- package/dist/web/assets/html-DZNlqGBh.js +0 -1
- package/dist/web/assets/ini-0B7NLFlx.js +0 -1
- package/dist/web/assets/ini-DiZ1IqbV.js +0 -1
- package/dist/web/assets/java-BtIQNnN0.js +0 -1
- package/dist/web/assets/java-_ATy9zCa.js +0 -1
- package/dist/web/assets/json-C3WlssX3.js +0 -1
- package/dist/web/assets/json5-BR5RXkoi.js +0 -1
- package/dist/web/assets/jsx-C4yDKi0A.js +0 -1
- package/dist/web/assets/julia-CBcsyk3j.js +0 -1
- package/dist/web/assets/kotlin-DhhofPvG.js +0 -1
- package/dist/web/assets/lua-B0e3uOiv.js +0 -1
- package/dist/web/assets/lua-pjIdZuk8.js +0 -1
- package/dist/web/assets/makefile-Dixweg8N.js +0 -1
- package/dist/web/assets/markdown-CjQmuOi1.js +0 -1
- package/dist/web/assets/mdx-DQZ5AkYe.js +0 -1
- package/dist/web/assets/nginx-DbUAZ-J7.js +0 -1
- package/dist/web/assets/nix-Cl_7024t.js +0 -1
- package/dist/web/assets/objective-c-D1A_Heim.js +0 -1
- package/dist/web/assets/ocaml-O90oeIOV.js +0 -1
- package/dist/web/assets/perl-CCy4CjC0.js +0 -1
- package/dist/web/assets/php-3goRFXPs.js +0 -1
- package/dist/web/assets/postcss-D_Wz94rJ.js +0 -1
- package/dist/web/assets/powershell-QtSnmXcu.js +0 -1
- package/dist/web/assets/prisma-DMgNhnYS.js +0 -1
- package/dist/web/assets/properties-DiZ1IqbV.js +0 -1
- package/dist/web/assets/proto-DB4EqR-F.js +0 -1
- package/dist/web/assets/python-C5TF47hQ.js +0 -1
- package/dist/web/assets/python-CzFU0dpx.js +0 -1
- package/dist/web/assets/r-BXEss897.js +0 -1
- package/dist/web/assets/r-DWzjseEo.js +0 -1
- package/dist/web/assets/ruby-ChLscevq.js +0 -1
- package/dist/web/assets/rust-DpiIf5JO.js +0 -1
- package/dist/web/assets/scala-BiFt_7mu.js +0 -1
- package/dist/web/assets/shellscript-CVTB3cr6.js +0 -1
- package/dist/web/assets/shellscript-CqHdAlCp.js +0 -1
- package/dist/web/assets/sql-CNu3Or2W.js +0 -1
- package/dist/web/assets/sql-CfM2IJm3.js +0 -1
- package/dist/web/assets/svelte-Bte6OA2r.js +0 -1
- package/dist/web/assets/swift-CyEgAFGc.js +0 -1
- package/dist/web/assets/terraform-DswuEJGm.js +0 -1
- package/dist/web/assets/toml-CcmNWLt0.js +0 -1
- package/dist/web/assets/tsx-CGosfAUg.js +0 -1
- package/dist/web/assets/typescript-Bb1J8qyy.js +0 -1
- package/dist/web/assets/vue-CcmjViMa.js +0 -1
- package/dist/web/assets/xml-Bvlx11yh.js +0 -1
- package/dist/web/assets/xml-Byfru430.js +0 -1
- package/dist/web/assets/yaml-DDA_XMNu.js +0 -1
- package/dist/web/assets/yaml-DijMHRDA.js +0 -1
- package/dist/web/assets/zig-CMLA9XwU.js +0 -1
package/README.md
CHANGED
|
@@ -71,10 +71,14 @@ sans changer l'ordre).
|
|
|
71
71
|
| Arbre | Dossiers repliables (sous-dossiers avant fichiers, A→Z ou Taille) avec changements, fichiers vus, threads |
|
|
72
72
|
| Liens | Fichiers en ordre de lecture « base d'abord », nombre d'imports / d'utilisateurs, graphe plein écran |
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
la
|
|
74
|
+
**Langages pris en charge** : TypeScript / JavaScript, HTML, CSS / SCSS / Sass / Less, Markdown, JSON et texte brut
|
|
75
|
+
(`.txt`). Seuls les fichiers de ces langages sont analysés et colorés ; les autres s'affichent en texte simple et
|
|
76
|
+
peuvent seulement être la cible d'un lien. Les liens sont calculés côté serveur sur le contenu complet des fichiers au
|
|
77
|
+
head de la PR : AST TypeScript pour TS/JS (y compris `.js` → `.ts`, `require`, `import()`) ; `<script src>` et
|
|
78
|
+
`<link href>` pour HTML (URL relatives, ou `/…` depuis le dossier de la page) ; `@import` / `@use` / `@forward` pour les
|
|
79
|
+
feuilles de style (partiels `_x.scss`, `index`, chemins de chargement) ; les mentions (nom de fichier en CamelCase, ou
|
|
80
|
+
nom avec extension, ou chemin) valent pour tous ces langages. Les alias `tsconfig` `paths` autres que `@/`, `~/`, `#`
|
|
81
|
+
ne sont pas résolus.
|
|
78
82
|
|
|
79
83
|
**Ordre « base d'abord »** (vue Liens) : ordre topologique, chaque fichier après ceux qu'il importe ou mentionne, les
|
|
80
84
|
plus utilisés en premier, les cycles départagés de la même façon et les fichiers sans lien à la fin. On relit la PR de
|
|
@@ -83,12 +87,11 @@ ses fondations vers ce qui les assemble.
|
|
|
83
87
|
**Voisinage** (onglet du panneau de droite, 520 px, quelle que soit la vue de gauche) : graphe du fichier courant, ce
|
|
84
88
|
qu'il utilise → fichier → ce qui l'utilise, avec tous ses voisins ; clic sur un voisin pour l'ouvrir.
|
|
85
89
|
|
|
86
|
-
**Monorepos** : chaque dossier contenant un
|
|
87
|
-
`Cargo.toml`, `pom.xml`, `build.gradle`, `composer.json`) est un package ; à partir de deux, l'ordre devient
|
|
90
|
+
**Monorepos** : chaque dossier contenant un `package.json` est un package ; à partir de deux, l'ordre devient
|
|
88
91
|
hiérarchique : packages du plus utilisé au plus dépendant (dépendances déclarées entre packages du workspace, y
|
|
89
92
|
compris via un package non modifié, + imports entre fichiers), puis la base d'abord dans chaque package. Les imports
|
|
90
|
-
par nom de package (`@acme/shared`, `@acme/shared/x
|
|
91
|
-
(`exports` / `main` / `types` de `package.json`, sources `src/` correspondantes, `src/index
|
|
93
|
+
par nom de package (`@acme/shared`, `@acme/shared/x`) sont résolus vers le point d'entrée du package
|
|
94
|
+
(`exports` / `main` / `types` de `package.json`, sources `src/` correspondantes, `src/index.*`). La
|
|
92
95
|
vue Liens groupe les fichiers par package et le graphe plein écran les encadre ; il affiche aussi les autres packages du
|
|
93
96
|
monorepo et les dépendances entre packages (option « Autres packages du monorepo ») : en couleur uniquement les
|
|
94
97
|
packages qui contiennent des fichiers modifiés (et les liens entre eux), le reste en gris. Le graphe de voisinage
|
|
@@ -101,12 +104,24 @@ La description de la PR s'ouvre dans l'onglet « Description » du panneau de dr
|
|
|
101
104
|
## Architecture
|
|
102
105
|
|
|
103
106
|
```
|
|
104
|
-
apps/cli
|
|
105
|
-
apps/server
|
|
106
|
-
apps/web
|
|
107
|
-
packages/shared
|
|
107
|
+
apps/cli paquet npm `better-review` : serveur + packages du workspace groupés par esbuild, front dans dist/web
|
|
108
|
+
apps/server Node + Hono + tRPC v11 : proxy GitHub (GraphQL, diffs REST), SQLite, polling → subscriptions SSE
|
|
109
|
+
apps/web Vite + React + Mantine, TanStack Router / Query, diff virtualisé, coloration Shiki en Web Worker
|
|
110
|
+
packages/shared schémas zod, parseur de diff unifié (empreinte de hunk partagée serveur / navigateur)
|
|
111
|
+
packages/language briques communes aux langages : registre, chemins, index des fichiers, contrats d'analyse / coloration
|
|
112
|
+
packages/lang-typescript TS / JS : imports (AST TypeScript), écosystème npm (package.json), grammaires Shiki
|
|
113
|
+
packages/lang-html HTML : `<script src>`, `<link href>`, grammaire Shiki
|
|
114
|
+
packages/lang-css CSS / SCSS / Sass / Less : `@import` / `@use` / `@forward` (résolution façon Sass), grammaires Shiki
|
|
115
|
+
packages/lang-markdown Markdown : mentions, grammaire Shiki
|
|
116
|
+
packages/lang-json JSON / JSONC : mentions, grammaires Shiki
|
|
117
|
+
packages/lang-text texte brut : mentions
|
|
108
118
|
```
|
|
109
119
|
|
|
120
|
+
Chaque package de langage expose une partie `./analysis` (serveur : `LanguageAnalyzer`, et `Ecosystem` pour les
|
|
121
|
+
manifestes) et une partie `./highlight` (navigateur : `LanguageHighlighter`, grammaires chargées à la demande). Ajouter
|
|
122
|
+
un langage : créer `packages/lang-<nom>` sur ce modèle, puis l'enregistrer dans `apps/server/src/languages.ts` et
|
|
123
|
+
`apps/web/src/highlight/languages.ts` (seuls points d'enregistrement).
|
|
124
|
+
|
|
110
125
|
- Les diffs sont demandés entre deux SHA (immuables) et mis en cache définitivement.
|
|
111
126
|
- La coloration syntaxique porte sur le fichier entier (blobs désignés par les lignes `index` du diff, mis en cache
|
|
112
127
|
définitivement) : un commentaire ou une chaîne ouvert hors d'un hunk est coloré correctement. Fichier trop gros ou
|