Releases: univ-lehavre/atlas
Release list
@univ-lehavre/atlas-logos@3.0.0
Major Changes
-
#211
fc5dfb6Thanks @chasset! - Création de la catégorieassets/et extraction du CLI d'installation des logos.@univ-lehavre/atlas-logos(auparavantpackages/logos) est désormais dansassets/logos/. Le paquet ne contient plus que des fichiers statiques (PNG, SVG, JPG). Lebinatlas-logos-installa été retiré (breaking change) — l'outil est maintenant dans@univ-lehavre/atlas-logos-cli.@univ-lehavre/atlas-logos-cliest nouveau. Il expose lebinatlas-logos-install <target-dir>qui résout@univ-lehavre/atlas-logosviacreateRequireet copie les fichiers dans le répertoire cible.- Les apps
amarre,ecrinetfind-an-expertconsomment désormais@univ-lehavre/atlas-logos-clidansdevDependencies(au lieu de@univ-lehavre/atlas-logosdansdependencies). Le scriptpreparereste inchangé :atlas-logos-install static/logos.
Migration pour un consommateur externe utilisant le bin :
- "dependencies": { "@univ-lehavre/atlas-logos": "^1.2.0" } + "devDependencies": { "@univ-lehavre/atlas-logos-cli": "^1.0.0" }
Aucun changement pour les consommateurs qui importent directement les fichiers (
@univ-lehavre/atlas-logos/ulhn.svg, etc.) : ce chemin reste identique en 2.0.0.
@univ-lehavre/atlas-logos-cli@2.0.1
Patch Changes
- #250
178dca4Thanks @chasset! - Première publication de ces 8 CLIs sur les registres npm (npmjs.org +
GitHub Packages). Le code est inchangé ; ce bumppatchdéclenche
simplement leur release initiale via le pipeline Changesets existant
(cf. ADR 0017).
atlas-biblio-cliétait déjà publié et n'est pas concerné.
@univ-lehavre/atlas-crf-core@2.0.1
Patch Changes
-
#198
69d3dfdThanks @chasset! - Triage complet des 39 alertes CodeQL ouvertes restantes après #194 : 13 fixes en code + 26 dismissals justifiés via gh API (état final attendu après re-scan : 0 alerte ouverte).Fixes code
cli/crf-openapi/src/extractor/index.ts:execSync(unzip … ${zipPath} …)→execFileSync('unzip', [...])(pas de shell, args en tableau). Fermejs/shell-command-constructed-from-input(erreur) +js/shell-command-injection-from-environment.packages/citation-validate/src/store/{loader,saver}.test.ts: remplace les paths tmp prévisibles (join(tmpdir(),…-${Date.now()}.json)) parmkdtempSync(join(tmpdir(), 'atlas-…-')). Ferme 5 ×js/insecure-temporary-file.apps/amarre/scripts/manage-baselines.ts: élimine la TOCTOUexistsSync+readFileSync+writeFileSyncau profit d'untry { readFileSync } catch (ENOENT). Fermejs/file-system-race.apps/crf-dashboard/src/routes/api/logs/+server.ts: supprime la branche(cache !== null && isCacheStale(cache))déjà court-circuitée par le|| cache === nullen amont. Fermejs/comparison-between-incompatible-types.- Suppression dead code/imports inutilisés (4 ×
js/unused-local-variablenote) :apps/ecrin/src/lib/transformers/build-name.ts: helpersgetID,getECRcodejamais exportés ni utilisés (+ importECRorphelin).packages/citation-validate/src/events/updater-effect.test.ts: helperprovideStoresdéfini mais les tests appellentEffect.provideServiceinline.packages/crf-core/src/validation/validation.test.ts: importsEMAIL_PATTERN,RECORD_ID_PATTERN,VERSION_PATTERN(testés indirectement via leurs validators).
Dismissals (gh API)
- 9 ×
js/polynomial-redosdanscli/crf-openapi/src/core/parsers/(won't fix) : outil CLI offline parsant des sources REDCap upstream téléchargées manuellement ; input trusted, pas user-provided ; risque DoS limité à la machine de dev. - 16 ×
js/file-access-to-httpdanssandbox/crf-sandbox/tests/,sandbox/amarre-sandbox/tests/e2e/(used in tests) : code test/sandbox lisant un token de test depuis.env.testpour fetcherlocalhost:8888— pas de prod. - 1 ×
js/file-access-to-httpdanspackages/atlas-stats/src/github.ts(false positive) : pattern d'auth GitHub API standard (URL hardcodée, seul l'Authorizationheader dérive d'un file).
@univ-lehavre/atlas-researcher-profiles@2.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Renommage du cluster OpenAlex en clustercitationpour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée aveccitation-types).Packages renommés
Avant (npm) Après (npm) @univ-lehavre/atlas-fetch-openalex@univ-lehavre/atlas-citation-fetch@univ-lehavre/atlas-openalex@univ-lehavre/atlas-citation@univ-lehavre/atlas-validate-openalex@univ-lehavre/atlas-citation-validate@univ-lehavre/atlas-openalex-cli@univ-lehavre/atlas-citation-cliLes anciens packages npm seront dépréciés vers les nouveaux noms.
Bin renommé
atlas-openalex→atlas-citation(dans@univ-lehavre/atlas-citation-cli)
Identifiants publics renommés
- Types :
OpenAlexConfig→CitationConfig,OpenalexResponse→CitationResponse,OpenalexSearchAuthorAffiliationResult→CitationSearchAuthorAffiliationResult - Erreurs :
OpenAlexSearchError(exporté par@univ-lehavre/atlas-researcher-profiles) →CitationSearchError - Champs :
openalex_api_url→citation_api_url,openalex_api_key→citation_api_key - Fichiers :
fetch-openalex.ts,fetch-openalex-entities.ts,types/openalex.ts→fetch-citation.ts,fetch-citation-entities.ts,types/citation.ts - Apps :
apps/find-an-expert/src/lib/server/openalex/→apps/find-an-expert/src/lib/server/citation/
Conservé (texte descriptif uniquement)
- URLs d'API (
https://openalex.org/...) — réelle adresse d'API tierce - Messages d'erreur et JSDoc mentionnant "OpenAlex" — texte explicatif
- Variables d'environnement
OPENALEX_*— convention imposée par le service tiers
Migration côté consommateur
- import { type OpenAlexConfig } from '@univ-lehavre/atlas-fetch-openalex'; + import { type CitationConfig } from '@univ-lehavre/atlas-citation-fetch';
- import { type OpenalexSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-openalex'; + import { type CitationSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-citation';
Note sur
@univ-lehavre/atlas-find-an-expert: l'app n'est pas publiée sur npm, mais reçoit un bump major car ses imports et la structure de ses dossierslib/server/citation/changent — utile pour le suivi changelog interne. -
#125
c616cabThanks @chasset! - Renommage du package@univ-lehavre/atlas-openalex-typesen@univ-lehavre/atlas-citation-typespour retirer toute référence à une marque tierce dans les identifiants publics.Breaking changes —
@univ-lehavre/atlas-citation-types- Le package npm s'appelle désormais
@univ-lehavre/atlas-citation-types. L'ancien@univ-lehavre/atlas-openalex-typessera déprécié. - Renommages d'exports :
OpenAlexID→CitationID(type brandé)asOpenAlexID→asCitationID(constructeur brandé)OpenalexResponse→CitationResponse(wrapper de réponse paginée)FetchOpenAlexAPIOptions→FetchCitationAPIOptions(options de requête)
- Les URLs validées (
https://openalex.org/...) et les messages d'erreur restent inchangés — la marque OpenAlex est mentionnée uniquement dans le texte descriptif (README, JSDoc, messages), jamais dans les identifiants.
Migration côté consommateur
- import { asOpenAlexID, type OpenAlexID } from '@univ-lehavre/atlas-openalex-types'; + import { asCitationID, type CitationID } from '@univ-lehavre/atlas-citation-types';
Consommateurs impactés
@univ-lehavre/atlas-fetch-openalex,@univ-lehavre/atlas-validate-openalex,@univ-lehavre/atlas-researcher-profiles: imports et identifiants dérivés (get*OpenAlexID*→get*CitationID*) mis à jour.@univ-lehavre/atlas-biblio-cli,@univ-lehavre/atlas-researcher-profiles-cli: imports mis à jour, surface CLI inchangée.
- Le package npm s'appelle désormais
-
#125
c616cabThanks @chasset! - Renommage du cluster REDCap (packages internes) en clustercrfpour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée aveccitation-typeset le clustercitation.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-core@univ-lehavre/atlas-crf-core@univ-lehavre/atlas-redcap-client@univ-lehavre/atlas-crf-client@univ-lehavre/atlas-redcap-logs@univ-lehavre/atlas-crf-logsLes packages restants nommés
redcap-*(apps/redcap-dashboard, cli/redcap-openapi, cli/redcap-stats, sandbox/redcap-sandbox) seront traités dans la PR 4.Identifiants publics renommés (PascalCase, ~798 occurrences)
Toutes les classes/types/erreurs avec préfixe
Redcap→Crf:RedcapClient→CrfClient,RedcapClientError→CrfClientError,RedcapClientService→CrfClientServiceRedcapConfig→CrfConfig,RedcapConnectionConfig→CrfConnectionConfigRedcapAdapter→CrfAdapter,RedcapFeatures→CrfFeaturesRedcapToken/RedcapTokenType/RedcapUrl/RedcapUrlType(brands) →Crf*correspondantsRedcapApiError,RedcapHttpError,RedcapNetworkError,RedcapFetchError,RedcapError,RedcapWriteError→Crf*RedcapLogEntry→CrfLogEntry- Fonctions :
createRedcapClient,makeRedcapClient,makeRedcapClientLayer,isRedcapErrorResponse,isValidRedcapName,checkRedcapServer→*Crf*
Variables / champs
redcapApiToken,redcapApiUrl,redcapConfig,redcapResult,redcapToken,redcapUrl→crf*REDCAP_NAME_PATTERN/REDCAP_TOKEN_PATTERN→CRF_*- Codes d'erreur HTTP :
redcap_http_error→crf_http_error,redcap_api_error→crf_api_error,redcap_error→crf_error - Variable exportée dans
services/crf/src/server/client.ts:redcap→client
Sous-commandes CLI
cli/researcher-profiles:from-redcap→from-crfcli/crf:crf-redcap→crf-api
Dossiers / fichiers renommés
Avant Après apps/amarre/src/lib/server/redcap/apps/amarre/src/lib/server/crf/apps/ecrin/src/lib/redcap/apps/ecrin/src/lib/crf/cli/crf/src/commands/redcap/cli/crf/src/commands/api/services/crf/src/server/redcap.tsservices/crf/src/server/client.tscli/researcher-profiles/src/commands/from-redcap.tscli/researcher-profiles/src/commands/from-crf.tsConservé (texte descriptif uniquement)
- Variables d'environnement (
REDCAP_API_TOKEN,REDCAP_API_URL,REDCAP_URL,PUBLIC_REDCAP_URL) - Champs de données REDCap natifs (
redcap_event_name,redcap_repeat_instance,redcap_repeat_instrument,redcap_v,redcap16) - URLs (
redcap.example.com,projectredcap.org) - Messages d'erreur, JSDoc, libellés utilisateur mentionnant REDCap
apps/redcap-dashboard/.redcap-stats.json(entrée.gitignore, sera traitée en PR 4)
Migration côté consommateur
- import { type RedcapClient, createRedcapClient } from '@univ-lehavre/atlas-redcap-client'; + import { type CrfClient, createCrfClient } from '@univ-lehavre/atlas-crf-client';
Patch Changes
@univ-lehavre/atlas-researcher-profiles-cli@1.4.2
Patch Changes
-
#125
c616cabThanks @chasset! - Renommage du cluster OpenAlex en clustercitationpour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée aveccitation-types).Packages renommés
Avant (npm) Après (npm) @univ-lehavre/atlas-fetch-openalex@univ-lehavre/atlas-citation-fetch@univ-lehavre/atlas-openalex@univ-lehavre/atlas-citation@univ-lehavre/atlas-validate-openalex@univ-lehavre/atlas-citation-validate@univ-lehavre/atlas-openalex-cli@univ-lehavre/atlas-citation-cliLes anciens packages npm seront dépréciés vers les nouveaux noms.
Bin renommé
atlas-openalex→atlas-citation(dans@univ-lehavre/atlas-citation-cli)
Identifiants publics renommés
- Types :
OpenAlexConfig→CitationConfig,OpenalexResponse→CitationResponse,OpenalexSearchAuthorAffiliationResult→CitationSearchAuthorAffiliationResult - Erreurs :
OpenAlexSearchError(exporté par@univ-lehavre/atlas-researcher-profiles) →CitationSearchError - Champs :
openalex_api_url→citation_api_url,openalex_api_key→citation_api_key - Fichiers :
fetch-openalex.ts,fetch-openalex-entities.ts,types/openalex.ts→fetch-citation.ts,fetch-citation-entities.ts,types/citation.ts - Apps :
apps/find-an-expert/src/lib/server/openalex/→apps/find-an-expert/src/lib/server/citation/
Conservé (texte descriptif uniquement)
- URLs d'API (
https://openalex.org/...) — réelle adresse d'API tierce - Messages d'erreur et JSDoc mentionnant "OpenAlex" — texte explicatif
- Variables d'environnement
OPENALEX_*— convention imposée par le service tiers
Migration côté consommateur
- import { type OpenAlexConfig } from '@univ-lehavre/atlas-fetch-openalex'; + import { type CitationConfig } from '@univ-lehavre/atlas-citation-fetch';
- import { type OpenalexSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-openalex'; + import { type CitationSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-citation';
Note sur
@univ-lehavre/atlas-find-an-expert: l'app n'est pas publiée sur npm, mais reçoit un bump major car ses imports et la structure de ses dossierslib/server/citation/changent — utile pour le suivi changelog interne. -
#125
c616cabThanks @chasset! - Renommage du package@univ-lehavre/atlas-openalex-typesen@univ-lehavre/atlas-citation-typespour retirer toute référence à une marque tierce dans les identifiants publics.Breaking changes —
@univ-lehavre/atlas-citation-types- Le package npm s'appelle désormais
@univ-lehavre/atlas-citation-types. L'ancien@univ-lehavre/atlas-openalex-typessera déprécié. - Renommages d'exports :
OpenAlexID→CitationID(type brandé)asOpenAlexID→asCitationID(constructeur brandé)OpenalexResponse→CitationResponse(wrapper de réponse paginée)FetchOpenAlexAPIOptions→FetchCitationAPIOptions(options de requête)
- Les URLs validées (
https://openalex.org/...) et les messages d'erreur restent inchangés — la marque OpenAlex est mentionnée uniquement dans le texte descriptif (README, JSDoc, messages), jamais dans les identifiants.
Migration côté consommateur
- import { asOpenAlexID, type OpenAlexID } from '@univ-lehavre/atlas-openalex-types'; + import { asCitationID, type CitationID } from '@univ-lehavre/atlas-citation-types';
Consommateurs impactés
@univ-lehavre/atlas-fetch-openalex,@univ-lehavre/atlas-validate-openalex,@univ-lehavre/atlas-researcher-profiles: imports et identifiants dérivés (get*OpenAlexID*→get*CitationID*) mis à jour.@univ-lehavre/atlas-biblio-cli,@univ-lehavre/atlas-researcher-profiles-cli: imports mis à jour, surface CLI inchangée.
- Le package npm s'appelle désormais
-
#125
c616cabThanks @chasset! - Renommage du cluster REDCap (packages internes) en clustercrfpour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée aveccitation-typeset le clustercitation.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-core@univ-lehavre/atlas-crf-core@univ-lehavre/atlas-redcap-client@univ-lehavre/atlas-crf-client@univ-lehavre/atlas-redcap-logs@univ-lehavre/atlas-crf-logsLes packages restants nommés
redcap-*(apps/redcap-dashboard, cli/redcap-openapi, cli/redcap-stats, sandbox/redcap-sandbox) seront traités dans la PR 4.Identifiants publics renommés (PascalCase, ~798 occurrences)
Toutes les classes/types/erreurs avec préfixe
Redcap→Crf:RedcapClient→CrfClient,RedcapClientError→CrfClientError,RedcapClientService→CrfClientServiceRedcapConfig→CrfConfig,RedcapConnectionConfig→CrfConnectionConfigRedcapAdapter→CrfAdapter,RedcapFeatures→CrfFeaturesRedcapToken/RedcapTokenType/RedcapUrl/RedcapUrlType(brands) →Crf*correspondantsRedcapApiError,RedcapHttpError,RedcapNetworkError,RedcapFetchError,RedcapError,RedcapWriteError→Crf*RedcapLogEntry→CrfLogEntry- Fonctions :
createRedcapClient,makeRedcapClient,makeRedcapClientLayer,isRedcapErrorResponse,isValidRedcapName,checkRedcapServer→*Crf*
Variables / champs
redcapApiToken,redcapApiUrl,redcapConfig,redcapResult,redcapToken,redcapUrl→crf*REDCAP_NAME_PATTERN/REDCAP_TOKEN_PATTERN→CRF_*- Codes d'erreur HTTP :
redcap_http_error→crf_http_error,redcap_api_error→crf_api_error,redcap_error→crf_error - Variable exportée dans
services/crf/src/server/client.ts:redcap→client
Sous-commandes CLI
cli/researcher-profiles:from-redcap→from-crfcli/crf:crf-redcap→crf-api
Dossiers / fichiers renommés
Avant Après apps/amarre/src/lib/server/redcap/apps/amarre/src/lib/server/crf/apps/ecrin/src/lib/redcap/apps/ecrin/src/lib/crf/cli/crf/src/commands/redcap/cli/crf/src/commands/api/services/crf/src/server/redcap.tsservices/crf/src/server/client.tscli/researcher-profiles/src/commands/from-redcap.tscli/researcher-profiles/src/commands/from-crf.tsConservé (texte descriptif uniquement)
- Variables d'environnement (
REDCAP_API_TOKEN,REDCAP_API_URL,REDCAP_URL,PUBLIC_REDCAP_URL) - Champs de données REDCap natifs (
redcap_event_name,redcap_repeat_instance,redcap_repeat_instrument,redcap_v,redcap16) - URLs (
redcap.example.com,projectredcap.org) - Messages d'erreur, JSDoc, libellés utilisateur mentionnant REDCap
apps/redcap-dashboard/.redcap-stats.json(entrée.gitignore, sera traitée en PR 4)
Migration côté consommateur
- import { type RedcapClient, createRedcapClient } from '@univ-lehavre/atlas-redcap-client'; + import { type CrfClient, createCrfClient } from '@univ-lehavre/atlas-crf-client';
-
Updated dependencies [
c616cab,c616cab,c616cab]:- @univ-lehavre/atlas-citation-fetch@2.0.0
- @univ-lehavre/atlas-researcher-profiles@2.0.0
- @univ-lehavre/atlas-citation-types@4.0.0
@univ-lehavre/atlas-find-an-expert@2.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Renommage du package Appwrite enbaas(Backend-as-a-Service) pour retirer la marque Appwrite des identifiants publics du monorepo. Fin de la migration anti-marque (PR 1 citation-types, PR 2 cluster citation, PR 3 cluster crf).Package renommé (npm + dossier + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-appwrite@univ-lehavre/atlas-baasIdentifiants publics renommés
Types et erreurs :
AppwriteConfig→BaasConfig
Classes et fonctions :
AppwriteUserRepository→BaasUserRepositoryAppwriteCurrentConsentRepository→BaasCurrentConsentRepositoryAppwriteConsentEventRepository→BaasConsentEventRepositoryMockAppwriteUserRepository→MockBaasUserRepositorycheckAppwrite/checkAppwriteDatabase/checkAppwriteEndpoint→checkBaas*isAppwriteAuthError→isBaasAuthErrormapAppwriteUserToProfile→mapBaasUserToProfileserviceAppwrite→serviceBaas
Schémas et clés de config :
appwriteDatetime(zod schema) →baasDatetime- Clé
appwritedansAuthConfig→baas NodeAppwrite(alias d'import du SDK) →BaasSdk
Codes d'état et traductions :
'appwrite_unavailable'(string code) →'baas_unavailable'appwriteUnavailable,appwriteUnavailableTitle,appwriteUnavailableDescription(clés i18n) →baas*brand.appwrite(clé d'objet) →brand.baasname: 'appwrite'(service health) →name: 'baas'
Dossiers / fichiers renommés
Avant Après packages/appwrite/packages/baas/apps/amarre/src/lib/server/appwrite/apps/amarre/src/lib/server/baas/apps/ecrin/src/lib/appwrite/apps/ecrin/src/lib/baas/apps/find-an-expert/src/lib/server/appwrite/apps/find-an-expert/src/lib/server/baas/.env.dev.appwrite.example.env.dev.baas.example.env.prod.appwrite.example.env.prod.baas.exampledocs/projects/ecrin/find-an-expert/appwrite-setup.md.../baas-setup.mdConservé (texte descriptif uniquement)
- Dépendances npm tierces :
appwrite,node-appwrite - Classe
AppwriteException(du SDK officiel) - URLs Appwrite Cloud (
cloud.appwrite.io) - Variables d'environnement
APPWRITE_*,PUBLIC_APPWRITE_*(conventions choisies/imposées par les apps consommant le SDK) - Mots-clés npm
"appwrite"(discoverability) - Messages d'erreur, JSDoc, libellés utilisateur
Migration locale requise
Les fichiers d'environnement locaux (gitignored) doivent être renommés :
mv .env.dev.appwrite .env.dev.baas mv .env.prod.appwrite .env.prod.baas
Migration côté consommateur
- import { createAdminClient, type AppwriteConfig } from '@univ-lehavre/atlas-appwrite'; + import { createAdminClient, type BaasConfig } from '@univ-lehavre/atlas-baas';
- const auth = createAuthService({ appwrite: { ... }, ... }); + const auth = createAuthService({ baas: { ... }, ... });
-
#125
c616cabThanks @chasset! - Renommage du cluster OpenAlex en clustercitationpour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée aveccitation-types).Packages renommés
Avant (npm) Après (npm) @univ-lehavre/atlas-fetch-openalex@univ-lehavre/atlas-citation-fetch@univ-lehavre/atlas-openalex@univ-lehavre/atlas-citation@univ-lehavre/atlas-validate-openalex@univ-lehavre/atlas-citation-validate@univ-lehavre/atlas-openalex-cli@univ-lehavre/atlas-citation-cliLes anciens packages npm seront dépréciés vers les nouveaux noms.
Bin renommé
atlas-openalex→atlas-citation(dans@univ-lehavre/atlas-citation-cli)
Identifiants publics renommés
- Types :
OpenAlexConfig→CitationConfig,OpenalexResponse→CitationResponse,OpenalexSearchAuthorAffiliationResult→CitationSearchAuthorAffiliationResult - Erreurs :
OpenAlexSearchError(exporté par@univ-lehavre/atlas-researcher-profiles) →CitationSearchError - Champs :
openalex_api_url→citation_api_url,openalex_api_key→citation_api_key - Fichiers :
fetch-openalex.ts,fetch-openalex-entities.ts,types/openalex.ts→fetch-citation.ts,fetch-citation-entities.ts,types/citation.ts - Apps :
apps/find-an-expert/src/lib/server/openalex/→apps/find-an-expert/src/lib/server/citation/
Conservé (texte descriptif uniquement)
- URLs d'API (
https://openalex.org/...) — réelle adresse d'API tierce - Messages d'erreur et JSDoc mentionnant "OpenAlex" — texte explicatif
- Variables d'environnement
OPENALEX_*— convention imposée par le service tiers
Migration côté consommateur
- import { type OpenAlexConfig } from '@univ-lehavre/atlas-fetch-openalex'; + import { type CitationConfig } from '@univ-lehavre/atlas-citation-fetch';
- import { type OpenalexSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-openalex'; + import { type CitationSearchAuthorAffiliationResult } from '@univ-lehavre/atlas-citation';
Note sur
@univ-lehavre/atlas-find-an-expert: l'app n'est pas publiée sur npm, mais reçoit un bump major car ses imports et la structure de ses dossierslib/server/citation/changent — utile pour le suivi changelog interne.
Patch Changes
@univ-lehavre/atlas-ecrin@3.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Renommage du package Appwrite enbaas(Backend-as-a-Service) pour retirer la marque Appwrite des identifiants publics du monorepo. Fin de la migration anti-marque (PR 1 citation-types, PR 2 cluster citation, PR 3 cluster crf).Package renommé (npm + dossier + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-appwrite@univ-lehavre/atlas-baasIdentifiants publics renommés
Types et erreurs :
AppwriteConfig→BaasConfig
Classes et fonctions :
AppwriteUserRepository→BaasUserRepositoryAppwriteCurrentConsentRepository→BaasCurrentConsentRepositoryAppwriteConsentEventRepository→BaasConsentEventRepositoryMockAppwriteUserRepository→MockBaasUserRepositorycheckAppwrite/checkAppwriteDatabase/checkAppwriteEndpoint→checkBaas*isAppwriteAuthError→isBaasAuthErrormapAppwriteUserToProfile→mapBaasUserToProfileserviceAppwrite→serviceBaas
Schémas et clés de config :
appwriteDatetime(zod schema) →baasDatetime- Clé
appwritedansAuthConfig→baas NodeAppwrite(alias d'import du SDK) →BaasSdk
Codes d'état et traductions :
'appwrite_unavailable'(string code) →'baas_unavailable'appwriteUnavailable,appwriteUnavailableTitle,appwriteUnavailableDescription(clés i18n) →baas*brand.appwrite(clé d'objet) →brand.baasname: 'appwrite'(service health) →name: 'baas'
Dossiers / fichiers renommés
Avant Après packages/appwrite/packages/baas/apps/amarre/src/lib/server/appwrite/apps/amarre/src/lib/server/baas/apps/ecrin/src/lib/appwrite/apps/ecrin/src/lib/baas/apps/find-an-expert/src/lib/server/appwrite/apps/find-an-expert/src/lib/server/baas/.env.dev.appwrite.example.env.dev.baas.example.env.prod.appwrite.example.env.prod.baas.exampledocs/projects/ecrin/find-an-expert/appwrite-setup.md.../baas-setup.mdConservé (texte descriptif uniquement)
- Dépendances npm tierces :
appwrite,node-appwrite - Classe
AppwriteException(du SDK officiel) - URLs Appwrite Cloud (
cloud.appwrite.io) - Variables d'environnement
APPWRITE_*,PUBLIC_APPWRITE_*(conventions choisies/imposées par les apps consommant le SDK) - Mots-clés npm
"appwrite"(discoverability) - Messages d'erreur, JSDoc, libellés utilisateur
Migration locale requise
Les fichiers d'environnement locaux (gitignored) doivent être renommés :
mv .env.dev.appwrite .env.dev.baas mv .env.prod.appwrite .env.prod.baas
Migration côté consommateur
- import { createAdminClient, type AppwriteConfig } from '@univ-lehavre/atlas-appwrite'; + import { createAdminClient, type BaasConfig } from '@univ-lehavre/atlas-baas';
- const auth = createAuthService({ appwrite: { ... }, ... }); + const auth = createAuthService({ baas: { ... }, ... });
Patch Changes
-
#125
c616cabThanks @chasset! - Renommage du cluster REDCap (packages internes) en clustercrfpour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée aveccitation-typeset le clustercitation.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-core@univ-lehavre/atlas-crf-core@univ-lehavre/atlas-redcap-client@univ-lehavre/atlas-crf-client@univ-lehavre/atlas-redcap-logs@univ-lehavre/atlas-crf-logsLes packages restants nommés
redcap-*(apps/redcap-dashboard, cli/redcap-openapi, cli/redcap-stats, sandbox/redcap-sandbox) seront traités dans la PR 4.Identifiants publics renommés (PascalCase, ~798 occurrences)
Toutes les classes/types/erreurs avec préfixe
Redcap→Crf:RedcapClient→CrfClient,RedcapClientError→CrfClientError,RedcapClientService→CrfClientServiceRedcapConfig→CrfConfig,RedcapConnectionConfig→CrfConnectionConfigRedcapAdapter→CrfAdapter,RedcapFeatures→CrfFeaturesRedcapToken/RedcapTokenType/RedcapUrl/RedcapUrlType(brands) →Crf*correspondantsRedcapApiError,RedcapHttpError,RedcapNetworkError,RedcapFetchError,RedcapError,RedcapWriteError→Crf*RedcapLogEntry→CrfLogEntry- Fonctions :
createRedcapClient,makeRedcapClient,makeRedcapClientLayer,isRedcapErrorResponse,isValidRedcapName,checkRedcapServer→*Crf*
Variables / champs
redcapApiToken,redcapApiUrl,redcapConfig,redcapResult,redcapToken,redcapUrl→crf*REDCAP_NAME_PATTERN/REDCAP_TOKEN_PATTERN→CRF_*- Codes d'erreur HTTP :
redcap_http_error→crf_http_error,redcap_api_error→crf_api_error,redcap_error→crf_error - Variable exportée dans
services/crf/src/server/client.ts:redcap→client
Sous-commandes CLI
cli/researcher-profiles:from-redcap→from-crfcli/crf:crf-redcap→crf-api
Dossiers / fichiers renommés
Avant Après apps/amarre/src/lib/server/redcap/apps/amarre/src/lib/server/crf/apps/ecrin/src/lib/redcap/apps/ecrin/src/lib/crf/cli/crf/src/commands/redcap/cli/crf/src/commands/api/services/crf/src/server/redcap.tsservices/crf/src/server/client.tscli/researcher-profiles/src/commands/from-redcap.tscli/researcher-profiles/src/commands/from-crf.tsConservé (texte descriptif uniquement)
- Variables d'environnement (
REDCAP_API_TOKEN,REDCAP_API_URL,REDCAP_URL,PUBLIC_REDCAP_URL) - Champs de données REDCap natifs (
redcap_event_name,redcap_repeat_instance,redcap_repeat_instrument,redcap_v,redcap16) - URLs (
redcap.example.com,projectredcap.org) - Messages d'erreur, JSDoc, libellés utilisateur mentionnant REDCap
apps/redcap-dashboard/.redcap-stats.json(entrée.gitignore, sera traitée en PR 4)
Migration côté consommateur
- import { type RedcapClient, createRedcapClient } from '@univ-lehavre/atlas-redcap-client'; + import { type CrfClient, createCrfClient } from '@univ-lehavre/atlas-crf-client';
-
Updated dependencies [
c616cab]:- @univ-lehavre/atlas-baas@2.0.0
@univ-lehavre/atlas-crf@3.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Renommage du cluster REDCap (packages internes) en clustercrfpour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée aveccitation-typeset le clustercitation.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-core@univ-lehavre/atlas-crf-core@univ-lehavre/atlas-redcap-client@univ-lehavre/atlas-crf-client@univ-lehavre/atlas-redcap-logs@univ-lehavre/atlas-crf-logsLes packages restants nommés
redcap-*(apps/redcap-dashboard, cli/redcap-openapi, cli/redcap-stats, sandbox/redcap-sandbox) seront traités dans la PR 4.Identifiants publics renommés (PascalCase, ~798 occurrences)
Toutes les classes/types/erreurs avec préfixe
Redcap→Crf:RedcapClient→CrfClient,RedcapClientError→CrfClientError,RedcapClientService→CrfClientServiceRedcapConfig→CrfConfig,RedcapConnectionConfig→CrfConnectionConfigRedcapAdapter→CrfAdapter,RedcapFeatures→CrfFeaturesRedcapToken/RedcapTokenType/RedcapUrl/RedcapUrlType(brands) →Crf*correspondantsRedcapApiError,RedcapHttpError,RedcapNetworkError,RedcapFetchError,RedcapError,RedcapWriteError→Crf*RedcapLogEntry→CrfLogEntry- Fonctions :
createRedcapClient,makeRedcapClient,makeRedcapClientLayer,isRedcapErrorResponse,isValidRedcapName,checkRedcapServer→*Crf*
Variables / champs
redcapApiToken,redcapApiUrl,redcapConfig,redcapResult,redcapToken,redcapUrl→crf*REDCAP_NAME_PATTERN/REDCAP_TOKEN_PATTERN→CRF_*- Codes d'erreur HTTP :
redcap_http_error→crf_http_error,redcap_api_error→crf_api_error,redcap_error→crf_error - Variable exportée dans
services/crf/src/server/client.ts:redcap→client
Sous-commandes CLI
cli/researcher-profiles:from-redcap→from-crfcli/crf:crf-redcap→crf-api
Dossiers / fichiers renommés
Avant Après apps/amarre/src/lib/server/redcap/apps/amarre/src/lib/server/crf/apps/ecrin/src/lib/redcap/apps/ecrin/src/lib/crf/cli/crf/src/commands/redcap/cli/crf/src/commands/api/services/crf/src/server/redcap.tsservices/crf/src/server/client.tscli/researcher-profiles/src/commands/from-redcap.tscli/researcher-profiles/src/commands/from-crf.tsConservé (texte descriptif uniquement)
- Variables d'environnement (
REDCAP_API_TOKEN,REDCAP_API_URL,REDCAP_URL,PUBLIC_REDCAP_URL) - Champs de données REDCap natifs (
redcap_event_name,redcap_repeat_instance,redcap_repeat_instrument,redcap_v,redcap16) - URLs (
redcap.example.com,projectredcap.org) - Messages d'erreur, JSDoc, libellés utilisateur mentionnant REDCap
apps/redcap-dashboard/.redcap-stats.json(entrée.gitignore, sera traitée en PR 4)
Migration côté consommateur
- import { type RedcapClient, createRedcapClient } from '@univ-lehavre/atlas-redcap-client'; + import { type CrfClient, createCrfClient } from '@univ-lehavre/atlas-crf-client';
Patch Changes
- Updated dependencies [
c616cab]:- @univ-lehavre/atlas-crf-client@3.0.0
@univ-lehavre/atlas-crf-stats-cli@2.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Fin de la migration anti-marque REDCap : renommage des 4 packages restants utilisantredcap-*dans leur nom.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-dashboard@univ-lehavre/atlas-crf-dashboard@univ-lehavre/atlas-redcap-openapi@univ-lehavre/atlas-crf-openapi@univ-lehavre/atlas-redcap-stats-cli@univ-lehavre/atlas-crf-stats-cli@univ-lehavre/atlas-redcap-sandbox@univ-lehavre/atlas-crf-sandboxBins renommés
redcap→crf-openapi(dans@univ-lehavre/atlas-crf-openapi)atlas-redcap-stats→atlas-crf-stats(dans@univ-lehavre/atlas-crf-stats-cli)
Fichiers internes renommés
Avant Après cli/crf-openapi/src/bin/redcap.tscli/crf-openapi/src/bin/crf-openapi.tscli/crf-stats/src/bin/atlas-redcap-stats.tscli/crf-stats/src/bin/atlas-crf-stats.tscli/crf-openapi/specs/versions/redcap-{14,15,16}*.yamlcli/crf-openapi/specs/versions/v{14,15,16}*.yamlsandbox/crf-sandbox/scripts/install-redcap.shsandbox/crf-sandbox/scripts/install-crf.shsandbox/crf-sandbox/scripts/prepare-redcap-source.shsandbox/crf-sandbox/scripts/prepare-crf-source.shCache file renommé
.redcap-stats.json(fichier de cache local créé par@univ-lehavre/atlas-crf-logs) →.crf-stats.json— patch surcrf-logspour le nouveau chemin par défaut.
Conservé (texte descriptif / dépendances tierces / data REDCap)
- Fichiers vendored dans
cli/crf-openapi/upstream/(sources REDCap PHP) — non trackés, gitignored - Fichiers Docker
database.php,init.sql,php.inidanssandbox/crf-sandbox/docker/— infrastructure de test pour instance REDCap réelle - Tokens REDCap de test dans
sandbox/crf-sandbox/docker/config/.env.test(auto-générés pardocker:install, sandbox jetable) - Variables d'environnement (
REDCAP_API_URL,REDCAP_API_TOKEN) - Champs natifs REDCap (
redcap_event_name,redcap_v, etc.) - URLs (
projectredcap.org) - README, JSDoc, libellés utilisateur
Migration côté consommateur
Aucun consommateur externe dans le monorepo n'utilise ces packages (apps et CLIs autonomes). Pour les utilisateurs externes :
- pnpm add @univ-lehavre/atlas-redcap-openapi + pnpm add @univ-lehavre/atlas-crf-openapi
- npx atlas-redcap-stats + npx atlas-crf-stats
Patch Changes
-
#125
c616cabThanks @chasset! - Renommage du cluster REDCap (packages internes) en clustercrfpour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée aveccitation-typeset le clustercitation.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-core@univ-lehavre/atlas-crf-core@univ-lehavre/atlas-redcap-client@univ-lehavre/atlas-crf-client@univ-lehavre/atlas-redcap-logs@univ-lehavre/atlas-crf-logsLes packages restants nommés
redcap-*(apps/redcap-dashboard, cli/redcap-openapi, cli/redcap-stats, sandbox/redcap-sandbox) seront traités dans la PR 4.Identifiants publics renommés (PascalCase, ~798 occurrences)
Toutes les classes/types/erreurs avec préfixe
Redcap→Crf:RedcapClient→CrfClient,RedcapClientError→CrfClientError,RedcapClientService→CrfClientServiceRedcapConfig→CrfConfig,RedcapConnectionConfig→CrfConnectionConfigRedcapAdapter→CrfAdapter,RedcapFeatures→CrfFeaturesRedcapToken/RedcapTokenType/RedcapUrl/RedcapUrlType(brands) →Crf*correspondantsRedcapApiError,RedcapHttpError,RedcapNetworkError,RedcapFetchError,RedcapError,RedcapWriteError→Crf*RedcapLogEntry→CrfLogEntry- Fonctions :
createRedcapClient,makeRedcapClient,makeRedcapClientLayer,isRedcapErrorResponse,isValidRedcapName,checkRedcapServer→*Crf*
Variables / champs
redcapApiToken,redcapApiUrl,redcapConfig,redcapResult,redcapToken,redcapUrl→crf*REDCAP_NAME_PATTERN/REDCAP_TOKEN_PATTERN→CRF_*- Codes d'erreur HTTP :
redcap_http_error→crf_http_error,redcap_api_error→crf_api_error,redcap_error→crf_error - Variable exportée dans
services/crf/src/server/client.ts:redcap→client
Sous-commandes CLI
cli/researcher-profiles:from-redcap→from-crfcli/crf:crf-redcap→crf-api
Dossiers / fichiers renommés
Avant Après apps/amarre/src/lib/server/redcap/apps/amarre/src/lib/server/crf/apps/ecrin/src/lib/redcap/apps/ecrin/src/lib/crf/cli/crf/src/commands/redcap/cli/crf/src/commands/api/services/crf/src/server/redcap.tsservices/crf/src/server/client.tscli/researcher-profiles/src/commands/from-redcap.tscli/researcher-profiles/src/commands/from-crf.tsConservé (texte descriptif uniquement)
- Variables d'environnement (
REDCAP_API_TOKEN,REDCAP_API_URL,REDCAP_URL,PUBLIC_REDCAP_URL) - Champs de données REDCap natifs (
redcap_event_name,redcap_repeat_instance,redcap_repeat_instrument,redcap_v,redcap16) - URLs (
redcap.example.com,projectredcap.org) - Messages d'erreur, JSDoc, libellés utilisateur mentionnant REDCap
apps/redcap-dashboard/.redcap-stats.json(entrée.gitignore, sera traitée en PR 4)
Migration côté consommateur
- import { type RedcapClient, createRedcapClient } from '@univ-lehavre/atlas-redcap-client'; + import { type CrfClient, createCrfClient } from '@univ-lehavre/atlas-crf-client';
-
Updated dependencies [
c616cab,c616cab]:- @univ-lehavre/atlas-crf-logs@2.0.0
@univ-lehavre/atlas-crf-sandbox@2.0.0
Major Changes
-
#125
c616cabThanks @chasset! - Fin de la migration anti-marque REDCap : renommage des 4 packages restants utilisantredcap-*dans leur nom.Packages renommés (npm + dossiers + workspace)
Avant (npm) Après (npm) @univ-lehavre/atlas-redcap-dashboard@univ-lehavre/atlas-crf-dashboard@univ-lehavre/atlas-redcap-openapi@univ-lehavre/atlas-crf-openapi@univ-lehavre/atlas-redcap-stats-cli@univ-lehavre/atlas-crf-stats-cli@univ-lehavre/atlas-redcap-sandbox@univ-lehavre/atlas-crf-sandboxBins renommés
redcap→crf-openapi(dans@univ-lehavre/atlas-crf-openapi)atlas-redcap-stats→atlas-crf-stats(dans@univ-lehavre/atlas-crf-stats-cli)
Fichiers internes renommés
Avant Après cli/crf-openapi/src/bin/redcap.tscli/crf-openapi/src/bin/crf-openapi.tscli/crf-stats/src/bin/atlas-redcap-stats.tscli/crf-stats/src/bin/atlas-crf-stats.tscli/crf-openapi/specs/versions/redcap-{14,15,16}*.yamlcli/crf-openapi/specs/versions/v{14,15,16}*.yamlsandbox/crf-sandbox/scripts/install-redcap.shsandbox/crf-sandbox/scripts/install-crf.shsandbox/crf-sandbox/scripts/prepare-redcap-source.shsandbox/crf-sandbox/scripts/prepare-crf-source.shCache file renommé
.redcap-stats.json(fichier de cache local créé par@univ-lehavre/atlas-crf-logs) →.crf-stats.json— patch surcrf-logspour le nouveau chemin par défaut.
Conservé (texte descriptif / dépendances tierces / data REDCap)
- Fichiers vendored dans
cli/crf-openapi/upstream/(sources REDCap PHP) — non trackés, gitignored - Fichiers Docker
database.php,init.sql,php.inidanssandbox/crf-sandbox/docker/— infrastructure de test pour instance REDCap réelle - Tokens REDCap de test dans
sandbox/crf-sandbox/docker/config/.env.test(auto-générés pardocker:install, sandbox jetable) - Variables d'environnement (
REDCAP_API_URL,REDCAP_API_TOKEN) - Champs natifs REDCap (
redcap_event_name,redcap_v, etc.) - URLs (
projectredcap.org) - README, JSDoc, libellés utilisateur
Migration côté consommateur
Aucun consommateur externe dans le monorepo n'utilise ces packages (apps et CLIs autonomes). Pour les utilisateurs externes :
- pnpm add @univ-lehavre/atlas-redcap-openapi + pnpm add @univ-lehavre/atlas-crf-openapi
- npx atlas-redcap-stats + npx atlas-crf-stats