Methodize a prototype method. Compliant to 8 arguments.
Tests whether one path is inside another path
zlib port to javascript - fast, modularized, with browser support
Reads / writes floats / doubles from / to buffers in both modern and ancient browsers.
maximally minimal type-testing library
Modern type-safe way of building CLIs
A utility to work with tsconfig.json without typescript
Node.js client for OAuth2
A little library for asserting types and values, with zero dependencies.
Custom elements (web components) for making audio and video player controls that look great in your website or app.
Color string parser
Parses call stacks. Reads sources. Clean & filtered output. Sourcemaps. Node & browsers.
Self-contained, mobile friendly slider component for Angular based on angularjs-slider
Simple and fast NodeJS internal caching. Node internal in memory cache like memcached.
A logger for just about everything.
evaluate statically-analyzable expressions
convert modern Koa legacy generator-based middleware to promise-based middleware
A module for Fastify to parse x-www-form-urlencoded bodies
visx point
A wrapper utility for interacting with plist data.
JS type check (TypeScript supported) functions like `isPlainObject() isArray()` etc. A simple & small integration.
Middleware to disable the X-XSS-Protection header
Tiny, simple, and robust technique for defining and acting with local states
Zustand store factory for a best-in-class developer experience.
Good tool for small scripts and long array methods chains. Makes code look better and code faster
REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://factpulse.fr/api/token/` This method is **recommended** for integration in your applications and CI/CD workflows. **Prerequisites:** Having set a password on your account **For users registered via email/password:** - You already have a password, use it directly **For users registered via OAuth (Google/GitHub):** - You must first set a password at: https://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://factpulse.fr/api/token/ \ -H "Content-Type: application/json" \ -d '{ "username": "your_email@example.com", "password": "your_password" }' ``` **Optional `client_uid` parameter:** To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client_uid`: ```bash curl -X POST https://factpulse.fr/api/token/ \ -H "Content-Type: application/json" \ -d '{ "username": "your_email@example.com", "password": "your_password", "client_uid": "550e8400-e29b-41d4-a716-446655440000" }' ``` The `client_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client **Response:** ```json { "access": "eyJ0eXAiOiJKV1QiLCJhbGc...", // Access token (validity: 30 min) "refresh": "eyJ0eXAiOiJKV1QiLCJhbGc..." // Refresh token (validity: 7 days) } ``` **Advantages:** - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) **URL:** https://factpulse.fr/api/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. **How it works:** - Log in to the dashboard - Use the "Generate Test Token" or "Generate Production Token" buttons - Works for **all** users (OAuth and email/password), without requiring a password **Token types:** - **Test Token**: 24h validity, 1000 calls/day quota (free) - **Production Token**: 7 days validity, quota based on your plan **Advantages:** - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface **Disadvantages:** - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://factpulse.fr/documentation-api/
= id3lib-ruby id3lib-ruby provides a Ruby interface to the id3lib C++ library for easily editing ID3 tags (v1 and v2) of MP3 audio files. The class documentation starts at ID3Lib::Tag. == Features * Read and write ID3v1 and ID3v2 tags * Simple interface for adding, changing and removing frames * Quick access to common text frames like title and performer * Custom data frames like attached picture (APIC) * Pretty complete coverage of id3lib's features * UTF-16 support (warning: id3lib writes broken UTF-16 frames) * Windows binary gem available The CHANGES file contains a list of changes between versions. == Installation See INSTALL. == Online Information The home of id3lib-ruby is http://id3lib-ruby.rubyforge.org == Usage require 'rubygems' require 'id3lib' # Load a tag from a file tag = ID3Lib::Tag.new('talk.mp3') # Get and set text frames with convenience methods tag.title #=> "Talk" tag.album = 'X&Y' tag.track = '5/13' # Tag is a subclass of Array and each frame is a Hash tag[0] #=> { :id => :TPE1, :textenc => 0, :text => "Coldplay" } # Get the number of frames tag.length #=> 7 # Remove all comment frames tag.delete_if{ |frame| frame[:id] == :COMM } # Get info about APIC frame to see which fields are allowed ID3Lib::Info.frame(:APIC) #=> [ 2, :APIC, "Attached picture", #=> [:textenc, :mimetype, :picturetype, :description, :data] ] # Add an attached picture frame cover = { :id => :APIC, :mimetype => 'image/jpeg', :picturetype => 3, :description => 'A pretty picture', :textenc => 0, :data => File.read('cover.jpg') } tag << cover # Last but not least, apply changes tag.update! == Licence This library has Ruby's licence: http://www.ruby-lang.org/en/LICENSE.txt == Author Robin Stocker <robinstocker at rubyforge.org>