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.
Files changed (235) hide show
  1. package/.turbo/turbo-build.log +4 -5
  2. package/CHANGELOG.md +53 -0
  3. package/README.md +2 -0
  4. package/dist/dollar.d.ts.map +1 -1
  5. package/dist/dollar.js +2 -2
  6. package/dist/dollar.js.map +1 -1
  7. package/dist/entities/organization.d.ts +4 -0
  8. package/dist/entities/organization.d.ts.map +1 -1
  9. package/dist/entities/organization.js +27 -18
  10. package/dist/entities/organization.js.map +1 -1
  11. package/dist/entities/planning.d.ts +87 -0
  12. package/dist/finance/account.d.ts +44 -0
  13. package/dist/finance/account.d.ts.map +1 -0
  14. package/dist/finance/account.js +6 -0
  15. package/dist/finance/account.js.map +1 -0
  16. package/dist/finance/authority.d.ts +78 -0
  17. package/dist/finance/authority.d.ts.map +1 -0
  18. package/dist/finance/authority.js +27 -0
  19. package/dist/finance/authority.js.map +1 -0
  20. package/dist/finance/card.d.ts +36 -0
  21. package/dist/finance/card.d.ts.map +1 -0
  22. package/dist/finance/card.js +6 -0
  23. package/dist/finance/card.js.map +1 -0
  24. package/dist/finance/identity.d.ts +30 -0
  25. package/dist/finance/identity.d.ts.map +1 -0
  26. package/dist/finance/identity.js +8 -0
  27. package/dist/finance/identity.js.map +1 -0
  28. package/dist/finance/index.d.ts +36 -0
  29. package/dist/finance/index.d.ts.map +1 -0
  30. package/dist/finance/index.js +22 -0
  31. package/dist/finance/index.js.map +1 -0
  32. package/dist/finance/ledger.d.ts +24 -0
  33. package/dist/finance/ledger.d.ts.map +1 -0
  34. package/dist/finance/ledger.js +8 -0
  35. package/dist/finance/ledger.js.map +1 -0
  36. package/dist/finance/merchant.d.ts +129 -0
  37. package/dist/finance/merchant.d.ts.map +1 -0
  38. package/dist/finance/merchant.js +21 -0
  39. package/dist/finance/merchant.js.map +1 -0
  40. package/dist/finance/outcome-contract.d.ts +139 -0
  41. package/dist/finance/outcome-contract.d.ts.map +1 -0
  42. package/dist/finance/outcome-contract.js +27 -0
  43. package/dist/finance/outcome-contract.js.map +1 -0
  44. package/dist/finance/port.d.ts +121 -0
  45. package/dist/finance/port.d.ts.map +1 -0
  46. package/dist/finance/port.js +10 -0
  47. package/dist/finance/port.js.map +1 -0
  48. package/dist/finance/pricing.d.ts +154 -0
  49. package/dist/finance/pricing.d.ts.map +1 -0
  50. package/dist/finance/pricing.js +79 -0
  51. package/dist/finance/pricing.js.map +1 -0
  52. package/dist/finance/proof-predicate.d.ts +92 -0
  53. package/dist/finance/proof-predicate.d.ts.map +1 -0
  54. package/dist/finance/proof-predicate.js +80 -0
  55. package/dist/finance/proof-predicate.js.map +1 -0
  56. package/dist/finance/refund.d.ts +44 -0
  57. package/dist/finance/refund.d.ts.map +1 -0
  58. package/dist/finance/refund.js +41 -0
  59. package/dist/finance/refund.js.map +1 -0
  60. package/dist/finance/sla.d.ts +25 -0
  61. package/dist/finance/sla.d.ts.map +1 -0
  62. package/dist/finance/sla.js +7 -0
  63. package/dist/finance/sla.js.map +1 -0
  64. package/dist/finance/types.d.ts +79 -0
  65. package/dist/finance/types.d.ts.map +1 -0
  66. package/dist/finance/types.js +8 -0
  67. package/dist/{canvas → finance}/types.js.map +1 -1
  68. package/dist/goals.d.ts +19 -0
  69. package/dist/goals.d.ts.map +1 -1
  70. package/dist/goals.js +81 -12
  71. package/dist/goals.js.map +1 -1
  72. package/dist/index.d.ts +12 -8
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +19 -7
  75. package/dist/index.js.map +1 -1
  76. package/dist/kpis.d.ts +19 -0
  77. package/dist/kpis.d.ts.map +1 -1
  78. package/dist/kpis.js +71 -6
  79. package/dist/kpis.js.map +1 -1
  80. package/dist/metrics.d.ts.map +1 -1
  81. package/dist/metrics.js +29 -24
  82. package/dist/metrics.js.map +1 -1
  83. package/dist/okrs.d.ts +34 -0
  84. package/dist/okrs.d.ts.map +1 -1
  85. package/dist/okrs.js +135 -13
  86. package/dist/okrs.js.map +1 -1
  87. package/dist/organization.d.ts.map +1 -1
  88. package/dist/organization.js +11 -11
  89. package/dist/organization.js.map +1 -1
  90. package/dist/process.d.ts.map +1 -1
  91. package/dist/process.js +13 -12
  92. package/dist/process.js.map +1 -1
  93. package/dist/product.d.ts.map +1 -1
  94. package/dist/product.js +9 -9
  95. package/dist/product.js.map +1 -1
  96. package/dist/queries.d.ts.map +1 -1
  97. package/dist/queries.js +194 -32
  98. package/dist/queries.js.map +1 -1
  99. package/dist/roles.d.ts +25 -31
  100. package/dist/roles.d.ts.map +1 -1
  101. package/dist/roles.js +37 -10
  102. package/dist/roles.js.map +1 -1
  103. package/dist/workflow.d.ts.map +1 -1
  104. package/dist/workflow.js +13 -12
  105. package/dist/workflow.js.map +1 -1
  106. package/package.json +20 -13
  107. package/src/dollar.ts +5 -2
  108. package/src/entities/organization.ts +31 -18
  109. package/src/finance/account.ts +48 -0
  110. package/src/finance/authority.ts +42 -0
  111. package/src/finance/card.ts +38 -0
  112. package/src/finance/identity.ts +31 -0
  113. package/src/finance/index.ts +117 -0
  114. package/src/finance/ledger.ts +26 -0
  115. package/src/finance/merchant.ts +127 -0
  116. package/src/finance/outcome-contract.ts +157 -0
  117. package/src/finance/port.ts +144 -0
  118. package/src/finance/pricing.ts +197 -0
  119. package/src/finance/proof-predicate.ts +106 -0
  120. package/src/finance/refund.ts +52 -0
  121. package/src/finance/sla.ts +33 -0
  122. package/src/finance/types.ts +75 -0
  123. package/src/goals.ts +78 -12
  124. package/src/index.ts +48 -18
  125. package/src/kpis.ts +62 -8
  126. package/src/metrics.ts +92 -79
  127. package/src/okrs.ts +120 -20
  128. package/src/organization.ts +12 -15
  129. package/src/process.ts +11 -12
  130. package/src/product.ts +8 -9
  131. package/src/queries.ts +238 -75
  132. package/src/roles.ts +62 -61
  133. package/src/workflow.ts +22 -15
  134. package/test/business.test.ts +282 -0
  135. package/test/dollar.test.ts +270 -0
  136. package/test/entities.test.ts +628 -0
  137. package/test/financials.test.ts +539 -0
  138. package/test/goals.test.ts +451 -0
  139. package/{src → test}/index.test.ts +1 -1
  140. package/test/kpis.test.ts +440 -0
  141. package/test/metrics.test.ts +744 -0
  142. package/test/okrs.test.ts +741 -0
  143. package/test/organization.test.ts +548 -0
  144. package/test/process.test.ts +503 -0
  145. package/test/product.test.ts +430 -0
  146. package/test/queries.test.ts +556 -0
  147. package/test/roles.test.ts +546 -0
  148. package/test/service.test.ts +450 -0
  149. package/test/types.test.ts +1141 -0
  150. package/test/vision.test.ts +214 -0
  151. package/test/workflow.test.ts +501 -0
  152. package/vitest.config.ts +47 -0
  153. package/LICENSE +0 -21
  154. package/dist/canvas/activities.d.ts +0 -19
  155. package/dist/canvas/activities.d.ts.map +0 -1
  156. package/dist/canvas/activities.js +0 -20
  157. package/dist/canvas/activities.js.map +0 -1
  158. package/dist/canvas/channels.d.ts +0 -20
  159. package/dist/canvas/channels.d.ts.map +0 -1
  160. package/dist/canvas/channels.js +0 -21
  161. package/dist/canvas/channels.js.map +0 -1
  162. package/dist/canvas/relationships.d.ts +0 -20
  163. package/dist/canvas/relationships.d.ts.map +0 -1
  164. package/dist/canvas/relationships.js +0 -21
  165. package/dist/canvas/relationships.js.map +0 -1
  166. package/dist/canvas/resources.d.ts +0 -20
  167. package/dist/canvas/resources.d.ts.map +0 -1
  168. package/dist/canvas/resources.js +0 -30
  169. package/dist/canvas/resources.js.map +0 -1
  170. package/dist/canvas/revenue.d.ts +0 -22
  171. package/dist/canvas/revenue.d.ts.map +0 -1
  172. package/dist/canvas/revenue.js +0 -30
  173. package/dist/canvas/revenue.js.map +0 -1
  174. package/dist/canvas/segments.d.ts +0 -20
  175. package/dist/canvas/segments.d.ts.map +0 -1
  176. package/dist/canvas/segments.js +0 -28
  177. package/dist/canvas/segments.js.map +0 -1
  178. package/dist/canvas/types.d.ts +0 -232
  179. package/dist/canvas/types.d.ts.map +0 -1
  180. package/dist/canvas/types.js +0 -8
  181. package/dist/canvas/value.d.ts +0 -20
  182. package/dist/canvas/value.d.ts.map +0 -1
  183. package/dist/canvas/value.js +0 -21
  184. package/dist/canvas/value.js.map +0 -1
  185. package/src/business.js +0 -108
  186. package/src/canvas/activities.ts +0 -32
  187. package/src/canvas/canvas.ts +0 -482
  188. package/src/canvas/channels.ts +0 -34
  189. package/src/canvas/costs.ts +0 -43
  190. package/src/canvas/economics.ts +0 -99
  191. package/src/canvas/index.ts +0 -206
  192. package/src/canvas/partnerships.ts +0 -34
  193. package/src/canvas/projections.ts +0 -141
  194. package/src/canvas/relationships.ts +0 -34
  195. package/src/canvas/resources.ts +0 -43
  196. package/src/canvas/revenue.ts +0 -56
  197. package/src/canvas/segments.ts +0 -42
  198. package/src/canvas/types.ts +0 -363
  199. package/src/canvas/value.ts +0 -34
  200. package/src/dollar.js +0 -106
  201. package/src/entities/assets.js +0 -322
  202. package/src/entities/business.js +0 -369
  203. package/src/entities/communication.js +0 -254
  204. package/src/entities/customers.js +0 -988
  205. package/src/entities/financials.js +0 -931
  206. package/src/entities/goals.js +0 -799
  207. package/src/entities/index.js +0 -197
  208. package/src/entities/legal.js +0 -300
  209. package/src/entities/market.js +0 -300
  210. package/src/entities/marketing.js +0 -1156
  211. package/src/entities/offerings.js +0 -726
  212. package/src/entities/operations.js +0 -786
  213. package/src/entities/organization.js +0 -806
  214. package/src/entities/partnerships.js +0 -299
  215. package/src/entities/planning.js +0 -270
  216. package/src/entities/projects.js +0 -348
  217. package/src/entities/risk.js +0 -292
  218. package/src/entities/sales.js +0 -1247
  219. package/src/financials.js +0 -296
  220. package/src/goals.js +0 -214
  221. package/src/index.js +0 -131
  222. package/src/index.test.js +0 -274
  223. package/src/kpis.js +0 -231
  224. package/src/metrics.js +0 -324
  225. package/src/okrs.js +0 -268
  226. package/src/organization.js +0 -172
  227. package/src/process.js +0 -240
  228. package/src/product.js +0 -144
  229. package/src/queries.js +0 -414
  230. package/src/roles.js +0 -254
  231. package/src/service.js +0 -139
  232. package/src/types.js +0 -4
  233. package/src/vision.js +0 -67
  234. package/src/workflow.js +0 -246
  235. 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"}
@@ -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"}
@@ -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"}
@@ -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"}
@@ -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"}
@@ -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":"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"}
@@ -1,8 +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 {};
8
- //# sourceMappingURL=types.js.map
@@ -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"}
@@ -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
@@ -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
- }
@@ -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
- }