Skip to content

Releases: univ-lehavre/atlas

@univ-lehavre/atlas-logos@3.0.0

Choose a tag to compare

@chasset chasset released this 01 Jun 16:17
24dc72e

Major Changes

  • #211 fc5dfb6 Thanks @chasset! - Création de la catégorie assets/ et extraction du CLI d'installation des logos.

    • @univ-lehavre/atlas-logos (auparavant packages/logos) est désormais dans assets/logos/. Le paquet ne contient plus que des fichiers statiques (PNG, SVG, JPG). Le bin atlas-logos-install a été retiré (breaking change) — l'outil est maintenant dans @univ-lehavre/atlas-logos-cli.
    • @univ-lehavre/atlas-logos-cli est nouveau. Il expose le bin atlas-logos-install <target-dir> qui résout @univ-lehavre/atlas-logos via createRequire et copie les fichiers dans le répertoire cible.
    • Les apps amarre, ecrin et find-an-expert consomment désormais @univ-lehavre/atlas-logos-cli dans devDependencies (au lieu de @univ-lehavre/atlas-logos dans dependencies). Le script prepare reste 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

Choose a tag to compare

@chasset chasset released this 01 Jun 16:17
24dc72e

Patch Changes

  • #250 178dca4 Thanks @chasset! - Première publication de ces 8 CLIs sur les registres npm (npmjs.org +
    GitHub Packages). Le code est inchangé ; ce bump patch dé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

Choose a tag to compare

@chasset chasset released this 01 Jun 16:17
24dc72e

Patch Changes

  • #198 69d3dfd Thanks @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). Ferme js/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)) par mkdtempSync(join(tmpdir(), 'atlas-…-')). Ferme 5 × js/insecure-temporary-file.
    • apps/amarre/scripts/manage-baselines.ts : élimine la TOCTOU existsSync + readFileSync + writeFileSync au profit d'un try { readFileSync } catch (ENOENT). Ferme js/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 === null en amont. Ferme js/comparison-between-incompatible-types.
    • Suppression dead code/imports inutilisés (4 × js/unused-local-variable note) :
      • apps/ecrin/src/lib/transformers/build-name.ts : helpers getID, getECRcode jamais exportés ni utilisés (+ import ECR orphelin).
      • packages/citation-validate/src/events/updater-effect.test.ts : helper provideStores défini mais les tests appellent Effect.provideService inline.
      • packages/crf-core/src/validation/validation.test.ts : imports EMAIL_PATTERN, RECORD_ID_PATTERN, VERSION_PATTERN (testés indirectement via leurs validators).

    Dismissals (gh API)

    • 9 × js/polynomial-redos dans cli/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-http dans sandbox/crf-sandbox/tests/, sandbox/amarre-sandbox/tests/e2e/ (used in tests) : code test/sandbox lisant un token de test depuis .env.test pour fetcher localhost:8888 — pas de prod.
    • 1 × js/file-access-to-http dans packages/atlas-stats/src/github.ts (false positive) : pattern d'auth GitHub API standard (URL hardcodée, seul l'Authorization header dérive d'un file).

@univ-lehavre/atlas-researcher-profiles@2.0.0

Choose a tag to compare

