business-as-code
Version:
Primitives for expressing business logic and processes as code
144 lines • 8 kB
JavaScript
/**
* business-as-code - Primitives for expressing business logic and processes as code
*
* This package provides primitives for defining business entities, goals, products,
* services, processes, workflows, KPIs, OKRs, and financial metrics.
*
* @example
* ```ts
* import { Business, Product, Goals, kpis, okrs, financials, $ } from 'business-as-code'
*
* // Define your business
* const company = Business({
* name: 'Acme Corp',
* mission: 'To make widgets accessible to everyone',
* values: ['Innovation', 'Customer Focus', 'Integrity'],
* })
*
* // Define products
* const product = Product({
* name: 'Widget Pro',
* pricingModel: 'subscription',
* price: 99,
* cogs: 20,
* })
*
* // Define goals
* const goals = Goals([
* {
* name: 'Launch MVP',
* category: 'strategic',
* status: 'in-progress',
* progress: 65,
* },
* ])
*
* // Track KPIs
* const kpiList = kpis([
* {
* name: 'Monthly Recurring Revenue',
* category: 'financial',
* target: 100000,
* current: 85000,
* },
* ])
*
* // Define OKRs
* const okrList = okrs([
* {
* objective: 'Achieve Product-Market Fit',
* keyResults: [
* {
* description: 'Increase NPS',
* metric: 'NPS',
* targetValue: 60,
* currentValue: 52,
* },
* ],
* },
* ])
*
* // Calculate financials
* const metrics = financials({
* revenue: 1000000,
* cogs: 300000,
* operatingExpenses: 500000,
* })
*
* // Use $ helper for calculations
* console.log($.format(1234.56)) // "$1,234.56"
* console.log($.growth(120, 100)) // 20
* console.log($.margin(100, 60)) // 40
* ```
*
* @packageDocumentation
*/
// Export business entity functions
export { Business, getTotalBudget, getTotalTeamSize, getDepartment, getTeam, validateBusiness, } from './business.js';
// Export vision functions
export { Vision, checkIndicator, calculateProgress, validateVision } from './vision.js';
// Export goal functions
export { Goals, Goal, updateProgress, markAtRisk, complete, isOverdue, getGoalsByCategory, getGoalsByStatus, getGoalsByOwner, calculateOverallProgress, hasCircularDependencies, sortByDependencies, validateGoals,
// org.ai conversions
toOrgGoal, fromOrgGoal, } from './goals.js';
// Export product functions
export { Product, calculateGrossMargin, calculateGrossProfit, getRoadmapByStatus, getRoadmapByPriority, getOverdueRoadmapItems, updateRoadmapItem, addFeature, removeFeature, validateProduct, } from './product.js';
// Export service functions
export { Service, calculateHourlyPrice, calculateMonthlyRetainer, checkSLAUptime, parseDeliveryTimeToDays, estimateCompletionDate, calculateValueBasedPrice, validateService, } from './service.js';
// Export process functions
export { Process, getStepsInOrder, getStepsByAutomationLevel, calculateTotalDuration, formatDuration, calculateAutomationPercentage, getMetric, meetsTarget, calculateMetricAchievement, updateMetric, addStep, removeStep, validateProcess, } from './process.js';
// Export workflow functions
export { Workflow, getActionsInOrder, getActionsByType, getConditionalActions, addAction, removeAction, updateAction, isEventTrigger, isScheduleTrigger, isWebhookTrigger, parseWaitDuration, evaluateCondition, fillTemplate, validateWorkflow, } from './workflow.js';
// Export KPI functions
export { kpis, kpi, calculateAchievement, meetsTarget as kpiMeetsTarget, updateCurrent, updateTarget, getKPIsByCategory, getKPIsByFrequency, getKPIsOnTarget, getKPIsOffTarget, calculateHealthScore, groupByCategory, calculateVariance, calculateVariancePercentage, formatValue, comparePerformance, validateKPIs,
// org.ai conversions
toOrgKPI, fromOrgKPI, } from './kpis.js';
// Export OKR functions
export { okrs, okr, calculateKeyResultProgress, calculateOKRProgress, calculateConfidence, updateKeyResult, isKeyResultOnTrack, isOKROnTrack, getKeyResultsOnTrack, getKeyResultsAtRisk, getOKRsByOwner, getOKRsByPeriod, getOKRsByStatus, calculateSuccessRate, formatKeyResult, compareOKRPerformance, validateOKRs,
// org.ai conversions
toOrgOKR, fromOrgOKR, toOrgKeyResult, fromOrgKeyResult, } from './okrs.js';
// Export financial functions
export { financials, calculateGrossMargin as calculateFinancialGrossMargin, calculateOperatingMargin, calculateNetMargin, calculateEBITDAMargin, calculateBurnRate, calculateRunway, calculateCAC, calculateLTV, calculateLTVtoCAC, calculatePaybackPeriod, calculateARR, calculateMRR, calculateGrowthRate, calculateCAGR, calculateROI, calculateROE, calculateROA, calculateQuickRatio, calculateCurrentRatio, calculateDebtToEquity, formatCurrency, createStatement, getLineItem, compareMetrics, validateFinancials, } from './financials.js';
// Export $ helper and context management
export { $, createBusinessOperations, updateContext, getContext, resetContext } from './dollar.js';
export {
// SaaS Metric Calculation functions (produce structured SaaS metric objects)
calculateMRR as calculateMRRMetric, calculateARRFromMRR as calculateARRMetric, calculateNRR as calculateNRRMetric, calculateGRR as calculateGRRMetric, calculateCACMetric, calculateLTVMetric, calculateLTVtoCACRatio, calculateQuickRatioMetric, calculateMagicNumberMetric, calculateBurnMultipleMetric, calculateRuleOf40Metric, calculateGrowthRates, calculateChurnMetrics,
// Time-series aggregation
aggregateTimeSeries, createMetricPeriod, } from './metrics.js';
export {
// Standard definitions
StandardDimensions, StandardMeasures, CalculatedMetrics,
// Builders
query, QueryBuilder, view, ViewBuilder, dashboard, DashboardBuilder,
// Pre-built queries
MrrOverview, ArrBySegment, CohortRetention, UnitEconomics, RevenueByChannel, GrowthMetrics,
// Pre-built dashboards
ExecutiveDashboard, } from './queries.js';
export { StandardBusinessRoles, createBusinessRole, hasPermission, canHandleTask, canApproveRequest, canDelegateTask, findRoleForTask, createTaskAssignment, transitionTaskStatus,
// Conversion helpers
workerRefToAssignee, assigneeToWorkerRef, } from './roles.js';
export { resolvePermissions, getApprovalChainForRequest, findManager } from './organization.js';
// =============================================================================
// Entity Definitions (Noun pattern with Properties, Actions, Events)
// =============================================================================
export {
// Business
Business as BusinessEntity, Vision as VisionEntity, Value as ValueEntity, BusinessEntities, BusinessCategories,
// Organization
Organization as OrganizationEntity, Department as DepartmentEntity, Team as TeamEntity, Position as PositionEntity, Role as RoleEntity, Worker as WorkerEntity, OrganizationEntities, OrganizationCategories,
// Goals
Goal as GoalEntity, OKR as OKREntity, KeyResult as KeyResultEntity, KPI as KPIEntity, Metric as MetricEntity, Initiative as InitiativeEntity, GoalEntities, GoalCategories,
// Offerings
Product as ProductEntity, Service as ServiceEntity, Feature as FeatureEntity, PricingPlan as PricingPlanEntity, RoadmapItem as RoadmapItemEntity, OfferingEntities, OfferingCategories,
// Operations
Process as ProcessEntity, ProcessStep as ProcessStepEntity, Workflow as WorkflowEntity, WorkflowAction as WorkflowActionEntity, WorkflowRun as WorkflowRunEntity, Policy as PolicyEntity, OperationsEntities, OperationsCategories,
// Financials
Budget as BudgetEntity, Revenue as RevenueEntity, Expense as ExpenseEntity, Investment as InvestmentEntity, FinancialPeriod as FinancialPeriodEntity, Forecast as ForecastEntity, FinancialEntities, FinancialCategories,
// All
AllBusinessEntities, BusinessEntityCategories, Entities, } from './entities/index.js';
// =============================================================================
// Business Model Canvas (TODO: implement canvas module)
// =============================================================================
// Canvas functionality is planned but not yet implemented
//# sourceMappingURL=index.js.map