UNPKG

@cranberry-money/shared-constants

Version:

Shared constants for Blueberry platform

233 lines 8.64 kB
export declare const DECIMAL_PLACES: 2; export declare const DEFAULT_NUMERIC_ZERO: 0; export declare const DEFAULT_EMPTY_STRING: ""; export declare const QUANTITY_FORMAT_THRESHOLD_MILLION: 1000000; export declare const QUANTITY_FORMAT_THRESHOLD_THOUSAND: 1000; export declare const ERROR_TYPE_BUSINESS_LOGIC = "business_logic"; export declare const ERROR_TYPE_PERMISSION = "permission"; export declare const ERROR_TYPE_SERVER = "server"; export declare const LOCALE_AUSTRALIA: "en-AU"; export declare const NUMBER_FORMAT_OPTIONS_CURRENCY: { readonly style: "currency"; readonly minimumFractionDigits: 2; readonly maximumFractionDigits: 2; }; export declare const NUMBER_FORMAT_OPTIONS_CURRENCY_SIGNED: { readonly style: "currency"; readonly minimumFractionDigits: 2; readonly maximumFractionDigits: 2; readonly signDisplay: "always"; }; export declare const QUERY_PARAM_ORDER_BY = "order_by"; export declare const ORDER_BY_CREATED_AT = "created_at"; export declare const DEFAULT_UNKNOWN_VALUE: "Unknown"; export declare const DEFAULT_ERROR_MESSAGE: "An error occurred"; export declare const DEFAULT_VALUES: { readonly ZERO: "0"; readonly EMPTY_STRING: ""; readonly UNKNOWN: "UNKNOWN"; readonly NOT_APPLICABLE: "N/A"; readonly NULL_UUID: "00000000-0000-0000-0000-000000000000"; }; export declare const NUMERIC_DEFAULTS: { readonly MIN_AMOUNT: 0; readonly MAX_AMOUNT: 999999999.99; readonly DEFAULT_PRECISION: 2; readonly PERCENTAGE_PRECISION: 2; readonly QUANTITY_PRECISION: 6; }; export declare const THRESHOLDS: { readonly MIN_PORTFOLIO_VALUE: 1000; readonly MIN_TRADE_AMOUNT: 10; readonly MIN_WITHDRAWAL_AMOUNT: 100; readonly MAX_PORTFOLIOS_PER_USER: 10; readonly MAX_TRADES_PER_DAY: 100; }; export declare const DISPLAY_LIMITS: { readonly MAX_NAME_LENGTH: 100; readonly MAX_DESCRIPTION_LENGTH: 500; readonly MAX_NOTES_LENGTH: 1000; readonly MAX_FILE_SIZE_MB: 10; readonly MAX_FILE_NAME_LENGTH: 255; readonly DASHBOARD_RECENT_TRADES: 5; readonly DASHBOARD_ORDERS: 5; readonly DASHBOARD_TRANSACTIONS: 5; readonly DASHBOARD_WITHDRAWALS: 5; readonly DEFAULT_PAGE_SIZE: 20; readonly PAGE_SIZE_OPTIONS: readonly [10, 20, 50, 100]; readonly AUTOCOMPLETE_MAX_RESULTS: 10; readonly RECENT_SEARCHES_MAX: 5; }; export declare const ALLOCATION_DEFAULTS: { readonly DEFAULT_PERCENTAGE: 10; readonly PERCENTAGE_PRECISION: 0.01; readonly TARGET_TOTAL: 100; }; export declare const SORT_DIRECTION: { readonly ASC: "asc"; readonly DESC: "desc"; }; export type SortDirection = (typeof SORT_DIRECTION)[keyof typeof SORT_DIRECTION]; export declare const SORT_FIELDS: { readonly CREATED_AT: "created_at"; readonly UPDATED_AT: "updated_at"; readonly DATE: "date"; readonly NAME: "name"; readonly TITLE: "title"; readonly AMOUNT: "amount"; readonly VALUE: "value"; readonly PRICE: "price"; readonly QUANTITY: "quantity"; readonly STATUS: "status"; readonly PRIORITY: "priority"; readonly SYMBOL: "symbol"; readonly TYPE: "type"; }; export type SortField = (typeof SORT_FIELDS)[keyof typeof SORT_FIELDS]; export declare const DEFAULT_SORT_CONFIG: { readonly PORTFOLIOS: { readonly field: "updated_at"; readonly direction: "desc"; }; readonly TRADES: { readonly field: "created_at"; readonly direction: "desc"; }; readonly WITHDRAWALS: { readonly field: "created_at"; readonly direction: "desc"; }; readonly TRANSACTIONS: { readonly field: "date"; readonly direction: "desc"; }; }; export declare const SORT_DIRECTION_ASC: "asc"; export declare const SORT_DIRECTION_DESC: "desc"; export declare const MILLISECONDS: { readonly SECOND: 1000; readonly MINUTE: number; readonly HOUR: number; readonly DAY: number; readonly WEEK: number; }; export declare const SECONDS: { readonly MINUTE: 60; readonly HOUR: number; readonly DAY: number; readonly WEEK: number; }; export declare const DATE_FORMATS: { readonly DISPLAY_DATE: "MMM dd, yyyy"; readonly DISPLAY_DATE_TIME: "MMM dd, yyyy HH:mm"; readonly DISPLAY_DATE_TIME_SECONDS: "MMM dd, yyyy HH:mm:ss"; readonly DISPLAY_SHORT: "MM/dd/yy"; readonly API_DATE: "yyyy-MM-dd"; readonly API_DATETIME: "yyyy-MM-dd'T'HH:mm:ss"; readonly API_DATETIME_WITH_TIMEZONE: "yyyy-MM-dd'T'HH:mm:ss'Z'"; readonly MONTH_YEAR: "MMM yyyy"; readonly YEAR: "yyyy"; readonly TIME: "HH:mm"; readonly TIME_WITH_SECONDS: "HH:mm:ss"; }; export declare const TIME_ZONES: { readonly UTC: "UTC"; readonly EST: "America/New_York"; readonly PST: "America/Los_Angeles"; readonly SYDNEY: "Australia/Sydney"; readonly MELBOURNE: "Australia/Melbourne"; }; export type TimeZone = (typeof TIME_ZONES)[keyof typeof TIME_ZONES]; export declare const SESSION_DURATIONS: { readonly DEFAULT: number; readonly EXTENDED: number; readonly REMEMBER_ME: number; }; export declare const MILLISECONDS_PER_DAY: number; export declare const DEFAULT_RECENT_TRANSACTIONS_DAYS = 30; export declare const DATE_ISO_TIME_SEPARATOR = "T"; export type TimeRange = '1W' | '1M' | '6M' | '1Y' | '3Y' | '5Y' | '10Y'; export interface TimeRangeConfig { label: string; value: TimeRange; days: number; } export declare const TIME_RANGES: TimeRangeConfig[]; export declare const REGEX_PATTERNS: { readonly EMAIL: RegExp; readonly PHONE: RegExp; readonly USERNAME: RegExp; readonly PASSWORD: RegExp; readonly UUID: RegExp; readonly NUMERIC: RegExp; readonly DECIMAL: RegExp; readonly ALPHA_ONLY: RegExp; readonly ALPHANUMERIC: RegExp; readonly URL: RegExp; }; export declare const VALIDATION_RULES: { readonly MIN_USERNAME_LENGTH: 3; readonly MAX_USERNAME_LENGTH: 30; readonly MIN_PASSWORD_LENGTH: 8; readonly MAX_PASSWORD_LENGTH: 128; readonly MIN_NAME_LENGTH: 2; readonly MAX_NAME_LENGTH: 50; readonly MIN_PORTFOLIO_NAME_LENGTH: 3; readonly MAX_PORTFOLIO_NAME_LENGTH: 100; readonly MIN_PORTFOLIO_DESCRIPTION_LENGTH: 0; readonly MAX_PORTFOLIO_DESCRIPTION_LENGTH: 500; readonly MIN_TRADE_AMOUNT: 0.01; readonly MAX_TRADE_AMOUNT: 1000000; readonly MIN_TRADE_QUANTITY: 0.001; readonly MAX_TRADE_QUANTITY: 1000000; readonly MIN_PRICE: 0.01; readonly MAX_PRICE: 1000000; readonly MIN_WITHDRAWAL_AMOUNT: 100; readonly MAX_WITHDRAWAL_AMOUNT: 1000000; readonly MAX_DESCRIPTION_LENGTH: 500; readonly MAX_NOTES_LENGTH: 1000; readonly MAX_FILE_SIZE_MB: 10; readonly MAX_FILE_NAME_LENGTH: 255; readonly MIN_ADDRESS_LENGTH: 10; readonly MAX_ADDRESS_LENGTH: 200; readonly MIN_POSTAL_CODE_LENGTH: 3; readonly MAX_POSTAL_CODE_LENGTH: 10; }; export declare const VALIDATION_ERRORS: { readonly REQUIRED: "This field is required"; readonly INVALID_EMAIL: "Please enter a valid email address"; readonly INVALID_PHONE: "Please enter a valid phone number"; readonly INVALID_USERNAME: "Username must be 3-30 characters, letters, numbers, underscores, and hyphens only"; readonly INVALID_PASSWORD: "Password must be at least 8 characters with uppercase, lowercase, and numbers"; readonly MIN_LENGTH: (field: string, min: number) => string; readonly MAX_LENGTH: (field: string, max: number) => string; readonly MIN_VALUE: (field: string, min: number) => string; readonly MAX_VALUE: (field: string, max: number) => string; readonly INVALID_FORMAT: (field: string) => string; readonly PASSWORDS_DONT_MATCH: "Passwords do not match"; }; export declare const PASSWORD_VALIDATION: { readonly MIN_LENGTH: 8; }; export declare const EMAIL_CONFIRMATION_VALIDATION: { readonly TOKEN_LENGTH: 6; readonly TOKEN_MIN_LENGTH: 6; readonly TOKEN_MAX_LENGTH: 20; }; export declare const USER_PROFILE_VALIDATION: { readonly MIN_NAME_PARTS: 2; readonly MIN_AGE: 13; readonly MAX_AGE: 120; readonly MIN_ADDRESS_LENGTH: 10; readonly MIN_PHONE_LENGTH: 8; }; export declare const INVESTMENT_PREFERENCES_VALIDATION: { readonly MIN_INVESTMENT_AMOUNT: 100; readonly MAX_INVESTMENT_AMOUNT: 10000000; readonly MIN_SOURCE_OF_FUNDS: 1; }; export type PasswordValidation = typeof PASSWORD_VALIDATION; export type EmailConfirmationValidation = typeof EMAIL_CONFIRMATION_VALIDATION; export type UserProfileValidation = typeof USER_PROFILE_VALIDATION; export type InvestmentPreferencesValidation = typeof INVESTMENT_PREFERENCES_VALIDATION; //# sourceMappingURL=utilities.d.ts.map