@funnelsgrove/runtime 0.1.9 → 0.1.11
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/dist/components/RuntimeDevInfoBox.js +1 -5
- package/dist/config/env.config.d.ts +36 -36
- package/dist/config/env.config.js +38 -92
- package/dist/services/project-env.d.ts +1 -38
- package/dist/services/project-env.js +45 -104
- package/dist/services/public-env.d.ts +25 -28
- package/dist/services/public-env.js +37 -75
- package/package.json +1 -1
|
@@ -9,14 +9,10 @@ const normalizeDisplayValue = (value) => {
|
|
|
9
9
|
}
|
|
10
10
|
return String(value);
|
|
11
11
|
};
|
|
12
|
-
const getCanonicalRuntimeEnvKey = (envKeys) => {
|
|
13
|
-
var _a, _b;
|
|
14
|
-
return (_b = (_a = envKeys.find((envKey) => envKey.startsWith('NEXT_PUBLIC_'))) !== null && _a !== void 0 ? _a : envKeys[0]) !== null && _b !== void 0 ? _b : '';
|
|
15
|
-
};
|
|
16
12
|
const runtimePublicConfigEntries = () => {
|
|
17
13
|
return Object.entries(RUNTIME_PUBLIC_ENV_KEYS).map(([configKey, envKey]) => ({
|
|
18
14
|
label: configKey,
|
|
19
|
-
source:
|
|
15
|
+
source: envKey,
|
|
20
16
|
value: runtimePublicConfig[configKey],
|
|
21
17
|
}));
|
|
22
18
|
};
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
export declare const readRuntimeEnv: (reader: () => string | undefined) => string | undefined;
|
|
2
2
|
export declare const isDevelopmentRuntime: () => boolean;
|
|
3
3
|
export declare const RUNTIME_ENV_KEYS: {
|
|
4
|
-
readonly appDealsApiBaseUrl:
|
|
5
|
-
readonly funnelSdkPublishableKey:
|
|
6
|
-
readonly funnelId:
|
|
7
|
-
readonly projectId:
|
|
8
|
-
readonly funnelVersionId:
|
|
9
|
-
readonly posthogProjectApiKey:
|
|
10
|
-
readonly supportEmail:
|
|
11
|
-
readonly iosAppStoreUrl:
|
|
12
|
-
readonly androidPlayStoreUrl:
|
|
13
|
-
readonly appStoreId:
|
|
14
|
-
readonly googleStoreId:
|
|
15
|
-
readonly timezone:
|
|
16
|
-
readonly faviconUrl:
|
|
17
|
-
readonly pageTitle:
|
|
18
|
-
readonly pageDescription:
|
|
19
|
-
readonly pagePreviewImageUrl:
|
|
20
|
-
readonly companyName:
|
|
21
|
-
readonly companyAddress:
|
|
22
|
-
readonly companyCountry:
|
|
23
|
-
readonly privacyUrl:
|
|
24
|
-
readonly termsUrl:
|
|
25
|
-
readonly universalLink:
|
|
26
|
-
readonly iosDeepLink:
|
|
27
|
-
readonly androidDeepLink:
|
|
28
|
-
readonly qrTarget:
|
|
29
|
-
readonly stripeEnabled:
|
|
30
|
-
readonly stripeActiveMode:
|
|
31
|
-
readonly stripePublishableKey:
|
|
32
|
-
readonly stripeTestPublishableKey:
|
|
33
|
-
readonly stripeLivePublishableKey:
|
|
34
|
-
readonly metaPixelEnabled:
|
|
35
|
-
readonly metaPixelId:
|
|
36
|
-
readonly funnelCustomDomain:
|
|
37
|
-
readonly claimbeeWeeklyPriceId:
|
|
38
|
-
readonly claimbeeMonthlyPriceId:
|
|
39
|
-
readonly claimbeeYearlyPriceId:
|
|
4
|
+
readonly appDealsApiBaseUrl: "NEXT_PUBLIC_APP_DEALS_API_BASE_URL";
|
|
5
|
+
readonly funnelSdkPublishableKey: "NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY";
|
|
6
|
+
readonly funnelId: "NEXT_PUBLIC_FUNNEL_ID";
|
|
7
|
+
readonly projectId: "NEXT_PUBLIC_PROJECT_ID";
|
|
8
|
+
readonly funnelVersionId: "NEXT_PUBLIC_FUNNEL_VERSION_ID";
|
|
9
|
+
readonly posthogProjectApiKey: "NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY";
|
|
10
|
+
readonly supportEmail: "NEXT_PUBLIC_FUNNEL_SUPPORT_EMAIL";
|
|
11
|
+
readonly iosAppStoreUrl: "NEXT_PUBLIC_IOS_APP_STORE_URL";
|
|
12
|
+
readonly androidPlayStoreUrl: "NEXT_PUBLIC_ANDROID_PLAY_STORE_URL";
|
|
13
|
+
readonly appStoreId: "NEXT_PUBLIC_FUNNEL_APP_STORE_ID";
|
|
14
|
+
readonly googleStoreId: "NEXT_PUBLIC_FUNNEL_GOOGLE_STORE_ID";
|
|
15
|
+
readonly timezone: "NEXT_PUBLIC_FUNNEL_TIMEZONE";
|
|
16
|
+
readonly faviconUrl: "NEXT_PUBLIC_FUNNEL_FAVICON_URL";
|
|
17
|
+
readonly pageTitle: "NEXT_PUBLIC_FUNNEL_PAGE_TITLE";
|
|
18
|
+
readonly pageDescription: "NEXT_PUBLIC_FUNNEL_PAGE_DESCRIPTION";
|
|
19
|
+
readonly pagePreviewImageUrl: "NEXT_PUBLIC_FUNNEL_PAGE_PREVIEW_IMAGE_URL";
|
|
20
|
+
readonly companyName: "NEXT_PUBLIC_FUNNEL_COMPANY_NAME";
|
|
21
|
+
readonly companyAddress: "NEXT_PUBLIC_FUNNEL_COMPANY_ADDRESS";
|
|
22
|
+
readonly companyCountry: "NEXT_PUBLIC_FUNNEL_COMPANY_COUNTRY";
|
|
23
|
+
readonly privacyUrl: "NEXT_PUBLIC_FUNNEL_PRIVACY_URL";
|
|
24
|
+
readonly termsUrl: "NEXT_PUBLIC_FUNNEL_TERMS_URL";
|
|
25
|
+
readonly universalLink: "NEXT_PUBLIC_FUNNEL_UNIVERSAL_LINK";
|
|
26
|
+
readonly iosDeepLink: "NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK";
|
|
27
|
+
readonly androidDeepLink: "NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK";
|
|
28
|
+
readonly qrTarget: "NEXT_PUBLIC_FUNNEL_QR_TARGET";
|
|
29
|
+
readonly stripeEnabled: "STRIPE_ENABLED";
|
|
30
|
+
readonly stripeActiveMode: "NEXT_PUBLIC_STRIPE_ACTIVE_MODE";
|
|
31
|
+
readonly stripePublishableKey: "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY";
|
|
32
|
+
readonly stripeTestPublishableKey: "NEXT_PUBLIC_STRIPE_TEST_PUBLISHABLE_KEY";
|
|
33
|
+
readonly stripeLivePublishableKey: "NEXT_PUBLIC_STRIPE_LIVE_PUBLISHABLE_KEY";
|
|
34
|
+
readonly metaPixelEnabled: "NEXT_PUBLIC_META_PIXEL_ENABLED";
|
|
35
|
+
readonly metaPixelId: "NEXT_PUBLIC_META_PIXEL_ID";
|
|
36
|
+
readonly funnelCustomDomain: "FUNNEL_CUSTOM_DOMAIN";
|
|
37
|
+
readonly claimbeeWeeklyPriceId: "NEXT_PUBLIC_CLAIMBEE_WEEKLY_PRICE_ID";
|
|
38
|
+
readonly claimbeeMonthlyPriceId: "NEXT_PUBLIC_CLAIMBEE_MONTHLY_PRICE_ID";
|
|
39
|
+
readonly claimbeeYearlyPriceId: "NEXT_PUBLIC_CLAIMBEE_YEARLY_PRICE_ID";
|
|
40
40
|
};
|
|
41
41
|
export declare const resolveRuntimeSdkApiBaseUrl: (value: string) => string;
|
|
42
42
|
export type RuntimeEnvConfig = {
|
|
@@ -12,49 +12,42 @@ export const isDevelopmentRuntime = () => {
|
|
|
12
12
|
return typeof nodeEnv === 'string' && nodeEnv !== 'production';
|
|
13
13
|
};
|
|
14
14
|
export const RUNTIME_ENV_KEYS = {
|
|
15
|
-
appDealsApiBaseUrl:
|
|
16
|
-
funnelSdkPublishableKey:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
stripeLivePublishableKey: ['NEXT_PUBLIC_STRIPE_LIVE_PUBLISHABLE_KEY', 'STRIPE_LIVE_PUBLISHABLE_KEY'],
|
|
52
|
-
metaPixelEnabled: ['NEXT_PUBLIC_META_PIXEL_ENABLED', 'META_PIXEL_ENABLED'],
|
|
53
|
-
metaPixelId: ['NEXT_PUBLIC_META_PIXEL_ID', 'META_PIXEL_ID'],
|
|
54
|
-
funnelCustomDomain: ['FUNNEL_CUSTOM_DOMAIN'],
|
|
55
|
-
claimbeeWeeklyPriceId: ['NEXT_PUBLIC_CLAIMBEE_WEEKLY_PRICE_ID', 'CLAIMBEE_WEEKLY_PRICE_ID'],
|
|
56
|
-
claimbeeMonthlyPriceId: ['NEXT_PUBLIC_CLAIMBEE_MONTHLY_PRICE_ID', 'CLAIMBEE_MONTHLY_PRICE_ID'],
|
|
57
|
-
claimbeeYearlyPriceId: ['NEXT_PUBLIC_CLAIMBEE_YEARLY_PRICE_ID', 'CLAIMBEE_YEARLY_PRICE_ID'],
|
|
15
|
+
appDealsApiBaseUrl: 'NEXT_PUBLIC_APP_DEALS_API_BASE_URL',
|
|
16
|
+
funnelSdkPublishableKey: 'NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY',
|
|
17
|
+
funnelId: 'NEXT_PUBLIC_FUNNEL_ID',
|
|
18
|
+
projectId: 'NEXT_PUBLIC_PROJECT_ID',
|
|
19
|
+
funnelVersionId: 'NEXT_PUBLIC_FUNNEL_VERSION_ID',
|
|
20
|
+
posthogProjectApiKey: 'NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY',
|
|
21
|
+
supportEmail: 'NEXT_PUBLIC_FUNNEL_SUPPORT_EMAIL',
|
|
22
|
+
iosAppStoreUrl: 'NEXT_PUBLIC_IOS_APP_STORE_URL',
|
|
23
|
+
androidPlayStoreUrl: 'NEXT_PUBLIC_ANDROID_PLAY_STORE_URL',
|
|
24
|
+
appStoreId: 'NEXT_PUBLIC_FUNNEL_APP_STORE_ID',
|
|
25
|
+
googleStoreId: 'NEXT_PUBLIC_FUNNEL_GOOGLE_STORE_ID',
|
|
26
|
+
timezone: 'NEXT_PUBLIC_FUNNEL_TIMEZONE',
|
|
27
|
+
faviconUrl: 'NEXT_PUBLIC_FUNNEL_FAVICON_URL',
|
|
28
|
+
pageTitle: 'NEXT_PUBLIC_FUNNEL_PAGE_TITLE',
|
|
29
|
+
pageDescription: 'NEXT_PUBLIC_FUNNEL_PAGE_DESCRIPTION',
|
|
30
|
+
pagePreviewImageUrl: 'NEXT_PUBLIC_FUNNEL_PAGE_PREVIEW_IMAGE_URL',
|
|
31
|
+
companyName: 'NEXT_PUBLIC_FUNNEL_COMPANY_NAME',
|
|
32
|
+
companyAddress: 'NEXT_PUBLIC_FUNNEL_COMPANY_ADDRESS',
|
|
33
|
+
companyCountry: 'NEXT_PUBLIC_FUNNEL_COMPANY_COUNTRY',
|
|
34
|
+
privacyUrl: 'NEXT_PUBLIC_FUNNEL_PRIVACY_URL',
|
|
35
|
+
termsUrl: 'NEXT_PUBLIC_FUNNEL_TERMS_URL',
|
|
36
|
+
universalLink: 'NEXT_PUBLIC_FUNNEL_UNIVERSAL_LINK',
|
|
37
|
+
iosDeepLink: 'NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK',
|
|
38
|
+
androidDeepLink: 'NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK',
|
|
39
|
+
qrTarget: 'NEXT_PUBLIC_FUNNEL_QR_TARGET',
|
|
40
|
+
stripeEnabled: 'STRIPE_ENABLED',
|
|
41
|
+
stripeActiveMode: 'NEXT_PUBLIC_STRIPE_ACTIVE_MODE',
|
|
42
|
+
stripePublishableKey: 'NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY',
|
|
43
|
+
stripeTestPublishableKey: 'NEXT_PUBLIC_STRIPE_TEST_PUBLISHABLE_KEY',
|
|
44
|
+
stripeLivePublishableKey: 'NEXT_PUBLIC_STRIPE_LIVE_PUBLISHABLE_KEY',
|
|
45
|
+
metaPixelEnabled: 'NEXT_PUBLIC_META_PIXEL_ENABLED',
|
|
46
|
+
metaPixelId: 'NEXT_PUBLIC_META_PIXEL_ID',
|
|
47
|
+
funnelCustomDomain: 'FUNNEL_CUSTOM_DOMAIN',
|
|
48
|
+
claimbeeWeeklyPriceId: 'NEXT_PUBLIC_CLAIMBEE_WEEKLY_PRICE_ID',
|
|
49
|
+
claimbeeMonthlyPriceId: 'NEXT_PUBLIC_CLAIMBEE_MONTHLY_PRICE_ID',
|
|
50
|
+
claimbeeYearlyPriceId: 'NEXT_PUBLIC_CLAIMBEE_YEARLY_PRICE_ID',
|
|
58
51
|
};
|
|
59
52
|
const FUNNELSGROVE_CONTROL_PLANE_API_BASE_URL = 'https://api.funnelsgrove.com';
|
|
60
53
|
const FUNNELSGROVE_SDK_API_BASE_URL = 'https://sdk-api.funnelsgrove.com';
|
|
@@ -71,45 +64,8 @@ export const resolveRuntimeSdkApiBaseUrl = (value) => {
|
|
|
71
64
|
: normalized;
|
|
72
65
|
};
|
|
73
66
|
const RUNTIME_ENV_VALUES = {
|
|
74
|
-
APP_DEALS_API_BASE_URL: readRuntimeEnv(() => process.env.APP_DEALS_API_BASE_URL),
|
|
75
|
-
FUNNEL_ID: readRuntimeEnv(() => process.env.FUNNEL_ID),
|
|
76
|
-
FUNNEL_VERSION_ID: readRuntimeEnv(() => process.env.FUNNEL_VERSION_ID),
|
|
77
|
-
FUNNEL_SDK_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.FUNNEL_SDK_PUBLISHABLE_KEY),
|
|
78
|
-
PROJECT_ID: readRuntimeEnv(() => process.env.PROJECT_ID),
|
|
79
|
-
POSTHOG_PROJECT_API_KEY: readRuntimeEnv(() => process.env.POSTHOG_PROJECT_API_KEY),
|
|
80
|
-
FUNNEL_SUPPORT_EMAIL: readRuntimeEnv(() => process.env.FUNNEL_SUPPORT_EMAIL),
|
|
81
|
-
IOS_APP_STORE_URL: readRuntimeEnv(() => process.env.IOS_APP_STORE_URL),
|
|
82
|
-
ANDROID_PLAY_STORE_URL: readRuntimeEnv(() => process.env.ANDROID_PLAY_STORE_URL),
|
|
83
|
-
GOOGLE_PLAY_URL: readRuntimeEnv(() => process.env.GOOGLE_PLAY_URL),
|
|
84
|
-
FUNNEL_APP_STORE_ID: readRuntimeEnv(() => process.env.FUNNEL_APP_STORE_ID),
|
|
85
|
-
FUNNEL_GOOGLE_STORE_ID: readRuntimeEnv(() => process.env.FUNNEL_GOOGLE_STORE_ID),
|
|
86
|
-
FUNNEL_TIMEZONE: readRuntimeEnv(() => process.env.FUNNEL_TIMEZONE),
|
|
87
|
-
FUNNEL_FAVICON_URL: readRuntimeEnv(() => process.env.FUNNEL_FAVICON_URL),
|
|
88
|
-
FUNNEL_PAGE_TITLE: readRuntimeEnv(() => process.env.FUNNEL_PAGE_TITLE),
|
|
89
|
-
FUNNEL_PAGE_DESCRIPTION: readRuntimeEnv(() => process.env.FUNNEL_PAGE_DESCRIPTION),
|
|
90
|
-
FUNNEL_PAGE_PREVIEW_IMAGE_URL: readRuntimeEnv(() => process.env.FUNNEL_PAGE_PREVIEW_IMAGE_URL),
|
|
91
|
-
FUNNEL_COMPANY_NAME: readRuntimeEnv(() => process.env.FUNNEL_COMPANY_NAME),
|
|
92
|
-
FUNNEL_COMPANY_ADDRESS: readRuntimeEnv(() => process.env.FUNNEL_COMPANY_ADDRESS),
|
|
93
|
-
FUNNEL_COMPANY_COUNTRY: readRuntimeEnv(() => process.env.FUNNEL_COMPANY_COUNTRY),
|
|
94
|
-
FUNNEL_PRIVACY_URL: readRuntimeEnv(() => process.env.FUNNEL_PRIVACY_URL),
|
|
95
|
-
FUNNEL_TERMS_URL: readRuntimeEnv(() => process.env.FUNNEL_TERMS_URL),
|
|
96
|
-
WEB_LANDING_URL: readRuntimeEnv(() => process.env.WEB_LANDING_URL),
|
|
97
|
-
FUNNEL_UNIVERSAL_LINK: readRuntimeEnv(() => process.env.FUNNEL_UNIVERSAL_LINK),
|
|
98
|
-
APPSTORE_DEEPLINK_URL: readRuntimeEnv(() => process.env.APPSTORE_DEEPLINK_URL),
|
|
99
|
-
FUNNEL_IOS_DEEP_LINK: readRuntimeEnv(() => process.env.FUNNEL_IOS_DEEP_LINK),
|
|
100
|
-
FUNNEL_ANDROID_DEEP_LINK: readRuntimeEnv(() => process.env.FUNNEL_ANDROID_DEEP_LINK),
|
|
101
|
-
FUNNEL_QR_TARGET: readRuntimeEnv(() => process.env.FUNNEL_QR_TARGET),
|
|
102
67
|
STRIPE_ENABLED: readRuntimeEnv(() => process.env.STRIPE_ENABLED),
|
|
103
|
-
STRIPE_ACTIVE_MODE: readRuntimeEnv(() => process.env.STRIPE_ACTIVE_MODE),
|
|
104
|
-
STRIPE_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.STRIPE_PUBLISHABLE_KEY),
|
|
105
|
-
STRIPE_TEST_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.STRIPE_TEST_PUBLISHABLE_KEY),
|
|
106
|
-
STRIPE_LIVE_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.STRIPE_LIVE_PUBLISHABLE_KEY),
|
|
107
|
-
META_PIXEL_ENABLED: readRuntimeEnv(() => process.env.META_PIXEL_ENABLED),
|
|
108
|
-
META_PIXEL_ID: readRuntimeEnv(() => process.env.META_PIXEL_ID),
|
|
109
68
|
FUNNEL_CUSTOM_DOMAIN: readRuntimeEnv(() => process.env.FUNNEL_CUSTOM_DOMAIN),
|
|
110
|
-
CLAIMBEE_WEEKLY_PRICE_ID: readRuntimeEnv(() => process.env.CLAIMBEE_WEEKLY_PRICE_ID),
|
|
111
|
-
CLAIMBEE_MONTHLY_PRICE_ID: readRuntimeEnv(() => process.env.CLAIMBEE_MONTHLY_PRICE_ID),
|
|
112
|
-
CLAIMBEE_YEARLY_PRICE_ID: readRuntimeEnv(() => process.env.CLAIMBEE_YEARLY_PRICE_ID),
|
|
113
69
|
NEXT_PUBLIC_APP_DEALS_API_BASE_URL: readRuntimeEnv(() => process.env.NEXT_PUBLIC_APP_DEALS_API_BASE_URL),
|
|
114
70
|
NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY),
|
|
115
71
|
NEXT_PUBLIC_FUNNEL_ID: readRuntimeEnv(() => process.env.NEXT_PUBLIC_FUNNEL_ID),
|
|
@@ -135,7 +91,6 @@ const RUNTIME_ENV_VALUES = {
|
|
|
135
91
|
NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK: readRuntimeEnv(() => process.env.NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK),
|
|
136
92
|
NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK: readRuntimeEnv(() => process.env.NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK),
|
|
137
93
|
NEXT_PUBLIC_FUNNEL_QR_TARGET: readRuntimeEnv(() => process.env.NEXT_PUBLIC_FUNNEL_QR_TARGET),
|
|
138
|
-
NEXT_PUBLIC_RAG_FUNNEL_ID: readRuntimeEnv(() => process.env.NEXT_PUBLIC_RAG_FUNNEL_ID),
|
|
139
94
|
NEXT_PUBLIC_STRIPE_ACTIVE_MODE: readRuntimeEnv(() => process.env.NEXT_PUBLIC_STRIPE_ACTIVE_MODE),
|
|
140
95
|
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY),
|
|
141
96
|
NEXT_PUBLIC_STRIPE_TEST_PUBLISHABLE_KEY: readRuntimeEnv(() => process.env.NEXT_PUBLIC_STRIPE_TEST_PUBLISHABLE_KEY),
|
|
@@ -152,16 +107,7 @@ const readKnownRuntimeEnvValue = (key) => {
|
|
|
152
107
|
}
|
|
153
108
|
return readRuntimeEnv(() => process.env[key]);
|
|
154
109
|
};
|
|
155
|
-
const
|
|
156
|
-
for (const key of keys) {
|
|
157
|
-
const value = readKnownRuntimeEnvValue(key);
|
|
158
|
-
if (typeof value === 'string') {
|
|
159
|
-
return value;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return undefined;
|
|
163
|
-
};
|
|
164
|
-
export const runtimeEnvConfig = Object.freeze(Object.fromEntries(Object.entries(RUNTIME_ENV_KEYS).map(([key, aliases]) => [
|
|
110
|
+
export const runtimeEnvConfig = Object.freeze(Object.fromEntries(Object.entries(RUNTIME_ENV_KEYS).map(([key, envKey]) => [
|
|
165
111
|
key,
|
|
166
|
-
|
|
112
|
+
readKnownRuntimeEnvValue(envKey),
|
|
167
113
|
])));
|
|
@@ -36,42 +36,6 @@ export declare const PROJECT_ENV_STANDARD_KEYS: {
|
|
|
36
36
|
};
|
|
37
37
|
export type ProjectEnvStandardKey = keyof typeof PROJECT_ENV_STANDARD_KEYS;
|
|
38
38
|
export type ProjectEnvStandardValues = Record<ProjectEnvStandardKey, string>;
|
|
39
|
-
export declare const PROJECT_ENV_STANDARD_KEY_ALIASES: {
|
|
40
|
-
readonly funnelSdkPublishableKey: readonly ["NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY", "NEXT_PUBLIC_FUNNEL_SDK_PUBLISHABLE_KEY"];
|
|
41
|
-
readonly funnelId: readonly ["NEXT_PUBLIC_FUNNEL_ID"];
|
|
42
|
-
readonly funnelVersionId: readonly ["NEXT_PUBLIC_FUNNEL_VERSION_ID"];
|
|
43
|
-
readonly projectId: readonly ["NEXT_PUBLIC_PROJECT_ID"];
|
|
44
|
-
readonly posthogProjectApiKey: readonly ["NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY"];
|
|
45
|
-
readonly stripeEnabled: readonly ["STRIPE_ENABLED"];
|
|
46
|
-
readonly stripeActiveMode: readonly ["NEXT_PUBLIC_STRIPE_ACTIVE_MODE", "STRIPE_ACTIVE_MODE"];
|
|
47
|
-
readonly stripeTestPublishableKey: readonly ["NEXT_PUBLIC_STRIPE_TEST_PUBLISHABLE_KEY", "STRIPE_TEST_PUBLISHABLE_KEY"];
|
|
48
|
-
readonly stripeTestSecretKey: readonly ["STRIPE_TEST_SECRET_KEY"];
|
|
49
|
-
readonly stripeTestWebhookSecret: readonly ["STRIPE_TEST_WEBHOOK_SECRET"];
|
|
50
|
-
readonly stripeLivePublishableKey: readonly ["NEXT_PUBLIC_STRIPE_LIVE_PUBLISHABLE_KEY", "STRIPE_LIVE_PUBLISHABLE_KEY"];
|
|
51
|
-
readonly stripeLiveSecretKey: readonly ["STRIPE_LIVE_SECRET_KEY"];
|
|
52
|
-
readonly stripeLiveWebhookSecret: readonly ["STRIPE_LIVE_WEBHOOK_SECRET"];
|
|
53
|
-
readonly funnelIosDeepLink: readonly ["NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK", "APPSTORE_DEEPLINK_URL"];
|
|
54
|
-
readonly funnelAndroidPlayStoreUrl: readonly ["NEXT_PUBLIC_ANDROID_PLAY_STORE_URL", "GOOGLE_PLAY_URL"];
|
|
55
|
-
readonly funnelUniversalLink: readonly ["NEXT_PUBLIC_FUNNEL_UNIVERSAL_LINK", "WEB_LANDING_URL"];
|
|
56
|
-
readonly funnelAppStoreId: readonly ["NEXT_PUBLIC_FUNNEL_APP_STORE_ID"];
|
|
57
|
-
readonly funnelGoogleStoreId: readonly ["NEXT_PUBLIC_FUNNEL_GOOGLE_STORE_ID"];
|
|
58
|
-
readonly funnelTimezone: readonly ["NEXT_PUBLIC_FUNNEL_TIMEZONE"];
|
|
59
|
-
readonly funnelFaviconUrl: readonly ["NEXT_PUBLIC_FUNNEL_FAVICON_URL"];
|
|
60
|
-
readonly funnelPageTitle: readonly ["NEXT_PUBLIC_FUNNEL_PAGE_TITLE"];
|
|
61
|
-
readonly funnelPageDescription: readonly ["NEXT_PUBLIC_FUNNEL_PAGE_DESCRIPTION"];
|
|
62
|
-
readonly funnelPagePreviewImageUrl: readonly ["NEXT_PUBLIC_FUNNEL_PAGE_PREVIEW_IMAGE_URL"];
|
|
63
|
-
readonly funnelCompanyName: readonly ["NEXT_PUBLIC_FUNNEL_COMPANY_NAME"];
|
|
64
|
-
readonly funnelCompanyAddress: readonly ["NEXT_PUBLIC_FUNNEL_COMPANY_ADDRESS"];
|
|
65
|
-
readonly funnelCompanyCountry: readonly ["NEXT_PUBLIC_FUNNEL_COMPANY_COUNTRY"];
|
|
66
|
-
readonly funnelPrivacyUrl: readonly ["NEXT_PUBLIC_FUNNEL_PRIVACY_URL"];
|
|
67
|
-
readonly funnelTermsUrl: readonly ["NEXT_PUBLIC_FUNNEL_TERMS_URL"];
|
|
68
|
-
readonly funnelCustomDomain: readonly ["FUNNEL_CUSTOM_DOMAIN"];
|
|
69
|
-
readonly funnelSupportEmail: readonly ["NEXT_PUBLIC_FUNNEL_SUPPORT_EMAIL", "FUNNEL_SUPPORT_EMAIL"];
|
|
70
|
-
readonly metaPixelEnabled: readonly ["NEXT_PUBLIC_META_PIXEL_ENABLED", "META_PIXEL_ENABLED"];
|
|
71
|
-
readonly metaPixelId: readonly ["NEXT_PUBLIC_META_PIXEL_ID", "META_PIXEL_ID"];
|
|
72
|
-
readonly metaConversionsAccessToken: readonly ["META_CONVERSIONS_ACCESS_TOKEN"];
|
|
73
|
-
readonly metaTestEventCode: readonly ["META_TEST_EVENT_CODE"];
|
|
74
|
-
};
|
|
75
39
|
export type ProjectEnvVariableLike = {
|
|
76
40
|
key: string;
|
|
77
41
|
value: string | null | undefined;
|
|
@@ -84,10 +48,9 @@ export interface ParsedProjectEnvVariables {
|
|
|
84
48
|
envMap: Map<string, string>;
|
|
85
49
|
standard: ProjectEnvStandardValues;
|
|
86
50
|
}
|
|
87
|
-
export declare const canonicalizeProjectEnvKey: (key: string) => string;
|
|
88
51
|
export declare const normalizeProjectEnvValue: (value: string | null | undefined) => string;
|
|
89
52
|
export declare const buildProjectEnvMap: (variables: readonly ProjectEnvVariableLike[]) => Map<string, string>;
|
|
90
|
-
export declare const getProjectEnvValue: (envMap: ReadonlyMap<string, string>,
|
|
53
|
+
export declare const getProjectEnvValue: (envMap: ReadonlyMap<string, string>, key: string, options?: {
|
|
91
54
|
requireNonEmpty?: boolean;
|
|
92
55
|
}) => string;
|
|
93
56
|
export declare const parseProjectEnvVariables: (variables: readonly ProjectEnvVariableLike[]) => ParsedProjectEnvVariables;
|
|
@@ -34,69 +34,13 @@ export const PROJECT_ENV_STANDARD_KEYS = {
|
|
|
34
34
|
metaConversionsAccessToken: 'META_CONVERSIONS_ACCESS_TOKEN',
|
|
35
35
|
metaTestEventCode: 'META_TEST_EVENT_CODE',
|
|
36
36
|
};
|
|
37
|
-
export const PROJECT_ENV_STANDARD_KEY_ALIASES = {
|
|
38
|
-
funnelSdkPublishableKey: [
|
|
39
|
-
PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey,
|
|
40
|
-
'NEXT_PUBLIC_FUNNEL_SDK_PUBLISHABLE_KEY',
|
|
41
|
-
],
|
|
42
|
-
funnelId: [PROJECT_ENV_STANDARD_KEYS.funnelId],
|
|
43
|
-
funnelVersionId: [PROJECT_ENV_STANDARD_KEYS.funnelVersionId],
|
|
44
|
-
projectId: [PROJECT_ENV_STANDARD_KEYS.projectId],
|
|
45
|
-
posthogProjectApiKey: [PROJECT_ENV_STANDARD_KEYS.posthogProjectApiKey],
|
|
46
|
-
stripeEnabled: [PROJECT_ENV_STANDARD_KEYS.stripeEnabled],
|
|
47
|
-
stripeActiveMode: [PROJECT_ENV_STANDARD_KEYS.stripeActiveMode, 'STRIPE_ACTIVE_MODE'],
|
|
48
|
-
stripeTestPublishableKey: [PROJECT_ENV_STANDARD_KEYS.stripeTestPublishableKey, 'STRIPE_TEST_PUBLISHABLE_KEY'],
|
|
49
|
-
stripeTestSecretKey: [PROJECT_ENV_STANDARD_KEYS.stripeTestSecretKey],
|
|
50
|
-
stripeTestWebhookSecret: [PROJECT_ENV_STANDARD_KEYS.stripeTestWebhookSecret],
|
|
51
|
-
stripeLivePublishableKey: [PROJECT_ENV_STANDARD_KEYS.stripeLivePublishableKey, 'STRIPE_LIVE_PUBLISHABLE_KEY'],
|
|
52
|
-
stripeLiveSecretKey: [PROJECT_ENV_STANDARD_KEYS.stripeLiveSecretKey],
|
|
53
|
-
stripeLiveWebhookSecret: [PROJECT_ENV_STANDARD_KEYS.stripeLiveWebhookSecret],
|
|
54
|
-
funnelIosDeepLink: [PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink, 'APPSTORE_DEEPLINK_URL'],
|
|
55
|
-
funnelAndroidPlayStoreUrl: [PROJECT_ENV_STANDARD_KEYS.funnelAndroidPlayStoreUrl, 'GOOGLE_PLAY_URL'],
|
|
56
|
-
funnelUniversalLink: [PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink, 'WEB_LANDING_URL'],
|
|
57
|
-
funnelAppStoreId: [PROJECT_ENV_STANDARD_KEYS.funnelAppStoreId],
|
|
58
|
-
funnelGoogleStoreId: [PROJECT_ENV_STANDARD_KEYS.funnelGoogleStoreId],
|
|
59
|
-
funnelTimezone: [PROJECT_ENV_STANDARD_KEYS.funnelTimezone],
|
|
60
|
-
funnelFaviconUrl: [PROJECT_ENV_STANDARD_KEYS.funnelFaviconUrl],
|
|
61
|
-
funnelPageTitle: [PROJECT_ENV_STANDARD_KEYS.funnelPageTitle],
|
|
62
|
-
funnelPageDescription: [PROJECT_ENV_STANDARD_KEYS.funnelPageDescription],
|
|
63
|
-
funnelPagePreviewImageUrl: [PROJECT_ENV_STANDARD_KEYS.funnelPagePreviewImageUrl],
|
|
64
|
-
funnelCompanyName: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyName],
|
|
65
|
-
funnelCompanyAddress: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyAddress],
|
|
66
|
-
funnelCompanyCountry: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyCountry],
|
|
67
|
-
funnelPrivacyUrl: [PROJECT_ENV_STANDARD_KEYS.funnelPrivacyUrl],
|
|
68
|
-
funnelTermsUrl: [PROJECT_ENV_STANDARD_KEYS.funnelTermsUrl],
|
|
69
|
-
funnelCustomDomain: [PROJECT_ENV_STANDARD_KEYS.funnelCustomDomain],
|
|
70
|
-
funnelSupportEmail: [PROJECT_ENV_STANDARD_KEYS.funnelSupportEmail, 'FUNNEL_SUPPORT_EMAIL'],
|
|
71
|
-
metaPixelEnabled: [PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled, 'META_PIXEL_ENABLED'],
|
|
72
|
-
metaPixelId: [PROJECT_ENV_STANDARD_KEYS.metaPixelId, 'META_PIXEL_ID'],
|
|
73
|
-
metaConversionsAccessToken: [PROJECT_ENV_STANDARD_KEYS.metaConversionsAccessToken],
|
|
74
|
-
metaTestEventCode: [PROJECT_ENV_STANDARD_KEYS.metaTestEventCode],
|
|
75
|
-
};
|
|
76
|
-
const LEGACY_TO_CANONICAL_KEY = new Map([
|
|
77
|
-
['NEXT_PUBLIC_FUNNEL_SDK_PUBLISHABLE_KEY', PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey],
|
|
78
|
-
['STRIPE_ACTIVE_MODE', PROJECT_ENV_STANDARD_KEYS.stripeActiveMode],
|
|
79
|
-
['STRIPE_TEST_PUBLISHABLE_KEY', PROJECT_ENV_STANDARD_KEYS.stripeTestPublishableKey],
|
|
80
|
-
['STRIPE_LIVE_PUBLISHABLE_KEY', PROJECT_ENV_STANDARD_KEYS.stripeLivePublishableKey],
|
|
81
|
-
['APPSTORE_DEEPLINK_URL', PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink],
|
|
82
|
-
['GOOGLE_PLAY_URL', PROJECT_ENV_STANDARD_KEYS.funnelAndroidPlayStoreUrl],
|
|
83
|
-
['WEB_LANDING_URL', PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink],
|
|
84
|
-
['FUNNEL_SUPPORT_EMAIL', PROJECT_ENV_STANDARD_KEYS.funnelSupportEmail],
|
|
85
|
-
['META_PIXEL_ENABLED', PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled],
|
|
86
|
-
['META_PIXEL_ID', PROJECT_ENV_STANDARD_KEYS.metaPixelId],
|
|
87
|
-
['NEXT_PUBLIC_PROJECT_ID', PROJECT_ENV_STANDARD_KEYS.projectId],
|
|
88
|
-
['NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY', PROJECT_ENV_STANDARD_KEYS.posthogProjectApiKey],
|
|
89
|
-
]);
|
|
90
|
-
export const canonicalizeProjectEnvKey = (key) => {
|
|
91
|
-
return LEGACY_TO_CANONICAL_KEY.get(key) || key;
|
|
92
|
-
};
|
|
93
37
|
export const normalizeProjectEnvValue = (value) => {
|
|
94
38
|
return (value === null || value === void 0 ? void 0 : value.trim()) || '';
|
|
95
39
|
};
|
|
96
40
|
export const buildProjectEnvMap = (variables) => {
|
|
97
41
|
const envMap = new Map();
|
|
98
42
|
for (const variable of variables) {
|
|
99
|
-
const key =
|
|
43
|
+
const key = variable.key.trim();
|
|
100
44
|
if (!key) {
|
|
101
45
|
continue;
|
|
102
46
|
}
|
|
@@ -108,57 +52,54 @@ export const buildProjectEnvMap = (variables) => {
|
|
|
108
52
|
}
|
|
109
53
|
return envMap;
|
|
110
54
|
};
|
|
111
|
-
export const getProjectEnvValue = (envMap,
|
|
55
|
+
export const getProjectEnvValue = (envMap, key, options) => {
|
|
112
56
|
const requireNonEmpty = Boolean(options === null || options === void 0 ? void 0 : options.requireNonEmpty);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
return value;
|
|
57
|
+
const normalizedKey = key.trim();
|
|
58
|
+
if (!normalizedKey || !envMap.has(normalizedKey)) {
|
|
59
|
+
return '';
|
|
60
|
+
}
|
|
61
|
+
const value = normalizeProjectEnvValue(envMap.get(normalizedKey));
|
|
62
|
+
if (requireNonEmpty && !value) {
|
|
63
|
+
return '';
|
|
123
64
|
}
|
|
124
|
-
return
|
|
65
|
+
return value;
|
|
125
66
|
};
|
|
126
67
|
const buildProjectStandardValues = (envMap) => {
|
|
127
68
|
return {
|
|
128
|
-
funnelSdkPublishableKey: getProjectEnvValue(envMap,
|
|
129
|
-
funnelId: getProjectEnvValue(envMap,
|
|
130
|
-
funnelVersionId: getProjectEnvValue(envMap,
|
|
131
|
-
projectId: getProjectEnvValue(envMap,
|
|
132
|
-
posthogProjectApiKey: getProjectEnvValue(envMap,
|
|
133
|
-
stripeEnabled: getProjectEnvValue(envMap,
|
|
134
|
-
stripeActiveMode: getProjectEnvValue(envMap,
|
|
135
|
-
stripeTestPublishableKey: getProjectEnvValue(envMap,
|
|
136
|
-
stripeTestSecretKey: getProjectEnvValue(envMap,
|
|
137
|
-
stripeTestWebhookSecret: getProjectEnvValue(envMap,
|
|
138
|
-
stripeLivePublishableKey: getProjectEnvValue(envMap,
|
|
139
|
-
stripeLiveSecretKey: getProjectEnvValue(envMap,
|
|
140
|
-
stripeLiveWebhookSecret: getProjectEnvValue(envMap,
|
|
141
|
-
funnelIosDeepLink: getProjectEnvValue(envMap,
|
|
142
|
-
funnelAndroidPlayStoreUrl: getProjectEnvValue(envMap,
|
|
143
|
-
funnelUniversalLink: getProjectEnvValue(envMap,
|
|
144
|
-
funnelAppStoreId: getProjectEnvValue(envMap,
|
|
145
|
-
funnelGoogleStoreId: getProjectEnvValue(envMap,
|
|
146
|
-
funnelTimezone: getProjectEnvValue(envMap,
|
|
147
|
-
funnelFaviconUrl: getProjectEnvValue(envMap,
|
|
148
|
-
funnelPageTitle: getProjectEnvValue(envMap,
|
|
149
|
-
funnelPageDescription: getProjectEnvValue(envMap,
|
|
150
|
-
funnelPagePreviewImageUrl: getProjectEnvValue(envMap,
|
|
151
|
-
funnelCompanyName: getProjectEnvValue(envMap,
|
|
152
|
-
funnelCompanyAddress: getProjectEnvValue(envMap,
|
|
153
|
-
funnelCompanyCountry: getProjectEnvValue(envMap,
|
|
154
|
-
funnelPrivacyUrl: getProjectEnvValue(envMap,
|
|
155
|
-
funnelTermsUrl: getProjectEnvValue(envMap,
|
|
156
|
-
funnelCustomDomain: getProjectEnvValue(envMap,
|
|
157
|
-
funnelSupportEmail: getProjectEnvValue(envMap,
|
|
158
|
-
metaPixelEnabled: getProjectEnvValue(envMap,
|
|
159
|
-
metaPixelId: getProjectEnvValue(envMap,
|
|
160
|
-
metaConversionsAccessToken: getProjectEnvValue(envMap,
|
|
161
|
-
metaTestEventCode: getProjectEnvValue(envMap,
|
|
69
|
+
funnelSdkPublishableKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey),
|
|
70
|
+
funnelId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelId),
|
|
71
|
+
funnelVersionId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelVersionId),
|
|
72
|
+
projectId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.projectId),
|
|
73
|
+
posthogProjectApiKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.posthogProjectApiKey),
|
|
74
|
+
stripeEnabled: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeEnabled),
|
|
75
|
+
stripeActiveMode: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeActiveMode),
|
|
76
|
+
stripeTestPublishableKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeTestPublishableKey),
|
|
77
|
+
stripeTestSecretKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeTestSecretKey),
|
|
78
|
+
stripeTestWebhookSecret: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeTestWebhookSecret),
|
|
79
|
+
stripeLivePublishableKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeLivePublishableKey),
|
|
80
|
+
stripeLiveSecretKey: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeLiveSecretKey),
|
|
81
|
+
stripeLiveWebhookSecret: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.stripeLiveWebhookSecret),
|
|
82
|
+
funnelIosDeepLink: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink),
|
|
83
|
+
funnelAndroidPlayStoreUrl: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelAndroidPlayStoreUrl),
|
|
84
|
+
funnelUniversalLink: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink),
|
|
85
|
+
funnelAppStoreId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelAppStoreId),
|
|
86
|
+
funnelGoogleStoreId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelGoogleStoreId),
|
|
87
|
+
funnelTimezone: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelTimezone),
|
|
88
|
+
funnelFaviconUrl: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelFaviconUrl),
|
|
89
|
+
funnelPageTitle: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelPageTitle),
|
|
90
|
+
funnelPageDescription: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelPageDescription),
|
|
91
|
+
funnelPagePreviewImageUrl: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelPagePreviewImageUrl),
|
|
92
|
+
funnelCompanyName: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelCompanyName),
|
|
93
|
+
funnelCompanyAddress: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelCompanyAddress),
|
|
94
|
+
funnelCompanyCountry: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelCompanyCountry),
|
|
95
|
+
funnelPrivacyUrl: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelPrivacyUrl),
|
|
96
|
+
funnelTermsUrl: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelTermsUrl),
|
|
97
|
+
funnelCustomDomain: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelCustomDomain),
|
|
98
|
+
funnelSupportEmail: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.funnelSupportEmail),
|
|
99
|
+
metaPixelEnabled: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled),
|
|
100
|
+
metaPixelId: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.metaPixelId),
|
|
101
|
+
metaConversionsAccessToken: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.metaConversionsAccessToken),
|
|
102
|
+
metaTestEventCode: getProjectEnvValue(envMap, PROJECT_ENV_STANDARD_KEYS.metaTestEventCode),
|
|
162
103
|
};
|
|
163
104
|
};
|
|
164
105
|
export const parseProjectEnvVariables = (variables) => {
|
|
@@ -171,7 +112,7 @@ export const parseProjectEnvVariables = (variables) => {
|
|
|
171
112
|
export const normalizeProjectEnvVariables = (variables) => {
|
|
172
113
|
const deduped = new Map();
|
|
173
114
|
for (const variable of variables) {
|
|
174
|
-
const key =
|
|
115
|
+
const key = variable.key.trim();
|
|
175
116
|
if (!key) {
|
|
176
117
|
continue;
|
|
177
118
|
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { isDevelopmentRuntime, readRuntimeEnv } from '../config/env.config.js';
|
|
2
2
|
export { isDevelopmentRuntime, readRuntimeEnv };
|
|
3
3
|
export declare const RUNTIME_PUBLIC_ENV_KEYS: {
|
|
4
|
-
readonly apiBaseUrl:
|
|
5
|
-
readonly funnelSdkPublishableKey:
|
|
6
|
-
readonly funnelId:
|
|
7
|
-
readonly funnelVersionId:
|
|
8
|
-
readonly projectId:
|
|
9
|
-
readonly posthogProjectApiKey:
|
|
10
|
-
readonly supportEmail:
|
|
11
|
-
readonly iosAppStoreUrl:
|
|
12
|
-
readonly androidPlayStoreUrl:
|
|
13
|
-
readonly appStoreId:
|
|
14
|
-
readonly googleStoreId:
|
|
15
|
-
readonly timezone:
|
|
16
|
-
readonly faviconUrl:
|
|
17
|
-
readonly pageTitle:
|
|
18
|
-
readonly pageDescription:
|
|
19
|
-
readonly pagePreviewImageUrl:
|
|
20
|
-
readonly companyName:
|
|
21
|
-
readonly companyAddress:
|
|
22
|
-
readonly companyCountry:
|
|
23
|
-
readonly privacyUrl:
|
|
24
|
-
readonly termsUrl:
|
|
25
|
-
readonly universalLink:
|
|
26
|
-
readonly iosDeepLink:
|
|
27
|
-
readonly androidDeepLink:
|
|
28
|
-
readonly qrTarget:
|
|
4
|
+
readonly apiBaseUrl: "NEXT_PUBLIC_APP_DEALS_API_BASE_URL";
|
|
5
|
+
readonly funnelSdkPublishableKey: "NEXT_PUBLIC_FUNNEL_PUBLISHABLE_KEY";
|
|
6
|
+
readonly funnelId: "NEXT_PUBLIC_FUNNEL_ID";
|
|
7
|
+
readonly funnelVersionId: "NEXT_PUBLIC_FUNNEL_VERSION_ID";
|
|
8
|
+
readonly projectId: "NEXT_PUBLIC_PROJECT_ID";
|
|
9
|
+
readonly posthogProjectApiKey: "NEXT_PUBLIC_POSTHOG_PROJECT_API_KEY";
|
|
10
|
+
readonly supportEmail: "NEXT_PUBLIC_FUNNEL_SUPPORT_EMAIL";
|
|
11
|
+
readonly iosAppStoreUrl: "NEXT_PUBLIC_IOS_APP_STORE_URL";
|
|
12
|
+
readonly androidPlayStoreUrl: "NEXT_PUBLIC_ANDROID_PLAY_STORE_URL";
|
|
13
|
+
readonly appStoreId: "NEXT_PUBLIC_FUNNEL_APP_STORE_ID";
|
|
14
|
+
readonly googleStoreId: "NEXT_PUBLIC_FUNNEL_GOOGLE_STORE_ID";
|
|
15
|
+
readonly timezone: "NEXT_PUBLIC_FUNNEL_TIMEZONE";
|
|
16
|
+
readonly faviconUrl: "NEXT_PUBLIC_FUNNEL_FAVICON_URL";
|
|
17
|
+
readonly pageTitle: "NEXT_PUBLIC_FUNNEL_PAGE_TITLE";
|
|
18
|
+
readonly pageDescription: "NEXT_PUBLIC_FUNNEL_PAGE_DESCRIPTION";
|
|
19
|
+
readonly pagePreviewImageUrl: "NEXT_PUBLIC_FUNNEL_PAGE_PREVIEW_IMAGE_URL";
|
|
20
|
+
readonly companyName: "NEXT_PUBLIC_FUNNEL_COMPANY_NAME";
|
|
21
|
+
readonly companyAddress: "NEXT_PUBLIC_FUNNEL_COMPANY_ADDRESS";
|
|
22
|
+
readonly companyCountry: "NEXT_PUBLIC_FUNNEL_COMPANY_COUNTRY";
|
|
23
|
+
readonly privacyUrl: "NEXT_PUBLIC_FUNNEL_PRIVACY_URL";
|
|
24
|
+
readonly termsUrl: "NEXT_PUBLIC_FUNNEL_TERMS_URL";
|
|
25
|
+
readonly universalLink: "NEXT_PUBLIC_FUNNEL_UNIVERSAL_LINK";
|
|
26
|
+
readonly iosDeepLink: "NEXT_PUBLIC_FUNNEL_IOS_DEEP_LINK";
|
|
27
|
+
readonly androidDeepLink: "NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK";
|
|
28
|
+
readonly qrTarget: "NEXT_PUBLIC_FUNNEL_QR_TARGET";
|
|
29
29
|
};
|
|
30
30
|
export type RuntimePublicConfig = {
|
|
31
31
|
apiBaseUrl: string;
|
|
@@ -61,9 +61,6 @@ export declare const RUNTIME_PUBLIC_DEFAULTS: {
|
|
|
61
61
|
readonly supportEmail: "support@example.com";
|
|
62
62
|
readonly timezone: "UTC";
|
|
63
63
|
};
|
|
64
|
-
export declare const RUNTIME_PREVIEW_PAYMENT_DEFAULTS: {
|
|
65
|
-
readonly funnelSdkPublishableKey: "pk_test_51SopXWPEfkEVo5kh6foOs9zVyKsVSKLhlQw8YsAfMMymRlGH3Qp8U5I7j5bHivmOB232oJiQZi8cEv1wkmV80QGg00vPcI1DZI";
|
|
66
|
-
};
|
|
67
64
|
export type RuntimeStaticExportEnv = Record<string, string | undefined>;
|
|
68
65
|
export declare const resolveNextStaticExportRuntimeEnv: (env: RuntimeStaticExportEnv) => Record<string, string>;
|
|
69
66
|
export declare const isSeedFunnelSdkPublishableKey: (value: string | null | undefined) => boolean;
|
|
@@ -5,7 +5,6 @@ const DEFAULT_API_BASE_URL = 'https://sdk-api.funnelsgrove.com';
|
|
|
5
5
|
const DEFAULT_FUNNEL_SDK_PUBLISHABLE_KEY = 'pk_test_app_deals_seed_public';
|
|
6
6
|
const DEFAULT_SUPPORT_EMAIL = 'support@example.com';
|
|
7
7
|
const DEFAULT_TIMEZONE = 'UTC';
|
|
8
|
-
const DEFAULT_PREVIEW_PAYMENT_PUBLISHABLE_KEY = 'pk_test_51SopXWPEfkEVo5kh6foOs9zVyKsVSKLhlQw8YsAfMMymRlGH3Qp8U5I7j5bHivmOB232oJiQZi8cEv1wkmV80QGg00vPcI1DZI';
|
|
9
8
|
const trimTrailingSlash = (value) => {
|
|
10
9
|
return value.replace(/\/+$/, '');
|
|
11
10
|
};
|
|
@@ -87,74 +86,38 @@ export const RUNTIME_PUBLIC_DEFAULTS = {
|
|
|
87
86
|
supportEmail: DEFAULT_SUPPORT_EMAIL,
|
|
88
87
|
timezone: DEFAULT_TIMEZONE,
|
|
89
88
|
};
|
|
90
|
-
export const RUNTIME_PREVIEW_PAYMENT_DEFAULTS = {
|
|
91
|
-
funnelSdkPublishableKey: DEFAULT_PREVIEW_PAYMENT_PUBLISHABLE_KEY,
|
|
92
|
-
};
|
|
93
89
|
const NEXT_STATIC_EXPORT_RUNTIME_PUBLIC_KEYS = [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
{
|
|
122
|
-
outputKey: PROJECT_ENV_STANDARD_KEYS.funnelPagePreviewImageUrl,
|
|
123
|
-
inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelPagePreviewImageUrl],
|
|
124
|
-
},
|
|
125
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.funnelCompanyName, inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyName] },
|
|
126
|
-
{
|
|
127
|
-
outputKey: PROJECT_ENV_STANDARD_KEYS.funnelCompanyAddress,
|
|
128
|
-
inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyAddress],
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
outputKey: PROJECT_ENV_STANDARD_KEYS.funnelCompanyCountry,
|
|
132
|
-
inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelCompanyCountry],
|
|
133
|
-
},
|
|
134
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.funnelPrivacyUrl, inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelPrivacyUrl] },
|
|
135
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.funnelTermsUrl, inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelTermsUrl] },
|
|
136
|
-
{
|
|
137
|
-
outputKey: PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink,
|
|
138
|
-
inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink],
|
|
139
|
-
},
|
|
140
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink, inputKeys: [PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink] },
|
|
141
|
-
{
|
|
142
|
-
outputKey: 'NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK',
|
|
143
|
-
inputKeys: ['NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK'],
|
|
144
|
-
},
|
|
145
|
-
{ outputKey: 'NEXT_PUBLIC_FUNNEL_QR_TARGET', inputKeys: ['NEXT_PUBLIC_FUNNEL_QR_TARGET'] },
|
|
146
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled, inputKeys: [PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled] },
|
|
147
|
-
{ outputKey: PROJECT_ENV_STANDARD_KEYS.metaPixelId, inputKeys: [PROJECT_ENV_STANDARD_KEYS.metaPixelId] },
|
|
90
|
+
'NEXT_PUBLIC_APP_DEALS_API_BASE_URL',
|
|
91
|
+
PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey,
|
|
92
|
+
PROJECT_ENV_STANDARD_KEYS.funnelId,
|
|
93
|
+
PROJECT_ENV_STANDARD_KEYS.funnelVersionId,
|
|
94
|
+
PROJECT_ENV_STANDARD_KEYS.projectId,
|
|
95
|
+
PROJECT_ENV_STANDARD_KEYS.posthogProjectApiKey,
|
|
96
|
+
PROJECT_ENV_STANDARD_KEYS.funnelSupportEmail,
|
|
97
|
+
'NEXT_PUBLIC_IOS_APP_STORE_URL',
|
|
98
|
+
PROJECT_ENV_STANDARD_KEYS.funnelAndroidPlayStoreUrl,
|
|
99
|
+
PROJECT_ENV_STANDARD_KEYS.funnelAppStoreId,
|
|
100
|
+
PROJECT_ENV_STANDARD_KEYS.funnelGoogleStoreId,
|
|
101
|
+
PROJECT_ENV_STANDARD_KEYS.funnelTimezone,
|
|
102
|
+
PROJECT_ENV_STANDARD_KEYS.funnelFaviconUrl,
|
|
103
|
+
PROJECT_ENV_STANDARD_KEYS.funnelPageTitle,
|
|
104
|
+
PROJECT_ENV_STANDARD_KEYS.funnelPageDescription,
|
|
105
|
+
PROJECT_ENV_STANDARD_KEYS.funnelPagePreviewImageUrl,
|
|
106
|
+
PROJECT_ENV_STANDARD_KEYS.funnelCompanyName,
|
|
107
|
+
PROJECT_ENV_STANDARD_KEYS.funnelCompanyAddress,
|
|
108
|
+
PROJECT_ENV_STANDARD_KEYS.funnelCompanyCountry,
|
|
109
|
+
PROJECT_ENV_STANDARD_KEYS.funnelPrivacyUrl,
|
|
110
|
+
PROJECT_ENV_STANDARD_KEYS.funnelTermsUrl,
|
|
111
|
+
PROJECT_ENV_STANDARD_KEYS.funnelUniversalLink,
|
|
112
|
+
PROJECT_ENV_STANDARD_KEYS.funnelIosDeepLink,
|
|
113
|
+
'NEXT_PUBLIC_FUNNEL_ANDROID_DEEP_LINK',
|
|
114
|
+
'NEXT_PUBLIC_FUNNEL_QR_TARGET',
|
|
115
|
+
PROJECT_ENV_STANDARD_KEYS.metaPixelEnabled,
|
|
116
|
+
PROJECT_ENV_STANDARD_KEYS.metaPixelId,
|
|
148
117
|
];
|
|
149
|
-
const readNonEmptyStaticExportEnv = (env,
|
|
118
|
+
const readNonEmptyStaticExportEnv = (env, key) => {
|
|
150
119
|
var _a;
|
|
151
|
-
|
|
152
|
-
const value = ((_a = env[key]) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
153
|
-
if (value) {
|
|
154
|
-
return value;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
120
|
+
return ((_a = env[key]) === null || _a === void 0 ? void 0 : _a.trim()) || null;
|
|
158
121
|
};
|
|
159
122
|
export const resolveNextStaticExportRuntimeEnv = (env) => {
|
|
160
123
|
var _a, _b;
|
|
@@ -162,27 +125,26 @@ export const resolveNextStaticExportRuntimeEnv = (env) => {
|
|
|
162
125
|
return {};
|
|
163
126
|
}
|
|
164
127
|
if ((_a = env.NEXT_PUBLIC_PROJECT_ID) === null || _a === void 0 ? void 0 : _a.trim()) {
|
|
165
|
-
return Object.fromEntries(NEXT_STATIC_EXPORT_RUNTIME_PUBLIC_KEYS.flatMap((
|
|
166
|
-
const value = readNonEmptyStaticExportEnv(env,
|
|
167
|
-
return value ? [[
|
|
128
|
+
return Object.fromEntries(NEXT_STATIC_EXPORT_RUNTIME_PUBLIC_KEYS.flatMap((key) => {
|
|
129
|
+
const value = readNonEmptyStaticExportEnv(env, key);
|
|
130
|
+
return value ? [[key, value]] : [];
|
|
168
131
|
}));
|
|
169
132
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
[PROJECT_ENV_STANDARD_KEYS.funnelId]: ((_b = env.NEXT_PUBLIC_RAG_FUNNEL_ID) === null || _b === void 0 ? void 0 : _b.trim()) || '',
|
|
173
|
-
};
|
|
133
|
+
const publishableKey = readNonEmptyStaticExportEnv(env, PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey);
|
|
134
|
+
return Object.assign(Object.assign({}, (publishableKey ? { [PROJECT_ENV_STANDARD_KEYS.funnelSdkPublishableKey]: publishableKey } : {})), { [PROJECT_ENV_STANDARD_KEYS.funnelId]: ((_b = env.NEXT_PUBLIC_RAG_FUNNEL_ID) === null || _b === void 0 ? void 0 : _b.trim()) || '' });
|
|
174
135
|
};
|
|
175
136
|
export const isSeedFunnelSdkPublishableKey = (value) => {
|
|
176
137
|
const normalized = (value === null || value === void 0 ? void 0 : value.trim()) || '';
|
|
177
138
|
return !normalized || normalized === DEFAULT_FUNNEL_SDK_PUBLISHABLE_KEY;
|
|
178
139
|
};
|
|
179
140
|
export const isPreviewPaymentPublishableKey = (value) => {
|
|
180
|
-
|
|
141
|
+
void value;
|
|
142
|
+
return false;
|
|
181
143
|
};
|
|
182
144
|
export const resolvePreviewPaymentPublishableKey = (value) => {
|
|
183
145
|
const normalized = (value === null || value === void 0 ? void 0 : value.trim()) || '';
|
|
184
146
|
if (isSeedFunnelSdkPublishableKey(normalized)) {
|
|
185
|
-
return
|
|
147
|
+
return '';
|
|
186
148
|
}
|
|
187
149
|
return normalized;
|
|
188
150
|
};
|