business-as-code 2.1.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -5
- package/CHANGELOG.md +53 -0
- package/README.md +2 -0
- package/dist/dollar.d.ts.map +1 -1
- package/dist/dollar.js +2 -2
- package/dist/dollar.js.map +1 -1
- package/dist/entities/organization.d.ts +4 -0
- package/dist/entities/organization.d.ts.map +1 -1
- package/dist/entities/organization.js +27 -18
- package/dist/entities/organization.js.map +1 -1
- package/dist/entities/planning.d.ts +87 -0
- package/dist/finance/account.d.ts +44 -0
- package/dist/finance/account.d.ts.map +1 -0
- package/dist/finance/account.js +6 -0
- package/dist/finance/account.js.map +1 -0
- package/dist/finance/authority.d.ts +78 -0
- package/dist/finance/authority.d.ts.map +1 -0
- package/dist/finance/authority.js +27 -0
- package/dist/finance/authority.js.map +1 -0
- package/dist/finance/card.d.ts +36 -0
- package/dist/finance/card.d.ts.map +1 -0
- package/dist/finance/card.js +6 -0
- package/dist/finance/card.js.map +1 -0
- package/dist/finance/identity.d.ts +30 -0
- package/dist/finance/identity.d.ts.map +1 -0
- package/dist/finance/identity.js +8 -0
- package/dist/finance/identity.js.map +1 -0
- package/dist/finance/index.d.ts +36 -0
- package/dist/finance/index.d.ts.map +1 -0
- package/dist/finance/index.js +22 -0
- package/dist/finance/index.js.map +1 -0
- package/dist/finance/ledger.d.ts +24 -0
- package/dist/finance/ledger.d.ts.map +1 -0
- package/dist/finance/ledger.js +8 -0
- package/dist/finance/ledger.js.map +1 -0
- package/dist/finance/merchant.d.ts +129 -0
- package/dist/finance/merchant.d.ts.map +1 -0
- package/dist/finance/merchant.js +21 -0
- package/dist/finance/merchant.js.map +1 -0
- package/dist/finance/outcome-contract.d.ts +139 -0
- package/dist/finance/outcome-contract.d.ts.map +1 -0
- package/dist/finance/outcome-contract.js +27 -0
- package/dist/finance/outcome-contract.js.map +1 -0
- package/dist/finance/port.d.ts +121 -0
- package/dist/finance/port.d.ts.map +1 -0
- package/dist/finance/port.js +10 -0
- package/dist/finance/port.js.map +1 -0
- package/dist/finance/pricing.d.ts +154 -0
- package/dist/finance/pricing.d.ts.map +1 -0
- package/dist/finance/pricing.js +79 -0
- package/dist/finance/pricing.js.map +1 -0
- package/dist/finance/proof-predicate.d.ts +92 -0
- package/dist/finance/proof-predicate.d.ts.map +1 -0
- package/dist/finance/proof-predicate.js +80 -0
- package/dist/finance/proof-predicate.js.map +1 -0
- package/dist/finance/refund.d.ts +44 -0
- package/dist/finance/refund.d.ts.map +1 -0
- package/dist/finance/refund.js +41 -0
- package/dist/finance/refund.js.map +1 -0
- package/dist/finance/sla.d.ts +25 -0
- package/dist/finance/sla.d.ts.map +1 -0
- package/dist/finance/sla.js +7 -0
- package/dist/finance/sla.js.map +1 -0
- package/dist/finance/types.d.ts +79 -0
- package/dist/finance/types.d.ts.map +1 -0
- package/dist/finance/types.js +8 -0
- package/dist/{canvas → finance}/types.js.map +1 -1
- package/dist/goals.d.ts +19 -0
- package/dist/goals.d.ts.map +1 -1
- package/dist/goals.js +81 -12
- package/dist/goals.js.map +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/kpis.d.ts +19 -0
- package/dist/kpis.d.ts.map +1 -1
- package/dist/kpis.js +71 -6
- package/dist/kpis.js.map +1 -1
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +29 -24
- package/dist/metrics.js.map +1 -1
- package/dist/okrs.d.ts +34 -0
- package/dist/okrs.d.ts.map +1 -1
- package/dist/okrs.js +135 -13
- package/dist/okrs.js.map +1 -1
- package/dist/organization.d.ts.map +1 -1
- package/dist/organization.js +11 -11
- package/dist/organization.js.map +1 -1
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +13 -12
- package/dist/process.js.map +1 -1
- package/dist/product.d.ts.map +1 -1
- package/dist/product.js +9 -9
- package/dist/product.js.map +1 -1
- package/dist/queries.d.ts.map +1 -1
- package/dist/queries.js +194 -32
- package/dist/queries.js.map +1 -1
- package/dist/roles.d.ts +25 -31
- package/dist/roles.d.ts.map +1 -1
- package/dist/roles.js +37 -10
- package/dist/roles.js.map +1 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +13 -12
- package/dist/workflow.js.map +1 -1
- package/package.json +20 -13
- package/src/dollar.ts +5 -2
- package/src/entities/organization.ts +31 -18
- package/src/finance/account.ts +48 -0
- package/src/finance/authority.ts +42 -0
- package/src/finance/card.ts +38 -0
- package/src/finance/identity.ts +31 -0
- package/src/finance/index.ts +117 -0
- package/src/finance/ledger.ts +26 -0
- package/src/finance/merchant.ts +127 -0
- package/src/finance/outcome-contract.ts +157 -0
- package/src/finance/port.ts +144 -0
- package/src/finance/pricing.ts +197 -0
- package/src/finance/proof-predicate.ts +106 -0
- package/src/finance/refund.ts +52 -0
- package/src/finance/sla.ts +33 -0
- package/src/finance/types.ts +75 -0
- package/src/goals.ts +78 -12
- package/src/index.ts +48 -18
- package/src/kpis.ts +62 -8
- package/src/metrics.ts +92 -79
- package/src/okrs.ts +120 -20
- package/src/organization.ts +12 -15
- package/src/process.ts +11 -12
- package/src/product.ts +8 -9
- package/src/queries.ts +238 -75
- package/src/roles.ts +62 -61
- package/src/workflow.ts +22 -15
- package/test/business.test.ts +282 -0
- package/test/dollar.test.ts +270 -0
- package/test/entities.test.ts +628 -0
- package/test/financials.test.ts +539 -0
- package/test/goals.test.ts +451 -0
- package/{src → test}/index.test.ts +1 -1
- package/test/kpis.test.ts +440 -0
- package/test/metrics.test.ts +744 -0
- package/test/okrs.test.ts +741 -0
- package/test/organization.test.ts +548 -0
- package/test/process.test.ts +503 -0
- package/test/product.test.ts +430 -0
- package/test/queries.test.ts +556 -0
- package/test/roles.test.ts +546 -0
- package/test/service.test.ts +450 -0
- package/test/types.test.ts +1141 -0
- package/test/vision.test.ts +214 -0
- package/test/workflow.test.ts +501 -0
- package/vitest.config.ts +47 -0
- package/LICENSE +0 -21
- package/dist/canvas/activities.d.ts +0 -19
- package/dist/canvas/activities.d.ts.map +0 -1
- package/dist/canvas/activities.js +0 -20
- package/dist/canvas/activities.js.map +0 -1
- package/dist/canvas/channels.d.ts +0 -20
- package/dist/canvas/channels.d.ts.map +0 -1
- package/dist/canvas/channels.js +0 -21
- package/dist/canvas/channels.js.map +0 -1
- package/dist/canvas/relationships.d.ts +0 -20
- package/dist/canvas/relationships.d.ts.map +0 -1
- package/dist/canvas/relationships.js +0 -21
- package/dist/canvas/relationships.js.map +0 -1
- package/dist/canvas/resources.d.ts +0 -20
- package/dist/canvas/resources.d.ts.map +0 -1
- package/dist/canvas/resources.js +0 -30
- package/dist/canvas/resources.js.map +0 -1
- package/dist/canvas/revenue.d.ts +0 -22
- package/dist/canvas/revenue.d.ts.map +0 -1
- package/dist/canvas/revenue.js +0 -30
- package/dist/canvas/revenue.js.map +0 -1
- package/dist/canvas/segments.d.ts +0 -20
- package/dist/canvas/segments.d.ts.map +0 -1
- package/dist/canvas/segments.js +0 -28
- package/dist/canvas/segments.js.map +0 -1
- package/dist/canvas/types.d.ts +0 -232
- package/dist/canvas/types.d.ts.map +0 -1
- package/dist/canvas/types.js +0 -8
- package/dist/canvas/value.d.ts +0 -20
- package/dist/canvas/value.d.ts.map +0 -1
- package/dist/canvas/value.js +0 -21
- package/dist/canvas/value.js.map +0 -1
- package/src/business.js +0 -108
- package/src/canvas/activities.ts +0 -32
- package/src/canvas/canvas.ts +0 -482
- package/src/canvas/channels.ts +0 -34
- package/src/canvas/costs.ts +0 -43
- package/src/canvas/economics.ts +0 -99
- package/src/canvas/index.ts +0 -206
- package/src/canvas/partnerships.ts +0 -34
- package/src/canvas/projections.ts +0 -141
- package/src/canvas/relationships.ts +0 -34
- package/src/canvas/resources.ts +0 -43
- package/src/canvas/revenue.ts +0 -56
- package/src/canvas/segments.ts +0 -42
- package/src/canvas/types.ts +0 -363
- package/src/canvas/value.ts +0 -34
- package/src/dollar.js +0 -106
- package/src/entities/assets.js +0 -322
- package/src/entities/business.js +0 -369
- package/src/entities/communication.js +0 -254
- package/src/entities/customers.js +0 -988
- package/src/entities/financials.js +0 -931
- package/src/entities/goals.js +0 -799
- package/src/entities/index.js +0 -197
- package/src/entities/legal.js +0 -300
- package/src/entities/market.js +0 -300
- package/src/entities/marketing.js +0 -1156
- package/src/entities/offerings.js +0 -726
- package/src/entities/operations.js +0 -786
- package/src/entities/organization.js +0 -806
- package/src/entities/partnerships.js +0 -299
- package/src/entities/planning.js +0 -270
- package/src/entities/projects.js +0 -348
- package/src/entities/risk.js +0 -292
- package/src/entities/sales.js +0 -1247
- package/src/financials.js +0 -296
- package/src/goals.js +0 -214
- package/src/index.js +0 -131
- package/src/index.test.js +0 -274
- package/src/kpis.js +0 -231
- package/src/metrics.js +0 -324
- package/src/okrs.js +0 -268
- package/src/organization.js +0 -172
- package/src/process.js +0 -240
- package/src/product.js +0 -144
- package/src/queries.js +0 -414
- package/src/roles.js +0 -254
- package/src/service.js +0 -139
- package/src/types.js +0 -4
- package/src/vision.js +0 -67
- package/src/workflow.js +0 -246
- package/tests/canvas.test.ts +0 -842
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/canvas/relationships.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAExE,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,GAAG,oBAAoB,CAYvG"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Customer Relationships
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with customer relationships.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a customer relationship
|
|
8
|
-
*/
|
|
9
|
-
export function createCustomerRelationship(input) {
|
|
10
|
-
const { name, type, segment, touchFrequency, automationLevel, supportChannels, platforms } = input;
|
|
11
|
-
return {
|
|
12
|
-
name,
|
|
13
|
-
type,
|
|
14
|
-
segment,
|
|
15
|
-
touchFrequency,
|
|
16
|
-
automationLevel,
|
|
17
|
-
supportChannels,
|
|
18
|
-
platforms,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=relationships.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/canvas/relationships.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAsC;IAC/E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAElG,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,cAAc;QACd,eAAe;QACf,eAAe;QACf,SAAS;KACV,CAAA;AACH,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key Resources
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with key resources.
|
|
5
|
-
*/
|
|
6
|
-
import type { KeyResource, ResourceType } from './types.js';
|
|
7
|
-
export interface CreateKeyResourceInput {
|
|
8
|
-
name: string;
|
|
9
|
-
type: ResourceType;
|
|
10
|
-
cost?: number;
|
|
11
|
-
depreciation?: string;
|
|
12
|
-
protectionType?: string;
|
|
13
|
-
headcount?: number;
|
|
14
|
-
averageCost?: number;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create a key resource
|
|
18
|
-
*/
|
|
19
|
-
export declare function createKeyResource(input: CreateKeyResourceInput): KeyResource;
|
|
20
|
-
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/canvas/resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,WAAW,CAqB5E"}
|
package/dist/canvas/resources.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key Resources
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with key resources.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a key resource
|
|
8
|
-
*/
|
|
9
|
-
export function createKeyResource(input) {
|
|
10
|
-
const { name, type, cost, depreciation, protectionType, headcount, averageCost } = input;
|
|
11
|
-
// Calculate total cost for human resources
|
|
12
|
-
let totalCost;
|
|
13
|
-
if (headcount !== undefined && averageCost !== undefined) {
|
|
14
|
-
totalCost = headcount * averageCost;
|
|
15
|
-
}
|
|
16
|
-
else if (cost !== undefined) {
|
|
17
|
-
totalCost = cost;
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
name,
|
|
21
|
-
type,
|
|
22
|
-
cost,
|
|
23
|
-
depreciation,
|
|
24
|
-
protectionType,
|
|
25
|
-
headcount,
|
|
26
|
-
averageCost,
|
|
27
|
-
totalCost,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=resources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/canvas/resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAExF,2CAA2C;IAC3C,IAAI,SAA6B,CAAA;IACjC,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACzD,SAAS,GAAG,SAAS,GAAG,WAAW,CAAA;IACrC,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,cAAc;QACd,SAAS;QACT,WAAW;QACX,SAAS;KACV,CAAA;AACH,CAAC"}
|
package/dist/canvas/revenue.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Revenue Streams
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with revenue streams.
|
|
5
|
-
*/
|
|
6
|
-
import type { RevenueStream, RevenueType, PricingModel, PricingTier } from './types.js';
|
|
7
|
-
export interface CreateRevenueStreamInput {
|
|
8
|
-
name: string;
|
|
9
|
-
type: RevenueType;
|
|
10
|
-
pricingModel: PricingModel;
|
|
11
|
-
price?: number;
|
|
12
|
-
billingCycle?: 'monthly' | 'quarterly' | 'annual';
|
|
13
|
-
pricePerUnit?: number;
|
|
14
|
-
unitName?: string;
|
|
15
|
-
tiers?: PricingTier[];
|
|
16
|
-
activeCustomers?: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Create a revenue stream
|
|
20
|
-
*/
|
|
21
|
-
export declare function createRevenueStream(input: CreateRevenueStreamInput): RevenueStream;
|
|
22
|
-
//# sourceMappingURL=revenue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"revenue.d.ts","sourceRoot":"","sources":["../../src/canvas/revenue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEvF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,aAAa,CAgClF"}
|
package/dist/canvas/revenue.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Revenue Streams
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with revenue streams.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a revenue stream
|
|
8
|
-
*/
|
|
9
|
-
export function createRevenueStream(input) {
|
|
10
|
-
const { name, type, pricingModel, price, billingCycle, pricePerUnit, unitName, tiers, activeCustomers, } = input;
|
|
11
|
-
// Calculate annual revenue if we have the required fields
|
|
12
|
-
let annualRevenue;
|
|
13
|
-
if (price !== undefined && activeCustomers !== undefined) {
|
|
14
|
-
const multiplier = billingCycle === 'annual' ? 1 : billingCycle === 'quarterly' ? 4 : 12;
|
|
15
|
-
annualRevenue = price * multiplier * activeCustomers;
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
name,
|
|
19
|
-
type,
|
|
20
|
-
pricingModel,
|
|
21
|
-
price,
|
|
22
|
-
billingCycle,
|
|
23
|
-
pricePerUnit,
|
|
24
|
-
unitName,
|
|
25
|
-
tiers,
|
|
26
|
-
activeCustomers,
|
|
27
|
-
annualRevenue,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=revenue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"revenue.js","sourceRoot":"","sources":["../../src/canvas/revenue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,eAAe,GAChB,GAAG,KAAK,CAAA;IAET,0DAA0D;IAC1D,IAAI,aAAiC,CAAA;IACrC,IAAI,KAAK,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACxF,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,eAAe,CAAA;IACtD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,KAAK;QACL,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,KAAK;QACL,eAAe;QACf,aAAa;KACd,CAAA;AACH,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Customer Segments
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with customer segments.
|
|
5
|
-
*/
|
|
6
|
-
import type { CustomerSegment, CustomerSegmentType } from './types.js';
|
|
7
|
-
export interface CreateCustomerSegmentInput {
|
|
8
|
-
name: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
type: CustomerSegmentType;
|
|
11
|
-
characteristics?: string[];
|
|
12
|
-
size?: number;
|
|
13
|
-
revenuePerCustomer?: number;
|
|
14
|
-
expectedPenetration?: number;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create a customer segment
|
|
18
|
-
*/
|
|
19
|
-
export declare function createCustomerSegment(input: CreateCustomerSegmentInput): CustomerSegment;
|
|
20
|
-
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/canvas/segments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEtE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,mBAAmB,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,eAAe,CAoBxF"}
|
package/dist/canvas/segments.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Customer Segments
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with customer segments.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a customer segment
|
|
8
|
-
*/
|
|
9
|
-
export function createCustomerSegment(input) {
|
|
10
|
-
const { name, description, type, characteristics, size, revenuePerCustomer, expectedPenetration } = input;
|
|
11
|
-
// Calculate potential if we have the required fields
|
|
12
|
-
let potential;
|
|
13
|
-
if (size !== undefined && revenuePerCustomer !== undefined) {
|
|
14
|
-
const penetration = expectedPenetration ?? 1;
|
|
15
|
-
potential = size * revenuePerCustomer * penetration;
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
name,
|
|
19
|
-
description,
|
|
20
|
-
type,
|
|
21
|
-
characteristics,
|
|
22
|
-
size,
|
|
23
|
-
revenuePerCustomer,
|
|
24
|
-
expectedPenetration,
|
|
25
|
-
potential,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=segments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/canvas/segments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAA;IAEzG,qDAAqD;IACrD,IAAI,SAA6B,CAAA;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,mBAAmB,IAAI,CAAC,CAAA;QAC5C,SAAS,GAAG,IAAI,GAAG,kBAAkB,GAAG,WAAW,CAAA;IACrD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,eAAe;QACf,IAAI;QACJ,kBAAkB;QAClB,mBAAmB;QACnB,SAAS;KACV,CAAA;AACH,CAAC"}
|
package/dist/canvas/types.d.ts
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Business Model Canvas Types
|
|
3
|
-
*
|
|
4
|
-
* TypeScript types for the 9 building blocks of the Business Model Canvas
|
|
5
|
-
* plus unit economics and financial projections.
|
|
6
|
-
*/
|
|
7
|
-
export type CustomerSegmentType = 'mass-market' | 'niche' | 'segmented' | 'diversified' | 'multi-sided';
|
|
8
|
-
export interface CustomerSegment {
|
|
9
|
-
name: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
type: CustomerSegmentType;
|
|
12
|
-
characteristics?: string[];
|
|
13
|
-
size?: number;
|
|
14
|
-
revenuePerCustomer?: number;
|
|
15
|
-
expectedPenetration?: number;
|
|
16
|
-
potential?: number;
|
|
17
|
-
}
|
|
18
|
-
export type ValueType = 'newness' | 'performance' | 'customization' | 'getting-job-done' | 'design' | 'brand-status' | 'price' | 'cost-reduction' | 'risk-reduction' | 'accessibility' | 'convenience';
|
|
19
|
-
export interface ValueProposition {
|
|
20
|
-
name: string;
|
|
21
|
-
description?: string;
|
|
22
|
-
valueType?: ValueType;
|
|
23
|
-
benefits: string[];
|
|
24
|
-
targetSegments?: string[];
|
|
25
|
-
quantifiedValue?: string;
|
|
26
|
-
segmentFit?: Record<string, number>;
|
|
27
|
-
}
|
|
28
|
-
export type ChannelType = 'direct' | 'indirect' | 'partner' | 'digital';
|
|
29
|
-
export type ChannelPhase = 'awareness' | 'evaluation' | 'purchase' | 'delivery' | 'support';
|
|
30
|
-
export interface Channel {
|
|
31
|
-
name: string;
|
|
32
|
-
type: ChannelType;
|
|
33
|
-
phases?: ChannelPhase[];
|
|
34
|
-
costPerAcquisition?: number;
|
|
35
|
-
partnerType?: string;
|
|
36
|
-
revenueShare?: number;
|
|
37
|
-
conversionRate?: number;
|
|
38
|
-
}
|
|
39
|
-
export type RelationshipType = 'personal-assistance' | 'dedicated-assistance' | 'self-service' | 'automated' | 'community' | 'co-creation';
|
|
40
|
-
export interface CustomerRelationship {
|
|
41
|
-
name: string;
|
|
42
|
-
type: RelationshipType;
|
|
43
|
-
segment?: string;
|
|
44
|
-
touchFrequency?: string;
|
|
45
|
-
automationLevel?: number;
|
|
46
|
-
supportChannels?: string[];
|
|
47
|
-
platforms?: string[];
|
|
48
|
-
}
|
|
49
|
-
export type RevenueType = 'recurring' | 'one-time' | 'transaction';
|
|
50
|
-
export type PricingModel = 'subscription' | 'usage-based' | 'tiered' | 'freemium' | 'fixed' | 'dynamic' | 'auction' | 'licensing';
|
|
51
|
-
export interface PricingTier {
|
|
52
|
-
name: string;
|
|
53
|
-
price: number;
|
|
54
|
-
features?: string[];
|
|
55
|
-
}
|
|
56
|
-
export interface RevenueStream {
|
|
57
|
-
name: string;
|
|
58
|
-
type: RevenueType;
|
|
59
|
-
pricingModel: PricingModel;
|
|
60
|
-
price?: number;
|
|
61
|
-
billingCycle?: 'monthly' | 'quarterly' | 'annual';
|
|
62
|
-
pricePerUnit?: number;
|
|
63
|
-
unitName?: string;
|
|
64
|
-
tiers?: PricingTier[];
|
|
65
|
-
activeCustomers?: number;
|
|
66
|
-
annualRevenue?: number;
|
|
67
|
-
}
|
|
68
|
-
export type ResourceType = 'physical' | 'intellectual' | 'human' | 'financial';
|
|
69
|
-
export interface KeyResource {
|
|
70
|
-
name: string;
|
|
71
|
-
type: ResourceType;
|
|
72
|
-
cost?: number;
|
|
73
|
-
depreciation?: string;
|
|
74
|
-
protectionType?: string;
|
|
75
|
-
headcount?: number;
|
|
76
|
-
averageCost?: number;
|
|
77
|
-
totalCost?: number;
|
|
78
|
-
}
|
|
79
|
-
export type ActivityCategory = 'production' | 'problem-solving' | 'platform';
|
|
80
|
-
export interface KeyActivity {
|
|
81
|
-
name: string;
|
|
82
|
-
category: ActivityCategory;
|
|
83
|
-
description?: string;
|
|
84
|
-
resources?: string[];
|
|
85
|
-
metrics?: string[];
|
|
86
|
-
uptime?: number;
|
|
87
|
-
}
|
|
88
|
-
export type PartnershipType = 'strategic-alliance' | 'coopetition' | 'joint-venture' | 'buyer-supplier';
|
|
89
|
-
export interface KeyPartnership {
|
|
90
|
-
name: string;
|
|
91
|
-
type: PartnershipType;
|
|
92
|
-
purpose?: string;
|
|
93
|
-
benefits?: string[];
|
|
94
|
-
contractValue?: number;
|
|
95
|
-
contractTerm?: number;
|
|
96
|
-
sharedActivities?: string[];
|
|
97
|
-
}
|
|
98
|
-
export type CostCategory = 'fixed' | 'variable' | 'semi-variable';
|
|
99
|
-
export interface CostItem {
|
|
100
|
-
name: string;
|
|
101
|
-
category: CostCategory;
|
|
102
|
-
amount?: number;
|
|
103
|
-
period?: 'monthly' | 'quarterly' | 'annual';
|
|
104
|
-
unitCost?: number;
|
|
105
|
-
unitName?: string;
|
|
106
|
-
volumeEstimate?: number;
|
|
107
|
-
estimatedTotal?: number;
|
|
108
|
-
}
|
|
109
|
-
export interface BusinessModelCanvas {
|
|
110
|
-
name: string;
|
|
111
|
-
customerSegments: CustomerSegment[];
|
|
112
|
-
valuePropositions: ValueProposition[];
|
|
113
|
-
channels: Channel[];
|
|
114
|
-
customerRelationships: CustomerRelationship[];
|
|
115
|
-
revenueStreams: RevenueStream[];
|
|
116
|
-
keyResources: KeyResource[];
|
|
117
|
-
keyActivities: KeyActivity[];
|
|
118
|
-
keyPartnerships: KeyPartnership[];
|
|
119
|
-
costStructure: CostItem[];
|
|
120
|
-
metadata?: Record<string, unknown>;
|
|
121
|
-
}
|
|
122
|
-
export interface CanvasValidation {
|
|
123
|
-
isComplete: boolean;
|
|
124
|
-
missingBlocks: string[];
|
|
125
|
-
warnings: string[];
|
|
126
|
-
}
|
|
127
|
-
export interface CanvasSummary {
|
|
128
|
-
totalAddressableMarket: number;
|
|
129
|
-
projectedAnnualRevenue: number;
|
|
130
|
-
totalAnnualCosts: number;
|
|
131
|
-
projectedProfit: number;
|
|
132
|
-
}
|
|
133
|
-
export interface UnitEconomics {
|
|
134
|
-
ltv: number;
|
|
135
|
-
cac: number;
|
|
136
|
-
ltvCacRatio: number;
|
|
137
|
-
paybackMonths: number;
|
|
138
|
-
}
|
|
139
|
-
export interface LTVInput {
|
|
140
|
-
averageRevenuePerUser: number;
|
|
141
|
-
grossMargin: number;
|
|
142
|
-
churnRate: number;
|
|
143
|
-
}
|
|
144
|
-
export interface CACInput {
|
|
145
|
-
marketingSpend: number;
|
|
146
|
-
salesSpend: number;
|
|
147
|
-
newCustomers: number;
|
|
148
|
-
}
|
|
149
|
-
export interface UnitEconomicsInput extends LTVInput, CACInput {
|
|
150
|
-
}
|
|
151
|
-
export interface Margins {
|
|
152
|
-
grossMargin: number;
|
|
153
|
-
grossProfit: number;
|
|
154
|
-
operatingMargin: number;
|
|
155
|
-
operatingIncome: number;
|
|
156
|
-
netMargin: number;
|
|
157
|
-
netIncome: number;
|
|
158
|
-
}
|
|
159
|
-
export interface MarginsInput {
|
|
160
|
-
revenue: number;
|
|
161
|
-
cogs: number;
|
|
162
|
-
operatingExpenses: number;
|
|
163
|
-
taxes?: number;
|
|
164
|
-
}
|
|
165
|
-
export interface MonthlyRevenue {
|
|
166
|
-
month: number;
|
|
167
|
-
mrr: number;
|
|
168
|
-
arr: number;
|
|
169
|
-
}
|
|
170
|
-
export interface RevenueProjection {
|
|
171
|
-
months: MonthlyRevenue[];
|
|
172
|
-
endingMRR: number;
|
|
173
|
-
endingARR: number;
|
|
174
|
-
}
|
|
175
|
-
export interface MonthlyCost {
|
|
176
|
-
month: number;
|
|
177
|
-
fixedCosts: number;
|
|
178
|
-
variableCosts: number;
|
|
179
|
-
totalCost: number;
|
|
180
|
-
}
|
|
181
|
-
export interface CostProjection {
|
|
182
|
-
months: MonthlyCost[];
|
|
183
|
-
totalCosts: number;
|
|
184
|
-
}
|
|
185
|
-
export interface MonthlyProfitability {
|
|
186
|
-
month: number;
|
|
187
|
-
revenue: number;
|
|
188
|
-
costs: number;
|
|
189
|
-
profit: number;
|
|
190
|
-
cumulativeProfit: number;
|
|
191
|
-
}
|
|
192
|
-
export interface ProfitabilityProjection {
|
|
193
|
-
months: MonthlyProfitability[];
|
|
194
|
-
breakEvenMonth: number | undefined;
|
|
195
|
-
totalProfit: number;
|
|
196
|
-
}
|
|
197
|
-
export interface RevenueProjectionInput {
|
|
198
|
-
startingMRR: number;
|
|
199
|
-
monthlyGrowthRate: number;
|
|
200
|
-
months: number;
|
|
201
|
-
}
|
|
202
|
-
export interface CostProjectionInput {
|
|
203
|
-
fixedCosts: number;
|
|
204
|
-
variableCostPerUser: number;
|
|
205
|
-
startingUsers: number;
|
|
206
|
-
monthlyUserGrowth: number;
|
|
207
|
-
months: number;
|
|
208
|
-
}
|
|
209
|
-
export interface ProfitabilityProjectionInput {
|
|
210
|
-
startingMRR: number;
|
|
211
|
-
monthlyGrowthRate: number;
|
|
212
|
-
fixedCosts: number;
|
|
213
|
-
grossMargin: number;
|
|
214
|
-
months: number;
|
|
215
|
-
}
|
|
216
|
-
export interface CanvasStrengthAnalysis {
|
|
217
|
-
overallScore: number;
|
|
218
|
-
strengths: string[];
|
|
219
|
-
weaknesses: string[];
|
|
220
|
-
blockScores: Record<string, number>;
|
|
221
|
-
}
|
|
222
|
-
export interface CanvasGaps {
|
|
223
|
-
criticalGaps: string[];
|
|
224
|
-
warnings: string[];
|
|
225
|
-
recommendations: string[];
|
|
226
|
-
}
|
|
227
|
-
export interface FinancialProjection {
|
|
228
|
-
revenue: RevenueProjection;
|
|
229
|
-
costs: CostProjection;
|
|
230
|
-
profitability: ProfitabilityProjection;
|
|
231
|
-
}
|
|
232
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/canvas/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,mBAAmB,GAC3B,aAAa,GACb,OAAO,GACP,WAAW,GACX,aAAa,GACb,aAAa,CAAA;AAEjB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,mBAAmB,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,aAAa,GACb,eAAe,GACf,kBAAkB,GAClB,QAAQ,GACR,cAAc,GACd,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,aAAa,CAAA;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAMD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,YAAY,GACZ,UAAU,GACV,UAAU,GACV,SAAS,CAAA;AAEb,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,sBAAsB,GACtB,cAAc,GACd,WAAW,GACX,WAAW,GACX,aAAa,CAAA;AAEjB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAMD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAA;AAElE,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,CAAA;AAEf,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAMD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,OAAO,GAAG,WAAW,CAAA;AAE9E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,iBAAiB,GAAG,UAAU,CAAA;AAE5E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAMD,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,aAAa,GACb,eAAe,GACf,gBAAgB,CAAA;AAEpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;AAMD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,eAAe,CAAA;AAEjE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,EAAE,eAAe,EAAE,CAAA;IACnC,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,aAAa,EAAE,WAAW,EAAE,CAAA;IAC5B,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,aAAa,EAAE,QAAQ,EAAE,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;CACxB;AAMD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,EAAE,QAAQ;CAAG;AAEjE,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,KAAK,EAAE,cAAc,CAAA;IACrB,aAAa,EAAE,uBAAuB,CAAA;CACvC"}
|
package/dist/canvas/types.js
DELETED
package/dist/canvas/value.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Value Propositions
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with value propositions.
|
|
5
|
-
*/
|
|
6
|
-
import type { ValueProposition, ValueType } from './types.js';
|
|
7
|
-
export interface CreateValuePropositionInput {
|
|
8
|
-
name: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
valueType?: ValueType;
|
|
11
|
-
benefits?: string[];
|
|
12
|
-
targetSegments?: string[];
|
|
13
|
-
quantifiedValue?: string;
|
|
14
|
-
segmentFit?: Record<string, number>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create a value proposition
|
|
18
|
-
*/
|
|
19
|
-
export declare function createValueProposition(input: CreateValuePropositionInput): ValueProposition;
|
|
20
|
-
//# sourceMappingURL=value.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../src/canvas/value.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE7D,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,gBAAgB,CAY3F"}
|
package/dist/canvas/value.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Value Propositions
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with value propositions.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Create a value proposition
|
|
8
|
-
*/
|
|
9
|
-
export function createValueProposition(input) {
|
|
10
|
-
const { name, description, valueType, benefits = [], targetSegments, quantifiedValue, segmentFit } = input;
|
|
11
|
-
return {
|
|
12
|
-
name,
|
|
13
|
-
description,
|
|
14
|
-
valueType,
|
|
15
|
-
benefits,
|
|
16
|
-
targetSegments,
|
|
17
|
-
quantifiedValue,
|
|
18
|
-
segmentFit,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=value.js.map
|
package/dist/canvas/value.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../src/canvas/value.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAE1G,OAAO;QACL,IAAI;QACJ,WAAW;QACX,SAAS;QACT,QAAQ;QACR,cAAc;QACd,eAAe;QACf,UAAU;KACX,CAAA;AACH,CAAC"}
|
package/src/business.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Business entity definition
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Define a business entity with organizational structure, mission, and values
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* const acme = Business({
|
|
10
|
-
* name: 'Acme Corp',
|
|
11
|
-
* description: 'Building the future of widgets',
|
|
12
|
-
* industry: 'Technology',
|
|
13
|
-
* mission: 'To make widgets accessible to everyone',
|
|
14
|
-
* values: ['Innovation', 'Customer Focus', 'Integrity'],
|
|
15
|
-
* targetMarket: 'SMB and Enterprise',
|
|
16
|
-
* foundedAt: new Date('2020-01-01'),
|
|
17
|
-
* teamSize: 50,
|
|
18
|
-
* structure: {
|
|
19
|
-
* departments: [
|
|
20
|
-
* {
|
|
21
|
-
* name: 'Engineering',
|
|
22
|
-
* head: 'Jane Smith',
|
|
23
|
-
* members: ['Alice', 'Bob', 'Charlie'],
|
|
24
|
-
* budget: 2000000,
|
|
25
|
-
* },
|
|
26
|
-
* {
|
|
27
|
-
* name: 'Sales',
|
|
28
|
-
* head: 'John Doe',
|
|
29
|
-
* members: ['David', 'Eve'],
|
|
30
|
-
* budget: 1000000,
|
|
31
|
-
* },
|
|
32
|
-
* ],
|
|
33
|
-
* },
|
|
34
|
-
* })
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export function Business(definition) {
|
|
38
|
-
// Validate required fields
|
|
39
|
-
if (!definition.name) {
|
|
40
|
-
throw new Error('Business name is required');
|
|
41
|
-
}
|
|
42
|
-
// Return validated business definition
|
|
43
|
-
return {
|
|
44
|
-
...definition,
|
|
45
|
-
foundedAt: definition.foundedAt || new Date(),
|
|
46
|
-
teamSize: definition.teamSize || 0,
|
|
47
|
-
values: definition.values || [],
|
|
48
|
-
metadata: definition.metadata || {},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get total budget across all departments
|
|
53
|
-
*/
|
|
54
|
-
export function getTotalBudget(business) {
|
|
55
|
-
if (!business.structure?.departments)
|
|
56
|
-
return 0;
|
|
57
|
-
return business.structure.departments.reduce((total, dept) => {
|
|
58
|
-
return total + (dept.budget || 0);
|
|
59
|
-
}, 0);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get total team size across all departments
|
|
63
|
-
*/
|
|
64
|
-
export function getTotalTeamSize(business) {
|
|
65
|
-
if (!business.structure?.departments)
|
|
66
|
-
return business.teamSize || 0;
|
|
67
|
-
return business.structure.departments.reduce((total, dept) => {
|
|
68
|
-
return total + (dept.members?.length || 0);
|
|
69
|
-
}, 0);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Get department by name
|
|
73
|
-
*/
|
|
74
|
-
export function getDepartment(business, name) {
|
|
75
|
-
return business.structure?.departments?.find(d => d.name === name);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get team by name
|
|
79
|
-
*/
|
|
80
|
-
export function getTeam(business, name) {
|
|
81
|
-
return business.structure?.teams?.find(t => t.name === name);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Validate business definition
|
|
85
|
-
*/
|
|
86
|
-
export function validateBusiness(business) {
|
|
87
|
-
const errors = [];
|
|
88
|
-
if (!business.name) {
|
|
89
|
-
errors.push('Business name is required');
|
|
90
|
-
}
|
|
91
|
-
if (business.teamSize && business.teamSize < 0) {
|
|
92
|
-
errors.push('Team size cannot be negative');
|
|
93
|
-
}
|
|
94
|
-
if (business.structure?.departments) {
|
|
95
|
-
for (const dept of business.structure.departments) {
|
|
96
|
-
if (!dept.name) {
|
|
97
|
-
errors.push('Department name is required');
|
|
98
|
-
}
|
|
99
|
-
if (dept.budget && dept.budget < 0) {
|
|
100
|
-
errors.push(`Department ${dept.name} budget cannot be negative`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
valid: errors.length === 0,
|
|
106
|
-
errors,
|
|
107
|
-
};
|
|
108
|
-
}
|
package/src/canvas/activities.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key Activities
|
|
3
|
-
*
|
|
4
|
-
* Functions for creating and working with key activities.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { KeyActivity, ActivityCategory } from './types.js'
|
|
8
|
-
|
|
9
|
-
export interface CreateKeyActivityInput {
|
|
10
|
-
name: string
|
|
11
|
-
category: ActivityCategory
|
|
12
|
-
description?: string
|
|
13
|
-
resources?: string[]
|
|
14
|
-
metrics?: string[]
|
|
15
|
-
uptime?: number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Create a key activity
|
|
20
|
-
*/
|
|
21
|
-
export function createKeyActivity(input: CreateKeyActivityInput): KeyActivity {
|
|
22
|
-
const { name, category, description, resources, metrics, uptime } = input
|
|
23
|
-
|
|
24
|
-
return {
|
|
25
|
-
name,
|
|
26
|
-
category,
|
|
27
|
-
description,
|
|
28
|
-
resources,
|
|
29
|
-
metrics,
|
|
30
|
-
uptime,
|
|
31
|
-
}
|
|
32
|
-
}
|