@marvalt/digivalt-core 0.1.7 → 0.2.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.
- package/CHANGELOG.md +25 -0
- package/README.md +47 -4
- package/bin/init.cjs +406 -25
- package/dist/config.cjs +520 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.ts +307 -0
- package/dist/config.esm.js +502 -0
- package/dist/config.esm.js.map +1 -0
- package/dist/generators.cjs +2481 -0
- package/dist/generators.cjs.map +1 -0
- package/dist/generators.d.ts +19 -0
- package/dist/generators.esm.js +2475 -0
- package/dist/generators.esm.js.map +1 -0
- package/dist/index.cjs +18 -7955
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -1196
- package/dist/index.esm.js +13 -7929
- package/dist/index.esm.js.map +1 -1
- package/dist/runtime/env.d.ts +4 -0
- package/dist/runtime/lazy.d.ts +1 -0
- package/dist/services/cf-wp-webhook.d.ts +2 -0
- package/dist/services/gravityForms.d.ts +3 -0
- package/dist/services/mautic.d.ts +5 -1
- package/dist/services/suitecrm.d.ts +2 -0
- package/dist/services.cjs +1339 -0
- package/dist/services.cjs.map +1 -0
- package/dist/services.d.ts +432 -0
- package/dist/services.esm.js +1322 -0
- package/dist/services.esm.js.map +1 -0
- package/dist/static/index.d.ts +4 -0
- package/dist/static.cjs +997 -0
- package/dist/static.cjs.map +1 -0
- package/dist/static.d.ts +410 -0
- package/dist/static.esm.js +962 -0
- package/dist/static.esm.js.map +1 -0
- package/dist/types.cjs +3 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.ts +134 -0
- package/dist/types.esm.js +2 -0
- package/dist/types.esm.js.map +1 -0
- package/package.json +30 -2
- package/template/DIGIVALT_SETUP.md +73 -0
- package/template/scripts/deploy-secrets.js +55 -23
- package/template/scripts/generate.ts +3 -17
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
const getImportMetaEnv = () => {
|
|
2
|
+
try {
|
|
3
|
+
return typeof import.meta !== 'undefined' ? import.meta.env : undefined;
|
|
4
|
+
}
|
|
5
|
+
catch {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
const getEnv = (key) => {
|
|
10
|
+
const viteEnv = getImportMetaEnv();
|
|
11
|
+
if (viteEnv && key in viteEnv) {
|
|
12
|
+
const value = viteEnv[key];
|
|
13
|
+
return value == null ? undefined : String(value);
|
|
14
|
+
}
|
|
15
|
+
if (typeof process !== 'undefined' && process.env && key in process.env) {
|
|
16
|
+
const value = process.env[key];
|
|
17
|
+
return value == null ? undefined : String(value);
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
};
|
|
21
|
+
const isDevEnvironment = () => {
|
|
22
|
+
const viteEnv = getImportMetaEnv();
|
|
23
|
+
if (viteEnv && 'DEV' in viteEnv) {
|
|
24
|
+
return Boolean(viteEnv.DEV);
|
|
25
|
+
}
|
|
26
|
+
return typeof process !== 'undefined' && process.env?.NODE_ENV === 'development';
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Detect if we're running in a local development environment
|
|
30
|
+
const isLocalDevelopment = () => {
|
|
31
|
+
// Check if we're in a browser environment
|
|
32
|
+
if (typeof window !== 'undefined') {
|
|
33
|
+
// Check for local development indicators
|
|
34
|
+
const isLocalhost = window.location.hostname === 'localhost' ||
|
|
35
|
+
window.location.hostname === '127.0.0.1' ||
|
|
36
|
+
window.location.hostname.includes('192.168.') ||
|
|
37
|
+
window.location.hostname.includes('10.0.');
|
|
38
|
+
const isDevPort = window.location.port === '3000' ||
|
|
39
|
+
window.location.port === '5173' ||
|
|
40
|
+
window.location.port === '8080';
|
|
41
|
+
const hasLocalEnv = Boolean(getEnv('DEV')) || getEnv('VITE_LOCAL_DEVELOPMENT') === 'true';
|
|
42
|
+
return Boolean(isLocalhost && (isDevPort || hasLocalEnv));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Node.js environment - check environment variables
|
|
46
|
+
return getEnv('NODE_ENV') === 'development' ||
|
|
47
|
+
getEnv('VITE_LOCAL_DEVELOPMENT') === 'true';
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
// Get the appropriate environment configuration
|
|
51
|
+
const getEnvironmentConfig = () => {
|
|
52
|
+
const isLocal = isLocalDevelopment();
|
|
53
|
+
// Default to cloudflare_proxy (via Cloudflare Pages Functions)
|
|
54
|
+
// Use 'direct' only for local development with whitelisted IPs
|
|
55
|
+
const authModeRaw = getEnv('VITE_AUTH_MODE');
|
|
56
|
+
const authMode = authModeRaw || 'cloudflare_proxy';
|
|
57
|
+
// Reduced debug logging - only in development and only once
|
|
58
|
+
if (isDevEnvironment() && !authModeRaw) {
|
|
59
|
+
console.log('ℹ️ VITE_AUTH_MODE not set, defaulting to cloudflare_proxy (Cloudflare Pages Functions)');
|
|
60
|
+
}
|
|
61
|
+
// Validate auth mode value
|
|
62
|
+
if (authMode !== 'direct' && authMode !== 'cloudflare_proxy') {
|
|
63
|
+
console.error('❌ Invalid VITE_AUTH_MODE value. Must be "direct" or "cloudflare_proxy".');
|
|
64
|
+
return {
|
|
65
|
+
mode: 'error',
|
|
66
|
+
authMode: 'error',
|
|
67
|
+
dataSource: 'static',
|
|
68
|
+
baseUrl: '',
|
|
69
|
+
headers: {},
|
|
70
|
+
description: `Invalid configuration - VITE_AUTH_MODE="${authModeRaw}"`,
|
|
71
|
+
suiteCRM: {
|
|
72
|
+
url: undefined,
|
|
73
|
+
proxyUrl: undefined,
|
|
74
|
+
appId: undefined,
|
|
75
|
+
workerSecret: undefined,
|
|
76
|
+
oauth2: {
|
|
77
|
+
clientId: undefined,
|
|
78
|
+
clientSecret: undefined,
|
|
79
|
+
tokenUrl: undefined,
|
|
80
|
+
username: undefined,
|
|
81
|
+
password: undefined,
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// Cloudflare proxy mode (uses Cloudflare Pages Functions by default)
|
|
87
|
+
// Worker URL is optional - Pages Functions handle routing automatically
|
|
88
|
+
if (authMode === 'cloudflare_proxy') {
|
|
89
|
+
const workerUrl = getEnv('VITE_CLOUDFLARE_WORKER_URL');
|
|
90
|
+
// Cloudflare Pages Functions work without explicit worker URL
|
|
91
|
+
// The worker URL is only needed for separate Cloudflare Workers
|
|
92
|
+
// Pages Functions automatically handle /api/* routes
|
|
93
|
+
const baseUrl = workerUrl || '/api';
|
|
94
|
+
return {
|
|
95
|
+
mode: isLocal ? 'local' : 'remote',
|
|
96
|
+
authMode: 'cloudflare_proxy',
|
|
97
|
+
dataSource: 'static',
|
|
98
|
+
baseUrl,
|
|
99
|
+
headers: {
|
|
100
|
+
'Content-Type': 'application/json'
|
|
101
|
+
},
|
|
102
|
+
description: workerUrl
|
|
103
|
+
? (isLocal ? 'Local development with Cloudflare Worker proxy' : 'Remote development with Cloudflare Worker proxy')
|
|
104
|
+
: (isLocal ? 'Local development with Cloudflare Pages Functions' : 'Production with Cloudflare Pages Functions'),
|
|
105
|
+
mautic: {
|
|
106
|
+
proxyUrl: getEnv('VITE_MAUTIC_PROXY_URL')
|
|
107
|
+
},
|
|
108
|
+
suiteCRM: {
|
|
109
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
110
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
111
|
+
appId: undefined,
|
|
112
|
+
workerSecret: undefined,
|
|
113
|
+
oauth2: {
|
|
114
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
115
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
116
|
+
tokenUrl: getEnv('VITE_SUITECRM_TOKEN_URL'),
|
|
117
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
118
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Direct WordPress mode (legacy - for local development only)
|
|
124
|
+
if (authMode === 'direct') {
|
|
125
|
+
const wpApiUrl = getEnv('VITE_WORDPRESS_API_URL');
|
|
126
|
+
if (!wpApiUrl) {
|
|
127
|
+
console.warn('⚠️ Direct mode requires: VITE_WORDPRESS_API_URL');
|
|
128
|
+
return {
|
|
129
|
+
mode: 'error',
|
|
130
|
+
authMode: 'error',
|
|
131
|
+
dataSource: 'static',
|
|
132
|
+
baseUrl: '',
|
|
133
|
+
headers: {},
|
|
134
|
+
description: 'Invalid configuration - missing WordPress API URL',
|
|
135
|
+
suiteCRM: {
|
|
136
|
+
url: undefined,
|
|
137
|
+
proxyUrl: undefined,
|
|
138
|
+
appId: undefined,
|
|
139
|
+
workerSecret: undefined,
|
|
140
|
+
oauth2: {
|
|
141
|
+
clientId: undefined,
|
|
142
|
+
clientSecret: undefined,
|
|
143
|
+
tokenUrl: undefined,
|
|
144
|
+
username: undefined,
|
|
145
|
+
password: undefined,
|
|
146
|
+
},
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
if (isDevEnvironment()) {
|
|
151
|
+
console.log('🔍 Using direct WordPress mode (legacy - for local development only)');
|
|
152
|
+
}
|
|
153
|
+
const localDev = getEnv('VITE_LOCAL_DEVELOPMENT') === 'true';
|
|
154
|
+
return {
|
|
155
|
+
mode: localDev ? 'local' : 'remote',
|
|
156
|
+
authMode: 'direct',
|
|
157
|
+
dataSource: 'hybrid',
|
|
158
|
+
baseUrl: wpApiUrl,
|
|
159
|
+
headers: { 'Content-Type': 'application/json' },
|
|
160
|
+
description: localDev ? 'Direct (local dev) without Access' : 'Direct mode',
|
|
161
|
+
mautic: { url: getEnv('VITE_MAUTIC_URL') },
|
|
162
|
+
suiteCRM: {
|
|
163
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
164
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
165
|
+
appId: undefined,
|
|
166
|
+
workerSecret: undefined,
|
|
167
|
+
oauth2: {
|
|
168
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
169
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
170
|
+
tokenUrl: getEnv('VITE_SUITECRM_TOKEN_URL'),
|
|
171
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
172
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
173
|
+
},
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// This should never be reached, but just in case
|
|
178
|
+
return {
|
|
179
|
+
mode: 'error',
|
|
180
|
+
authMode: 'error',
|
|
181
|
+
dataSource: 'static',
|
|
182
|
+
baseUrl: '',
|
|
183
|
+
headers: {},
|
|
184
|
+
description: 'Invalid configuration - unknown error',
|
|
185
|
+
suiteCRM: {
|
|
186
|
+
url: undefined,
|
|
187
|
+
proxyUrl: undefined,
|
|
188
|
+
appId: undefined,
|
|
189
|
+
workerSecret: undefined,
|
|
190
|
+
oauth2: {
|
|
191
|
+
clientId: undefined,
|
|
192
|
+
clientSecret: undefined,
|
|
193
|
+
tokenUrl: undefined,
|
|
194
|
+
username: undefined,
|
|
195
|
+
password: undefined,
|
|
196
|
+
},
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
// Get all possible configurations for development
|
|
201
|
+
const getDevelopmentConfigs = () => ({
|
|
202
|
+
local: {
|
|
203
|
+
mode: 'local',
|
|
204
|
+
authMode: 'cloudflare_proxy',
|
|
205
|
+
dataSource: 'static',
|
|
206
|
+
baseUrl: getEnv('VITE_CLOUDFLARE_WORKER_URL') || '',
|
|
207
|
+
headers: {
|
|
208
|
+
'Content-Type': 'application/json'
|
|
209
|
+
},
|
|
210
|
+
description: 'Local development with Cloudflare Worker proxy (Secrets Store)',
|
|
211
|
+
suiteCRM: {
|
|
212
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
213
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
214
|
+
appId: undefined,
|
|
215
|
+
workerSecret: undefined,
|
|
216
|
+
oauth2: {
|
|
217
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
218
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
219
|
+
tokenUrl: undefined, // Will be built from base URL
|
|
220
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
221
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
222
|
+
},
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
remote: {
|
|
226
|
+
mode: 'remote',
|
|
227
|
+
authMode: 'cloudflare_proxy',
|
|
228
|
+
dataSource: 'static',
|
|
229
|
+
baseUrl: getEnv('VITE_CLOUDFLARE_WORKER_URL') || '',
|
|
230
|
+
headers: {
|
|
231
|
+
'Content-Type': 'application/json'
|
|
232
|
+
},
|
|
233
|
+
description: 'Remote development with Cloudflare Worker proxy (Secrets Store)',
|
|
234
|
+
suiteCRM: {
|
|
235
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
236
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
237
|
+
appId: undefined,
|
|
238
|
+
workerSecret: undefined,
|
|
239
|
+
oauth2: {
|
|
240
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
241
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
242
|
+
tokenUrl: undefined, // Will be built from base URL
|
|
243
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
244
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
245
|
+
},
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
production: {
|
|
249
|
+
mode: 'production',
|
|
250
|
+
authMode: 'cloudflare_proxy',
|
|
251
|
+
dataSource: 'static',
|
|
252
|
+
baseUrl: getEnv('VITE_CLOUDFLARE_WORKER_URL') || '',
|
|
253
|
+
headers: {
|
|
254
|
+
'Content-Type': 'application/json'
|
|
255
|
+
},
|
|
256
|
+
description: 'Production environment with Cloudflare Worker proxy (Secrets Store)',
|
|
257
|
+
suiteCRM: {
|
|
258
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
259
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
260
|
+
appId: undefined,
|
|
261
|
+
workerSecret: undefined,
|
|
262
|
+
oauth2: {
|
|
263
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
264
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
265
|
+
tokenUrl: undefined, // Will be built from base URL
|
|
266
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
267
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
268
|
+
},
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
// Environment status and diagnostics
|
|
273
|
+
const getEnvironmentStatus = () => {
|
|
274
|
+
const config = getEnvironmentConfig();
|
|
275
|
+
const isLocal = isLocalDevelopment();
|
|
276
|
+
const authMode = getEnv('VITE_AUTH_MODE');
|
|
277
|
+
// Check if required credentials are available for each mode
|
|
278
|
+
const hasCloudflareCredentials = !!getEnv('VITE_CLOUDFLARE_WORKER_URL');
|
|
279
|
+
const hasWordPressApiUrl = !!getEnv('VITE_WORDPRESS_API_URL');
|
|
280
|
+
return {
|
|
281
|
+
currentConfig: config,
|
|
282
|
+
diagnostics: {
|
|
283
|
+
isLocalDevelopment: isLocal,
|
|
284
|
+
authMode: authMode,
|
|
285
|
+
hasCloudflareCredentials,
|
|
286
|
+
hasWordpressApiUrl: hasWordPressApiUrl,
|
|
287
|
+
cloudflareWorkerUrl: !!getEnv('VITE_CLOUDFLARE_WORKER_URL'),
|
|
288
|
+
cfAccessId: !!getEnv('VITE_CF_ACCESS_CLIENT_ID'),
|
|
289
|
+
cfAccessSecret: !!getEnv('VITE_CF_ACCESS_CLIENT_SECRET'),
|
|
290
|
+
mauticProxyUrl: !!getEnv('VITE_MAUTIC_PROXY_URL')
|
|
291
|
+
},
|
|
292
|
+
recommendations: {
|
|
293
|
+
// Only show recommendation if authMode is explicitly set to an invalid value
|
|
294
|
+
// Default is cloudflare_proxy, so no recommendation needed if not set
|
|
295
|
+
authMode: null, // Defaults to cloudflare_proxy, no warning needed
|
|
296
|
+
cloudflare: null // Pages Functions work without explicit worker URL
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
// Export current environment config as default
|
|
301
|
+
const currentEnv = getEnvironmentConfig();
|
|
302
|
+
const envStatus = getEnvironmentStatus();
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Integration Configuration
|
|
306
|
+
* Centralized configuration for all third-party integrations
|
|
307
|
+
*/
|
|
308
|
+
/**
|
|
309
|
+
* Get integration configuration with environment variable fallbacks
|
|
310
|
+
*/
|
|
311
|
+
function getIntegrationConfig() {
|
|
312
|
+
isDevEnvironment();
|
|
313
|
+
return {
|
|
314
|
+
wordpress: {
|
|
315
|
+
enabled: true,
|
|
316
|
+
apiUrl: getEnv('VITE_WORDPRESS_API_URL') || '',
|
|
317
|
+
authMode: getEnv('VITE_AUTH_MODE') || 'direct',
|
|
318
|
+
},
|
|
319
|
+
supabase: {
|
|
320
|
+
enabled: getEnv('VITE_AUTH_MODE') === 'supabase_proxy',
|
|
321
|
+
url: getEnv('VITE_SUPABASE_URL') || '',
|
|
322
|
+
anonKey: getEnv('VITE_SUPABASE_ANON_KEY') || '',
|
|
323
|
+
serviceRoleKey: getEnv('VITE_SUPABASE_SERVICE_ROLE_KEY'),
|
|
324
|
+
},
|
|
325
|
+
gravityForms: {
|
|
326
|
+
enabled: !!(getEnv('VITE_CLOUDFLARE_WORKER_URL') || getEnv('VITE_WORDPRESS_API_URL')),
|
|
327
|
+
url: getEnv('VITE_WORDPRESS_API_URL'),
|
|
328
|
+
proxyUrl: getEnv('VITE_CLOUDFLARE_WORKER_URL'),
|
|
329
|
+
consumerKey: getEnv('VITE_GF_CONSUMER_KEY'),
|
|
330
|
+
consumerSecret: getEnv('VITE_GF_CONSUMER_SECRET'),
|
|
331
|
+
forms: {
|
|
332
|
+
'contact': {
|
|
333
|
+
name: 'Contact Form',
|
|
334
|
+
type: 'contact',
|
|
335
|
+
successMessage: 'Thank you for your message. We\'ll get back to you soon!',
|
|
336
|
+
},
|
|
337
|
+
'newsletter': {
|
|
338
|
+
name: 'Newsletter Signup',
|
|
339
|
+
type: 'newsletter',
|
|
340
|
+
successMessage: 'Thank you for subscribing to our newsletter!',
|
|
341
|
+
},
|
|
342
|
+
'support': {
|
|
343
|
+
name: 'Support Request',
|
|
344
|
+
type: 'support',
|
|
345
|
+
successMessage: 'Your support request has been submitted successfully.',
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
},
|
|
349
|
+
mautic: {
|
|
350
|
+
enabled: !!(getEnv('VITE_MAUTIC_PROXY_URL') || getEnv('VITE_MAUTIC_URL')),
|
|
351
|
+
url: getEnv('VITE_MAUTIC_URL') || '',
|
|
352
|
+
proxyUrl: getEnv('VITE_MAUTIC_PROXY_URL'),
|
|
353
|
+
forms: {
|
|
354
|
+
'1': {
|
|
355
|
+
name: 'Newsletter Signup',
|
|
356
|
+
type: 'newsletter',
|
|
357
|
+
successMessage: 'Thank you for subscribing to our newsletter!',
|
|
358
|
+
postAction: 'message',
|
|
359
|
+
postActionProperty: 'Thank you for your submission!'
|
|
360
|
+
},
|
|
361
|
+
'2': {
|
|
362
|
+
name: 'Contact Form',
|
|
363
|
+
type: 'contact',
|
|
364
|
+
successMessage: 'Thank you for contacting us! We\'ll get back to you soon.',
|
|
365
|
+
postAction: 'message',
|
|
366
|
+
postActionProperty: 'Thank you for your message!'
|
|
367
|
+
},
|
|
368
|
+
'3': {
|
|
369
|
+
name: 'Lead Capture',
|
|
370
|
+
type: 'lead',
|
|
371
|
+
successMessage: 'Thank you for your interest! We\'ll be in touch.',
|
|
372
|
+
postAction: 'message',
|
|
373
|
+
postActionProperty: 'Thank you for your submission!'
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
suiteCRM: {
|
|
378
|
+
enabled: !!(getEnv('VITE_SUITECRM_URL') && getEnv('VITE_SUITECRM_CLIENT_ID') && getEnv('VITE_SUITECRM_CLIENT_SECRET')),
|
|
379
|
+
url: getEnv('VITE_SUITECRM_URL'),
|
|
380
|
+
proxyUrl: getEnv('VITE_SUITECRM_PROXY_URL'),
|
|
381
|
+
appId: undefined,
|
|
382
|
+
workerSecret: undefined,
|
|
383
|
+
oauth2: {
|
|
384
|
+
clientId: getEnv('VITE_SUITECRM_CLIENT_ID'),
|
|
385
|
+
clientSecret: getEnv('VITE_SUITECRM_CLIENT_SECRET'),
|
|
386
|
+
username: getEnv('VITE_SUITECRM_USERNAME'),
|
|
387
|
+
password: getEnv('VITE_SUITECRM_PASSWORD'),
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
chatwoot: {
|
|
391
|
+
enabled: !!(getEnv('VITE_CHATWOOT_WEBSITE_TOKEN') && getEnv('VITE_CHATWOOT_BASE_URL')),
|
|
392
|
+
websiteToken: getEnv('VITE_CHATWOOT_WEBSITE_TOKEN') || '',
|
|
393
|
+
baseUrl: getEnv('VITE_CHATWOOT_BASE_URL') || '',
|
|
394
|
+
locale: 'en',
|
|
395
|
+
type: 'standard',
|
|
396
|
+
launcherTitle: 'Chat',
|
|
397
|
+
hideMessageBubble: false,
|
|
398
|
+
position: 'right',
|
|
399
|
+
showPopoutButton: false,
|
|
400
|
+
},
|
|
401
|
+
analytics: {
|
|
402
|
+
googleAnalytics: { enabled: false },
|
|
403
|
+
googleTagManager: { enabled: false },
|
|
404
|
+
facebookPixel: { enabled: false },
|
|
405
|
+
linkedinInsight: { enabled: false },
|
|
406
|
+
},
|
|
407
|
+
seo: {
|
|
408
|
+
defaultTitle: '',
|
|
409
|
+
defaultDescription: '',
|
|
410
|
+
defaultImage: '',
|
|
411
|
+
siteName: '',
|
|
412
|
+
siteUrl: '',
|
|
413
|
+
},
|
|
414
|
+
performance: {
|
|
415
|
+
enableLazyLoading: true,
|
|
416
|
+
enableImageOptimization: true,
|
|
417
|
+
enableCodeSplitting: true,
|
|
418
|
+
enableServiceWorker: false,
|
|
419
|
+
enableCaching: true,
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Validate integration configuration
|
|
425
|
+
* Only validates integrations that are actually enabled
|
|
426
|
+
*/
|
|
427
|
+
function validateIntegrationConfig() {
|
|
428
|
+
const config = getIntegrationConfig();
|
|
429
|
+
const errors = [];
|
|
430
|
+
// WordPress validation - only if enabled
|
|
431
|
+
if (config.wordpress.enabled && !config.wordpress.apiUrl && !config.gravityForms.proxyUrl) {
|
|
432
|
+
errors.push('WordPress API URL is required when WordPress is enabled (unless using Gravity Forms proxy)');
|
|
433
|
+
}
|
|
434
|
+
// Supabase validation - only if enabled
|
|
435
|
+
if (config.supabase.enabled && (!config.supabase.url || !config.supabase.anonKey)) {
|
|
436
|
+
errors.push('Supabase URL and anonymous key are required when Supabase is enabled');
|
|
437
|
+
}
|
|
438
|
+
// Gravity Forms validation - only if enabled
|
|
439
|
+
// Note: Cloudflare Pages Functions handle routing, so proxyUrl is optional
|
|
440
|
+
// Only validate if explicitly trying to use a separate worker
|
|
441
|
+
if (config.gravityForms.enabled) {
|
|
442
|
+
// Gravity Forms can work via Pages Functions (/api/gravity-forms-submit)
|
|
443
|
+
// Only require proxy URL if using a separate worker
|
|
444
|
+
const hasWorkerUrl = !!getEnv('VITE_CLOUDFLARE_WORKER_URL');
|
|
445
|
+
if (!hasWorkerUrl && isDevEnvironment()) {
|
|
446
|
+
// Using Pages Functions - this is fine, just log info
|
|
447
|
+
console.log('ℹ️ Gravity Forms will use Cloudflare Pages Functions (/api/gravity-forms-submit)');
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
// Mautic validation - only if enabled
|
|
451
|
+
// Mautic can work via Pages Functions, so proxy URL is optional
|
|
452
|
+
if (config.mautic.enabled) {
|
|
453
|
+
const hasProxyUrl = !!config.mautic.proxyUrl;
|
|
454
|
+
const hasWorkerUrl = !!getEnv('VITE_CLOUDFLARE_WORKER_URL');
|
|
455
|
+
if (!hasProxyUrl && !hasWorkerUrl && isDevEnvironment()) {
|
|
456
|
+
// Using Pages Functions - this is fine
|
|
457
|
+
console.log('ℹ️ Mautic will use Cloudflare Pages Functions (/api/mautic-submit)');
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
// SuiteCRM validation - only if enabled
|
|
461
|
+
if (config.suiteCRM.enabled && (!config.suiteCRM.url || !config.suiteCRM.oauth2?.clientId || !config.suiteCRM.oauth2?.clientSecret)) {
|
|
462
|
+
errors.push('SuiteCRM URL, client ID, and client secret are required when SuiteCRM is enabled');
|
|
463
|
+
}
|
|
464
|
+
// Chatwoot validation - only if enabled
|
|
465
|
+
if (config.chatwoot.enabled && !config.chatwoot.websiteToken) {
|
|
466
|
+
errors.push('Chatwoot website token is required when Chatwoot is enabled');
|
|
467
|
+
}
|
|
468
|
+
return errors;
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Get specific integration configuration
|
|
472
|
+
*/
|
|
473
|
+
function getWordPressConfig() {
|
|
474
|
+
return getIntegrationConfig().wordpress;
|
|
475
|
+
}
|
|
476
|
+
function getSupabaseConfig() {
|
|
477
|
+
return getIntegrationConfig().supabase;
|
|
478
|
+
}
|
|
479
|
+
function getGravityFormsConfig() {
|
|
480
|
+
return getIntegrationConfig().gravityForms;
|
|
481
|
+
}
|
|
482
|
+
function getMauticConfig() {
|
|
483
|
+
return getIntegrationConfig().mautic;
|
|
484
|
+
}
|
|
485
|
+
function getSuiteCRMConfig() {
|
|
486
|
+
return getIntegrationConfig().suiteCRM;
|
|
487
|
+
}
|
|
488
|
+
function getChatwootConfig() {
|
|
489
|
+
return getIntegrationConfig().chatwoot;
|
|
490
|
+
}
|
|
491
|
+
function getAnalyticsConfig() {
|
|
492
|
+
return getIntegrationConfig().analytics;
|
|
493
|
+
}
|
|
494
|
+
function getSEOConfig() {
|
|
495
|
+
return getIntegrationConfig().seo;
|
|
496
|
+
}
|
|
497
|
+
function getPerformanceConfig() {
|
|
498
|
+
return getIntegrationConfig().performance;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
export { currentEnv, envStatus, getAnalyticsConfig, getChatwootConfig, getDevelopmentConfigs, getEnvironmentConfig, getEnvironmentStatus, getGravityFormsConfig, getIntegrationConfig, getMauticConfig, getPerformanceConfig, getSEOConfig, getSuiteCRMConfig, getSupabaseConfig, getWordPressConfig, validateIntegrationConfig };
|
|
502
|
+
//# sourceMappingURL=config.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.esm.js","sources":["../src/runtime/env.ts","../src/config/environment.ts","../src/config/integrations.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
|