### Install Parisian Libraries via NPM Source: https://github.com/einenlum/parisian-libraries/blob/main/README.md The installation command to add the library to your project dependencies using the Node Package Manager. ```bash npm install parisian-libraries ``` -------------------------------- ### Complete Workflow: Find Book and Library Address with Parisian Libraries Source: https://context7.com/einenlum/parisian-libraries/llms.txt This example demonstrates a full workflow using the parisian-libraries package. It includes searching for an author, finding their books, checking availability across libraries, and retrieving the addresses of libraries with available copies. It utilizes multiple functions from the library in a sequential manner. ```typescript import { searchAuthors, searchBooksFromAuthor, getBookAvailability, getLibraryAddress, } from 'parisian-libraries'; async function findBookInParis(authorName: string, bookTitle: string) { // Step 1: Search for the author const authors = await searchAuthors(authorName); if (authors.length === 0) { throw new Error(`No author found for: ${authorName}`); } console.log(`Found author: ${authors[0].label}`); // Step 2: Get the author's books const books = await searchBooksFromAuthor(authors[0].id); const targetBook = books.results.find(book => book.title.toLowerCase().includes(bookTitle.toLowerCase()) ); if (!targetBook) { throw new Error(`Book "${bookTitle}" not found for ${authorName}`); } console.log(`Found book: ${targetBook.title}`); // Step 3: Check availability across Paris libraries const availability = await getBookAvailability(targetBook.rscId, targetBook.docbase); const availableLibraries = availability.libraries.filter(lib => lib.isAvailable); console.log(` "${availability.title}" by ${availability.authorName}`); console.log(`ISBN: ${availability.isbn}`); console.log(`Available at ${availableLibraries.length} of ${availability.libraries.length} libraries `); // Step 4: Get addresses for available libraries for (const library of availableLibraries.slice(0, 3)) { const address = await getLibraryAddress(library.url); console.log(`${library.name}`); console.log(` Address: ${address || 'Not available'}`); console.log(` Call number: ${library.cote} `); } return { availability, availableLibraries }; } // Usage findBookInParis('mathieu palain', 'sale gosse') .then(({ availableLibraries }) => { console.log(`Total available: ${availableLibraries.length} copies`); }) .catch(console.error); ``` -------------------------------- ### GET /getBookAvailability Source: https://context7.com/einenlum/parisian-libraries/llms.txt Checks the availability of a specific book across all Paris library branches. ```APIDOC ## GET /getBookAvailability ### Description Checks the availability of a specific book across all Paris library branches, returning holdings and status. ### Method GET ### Endpoint /getBookAvailability ### Parameters #### Path Parameters - **rscId** (string) - Required - The resource ID of the book. - **docbase** (string) - Optional - The database identifier (defaults to 'SYRACUSE'). ### Request Example getBookAvailability('SYRACUSE-123456', 'SYRACUSE') ### Response #### Success Response (200) - **libraries** (array) - List of library branches and their availability status. #### Response Example { "title": "Ne t'appelle pas", "libraries": [ { "name": "La Canopée", "isAvailable": true, "isLoanable": true } ] } ``` -------------------------------- ### GET /searchBooksFromAuthor Source: https://context7.com/einenlum/parisian-libraries/llms.txt Retrieves a list of books associated with a specific author ID, excluding e-books. ```APIDOC ## GET /searchBooksFromAuthor ### Description Retrieves all physical books by a specific author using their unique ID. Returns paginated results with book metadata. ### Method GET ### Endpoint /searchBooksFromAuthor ### Parameters #### Path Parameters - **authorId** (string) - Required - The unique ID of the author retrieved from searchAuthors. ### Request Example searchBooksFromAuthor('ark:/12148/cb16919352z') ### Response #### Success Response (200) - **results** (array) - List of books including title, publisher, and rscId. - **page** (number) - Current page index. #### Response Example { "results": [ { "title": "Ne t'appelle pas", "id": "123456", "rscId": "SYRACUSE-123456" } ] } ``` -------------------------------- ### GET /searchAuthors Source: https://context7.com/einenlum/parisian-libraries/llms.txt Searches for authors by name in the Paris library catalog and returns their unique IDs. ```APIDOC ## GET /searchAuthors ### Description Searches for authors by name in the Paris library catalog. Returns an array of author objects containing the author's unique ID and display label. ### Method GET ### Endpoint /searchAuthors ### Parameters #### Query Parameters - **name** (string) - Required - The name of the author to search for. ### Request Example searchAuthors('mathieu palain') ### Response #### Success Response (200) - **id** (string) - The unique identifier for the author. - **label** (string) - The formatted display name of the author. #### Response Example [ { "id": "ark:/12148/cb16919352z", "label": "Palain, Mathieu" } ] ``` -------------------------------- ### Development and Build Commands Source: https://github.com/einenlum/parisian-libraries/blob/main/README.md Standard CLI commands for building the project, running in development mode, and executing the test suite. ```bash npm run build npm run dev node dist/index.js npm test ``` -------------------------------- ### Query Library Data with TypeScript Source: https://github.com/einenlum/parisian-libraries/blob/main/README.md Demonstrates the core workflow of searching for an author, retrieving their books, checking availability, and fetching library address details. ```typescript import { searchAuthors, searchBooksFromAuthor, getBookAvailability, getLibraryAddress } from 'parisian-libraries'; const authors = await searchAuthors('mathieu palain'); const books = await searchBooksFromAuthor(authors[0].id); const availability = await getBookAvailability(books.results[0].rscId); const address = await getLibraryAddress(availability.libraries[0].url); ``` -------------------------------- ### Fetch and Parse Library Address using Parisian Libraries Source: https://context7.com/einenlum/parisian-libraries/llms.txt This snippet shows how to use the getLibraryAddress function to retrieve the physical address of a library from its paris.fr URL. It handles cases where the address might not be found, returning null. ```typescript import { getLibraryAddress } from 'parisian-libraries'; // Use a library URL from the availability response const libraryUrl = 'https://www.paris.fr/lieux/mediatheque-de-la-canopee-16634'; const address = await getLibraryAddress(libraryUrl); console.log(address); // Output: '10 passage de la Canopée, 75001 Paris' // Handle cases where address might not be found if (address) { console.log(`Visit the library at: ${address}`); } else { console.log('Address not available'); } ``` -------------------------------- ### Check book availability across libraries Source: https://context7.com/einenlum/parisian-libraries/llms.txt Retrieves detailed metadata and availability status for a specific book across all Paris library branches using its resource ID and docbase. ```typescript import { searchAuthors, searchBooksFromAuthor, getBookAvailability } from 'parisian-libraries'; const authors = await searchAuthors('mathieu palain'); const books = await searchBooksFromAuthor(authors[0].id); const book = books.results[0]; const availability = await getBookAvailability(book.rscId, book.docbase); console.log(availability); ``` -------------------------------- ### Retrieve books by author ID Source: https://context7.com/einenlum/parisian-libraries/llms.txt Fetches a paginated list of physical books for a specific author using their unique ID. E-books are automatically filtered out of the results. ```typescript import { searchAuthors, searchBooksFromAuthor } from 'parisian-libraries'; const authors = await searchAuthors('mathieu palain'); const authorId = authors[0].id; const books = await searchBooksFromAuthor(authorId); console.log(books); ``` -------------------------------- ### Search for authors by name Source: https://context7.com/einenlum/parisian-libraries/llms.txt Uses the searchAuthors function to query the catalog for authors. It returns an array of objects containing unique IDs and display labels. ```typescript import { searchAuthors } from 'parisian-libraries'; const authors = await searchAuthors('mathieu palain'); console.log(authors); const authorId = authors[0].id; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.