New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@istex/li-2mods

Package Overview
Dependencies
Maintainers
3
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@istex/li-2mods

Module li-2mods (version NPM)

  • 3.5.3
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
2
Maintainers
3
Weekly downloads
 
Created
Source

li-2mods

Présentation

Le module li-2mods a pour but de transformer les notices XML des métadonnées éditeur en notices MODS (format pivot).

Fonctionnement

Les traitements sont réalisés via une fonction doTheJob :

  • qui récupère en entrée un docObject sous forme JSON, ainsi qu'une callback.
  • qui produit des notices MODS dans le répertoire fourni dans le JSON d'entrée corpusOutput.
  • Les éventuelles erreurs sont renvoyées en paramètre de la callback.

Utilisation

Installation

Dépendances système :

  • xsltproc
  • NodeJS 4.0.0+

Installer les modules nécessaires :

npm install

Vérification du fonctionnement

Commande d'exécution des tests unitaires :

npm test

Exécution

Comme pour tous les modules, la présente partie métier n'est pas destinée à être exécutée directement, puisqu'elle consiste uniquement à mettre à disposition une fonction doTheJob. L'exécution se fera donc en appelant cette fonction depuis une instanciation de li-canvas ou indirectement depuis les tests unitaires.

Clés du docObject nécessaires à la bonne exécution

Ces clés sont obtenues durant li-carto et li-carto :

  • corpusResources
  • corpusOutput
  • metadata (tableau d'objets JSON)
    • path (un par fichier de métadonnées)

Exemple de docObject accepté en entrée

Ce docObject peut être obtenu en sortie de li-xml-val : Normalement tous les objets qui ont passés li-xml-val possèdent des XML bien-formés et valides.

{
  "idIstex": "0123456789012345678901234567890123456789",
  "corpusName": "nature",
  "cartoType": "nature",
  "corpusRoot": "/path/to/corpus/root",
  "corpusOutput": "/path/to/corpus/output",
  "corpusResources": "/path/to/corpus-resources",
  "metadata": [
    {
      "valFile": "path/to/dtd",
      "path": "/path/to/original/xml",
      "xmlWellFormed": true,
      "mime": "application/xml",
      "xmlValid": true,
      "original": true
    }
  ],
  ...
}

Exemple de docObject en sortie

Il s'agît du docObject ci-dessus complété. Remarquez en fin de JSON l'ajout d'une entrée metadata étiquetée original = false

{
  "idIstex": "0123456789012345678901234567890123456789",
  "corpusName": "nature",
  "cartoType": "nature",
  "corpusRoot": "/path/to/corpus/root",
  "corpusOutput": "/path/to/corpus/output",
  "corpusResources": "/path/to/corpus-resources",
  "metadata": [
    {
      "valFile": "path/to/dtd",
      "path": "/path/to/original/xml",
      "xmlWellFormed": true,
      "mime": "application/xml",
      "xmlValid": true,
      "original": true
    },
    {
      "path": "/path/to/mods",
      "mime": "application/mods+xml",
      "original": true
    }
  ],
  ...
}

Exemple de docObject rejeté

Remarquez en fin de JSON l'ajout de errCode et errMessage

{
  "idIstex": "0123456789012345678901234567890123456789",
  "corpusName": "nature",
  "cartoType": "nature",
  "corpusRoot": "/path/to/corpus/root",
  "corpusOutput": "/path/to/corpus/output",
  "corpusResources": "/path/to/corpus-resources",
  "metadata": [
    {
      "valFile": "path/to/inexistant/dtd",
      "path": "/path/to/original/xml",
      "xmlWellFormed": true,
      "mime": "application/xml",
      "xmlValid": true,
      "original": true
    }
  ],
  "errCode": "XslTransformationError",
  "errMessage": "Could not generate MODS from /path/to/original/xml",
  ...
}

Annexes

Arborescence

.
├── node_modules/                   // Modules NPM
│   └── ...
├── src/
│   └── clean-nature.sh             // Script pour préparer les données de l'éditeur Nature avant la transformation
├── test/                           // Fichiers nécessaires aux tests unitaires
│   ├── dataset/                    // Répertoire contenant des données de test
│   │   └── corpus/
│   ├── dependencies.js             // Tests de dépendances système
│   ├── run.js                      // Point d'entrée des tests unitaires
│   └── testSet.js                  // Liste de docObjects pris en entrée des test unitaires
├── .editorconfig                   // Configuration de l'éditeur pour l'indentation (entre autres)
├── .eslintrc.json                  // Configuration pour eslint
├── .gitignore
├── index.js                        // Point d'entrée, contenant la fonction doTheJob
├── Licence.fr.txt                  // Licence CeCILL en Français
├── License.en.txt                  // Licence CeCILL en Anglais
├── package-lock.json
├── package.json                    // Description du module pour NPM
└── README.md

Keywords

FAQs

Package last updated on 21 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc