@forgespace/branding-mcp 0.32.0 → 0.55.1

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 (196) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +47 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/branding-core/generators/brand-affiliate.d.ts +4 -0
  6. package/dist/lib/branding-core/generators/brand-affiliate.d.ts.map +1 -0
  7. package/dist/lib/branding-core/generators/brand-affiliate.js +249 -0
  8. package/dist/lib/branding-core/generators/brand-affiliate.js.map +1 -0
  9. package/dist/lib/branding-core/generators/brand-analytics.d.ts +3 -0
  10. package/dist/lib/branding-core/generators/brand-analytics.d.ts.map +1 -0
  11. package/dist/lib/branding-core/generators/brand-analytics.js +208 -0
  12. package/dist/lib/branding-core/generators/brand-analytics.js.map +1 -0
  13. package/dist/lib/branding-core/generators/brand-audio.d.ts +4 -0
  14. package/dist/lib/branding-core/generators/brand-audio.d.ts.map +1 -0
  15. package/dist/lib/branding-core/generators/brand-audio.js +200 -0
  16. package/dist/lib/branding-core/generators/brand-audio.js.map +1 -0
  17. package/dist/lib/branding-core/generators/brand-b2b.d.ts +4 -0
  18. package/dist/lib/branding-core/generators/brand-b2b.d.ts.map +1 -0
  19. package/dist/lib/branding-core/generators/brand-b2b.js +236 -0
  20. package/dist/lib/branding-core/generators/brand-b2b.js.map +1 -0
  21. package/dist/lib/branding-core/generators/brand-chatbot.d.ts +4 -0
  22. package/dist/lib/branding-core/generators/brand-chatbot.d.ts.map +1 -0
  23. package/dist/lib/branding-core/generators/brand-chatbot.js +174 -0
  24. package/dist/lib/branding-core/generators/brand-chatbot.js.map +1 -0
  25. package/dist/lib/branding-core/generators/brand-competitive.d.ts +3 -0
  26. package/dist/lib/branding-core/generators/brand-competitive.d.ts.map +1 -0
  27. package/dist/lib/branding-core/generators/brand-competitive.js +274 -0
  28. package/dist/lib/branding-core/generators/brand-competitive.js.map +1 -0
  29. package/dist/lib/branding-core/generators/brand-crisis.d.ts +3 -0
  30. package/dist/lib/branding-core/generators/brand-crisis.d.ts.map +1 -0
  31. package/dist/lib/branding-core/generators/brand-crisis.js +256 -0
  32. package/dist/lib/branding-core/generators/brand-crisis.js.map +1 -0
  33. package/dist/lib/branding-core/generators/brand-customer.d.ts +4 -0
  34. package/dist/lib/branding-core/generators/brand-customer.d.ts.map +1 -0
  35. package/dist/lib/branding-core/generators/brand-customer.js +270 -0
  36. package/dist/lib/branding-core/generators/brand-customer.js.map +1 -0
  37. package/dist/lib/branding-core/generators/brand-ecommerce.d.ts +4 -0
  38. package/dist/lib/branding-core/generators/brand-ecommerce.d.ts.map +1 -0
  39. package/dist/lib/branding-core/generators/brand-ecommerce.js +255 -0
  40. package/dist/lib/branding-core/generators/brand-ecommerce.js.map +1 -0
  41. package/dist/lib/branding-core/generators/brand-fintech.d.ts +3 -0
  42. package/dist/lib/branding-core/generators/brand-fintech.d.ts.map +1 -0
  43. package/dist/lib/branding-core/generators/brand-fintech.js +225 -0
  44. package/dist/lib/branding-core/generators/brand-fintech.js.map +1 -0
  45. package/dist/lib/branding-core/generators/brand-globalisation.d.ts +3 -0
  46. package/dist/lib/branding-core/generators/brand-globalisation.d.ts.map +1 -0
  47. package/dist/lib/branding-core/generators/brand-globalisation.js +222 -0
  48. package/dist/lib/branding-core/generators/brand-globalisation.js.map +1 -0
  49. package/dist/lib/branding-core/generators/brand-influencer.d.ts +4 -0
  50. package/dist/lib/branding-core/generators/brand-influencer.d.ts.map +1 -0
  51. package/dist/lib/branding-core/generators/brand-influencer.js +262 -0
  52. package/dist/lib/branding-core/generators/brand-influencer.js.map +1 -0
  53. package/dist/lib/branding-core/generators/brand-innovation.d.ts +3 -0
  54. package/dist/lib/branding-core/generators/brand-innovation.d.ts.map +1 -0
  55. package/dist/lib/branding-core/generators/brand-innovation.js +229 -0
  56. package/dist/lib/branding-core/generators/brand-innovation.js.map +1 -0
  57. package/dist/lib/branding-core/generators/brand-loyalty.d.ts +4 -0
  58. package/dist/lib/branding-core/generators/brand-loyalty.d.ts.map +1 -0
  59. package/dist/lib/branding-core/generators/brand-loyalty.js +231 -0
  60. package/dist/lib/branding-core/generators/brand-loyalty.js.map +1 -0
  61. package/dist/lib/branding-core/generators/brand-marketplace.d.ts +4 -0
  62. package/dist/lib/branding-core/generators/brand-marketplace.d.ts.map +1 -0
  63. package/dist/lib/branding-core/generators/brand-marketplace.js +251 -0
  64. package/dist/lib/branding-core/generators/brand-marketplace.js.map +1 -0
  65. package/dist/lib/branding-core/generators/brand-newsletter.d.ts +4 -0
  66. package/dist/lib/branding-core/generators/brand-newsletter.d.ts.map +1 -0
  67. package/dist/lib/branding-core/generators/brand-newsletter.js +173 -0
  68. package/dist/lib/branding-core/generators/brand-newsletter.js.map +1 -0
  69. package/dist/lib/branding-core/generators/brand-podcast.d.ts +3 -0
  70. package/dist/lib/branding-core/generators/brand-podcast.d.ts.map +1 -0
  71. package/dist/lib/branding-core/generators/brand-podcast.js +217 -0
  72. package/dist/lib/branding-core/generators/brand-podcast.js.map +1 -0
  73. package/dist/lib/branding-core/generators/brand-saas.d.ts +3 -0
  74. package/dist/lib/branding-core/generators/brand-saas.d.ts.map +1 -0
  75. package/dist/lib/branding-core/generators/brand-saas.js +212 -0
  76. package/dist/lib/branding-core/generators/brand-saas.js.map +1 -0
  77. package/dist/lib/branding-core/generators/brand-seo.d.ts +4 -0
  78. package/dist/lib/branding-core/generators/brand-seo.d.ts.map +1 -0
  79. package/dist/lib/branding-core/generators/brand-seo.js +269 -0
  80. package/dist/lib/branding-core/generators/brand-seo.js.map +1 -0
  81. package/dist/lib/branding-core/generators/brand-subscription.d.ts +4 -0
  82. package/dist/lib/branding-core/generators/brand-subscription.d.ts.map +1 -0
  83. package/dist/lib/branding-core/generators/brand-subscription.js +218 -0
  84. package/dist/lib/branding-core/generators/brand-subscription.js.map +1 -0
  85. package/dist/lib/branding-core/generators/brand-training.d.ts +4 -0
  86. package/dist/lib/branding-core/generators/brand-training.d.ts.map +1 -0
  87. package/dist/lib/branding-core/generators/brand-training.js +261 -0
  88. package/dist/lib/branding-core/generators/brand-training.js.map +1 -0
  89. package/dist/lib/branding-core/generators/brand-video.d.ts +3 -0
  90. package/dist/lib/branding-core/generators/brand-video.d.ts.map +1 -0
  91. package/dist/lib/branding-core/generators/brand-video.js +228 -0
  92. package/dist/lib/branding-core/generators/brand-video.js.map +1 -0
  93. package/dist/lib/branding-core/generators/brand-webinar.d.ts +4 -0
  94. package/dist/lib/branding-core/generators/brand-webinar.d.ts.map +1 -0
  95. package/dist/lib/branding-core/generators/brand-webinar.js +165 -0
  96. package/dist/lib/branding-core/generators/brand-webinar.js.map +1 -0
  97. package/dist/lib/branding-core/index.d.ts +23 -0
  98. package/dist/lib/branding-core/index.d.ts.map +1 -1
  99. package/dist/lib/branding-core/index.js +23 -0
  100. package/dist/lib/branding-core/index.js.map +1 -1
  101. package/dist/lib/types.d.ts +379 -0
  102. package/dist/lib/types.d.ts.map +1 -1
  103. package/dist/tools/generate-brand-affiliate.d.ts +3 -0
  104. package/dist/tools/generate-brand-affiliate.d.ts.map +1 -0
  105. package/dist/tools/generate-brand-affiliate.js +14 -0
  106. package/dist/tools/generate-brand-affiliate.js.map +1 -0
  107. package/dist/tools/generate-brand-analytics.d.ts +3 -0
  108. package/dist/tools/generate-brand-analytics.d.ts.map +1 -0
  109. package/dist/tools/generate-brand-analytics.js +19 -0
  110. package/dist/tools/generate-brand-analytics.js.map +1 -0
  111. package/dist/tools/generate-brand-audio.d.ts +3 -0
  112. package/dist/tools/generate-brand-audio.d.ts.map +1 -0
  113. package/dist/tools/generate-brand-audio.js +14 -0
  114. package/dist/tools/generate-brand-audio.js.map +1 -0
  115. package/dist/tools/generate-brand-b2b.d.ts +3 -0
  116. package/dist/tools/generate-brand-b2b.d.ts.map +1 -0
  117. package/dist/tools/generate-brand-b2b.js +10 -0
  118. package/dist/tools/generate-brand-b2b.js.map +1 -0
  119. package/dist/tools/generate-brand-chatbot.d.ts +3 -0
  120. package/dist/tools/generate-brand-chatbot.d.ts.map +1 -0
  121. package/dist/tools/generate-brand-chatbot.js +10 -0
  122. package/dist/tools/generate-brand-chatbot.js.map +1 -0
  123. package/dist/tools/generate-brand-competitive.d.ts +3 -0
  124. package/dist/tools/generate-brand-competitive.d.ts.map +1 -0
  125. package/dist/tools/generate-brand-competitive.js +14 -0
  126. package/dist/tools/generate-brand-competitive.js.map +1 -0
  127. package/dist/tools/generate-brand-crisis.d.ts +3 -0
  128. package/dist/tools/generate-brand-crisis.d.ts.map +1 -0
  129. package/dist/tools/generate-brand-crisis.js +14 -0
  130. package/dist/tools/generate-brand-crisis.js.map +1 -0
  131. package/dist/tools/generate-brand-customer.d.ts +3 -0
  132. package/dist/tools/generate-brand-customer.d.ts.map +1 -0
  133. package/dist/tools/generate-brand-customer.js +19 -0
  134. package/dist/tools/generate-brand-customer.js.map +1 -0
  135. package/dist/tools/generate-brand-ecommerce.d.ts +3 -0
  136. package/dist/tools/generate-brand-ecommerce.d.ts.map +1 -0
  137. package/dist/tools/generate-brand-ecommerce.js +14 -0
  138. package/dist/tools/generate-brand-ecommerce.js.map +1 -0
  139. package/dist/tools/generate-brand-fintech.d.ts +3 -0
  140. package/dist/tools/generate-brand-fintech.d.ts.map +1 -0
  141. package/dist/tools/generate-brand-fintech.js +14 -0
  142. package/dist/tools/generate-brand-fintech.js.map +1 -0
  143. package/dist/tools/generate-brand-globalisation.d.ts +3 -0
  144. package/dist/tools/generate-brand-globalisation.d.ts.map +1 -0
  145. package/dist/tools/generate-brand-globalisation.js +14 -0
  146. package/dist/tools/generate-brand-globalisation.js.map +1 -0
  147. package/dist/tools/generate-brand-influencer.d.ts +3 -0
  148. package/dist/tools/generate-brand-influencer.d.ts.map +1 -0
  149. package/dist/tools/generate-brand-influencer.js +10 -0
  150. package/dist/tools/generate-brand-influencer.js.map +1 -0
  151. package/dist/tools/generate-brand-innovation.d.ts +3 -0
  152. package/dist/tools/generate-brand-innovation.d.ts.map +1 -0
  153. package/dist/tools/generate-brand-innovation.js +19 -0
  154. package/dist/tools/generate-brand-innovation.js.map +1 -0
  155. package/dist/tools/generate-brand-loyalty.d.ts +3 -0
  156. package/dist/tools/generate-brand-loyalty.d.ts.map +1 -0
  157. package/dist/tools/generate-brand-loyalty.js +14 -0
  158. package/dist/tools/generate-brand-loyalty.js.map +1 -0
  159. package/dist/tools/generate-brand-marketplace.d.ts +3 -0
  160. package/dist/tools/generate-brand-marketplace.d.ts.map +1 -0
  161. package/dist/tools/generate-brand-marketplace.js +14 -0
  162. package/dist/tools/generate-brand-marketplace.js.map +1 -0
  163. package/dist/tools/generate-brand-newsletter.d.ts +3 -0
  164. package/dist/tools/generate-brand-newsletter.d.ts.map +1 -0
  165. package/dist/tools/generate-brand-newsletter.js +14 -0
  166. package/dist/tools/generate-brand-newsletter.js.map +1 -0
  167. package/dist/tools/generate-brand-podcast.d.ts +3 -0
  168. package/dist/tools/generate-brand-podcast.d.ts.map +1 -0
  169. package/dist/tools/generate-brand-podcast.js +10 -0
  170. package/dist/tools/generate-brand-podcast.js.map +1 -0
  171. package/dist/tools/generate-brand-saas.d.ts +3 -0
  172. package/dist/tools/generate-brand-saas.d.ts.map +1 -0
  173. package/dist/tools/generate-brand-saas.js +14 -0
  174. package/dist/tools/generate-brand-saas.js.map +1 -0
  175. package/dist/tools/generate-brand-seo.d.ts +3 -0
  176. package/dist/tools/generate-brand-seo.d.ts.map +1 -0
  177. package/dist/tools/generate-brand-seo.js +14 -0
  178. package/dist/tools/generate-brand-seo.js.map +1 -0
  179. package/dist/tools/generate-brand-subscription.d.ts +3 -0
  180. package/dist/tools/generate-brand-subscription.d.ts.map +1 -0
  181. package/dist/tools/generate-brand-subscription.js +14 -0
  182. package/dist/tools/generate-brand-subscription.js.map +1 -0
  183. package/dist/tools/generate-brand-training.d.ts +3 -0
  184. package/dist/tools/generate-brand-training.d.ts.map +1 -0
  185. package/dist/tools/generate-brand-training.js +14 -0
  186. package/dist/tools/generate-brand-training.js.map +1 -0
  187. package/dist/tools/generate-brand-video.d.ts +3 -0
  188. package/dist/tools/generate-brand-video.d.ts.map +1 -0
  189. package/dist/tools/generate-brand-video.js +14 -0
  190. package/dist/tools/generate-brand-video.js.map +1 -0
  191. package/dist/tools/generate-brand-webinar.d.ts +3 -0
  192. package/dist/tools/generate-brand-webinar.d.ts.map +1 -0
  193. package/dist/tools/generate-brand-webinar.js +10 -0
  194. package/dist/tools/generate-brand-webinar.js.map +1 -0
  195. package/package.json +2 -2
  196. package/server.json +3 -3
@@ -0,0 +1,225 @@
1
+ const VALID_STYLES = new Set([
2
+ 'minimal',
3
+ 'bold',
4
+ 'elegant',
5
+ 'playful',
6
+ 'corporate',
7
+ 'tech',
8
+ 'organic',
9
+ 'retro',
10
+ ]);
11
+ const STYLE_POSITIONING = {
12
+ minimal: 'Clean, transparent financial tools that remove complexity from money management.',
13
+ bold: 'Disruptive fintech brand that challenges traditional banking with bold innovation.',
14
+ elegant: 'Premium wealth management platform combining exclusivity with cutting-edge technology.',
15
+ playful: 'Friendly financial companion making money management fun, accessible, and rewarding.',
16
+ corporate: 'Enterprise-grade financial infrastructure trusted by institutions worldwide.',
17
+ tech: 'Developer-first financial API platform enabling the next generation of fintech.',
18
+ organic: 'Ethical finance platform aligning money with personal values and sustainability.',
19
+ retro: 'Modern banking built on timeless principles of trust, craft, and community.',
20
+ };
21
+ const STYLE_CORE_PRODUCTS = {
22
+ minimal: ['Zero-fee current account', 'Instant transfers', 'Spend analytics', 'Virtual cards'],
23
+ bold: [
24
+ 'High-yield savings',
25
+ 'Commission-free investing',
26
+ 'Instant cashback',
27
+ 'Buy now pay later',
28
+ ],
29
+ elegant: ['Private banking suite', 'Wealth management', 'Concierge FX', 'Estate planning tools'],
30
+ playful: [
31
+ 'Round-up savings jars',
32
+ 'Gamified budgeting',
33
+ 'Friend money pools',
34
+ 'Rewards programme',
35
+ ],
36
+ corporate: [
37
+ 'Treasury management',
38
+ 'Corporate cards',
39
+ 'Expense automation',
40
+ 'Multi-entity payroll',
41
+ ],
42
+ tech: ['Payments API', 'KYC/AML SDK', 'Open banking connector', 'Embedded finance suite'],
43
+ organic: ['Impact investing', 'ESG-screened funds', 'Carbon-offset spending', 'Ethical ISA'],
44
+ retro: [
45
+ 'Community savings circles',
46
+ 'Fixed-rate bonds',
47
+ 'Member dividends',
48
+ 'Financial literacy hub',
49
+ ],
50
+ };
51
+ const STYLE_TRUST_SIGNALS = {
52
+ minimal: [
53
+ 'FCA authorised',
54
+ 'FSCS protected up to £85,000',
55
+ 'Open banking certified',
56
+ 'ISO 27001',
57
+ ],
58
+ bold: ['Regulated & insured', 'Bank-grade security', '2M+ customers', 'Featured in TechCrunch'],
59
+ elegant: [
60
+ 'Tier 1 capital ratio',
61
+ 'Private banking licence',
62
+ 'Discretionary investment authority',
63
+ 'UHNW specialist',
64
+ ],
65
+ playful: [
66
+ 'FCA registered',
67
+ 'Friendly fraud protection',
68
+ 'Free account guarantee',
69
+ 'App Store 4.9★',
70
+ ],
71
+ corporate: [
72
+ 'FCA authorised',
73
+ 'PCI DSS Level 1',
74
+ 'SOC 2 Type II',
75
+ 'SWIFT member',
76
+ 'G-SIB compliant',
77
+ ],
78
+ tech: [
79
+ 'PCI DSS Level 1',
80
+ 'SOC 2 Type II',
81
+ '99.99% uptime SLA',
82
+ 'Open banking certified',
83
+ 'ISO 27001',
84
+ ],
85
+ organic: ['B Corp certified', 'FCA registered', 'FSCS protected', 'Carbon neutral operations'],
86
+ retro: ['FCA authorised', 'FSCS protected', 'Mutual ownership model', 'Voted Most Trusted 2024'],
87
+ };
88
+ const STYLE_REGULATORY_FRAMEWORK = {
89
+ minimal: ['FCA Consumer Duty', 'PSD2 / Open Banking', 'GDPR', 'AML/KYC'],
90
+ bold: ['FCA Consumer Duty', 'PSD2', 'GDPR', 'FCA financial promotions'],
91
+ elegant: ['FCA CASS rules', 'MiFID II', 'GDPR', 'AML / Wolfsberg'],
92
+ playful: ['FCA Consumer Duty', 'FCA financial promotions', 'GDPR', 'COPPA (under-18 products)'],
93
+ corporate: [
94
+ 'FCA authorisation',
95
+ 'PSD2 / Open Banking',
96
+ 'GDPR',
97
+ 'Basel III capital rules',
98
+ 'DORA',
99
+ ],
100
+ tech: ['PCI DSS Level 1', 'PSD2 / Open Banking', 'GDPR', 'AML/KYC', 'FCA sandbox eligible'],
101
+ organic: ['FCA registration', 'Sustainable Finance Disclosure Regulation', 'GDPR', 'EU Taxonomy'],
102
+ retro: ['FCA authorisation', 'FSCS scheme rules', 'GDPR', 'FCA principle-based compliance'],
103
+ };
104
+ const STYLE_SECURITY_POSTURE = {
105
+ minimal: [
106
+ 'End-to-end encryption',
107
+ 'Biometric authentication',
108
+ 'Instant card freeze',
109
+ 'Real-time alerts',
110
+ ],
111
+ bold: ['256-bit encryption', 'Facial recognition', '3D Secure 2.0', 'Zero-liability fraud cover'],
112
+ elegant: [
113
+ 'HSM key storage',
114
+ 'Multi-factor authentication',
115
+ 'Dedicated fraud team',
116
+ 'Discretionary portfolio segregation',
117
+ ],
118
+ playful: [
119
+ 'Face/fingerprint login',
120
+ 'Instant freeze button',
121
+ 'Spending notifications',
122
+ 'Friendly fraud promise',
123
+ ],
124
+ corporate: [
125
+ 'Zero-trust architecture',
126
+ 'SIEM & SOC monitoring',
127
+ 'Penetration tested quarterly',
128
+ 'Disaster recovery RTO <4h',
129
+ ],
130
+ tech: [
131
+ 'mTLS APIs',
132
+ 'Webhook signing keys',
133
+ 'Rate limiting & DDoS protection',
134
+ 'Bug bounty programme',
135
+ ],
136
+ organic: [
137
+ 'Privacy-by-design',
138
+ 'Minimal data collection',
139
+ 'Right to erasure',
140
+ 'No data selling pledge',
141
+ ],
142
+ retro: [
143
+ 'Chip-and-PIN verified',
144
+ 'Human fraud review team',
145
+ 'Community-verified transactions',
146
+ 'Full audit trail',
147
+ ],
148
+ };
149
+ const STYLE_MESSAGING_PILLARS = {
150
+ minimal: ['Clarity over complexity', 'Your money, your control', 'No hidden fees'],
151
+ bold: ['Break the old rules', 'Banking at the speed of life', 'More for your money'],
152
+ elegant: ['Where wealth meets wisdom', 'Precision in every transaction', 'Exclusive by design'],
153
+ playful: ['Money should be fun', 'Save more, stress less', 'Your wallet, your adventure'],
154
+ corporate: ['Infrastructure you can trust', 'Built for scale', 'Compliance-first, always'],
155
+ tech: ['Finance as code', 'Build with confidence', 'API-first, developer-loved'],
156
+ organic: ['Banking with purpose', 'Your money doing good', 'Profit and planet aligned'],
157
+ retro: [
158
+ 'Trusted since day one',
159
+ 'Old values, new technology',
160
+ 'Community-owned, community-grown',
161
+ ],
162
+ };
163
+ function buildComplianceChecklist(safeStyle) {
164
+ const base = [
165
+ 'FCA authorisation or registration obtained',
166
+ 'Consumer Duty implementation plan documented',
167
+ 'Financial promotions approved by authorised person',
168
+ 'AML/KYC onboarding procedures in place',
169
+ 'GDPR-compliant data processing agreements signed',
170
+ 'PCI DSS certification maintained (if card processing)',
171
+ 'Annual regulatory capital calculations filed',
172
+ 'Complaints handling procedure published',
173
+ ];
174
+ if (safeStyle === 'corporate' || safeStyle === 'elegant') {
175
+ base.push('MiFID II suitability assessments', 'CASS client asset segregation audit');
176
+ }
177
+ if (safeStyle === 'tech') {
178
+ base.push('PSD2 strong customer authentication implemented', 'Open banking API conformance tested', 'Bug bounty programme in operation');
179
+ }
180
+ if (safeStyle === 'organic') {
181
+ base.push('SFDR disclosure published', 'EU Taxonomy alignment report');
182
+ }
183
+ return base;
184
+ }
185
+ function buildUserJourney(safeStyle) {
186
+ const base = [
187
+ 'Discovery: SEO/social/referral acquisition',
188
+ 'Onboarding: KYC/AML identity verification (< 3 min)',
189
+ 'Activation: First transaction or product setup',
190
+ 'Engagement: Regular use of core product',
191
+ 'Expansion: Cross-sell to adjacent products',
192
+ 'Advocacy: Referral programme and reviews',
193
+ ];
194
+ if (safeStyle === 'tech') {
195
+ base.splice(1, 0, 'Developer sign-up: API keys and sandbox access');
196
+ }
197
+ if (safeStyle === 'corporate') {
198
+ base.splice(1, 0, 'Enterprise procurement: RFP response and PoC');
199
+ }
200
+ return base;
201
+ }
202
+ function buildBriefSummary(brand, safeStyle) {
203
+ const taglinePart = brand.tagline ? ` — "${brand.tagline}"` : '';
204
+ const products = STYLE_CORE_PRODUCTS[safeStyle];
205
+ const pillar = STYLE_MESSAGING_PILLARS[safeStyle][0];
206
+ return (`${brand.name}${taglinePart} is a ${safeStyle}-style fintech brand in ${brand.industry}. ` +
207
+ `Core positioning: ${STYLE_POSITIONING[safeStyle].split('.')[0]}. ` +
208
+ `Lead products: ${products[0]}, ${products[1]}. ` +
209
+ `Primary messaging pillar: "${pillar}".`);
210
+ }
211
+ export function generateBrandFintech(brand) {
212
+ const safeStyle = VALID_STYLES.has(brand.style) ? brand.style : 'minimal';
213
+ return {
214
+ positioning: STYLE_POSITIONING[safeStyle],
215
+ coreProducts: STYLE_CORE_PRODUCTS[safeStyle],
216
+ trustSignals: STYLE_TRUST_SIGNALS[safeStyle],
217
+ regulatoryFramework: STYLE_REGULATORY_FRAMEWORK[safeStyle],
218
+ securityPosture: STYLE_SECURITY_POSTURE[safeStyle],
219
+ messagingPillars: STYLE_MESSAGING_PILLARS[safeStyle],
220
+ complianceChecklist: buildComplianceChecklist(safeStyle),
221
+ userJourney: buildUserJourney(safeStyle),
222
+ fintechBriefSummary: buildBriefSummary(brand, safeStyle),
223
+ };
224
+ }
225
+ //# sourceMappingURL=brand-fintech.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-fintech.js","sourceRoot":"","sources":["../../../../src/lib/branding-core/generators/brand-fintech.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAa;IACvC,SAAS;IACT,MAAM;IACN,SAAS;IACT,SAAS;IACT,WAAW;IACX,MAAM;IACN,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAA+B;IACpD,OAAO,EAAE,kFAAkF;IAC3F,IAAI,EAAE,oFAAoF;IAC1F,OAAO,EAAE,wFAAwF;IACjG,OAAO,EAAE,sFAAsF;IAC/F,SAAS,EAAE,8EAA8E;IACzF,IAAI,EAAE,iFAAiF;IACvF,OAAO,EAAE,kFAAkF;IAC3F,KAAK,EAAE,6EAA6E;CACrF,CAAC;AAEF,MAAM,mBAAmB,GAAiC;IACxD,OAAO,EAAE,CAAC,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,CAAC;IAC9F,IAAI,EAAE;QACJ,oBAAoB;QACpB,2BAA2B;QAC3B,kBAAkB;QAClB,mBAAmB;KACpB;IACD,OAAO,EAAE,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,cAAc,EAAE,uBAAuB,CAAC;IAChG,OAAO,EAAE;QACP,uBAAuB;QACvB,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB;KACpB;IACD,SAAS,EAAE;QACT,qBAAqB;QACrB,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;KACvB;IACD,IAAI,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,wBAAwB,CAAC;IACzF,OAAO,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,aAAa,CAAC;IAC5F,KAAK,EAAE;QACL,2BAA2B;QAC3B,kBAAkB;QAClB,kBAAkB;QAClB,wBAAwB;KACzB;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAiC;IACxD,OAAO,EAAE;QACP,gBAAgB;QAChB,8BAA8B;QAC9B,wBAAwB;QACxB,WAAW;KACZ;IACD,IAAI,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,wBAAwB,CAAC;IAC/F,OAAO,EAAE;QACP,sBAAsB;QACtB,yBAAyB;QACzB,oCAAoC;QACpC,iBAAiB;KAClB;IACD,OAAO,EAAE;QACP,gBAAgB;QAChB,2BAA2B;QAC3B,wBAAwB;QACxB,gBAAgB;KACjB;IACD,SAAS,EAAE;QACT,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,iBAAiB;KAClB;IACD,IAAI,EAAE;QACJ,iBAAiB;QACjB,eAAe;QACf,mBAAmB;QACnB,wBAAwB;QACxB,WAAW;KACZ;IACD,OAAO,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,2BAA2B,CAAC;IAC9F,KAAK,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;CACjG,CAAC;AAEF,MAAM,0BAA0B,GAAiC;IAC/D,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,CAAC;IACxE,IAAI,EAAE,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,CAAC;IACvE,OAAO,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC;IAClE,OAAO,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,EAAE,2BAA2B,CAAC;IAC/F,SAAS,EAAE;QACT,mBAAmB;QACnB,qBAAqB;QACrB,MAAM;QACN,yBAAyB;QACzB,MAAM;KACP;IACD,IAAI,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,CAAC;IAC3F,OAAO,EAAE,CAAC,kBAAkB,EAAE,2CAA2C,EAAE,MAAM,EAAE,aAAa,CAAC;IACjG,KAAK,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,EAAE,gCAAgC,CAAC;CAC5F,CAAC;AAEF,MAAM,sBAAsB,GAAiC;IAC3D,OAAO,EAAE;QACP,uBAAuB;QACvB,0BAA0B;QAC1B,qBAAqB;QACrB,kBAAkB;KACnB;IACD,IAAI,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,4BAA4B,CAAC;IACjG,OAAO,EAAE;QACP,iBAAiB;QACjB,6BAA6B;QAC7B,sBAAsB;QACtB,qCAAqC;KACtC;IACD,OAAO,EAAE;QACP,wBAAwB;QACxB,uBAAuB;QACvB,wBAAwB;QACxB,wBAAwB;KACzB;IACD,SAAS,EAAE;QACT,yBAAyB;QACzB,uBAAuB;QACvB,8BAA8B;QAC9B,2BAA2B;KAC5B;IACD,IAAI,EAAE;QACJ,WAAW;QACX,sBAAsB;QACtB,iCAAiC;QACjC,sBAAsB;KACvB;IACD,OAAO,EAAE;QACP,mBAAmB;QACnB,yBAAyB;QACzB,kBAAkB;QAClB,wBAAwB;KACzB;IACD,KAAK,EAAE;QACL,uBAAuB;QACvB,yBAAyB;QACzB,iCAAiC;QACjC,kBAAkB;KACnB;CACF,CAAC;AAEF,MAAM,uBAAuB,GAAiC;IAC5D,OAAO,EAAE,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,gBAAgB,CAAC;IAClF,IAAI,EAAE,CAAC,qBAAqB,EAAE,8BAA8B,EAAE,qBAAqB,CAAC;IACpF,OAAO,EAAE,CAAC,2BAA2B,EAAE,gCAAgC,EAAE,qBAAqB,CAAC;IAC/F,OAAO,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,6BAA6B,CAAC;IACzF,SAAS,EAAE,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;IAC1F,IAAI,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,4BAA4B,CAAC;IAChF,OAAO,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,CAAC;IACvF,KAAK,EAAE;QACL,uBAAuB;QACvB,4BAA4B;QAC5B,kCAAkC;KACnC;CACF,CAAC;AAEF,SAAS,wBAAwB,CAAC,SAAqB;IACrD,MAAM,IAAI,GAAG;QACX,4CAA4C;QAC5C,8CAA8C;QAC9C,oDAAoD;QACpD,wCAAwC;QACxC,kDAAkD;QAClD,uDAAuD;QACvD,8CAA8C;QAC9C,yCAAyC;KAC1C,CAAC;IACF,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,qCAAqC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CACP,iDAAiD,EACjD,qCAAqC,EACrC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAqB;IAC7C,MAAM,IAAI,GAAG;QACX,4CAA4C;QAC5C,qDAAqD;QACrD,gDAAgD;QAChD,yCAAyC;QACzC,4CAA4C;QAC5C,0CAA0C;KAC3C,CAAC;IACF,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,gDAAgD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,SAAqB;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CACL,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,SAAS,SAAS,2BAA2B,KAAK,CAAC,QAAQ,IAAI;QAC1F,qBAAqB,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACnE,kBAAkB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI;QACjD,8BAA8B,MAAM,IAAI,CACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACvD,MAAM,SAAS,GAAe,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtF,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC;QACzC,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC;QAC5C,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC;QAC5C,mBAAmB,EAAE,0BAA0B,CAAC,SAAS,CAAC;QAC1D,eAAe,EAAE,sBAAsB,CAAC,SAAS,CAAC;QAClD,gBAAgB,EAAE,uBAAuB,CAAC,SAAS,CAAC;QACpD,mBAAmB,EAAE,wBAAwB,CAAC,SAAS,CAAC;QACxD,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACxC,mBAAmB,EAAE,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC;KACzD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BrandIdentity, BrandGlobalisationOutput } from '../../types.js';
2
+ export declare function generateBrandGlobalisation(brand: BrandIdentity): BrandGlobalisationOutput;
3
+ //# sourceMappingURL=brand-globalisation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-globalisation.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/generators/brand-globalisation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,wBAAwB,EAEzB,MAAM,gBAAgB,CAAC;AA6OxB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,wBAAwB,CAezF"}
@@ -0,0 +1,222 @@
1
+ const STYLE_LOCALISATION_APPROACH = {
2
+ minimal: 'Preserve the core essence with minimal adaptation — translate with precision, avoid localisation overreach.',
3
+ bold: 'Amplify energy in each market; adapt visuals, colours, and copy to local cultural resonance.',
4
+ elegant: 'Maintain premium positioning globally; partner with local luxury experts to preserve brand equity.',
5
+ playful: 'Lean into local humour and cultural references; adapt mascots and tone for each market.',
6
+ corporate: 'Standardise globally, adapt locally; ensure compliance with local business norms and regulations.',
7
+ tech: 'API-first localisation; ship locale bundles and RTL support from day one in the design system.',
8
+ organic: 'Celebrate local provenance; source local ingredients and tell regional sustainability stories.',
9
+ retro: 'Adapt vintage references to local cultural nostalgia; research era-specific aesthetics by market.',
10
+ };
11
+ const STYLE_BRAND_STANDARDS_FLEXIBILITY = {
12
+ minimal: 'Strict global standards — logo, colour, and typography must be unchanged in all markets.',
13
+ bold: 'Allow colour hue adjustments for cultural sensitivity; core mark is non-negotiable.',
14
+ elegant: 'Zero tolerance for visual deviation; local adaptations limited to copy and talent only.',
15
+ playful: 'High flexibility — local teams can adapt illustrations, mascots, and colour accents.',
16
+ corporate: 'Tiered governance: Tier 1 locked (logo, primary palette), Tier 2 adaptable (imagery, tagline).',
17
+ tech: 'Components are locked; content and locale strings are fully adaptable via i18n system.',
18
+ organic: 'Encourage regional sub-brands tied to provenance; maintain parent brand architecture.',
19
+ retro: 'Permit local vintage-inspired colour variants; core logotype remains unchanged.',
20
+ };
21
+ const STYLE_CULTURAL_SENSITIVITY_FOCUS = {
22
+ minimal: [
23
+ 'Avoid blank-space taboos in East Asian markets',
24
+ 'Use inclusive neutral imagery',
25
+ 'Simplify dense copy for low-literacy markets',
26
+ ],
27
+ bold: [
28
+ 'Audit colour symbolism per market before launch',
29
+ 'Localise sports/energy references',
30
+ 'Ensure imagery celebrates local heroes',
31
+ ],
32
+ elegant: [
33
+ 'Research gift-giving etiquette per market',
34
+ 'Avoid culturally insensitive luxury tropes',
35
+ 'Localise seasonal calendar (CNY, Diwali, Ramadan)',
36
+ ],
37
+ playful: [
38
+ 'Review character/mascot designs for cultural offence',
39
+ 'Localise humour with native copywriters',
40
+ 'Check colour associations for children per market',
41
+ ],
42
+ corporate: [
43
+ 'Respect local hierarchy and formality norms',
44
+ 'Translate compliance documents by qualified legal translators',
45
+ 'Adapt business card etiquette to market',
46
+ ],
47
+ tech: [
48
+ 'Support local date/time/number formats natively',
49
+ 'Check domain and app name availability in each market',
50
+ 'Ensure GDPR/PDPA/CCPA compliance by region',
51
+ ],
52
+ organic: [
53
+ 'Respect indigenous ingredient names and knowledge',
54
+ 'Audit environmental claims for local standards',
55
+ 'Partner with local NGOs for credibility',
56
+ ],
57
+ retro: [
58
+ 'Research nostalgic references that resonate vs offend locally',
59
+ 'Avoid colonial imagery in post-colonial markets',
60
+ 'Localise music/radio eras for audio branding',
61
+ ],
62
+ };
63
+ const STYLE_PRIORITY_MARKETS = {
64
+ minimal: ['Northern Europe', 'Japan', 'Singapore', 'Canada'],
65
+ bold: ['Brazil', 'United States', 'Nigeria', 'Indonesia'],
66
+ elegant: ['France', 'UAE', 'Japan', 'China (Tier 1 cities)'],
67
+ playful: ['United States', 'Brazil', 'South Korea', 'Philippines'],
68
+ corporate: ['United States', 'Germany', 'Australia', 'Singapore'],
69
+ tech: ['United States', 'Germany', 'South Korea', 'Israel'],
70
+ organic: ['Germany', 'Netherlands', 'United Kingdom', 'Australia'],
71
+ retro: ['United Kingdom', 'United States', 'France', 'Italy'],
72
+ };
73
+ function buildLocaleAdaptations(brand) {
74
+ const style = brand.style ?? 'minimal';
75
+ const locales = [
76
+ {
77
+ locale: 'en-US',
78
+ language: 'English (US)',
79
+ rtl: false,
80
+ keyAdaptations: [
81
+ 'Adjust spelling (colour → color, etc.)',
82
+ 'Use imperial units where relevant',
83
+ 'Reference US cultural occasions (Thanksgiving, 4th July)',
84
+ ],
85
+ colourConsiderations: 'No major changes — default brand palette applies.',
86
+ typographyNotes: 'Default Latin script; ensure proper quotation marks (\u201c\u201d).',
87
+ },
88
+ {
89
+ locale: 'ar-SA',
90
+ language: 'Arabic (Saudi Arabia)',
91
+ rtl: true,
92
+ keyAdaptations: [
93
+ 'Full RTL layout including navigation and icons',
94
+ 'Mirror directional imagery (arrows, people facing right)',
95
+ 'Adapt copy for Ramadan / Eid seasonal campaigns',
96
+ 'Use Hijri calendar where appropriate',
97
+ ],
98
+ colourConsiderations: 'Green is highly auspicious; avoid alcohol-related imagery.',
99
+ typographyNotes: 'Use Noto Naskh Arabic or Tajawal; increase line-height by 20% for readability.',
100
+ },
101
+ {
102
+ locale: 'zh-CN',
103
+ language: 'Chinese (Simplified)',
104
+ rtl: false,
105
+ keyAdaptations: [
106
+ 'Register brand name phonetically (pinyin) for local recall',
107
+ 'Adapt for WeChat, Weibo, and RED (Xiaohongshu) ecosystems',
108
+ 'Localise for Singles Day (11.11) and Chinese New Year',
109
+ 'Ensure Great Firewall compatibility for digital assets',
110
+ ],
111
+ colourConsiderations: 'Red and gold connote luck and prosperity; avoid pure white in funerary contexts.',
112
+ typographyNotes: 'Use PingFang SC or Noto Sans SC; larger minimum font sizes (14px body).',
113
+ },
114
+ {
115
+ locale: 'de-DE',
116
+ language: 'German',
117
+ rtl: false,
118
+ keyAdaptations: [
119
+ 'Formal "Sie" vs informal "du" — choose per brand positioning',
120
+ "Comply with Germany's strict advertising regulations (Heilmittelwerbegesetz for health)",
121
+ 'Adapt for DACH region (Austria, Switzerland variants)',
122
+ 'Localise for German engineering/quality value expectations',
123
+ ],
124
+ colourConsiderations: `${style === 'tech' || style === 'corporate' ? 'Blue tones reinforce trust and technical competence.' : 'Neutral palette works well; avoid garish combinations.'}`,
125
+ typographyNotes: 'German text expands ~30% vs English — design layouts with text overflow tolerance.',
126
+ },
127
+ {
128
+ locale: 'pt-BR',
129
+ language: 'Portuguese (Brazil)',
130
+ rtl: false,
131
+ keyAdaptations: [
132
+ 'Localise for Brazilian Portuguese (not European PT)',
133
+ 'Reference local football culture and Carnival where appropriate',
134
+ 'Adapt for WhatsApp-first digital ecosystem',
135
+ 'Pix payment integration for e-commerce',
136
+ ],
137
+ colourConsiderations: 'Vibrant warm tones resonate; green and yellow carry national pride associations.',
138
+ typographyNotes: 'Similar text expansion to Spanish; ensure adequate horizontal space.',
139
+ },
140
+ ];
141
+ return locales;
142
+ }
143
+ function buildTranslationGuidelines(brand) {
144
+ return [
145
+ `Use professional human translators with native-speaker copywriters for all consumer-facing content.`,
146
+ `Maintain a centralised brand glossary — "${brand.name}" and key product terms are never translated, only transcribed.`,
147
+ `tagline "${brand.tagline ?? brand.name + ' — Crafted for the world'}" must be approved by regional brand leads before use.`,
148
+ 'Machine translation (DeepL / GPT) is permitted for internal documentation only.',
149
+ 'Back-translation review required for all Tier 1 market campaigns.',
150
+ 'Maintain a market-specific style guide for each priority locale covering tone, salutation, and taboo words.',
151
+ 'Cultural review required from a native consultant before final sign-off on any campaign.',
152
+ ];
153
+ }
154
+ function buildInternationalBrandArchitecture(brand) {
155
+ const style = brand.style ?? 'minimal';
156
+ const base = [
157
+ `Global brand: "${brand.name}" — non-negotiable core mark, colour, and typography.`,
158
+ 'Regional endorsed brands permitted where local name recognition requires it (e.g., joint-venture markets).',
159
+ 'Sub-brand naming must follow the [Global Name] + [Descriptor] convention.',
160
+ 'All regional variants must pass the global brand consistency validator before market launch.',
161
+ 'Annual global brand audit to identify drift and enforce standards.',
162
+ ];
163
+ const extras = [];
164
+ if (style === 'tech') {
165
+ extras.push('Developer-facing sub-brands (e.g., [Name] API, [Name] SDK) follow a separate technical brand system.');
166
+ extras.push('Open-source projects use a distinct community brand tier.');
167
+ }
168
+ if (style === 'organic') {
169
+ extras.push('Regional sourcing stories told as endorsed sub-brands (e.g., "[Name] x Oaxaca Harvest").');
170
+ }
171
+ if (style === 'elegant') {
172
+ extras.push('No sub-brands — single monolithic luxury brand maintained across all markets.');
173
+ }
174
+ return [...base, ...extras];
175
+ }
176
+ function buildComplianceRequirements(brand) {
177
+ const style = brand.style ?? 'minimal';
178
+ const base = [
179
+ 'GDPR (EU) — privacy notices, cookie consent, data residency.',
180
+ 'CCPA (California) — consumer data rights and opt-out mechanisms.',
181
+ 'PDPA (Thailand / Singapore) — data protection for APAC markets.',
182
+ 'ASA / FTC advertising standards — no misleading claims in any market.',
183
+ 'Local trademark registration in all Tier 1 and Tier 2 markets.',
184
+ 'Import/export compliance for physical brand assets (packaging, print).',
185
+ ];
186
+ const extras = [];
187
+ if (style === 'tech') {
188
+ extras.push('PIPL (China) — Personal Information Protection Law compliance for China market.');
189
+ extras.push('App store guidelines (Apple / Google Play) per regional market.');
190
+ }
191
+ if (style === 'organic') {
192
+ extras.push('EU Organic Regulation (EC 834/2007) labelling requirements.');
193
+ extras.push('US NOP (USDA Organic) certification for North American market.');
194
+ }
195
+ if (style === 'corporate') {
196
+ extras.push('SOX compliance for investor communications in public company context.');
197
+ extras.push('Local financial advertising regulations (FCA UK, SEC US, MAS SG).');
198
+ }
199
+ return [...base, ...extras];
200
+ }
201
+ function buildGlobalisationBriefSummary(brand) {
202
+ const style = brand.style ?? 'minimal';
203
+ const approach = STYLE_LOCALISATION_APPROACH[style] ?? STYLE_LOCALISATION_APPROACH.minimal;
204
+ const taglineStr = brand.tagline ? ` — "${brand.tagline}"` : '';
205
+ return `${brand.name}${taglineStr} is pursuing global expansion with a ${style} brand approach. ${approach.split('.')[0]}. Priority markets include ${(STYLE_PRIORITY_MARKETS[style] ?? STYLE_PRIORITY_MARKETS.minimal).slice(0, 3).join(', ')}. The localisation strategy preserves core brand equity while enabling authentic cultural connections in each market.`;
206
+ }
207
+ export function generateBrandGlobalisation(brand) {
208
+ const style = (brand.style ?? 'minimal');
209
+ const safeStyle = STYLE_LOCALISATION_APPROACH[style] ? style : 'minimal';
210
+ return {
211
+ localisationApproach: STYLE_LOCALISATION_APPROACH[safeStyle],
212
+ brandStandardsFlexibility: STYLE_BRAND_STANDARDS_FLEXIBILITY[safeStyle],
213
+ culturalSensitivityFocus: STYLE_CULTURAL_SENSITIVITY_FOCUS[safeStyle],
214
+ priorityMarkets: STYLE_PRIORITY_MARKETS[safeStyle],
215
+ localeAdaptations: buildLocaleAdaptations(brand),
216
+ translationGuidelines: buildTranslationGuidelines(brand),
217
+ internationalBrandArchitecture: buildInternationalBrandArchitecture(brand),
218
+ complianceRequirements: buildComplianceRequirements(brand),
219
+ globalisationBriefSummary: buildGlobalisationBriefSummary(brand),
220
+ };
221
+ }
222
+ //# sourceMappingURL=brand-globalisation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-globalisation.js","sourceRoot":"","sources":["../../../../src/lib/branding-core/generators/brand-globalisation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BrandIdentity } from '../../types.js';
2
+ import type { BrandInfluencerOutput } from '../../types.js';
3
+ export declare function generateBrandInfluencer(brand: BrandIdentity): BrandInfluencerOutput;
4
+ //# sourceMappingURL=brand-influencer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-influencer.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/generators/brand-influencer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,gBAAgB,CAAC;AA8P5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,qBAAqB,CAsBnF"}