@contracthero/common
v1.2.0
Published
`@contracthero/common` contains utility functions that are used across the ContractHero platform.
Keywords
Readme
Common
@contracthero/common contains utility functions that are used across the ContractHero platform.
ocr
partionBlocks
Simplifying textract result by grouping and reording blocks in similar positions (like columns) into the same group.
parser
Different kind of data parser especially used to convert data from raw contract PDFs into common formats.
- parsePaymentCycle: maps free-text / AI-extracted billing-frequency phrases (EN + DE) to a payment-cycle enum key. Recognised cycles:
PER_HOUR,PER_DAY,PER_UNIT,PROJECT_BASED,ONETIME,WEEKLY,BIWEEKLY,MONTHLY,BIMONTHLY,QUARTERLY,BIANNUAL,YEARLY,NO_PAYMENT. Matching is case-insensitive and tolerant of commas/newlines; unknown input throws aParserError. When adding a new cycle, add its synonyms here so document analysis can auto-fill it.
Document:
- acceptedMimetypeExtensionMap: This constant provides a mapping of accepted MIME types to their corresponding file extensions. It can be used to validate file types based on their MIME type or file extension and ensure that only supported types are processed.
- isAcceptedMimetype: Checks if mimetype is one of the accepted mimetypes
Lexical:
- extractTextFromLexical: This function extract text from simple lexical string.
dashboard
Shared types and defaults for the customisable dashboard, used by both the API (wrapped in class-validator DTOs) and the webapp (to render and seed layouts). Kept framework-agnostic — plain types and data, no validation library.
- DashboardConfiguration / WidgetConfig / WidgetRect: the stored layout shape — an ordered list of widgets, each with a
source(SYSTEM|REPORT), anid, and arect.x+widthare in 24-column grid units;yandheightare optional, derived by the frontend this version (reserved for v2 resize). - WidgetSource: where a widget comes from —
SYSTEM(built-in) orREPORT(a user report; reserved for the reporting story). - WidgetType: what a widget renders as —
metric,table,list,chart. - SystemWidgetId / SYSTEM_WIDGETS: the catalog of built-in widgets and their default sizes (placement lives on the dashboard, not in the catalog).
- DEFAULT_DASHBOARD_CONFIGURATION: the default layout used to seed a member who has not customised their own, in dashboard order.
Installation
Use npm or yarn to install @contracthero/common
npm install @contracthero/commonType definitions for TypeScript are included.
Release a new version
Releases are automated. Every pull request must bump the version in package.json — CI fails the PR if the version is unchanged or not higher than the version on the target branch (semver-aware comparison).
On merge to main, the ci workflow runs the test job (lint + tests) and, only if it passes, the publish job detects the version change, builds, publishes the new version to the npm registry, and tags the commit v<version>. No manual npm publish is needed.
Publishing authenticates via the NPM_TOKEN repository secret (an npm automation token with publish access to @contracthero).