@chasset chasset released this 18 May 15:42
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Renommage du cluster OpenAlex en cluster citation pour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée avec citation-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-cli

    Les anciens packages npm seront dépréciés vers les nouveaux noms.

    Bin renommé

    • atlas-openalexatlas-citation (dans @univ-lehavre/atlas-citation-cli)

    Identifiants publics renommés

    • Types : OpenAlexConfigCitationConfig, OpenalexResponseCitationResponse, OpenalexSearchAuthorAffiliationResultCitationSearchAuthorAffiliationResult
    • Erreurs : OpenAlexSearchError (exporté par @univ-lehavre/atlas-researcher-profiles) → CitationSearchError
    • Champs : openalex_api_urlcitation_api_url, openalex_api_keycitation_api_key
    • Fichiers : fetch-openalex.ts, fetch-openalex-entities.ts, types/openalex.tsfetch-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 dossiers lib/server/citation/ changent — utile pour le suivi changelog interne.

  • #125 c616cab Thanks @chasset! - Renommage du package @univ-lehavre/atlas-openalex-types en @univ-lehavre/atlas-citation-types pour 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-types sera déprécié.
    • Renommages d'exports :
      • OpenAlexIDCitationID (type brandé)
      • asOpenAlexIDasCitationID (constructeur brandé)
      • OpenalexResponseCitationResponse (wrapper de réponse paginée)
      • FetchOpenAlexAPIOptionsFetchCitationAPIOptions (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.
  • #125 c616cab Thanks @chasset! - Renommage du cluster REDCap (packages internes) en cluster crf pour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée avec citation-types et le cluster citation.

    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-logs

    Les 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 RedcapCrf :

    • RedcapClientCrfClient, RedcapClientErrorCrfClientError, RedcapClientServiceCrfClientService
    • RedcapConfigCrfConfig, RedcapConnectionConfigCrfConnectionConfig
    • RedcapAdapterCrfAdapter, RedcapFeaturesCrfFeatures
    • RedcapToken / RedcapTokenType / RedcapUrl / RedcapUrlType (brands) → Crf* correspondants
    • RedcapApiError, RedcapHttpError, RedcapNetworkError, RedcapFetchError, RedcapError, RedcapWriteErrorCrf*
    • RedcapLogEntryCrfLogEntry
    • Fonctions : createRedcapClient, makeRedcapClient, makeRedcapClientLayer, isRedcapErrorResponse, isValidRedcapName, checkRedcapServer*Crf*

    Variables / champs

    • redcapApiToken, redcapApiUrl, redcapConfig, redcapResult, redcapToken, redcapUrlcrf*
    • REDCAP_NAME_PATTERN / REDCAP_TOKEN_PATTERNCRF_*
    • Codes d'erreur HTTP : redcap_http_errorcrf_http_error, redcap_api_errorcrf_api_error, redcap_errorcrf_error
    • Variable exportée dans services/crf/src/server/client.ts : redcapclient

    Sous-commandes CLI

    • cli/researcher-profiles : from-redcapfrom-crf
    • cli/crf : crf-redcapcrf-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.ts services/crf/src/server/client.ts
    cli/researcher-profiles/src/commands/from-redcap.ts cli/researcher-profiles/src/commands/from-crf.ts

    Conservé (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, c616cab, c616cab]:
    • @univ-lehavre/atlas-citation-fetch@2.0.0
    • @univ-lehavre/atlas-citation-types@4.0.0
    • @univ-lehavre/atlas-crf-client@3.0.0

@univ-lehavre/atlas-researcher-profiles-cli@1.4.2

Choose a tag to compare

@chasset chasset released this 18 May 15:42
8b1cc9b

Patch Changes

  • #125 c616cab Thanks @chasset! - Renommage du cluster OpenAlex en cluster citation pour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée avec citation-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-cli

    Les anciens packages npm seront dépréciés vers les nouveaux noms.

    Bin renommé

    • atlas-openalexatlas-citation (dans @univ-lehavre/atlas-citation-cli)

    Identifiants publics renommés

    • Types : OpenAlexConfigCitationConfig, OpenalexResponseCitationResponse, OpenalexSearchAuthorAffiliationResultCitationSearchAuthorAffiliationResult
    • Erreurs : OpenAlexSearchError (exporté par @univ-lehavre/atlas-researcher-profiles) → CitationSearchError
    • Champs : openalex_api_urlcitation_api_url, openalex_api_keycitation_api_key
    • Fichiers : fetch-openalex.ts, fetch-openalex-entities.ts, types/openalex.tsfetch-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 dossiers lib/server/citation/ changent — utile pour le suivi changelog interne.

  • #125 c616cab Thanks @chasset! - Renommage du package @univ-lehavre/atlas-openalex-types en @univ-lehavre/atlas-citation-types pour 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-types sera déprécié.
    • Renommages d'exports :
      • OpenAlexIDCitationID (type brandé)
      • asOpenAlexIDasCitationID (constructeur brandé)
      • OpenalexResponseCitationResponse (wrapper de réponse paginée)
      • FetchOpenAlexAPIOptionsFetchCitationAPIOptions (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.
  • #125 c616cab Thanks @chasset! - Renommage du cluster REDCap (packages internes) en cluster crf pour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée avec citation-types et le cluster citation.

    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-logs

    Les 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 RedcapCrf :

    • RedcapClientCrfClient, RedcapClientErrorCrfClientError, RedcapClientServiceCrfClientService
    • RedcapConfigCrfConfig, RedcapConnectionConfigCrfConnectionConfig
    • RedcapAdapterCrfAdapter, RedcapFeaturesCrfFeatures
    • RedcapToken / RedcapTokenType / RedcapUrl / RedcapUrlType (brands) → Crf* correspondants
    • RedcapApiError, RedcapHttpError, RedcapNetworkError, RedcapFetchError, RedcapError, RedcapWriteErrorCrf*
    • RedcapLogEntryCrfLogEntry
    • Fonctions : createRedcapClient, makeRedcapClient, makeRedcapClientLayer, isRedcapErrorResponse, isValidRedcapName, checkRedcapServer*Crf*

    Variables / champs

    • redcapApiToken, redcapApiUrl, redcapConfig, redcapResult, redcapToken, redcapUrlcrf*
    • REDCAP_NAME_PATTERN / REDCAP_TOKEN_PATTERNCRF_*
    • Codes d'erreur HTTP : redcap_http_errorcrf_http_error, redcap_api_errorcrf_api_error, redcap_errorcrf_error
    • Variable exportée dans services/crf/src/server/client.ts : redcapclient

    Sous-commandes CLI

    • cli/researcher-profiles : from-redcapfrom-crf
    • cli/crf : crf-redcapcrf-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.ts services/crf/src/server/client.ts
    cli/researcher-profiles/src/commands/from-redcap.ts cli/researcher-profiles/src/commands/from-crf.ts

    Conservé (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

Choose a tag to compare

@chasset chasset released this 18 May 15:41
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Renommage du package Appwrite en baas (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-baas

    Identifiants publics renommés

    Types et erreurs :

    • AppwriteConfigBaasConfig

    Classes et fonctions :

    • AppwriteUserRepositoryBaasUserRepository
    • AppwriteCurrentConsentRepositoryBaasCurrentConsentRepository
    • AppwriteConsentEventRepositoryBaasConsentEventRepository
    • MockAppwriteUserRepositoryMockBaasUserRepository
    • checkAppwrite / checkAppwriteDatabase / checkAppwriteEndpointcheckBaas*
    • isAppwriteAuthErrorisBaasAuthError
    • mapAppwriteUserToProfilemapBaasUserToProfile
    • serviceAppwriteserviceBaas

    Schémas et clés de config :

    • appwriteDatetime (zod schema) → baasDatetime
    • Clé appwrite dans AuthConfigbaas
    • 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.baas
    • name: '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.example
    docs/projects/ecrin/find-an-expert/appwrite-setup.md .../baas-setup.md

    Conservé (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 c616cab Thanks @chasset! - Renommage du cluster OpenAlex en cluster citation pour retirer la marque OpenAlex des identifiants publics du monorepo (suite de la migration commencée avec citation-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-cli

    Les anciens packages npm seront dépréciés vers les nouveaux noms.

    Bin renommé

    • atlas-openalexatlas-citation (dans @univ-lehavre/atlas-citation-cli)

    Identifiants publics renommés

    • Types : OpenAlexConfigCitationConfig, OpenalexResponseCitationResponse, OpenalexSearchAuthorAffiliationResultCitationSearchAuthorAffiliationResult
    • Erreurs : OpenAlexSearchError (exporté par @univ-lehavre/atlas-researcher-profiles) → CitationSearchError
    • Champs : openalex_api_urlcitation_api_url, openalex_api_keycitation_api_key
    • Fichiers : fetch-openalex.ts, fetch-openalex-entities.ts, types/openalex.tsfetch-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 dossiers lib/server/citation/ changent — utile pour le suivi changelog interne.

Patch Changes

  • Updated dependencies [c616cab, c616cab, c616cab]:
    • @univ-lehavre/atlas-baas@2.0.0
    • @univ-lehavre/atlas-citation-fetch@2.0.0

@univ-lehavre/atlas-ecrin@3.0.0

Choose a tag to compare

@chasset chasset released this 18 May 15:41
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Renommage du package Appwrite en baas (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-baas

    Identifiants publics renommés

    Types et erreurs :

    • AppwriteConfigBaasConfig

    Classes et fonctions :

    • AppwriteUserRepositoryBaasUserRepository
    • AppwriteCurrentConsentRepositoryBaasCurrentConsentRepository
    • AppwriteConsentEventRepositoryBaasConsentEventRepository
    • MockAppwriteUserRepositoryMockBaasUserRepository
    • checkAppwrite / checkAppwriteDatabase / checkAppwriteEndpointcheckBaas*
    • isAppwriteAuthErrorisBaasAuthError
    • mapAppwriteUserToProfilemapBaasUserToProfile
    • serviceAppwriteserviceBaas

    Schémas et clés de config :

    • appwriteDatetime (zod schema) → baasDatetime
    • Clé appwrite dans AuthConfigbaas
    • 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.baas
    • name: '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.example
    docs/projects/ecrin/find-an-expert/appwrite-setup.md .../baas-setup.md

    Conservé (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 c616cab Thanks @chasset! - Renommage du cluster REDCap (packages internes) en cluster crf pour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée avec citation-types et le cluster citation.

    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-logs

    Les 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 RedcapCrf :

    • RedcapClientCrfClient, RedcapClientErrorCrfClientError, RedcapClientServiceCrfClientService
    • RedcapConfigCrfConfig, RedcapConnectionConfigCrfConnectionConfig
    • RedcapAdapterCrfAdapter, RedcapFeaturesCrfFeatures
    • RedcapToken / RedcapTokenType / RedcapUrl / RedcapUrlType (brands) → Crf* correspondants
    • RedcapApiError, RedcapHttpError, RedcapNetworkError, RedcapFetchError, RedcapError, RedcapWriteErrorCrf*
    • RedcapLogEntryCrfLogEntry
    • Fonctions : createRedcapClient, makeRedcapClient, makeRedcapClientLayer, isRedcapErrorResponse, isValidRedcapName, checkRedcapServer*Crf*

    Variables / champs

    • redcapApiToken, redcapApiUrl, redcapConfig, redcapResult, redcapToken, redcapUrlcrf*
    • REDCAP_NAME_PATTERN / REDCAP_TOKEN_PATTERNCRF_*
    • Codes d'erreur HTTP : redcap_http_errorcrf_http_error, redcap_api_errorcrf_api_error, redcap_errorcrf_error
    • Variable exportée dans services/crf/src/server/client.ts : redcapclient

    Sous-commandes CLI

    • cli/researcher-profiles : from-redcapfrom-crf
    • cli/crf : crf-redcapcrf-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.ts services/crf/src/server/client.ts
    cli/researcher-profiles/src/commands/from-redcap.ts cli/researcher-profiles/src/commands/from-crf.ts

    Conservé (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

Choose a tag to compare

@chasset chasset released this 18 May 15:42
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Renommage du cluster REDCap (packages internes) en cluster crf pour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée avec citation-types et le cluster citation.

    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-logs

    Les 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 RedcapCrf :

    • RedcapClientCrfClient, RedcapClientErrorCrfClientError, RedcapClientServiceCrfClientService
    • RedcapConfigCrfConfig, RedcapConnectionConfigCrfConnectionConfig
    • RedcapAdapterCrfAdapter, RedcapFeaturesCrfFeatures
    • RedcapToken / RedcapTokenType / RedcapUrl / RedcapUrlType (brands) → Crf* correspondants
    • RedcapApiError, RedcapHttpError, RedcapNetworkError, RedcapFetchError, RedcapError, RedcapWriteErrorCrf*
    • RedcapLogEntryCrfLogEntry
    • Fonctions : createRedcapClient, makeRedcapClient, makeRedcapClientLayer, isRedcapErrorResponse, isValidRedcapName, checkRedcapServer*Crf*

    Variables / champs

    • redcapApiToken, redcapApiUrl, redcapConfig, redcapResult, redcapToken, redcapUrlcrf*
    • REDCAP_NAME_PATTERN / REDCAP_TOKEN_PATTERNCRF_*
    • Codes d'erreur HTTP : redcap_http_errorcrf_http_error, redcap_api_errorcrf_api_error, redcap_errorcrf_error
    • Variable exportée dans services/crf/src/server/client.ts : redcapclient

    Sous-commandes CLI

    • cli/researcher-profiles : from-redcapfrom-crf
    • cli/crf : crf-redcapcrf-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.ts services/crf/src/server/client.ts
    cli/researcher-profiles/src/commands/from-redcap.ts cli/researcher-profiles/src/commands/from-crf.ts

    Conservé (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

Choose a tag to compare

@chasset chasset released this 18 May 15:41
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Fin de la migration anti-marque REDCap : renommage des 4 packages restants utilisant redcap-* 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-sandbox

    Bins renommés

    • redcapcrf-openapi (dans @univ-lehavre/atlas-crf-openapi)
    • atlas-redcap-statsatlas-crf-stats (dans @univ-lehavre/atlas-crf-stats-cli)

    Fichiers internes renommés

    Avant Après
    cli/crf-openapi/src/bin/redcap.ts cli/crf-openapi/src/bin/crf-openapi.ts
    cli/crf-stats/src/bin/atlas-redcap-stats.ts cli/crf-stats/src/bin/atlas-crf-stats.ts
    cli/crf-openapi/specs/versions/redcap-{14,15,16}*.yaml cli/crf-openapi/specs/versions/v{14,15,16}*.yaml
    sandbox/crf-sandbox/scripts/install-redcap.sh sandbox/crf-sandbox/scripts/install-crf.sh
    sandbox/crf-sandbox/scripts/prepare-redcap-source.sh sandbox/crf-sandbox/scripts/prepare-crf-source.sh

    Cache file renommé

    • .redcap-stats.json (fichier de cache local créé par @univ-lehavre/atlas-crf-logs) → .crf-stats.json — patch sur crf-logs pour 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.ini dans sandbox/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 par docker: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 c616cab Thanks @chasset! - Renommage du cluster REDCap (packages internes) en cluster crf pour retirer la marque REDCap des identifiants publics du monorepo. Suite de la migration commencée avec citation-types et le cluster citation.

    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-logs

    Les 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 RedcapCrf :

    • RedcapClientCrfClient, RedcapClientErrorCrfClientError, RedcapClientServiceCrfClientService
    • RedcapConfigCrfConfig, RedcapConnectionConfigCrfConnectionConfig
    • RedcapAdapterCrfAdapter, RedcapFeaturesCrfFeatures
    • RedcapToken / RedcapTokenType / RedcapUrl / RedcapUrlType (brands) → Crf* correspondants
    • RedcapApiError, RedcapHttpError, RedcapNetworkError, RedcapFetchError, RedcapError, RedcapWriteErrorCrf*
    • RedcapLogEntryCrfLogEntry
    • Fonctions : createRedcapClient, makeRedcapClient, makeRedcapClientLayer, isRedcapErrorResponse, isValidRedcapName, checkRedcapServer*Crf*

    Variables / champs

    • redcapApiToken, redcapApiUrl, redcapConfig, redcapResult, redcapToken, redcapUrlcrf*
    • REDCAP_NAME_PATTERN / REDCAP_TOKEN_PATTERNCRF_*
    • Codes d'erreur HTTP : redcap_http_errorcrf_http_error, redcap_api_errorcrf_api_error, redcap_errorcrf_error
    • Variable exportée dans services/crf/src/server/client.ts : redcapclient

    Sous-commandes CLI

    • cli/researcher-profiles : from-redcapfrom-crf
    • cli/crf : crf-redcapcrf-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.ts services/crf/src/server/client.ts
    cli/researcher-profiles/src/commands/from-redcap.ts cli/researcher-profiles/src/commands/from-crf.ts

    Conservé (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

Choose a tag to compare

@chasset chasset released this 18 May 15:42
8b1cc9b

Major Changes

  • #125 c616cab Thanks @chasset! - Fin de la migration anti-marque REDCap : renommage des 4 packages restants utilisant redcap-* 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-sandbox

    Bins renommés

    • redcapcrf-openapi (dans @univ-lehavre/atlas-crf-openapi)
    • atlas-redcap-statsatlas-crf-stats (dans @univ-lehavre/atlas-crf-stats-cli)

    Fichiers internes renommés

    Avant Après
    cli/crf-openapi/src/bin/redcap.ts cli/crf-openapi/src/bin/crf-openapi.ts
    cli/crf-stats/src/bin/atlas-redcap-stats.ts cli/crf-stats/src/bin/atlas-crf-stats.ts
    cli/crf-openapi/specs/versions/redcap-{14,15,16}*.yaml cli/crf-openapi/specs/versions/v{14,15,16}*.yaml
    sandbox/crf-sandbox/scripts/install-redcap.sh sandbox/crf-sandbox/scripts/install-crf.sh
    sandbox/crf-sandbox/scripts/prepare-redcap-source.sh sandbox/crf-sandbox/scripts/prepare-crf-source.sh

    Cache file renommé

    • .redcap-stats.json (fichier de cache local créé par @univ-lehavre/atlas-crf-logs) → .crf-stats.json — patch sur crf-logs pour 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.ini dans sandbox/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 par docker: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