@driveflux/config 2.1.0-next.1 → 2.1.0-next.2

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/backend.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import { singleton } from '@driveflux/singleton';
2
2
  import { z } from 'zod';
3
- const isAppEnv = (env) => process.env.APP_ENV === env;
4
- const isProd = () => isAppEnv('production');
5
- const requiredStringIfProdValidation = isProd()
6
- ? z.string().min(1)
7
- : z.string().optional();
8
- export const ConfigValidation = z.object({
3
+ var isAppEnv = function(env) {
4
+ return process.env.APP_ENV === env;
5
+ };
6
+ var isProd = function() {
7
+ return isAppEnv('production');
8
+ };
9
+ var requiredStringIfProdValidation = isProd() ? z.string().min(1) : z.string().optional();
10
+ export var ConfigValidation = z.object({
9
11
  appUrl: z.string().url(),
10
12
  appEnv: z.string().optional(),
11
13
  tunnelUrl: z.string().optional(),
@@ -15,21 +17,23 @@ export const ConfigValidation = z.object({
15
17
  isProd: z.boolean(),
16
18
  taxRate: z.number(),
17
19
  serviceRate: z.number(),
18
- baseCurrency: z.enum(['MYR']),
20
+ baseCurrency: z.enum([
21
+ 'MYR'
22
+ ]),
19
23
  dbUrl: z.string(),
20
24
  cse: z.object({
21
25
  login: requiredStringIfProdValidation,
22
26
  password: requiredStringIfProdValidation,
23
- templateId: requiredStringIfProdValidation,
27
+ templateId: requiredStringIfProdValidation
24
28
  }),
25
29
  utilization: z.object({
26
- amountThreshold: z.number().min(0).default(5),
30
+ amountThreshold: z.number().min(0).default(5)
27
31
  }),
28
32
  algolia: z.object({
29
33
  appId: z.string(),
30
34
  adminKey: z.string(),
31
35
  searchKey: z.string(),
32
- knowledgeBaseIndex: z.string(),
36
+ knowledgeBaseIndex: z.string()
33
37
  }),
34
38
  upload: z.object({
35
39
  awsKey: z.string(),
@@ -39,7 +43,7 @@ export const ConfigValidation = z.object({
39
43
  siteBucket: z.string(),
40
44
  region: z.string(),
41
45
  secret: z.string().optional(),
42
- debug: z.boolean().optional(),
46
+ debug: z.boolean().optional()
43
47
  }),
44
48
  stripe: z.object({
45
49
  secretKey: z.string(),
@@ -49,23 +53,21 @@ export const ConfigValidation = z.object({
49
53
  // Both possess different keys
50
54
  webhook: z.object({
51
55
  connectAccountKey: z.string(),
52
- accountKey: z.string(),
53
- }),
56
+ accountKey: z.string()
57
+ })
54
58
  }),
55
- twilio: z
56
- .object({
59
+ twilio: z.object({
57
60
  accountSid: z.string().optional(),
58
61
  authToken: z.string().optional(),
59
- phoneNumber: z.string().optional(),
60
- })
61
- .optional(),
62
+ phoneNumber: z.string().optional()
63
+ }).optional(),
62
64
  vonage: z.object({
63
65
  apiKey: requiredStringIfProdValidation,
64
- apiSecret: requiredStringIfProdValidation,
66
+ apiSecret: requiredStringIfProdValidation
65
67
  }),
66
68
  esms: z.object({
67
69
  apiKey: requiredStringIfProdValidation,
68
- apiSecret: requiredStringIfProdValidation,
70
+ apiSecret: requiredStringIfProdValidation
69
71
  }),
70
72
  slack: z.object({
71
73
  token: requiredStringIfProdValidation,
@@ -82,7 +84,7 @@ export const ConfigValidation = z.object({
82
84
  comingServicesChannelId: requiredStringIfProdValidation,
83
85
  engineeringRequestsChannel: requiredStringIfProdValidation,
84
86
  esmsChannelId: requiredStringIfProdValidation,
85
- excessMileageChannelId: requiredStringIfProdValidation,
87
+ excessMileageChannelId: requiredStringIfProdValidation
86
88
  }),
87
89
  noStaticGenerating: z.boolean(),
88
90
  notion: z.object({
@@ -94,7 +96,7 @@ export const ConfigValidation = z.object({
94
96
  bdDatabaseId: requiredStringIfProdValidation,
95
97
  referralsDatabaseId: requiredStringIfProdValidation,
96
98
  brandsLandingPagesDatabaseId: z.string().min(1),
97
- knowledgeBaseDatabaseId: z.string().min(1),
99
+ knowledgeBaseDatabaseId: z.string().min(1)
98
100
  }),
99
101
  flux: z.object({
100
102
  defaultBillingAddress: z.object({
@@ -104,205 +106,188 @@ export const ConfigValidation = z.object({
104
106
  city: z.string(),
105
107
  state: z.string(),
106
108
  /**
107
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
108
- */
109
- country: z.string(),
110
- postalCode: z.string(),
111
- }),
109
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
110
+ */ country: z.string(),
111
+ postalCode: z.string()
112
+ })
112
113
  }),
113
114
  html2pdfKey: z.string(),
114
115
  cmsPreviewSecret: requiredStringIfProdValidation,
115
116
  search: z.object({
116
- noIdOptimization: z.boolean(),
117
+ noIdOptimization: z.boolean()
117
118
  }),
118
119
  auth: z.object({
119
120
  secureCookies: z.boolean(),
120
121
  authSecret: z.string(),
121
122
  jwtSecret: z.string(),
122
- google: z
123
- .object({
123
+ google: z.object({
124
124
  clientId: z.string(),
125
- clientSecret: z.string(),
126
- })
127
- .optional(),
128
- facebook: z
129
- .object({
125
+ clientSecret: z.string()
126
+ }).optional(),
127
+ facebook: z.object({
130
128
  clientId: z.string(),
131
- clientSecret: z.string(),
132
- })
133
- .optional(),
134
- apple: z
135
- .object({
129
+ clientSecret: z.string()
130
+ }).optional(),
131
+ apple: z.object({
136
132
  clientId: z.string(),
137
- clientSecret: z.string(),
138
- })
139
- .optional(),
140
- email: z
141
- .object({
133
+ clientSecret: z.string()
134
+ }).optional(),
135
+ email: z.object({
142
136
  server: z.string(),
143
- from: z.string(),
144
- })
145
- .optional(),
137
+ from: z.string()
138
+ }).optional()
146
139
  }),
147
140
  kv: z.object({
148
141
  url: z.string(),
149
142
  token: z.string(),
150
- apiUrl: z.string(),
143
+ apiUrl: z.string()
151
144
  }),
152
145
  sendSMSOutsideOfProd: z.boolean().optional(),
153
- vercel: z
154
- .object({
155
- cronSecret: z.string().optional(),
156
- })
157
- .optional(),
146
+ vercel: z.object({
147
+ cronSecret: z.string().optional()
148
+ }).optional()
158
149
  });
159
- const getConfig = () => ({
160
- appUrl: process.env.APP_URL,
161
- appEnv: process.env.APP_ENV,
162
- apiVersion: process.env.API_VERSION,
163
- tunnelUrl: process.env.TUNNEL_URL,
164
- prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
165
- apiUrl: process.env.API_URL ||
166
- (process.env.APP_URL ? `${process.env.APP_URL}/api` : undefined),
167
- reservationFee: 49,
168
- isProd: isProd(),
169
- taxRate: 0.08,
170
- serviceRate: 0.1,
171
- // TODO
172
- // @ts-expect-error zod will valide away the wrong values
173
- baseCurrency: process.env.BASE_CURRENCY || 'MYR',
174
- dbUrl: process.env.DATABASE_URL,
175
- cse: {
176
- login: process.env.CSE_LOGIN,
177
- password: process.env.CSE_PASSWORD,
178
- templateId: process.env.CSE_TEMPLATE_ID,
179
- },
180
- upload: {
181
- awsKey: process.env.AWS_KEY,
182
- awsSecret: process.env.AWS_SECRET,
183
- usersBucket: process.env.USER_UPLOADS_BUCKET,
184
- adminBucket: process.env.ADMIN_DOCS_BUCKET,
185
- siteBucket: process.env.SITE_BUCKET,
186
- region: process.env.STORAGE_REGION,
187
- secret: process.env.COMPANION_SECRET,
188
- debug: process.env.COMPANION_DEBUG === 'true',
189
- },
190
- stripe: {
191
- secretKey: process.env.STRIPE_SECRET_KEY,
192
- apiVersion: '2020-08-27',
193
- webhook: {
194
- connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
195
- accountKey: process.env.STRIPE_WEBHOOK_SECRET,
150
+ var getConfig = function() {
151
+ return {
152
+ appUrl: process.env.APP_URL,
153
+ appEnv: process.env.APP_ENV,
154
+ apiVersion: process.env.API_VERSION,
155
+ tunnelUrl: process.env.TUNNEL_URL,
156
+ prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
157
+ apiUrl: process.env.API_URL || (process.env.APP_URL ? "".concat(process.env.APP_URL, "/api") : undefined),
158
+ reservationFee: 49,
159
+ isProd: isProd(),
160
+ taxRate: 0.08,
161
+ serviceRate: 0.1,
162
+ // TODO
163
+ // @ts-expect-error zod will valide away the wrong values
164
+ baseCurrency: process.env.BASE_CURRENCY || 'MYR',
165
+ dbUrl: process.env.DATABASE_URL,
166
+ cse: {
167
+ login: process.env.CSE_LOGIN,
168
+ password: process.env.CSE_PASSWORD,
169
+ templateId: process.env.CSE_TEMPLATE_ID
170
+ },
171
+ upload: {
172
+ awsKey: process.env.AWS_KEY,
173
+ awsSecret: process.env.AWS_SECRET,
174
+ usersBucket: process.env.USER_UPLOADS_BUCKET,
175
+ adminBucket: process.env.ADMIN_DOCS_BUCKET,
176
+ siteBucket: process.env.SITE_BUCKET,
177
+ region: process.env.STORAGE_REGION,
178
+ secret: process.env.COMPANION_SECRET,
179
+ debug: process.env.COMPANION_DEBUG === 'true'
196
180
  },
197
- },
198
- twilio: {
199
- accountSid: process.env.TWILIO_ACCOUNT_SID,
200
- authToken: process.env.TWILIO_AUTH_TOKEN,
201
- phoneNumber: process.env.TWILIO_PHONE_NUMBER,
202
- },
203
- vonage: {
204
- apiKey: process.env.VONAGE_API_KEY,
205
- apiSecret: process.env.VONAGE_API_SECRET,
206
- },
207
- esms: {
208
- apiKey: process.env.ESMS_API_KEY,
209
- apiSecret: process.env.ESMS_API_SECRET,
210
- },
211
- redisUrl: process.env.REDIS_URL,
212
- slack: {
213
- token: process.env.SLACK_TOKEN,
214
- signingSecret: process.env.SLACK_SIGNING_SECRET,
215
- defaultChannelId: process.env.SLACK_DEFAULT_CHANNEL_ID,
216
- reservationsChannelId: process.env.SLACK_RESERVATIONS_CHANNEL_ID,
217
- fbcChannel: process.env.SLACK_FBC_CHANNEL_ID,
218
- bdChannel: process.env.SLACK_BD_CHANNEL_ID,
219
- mainFluxChannel: process.env.SLACK_MAIN_FLUX_CHANNEL_ID,
220
- invoiceFailuresChannelId: process.env.SLACK_INVOICE_FAILURES_CHANNEL_ID,
221
- inquiriesChannelId: process.env.SLACK_INQUIRIES_CHANNEL_ID,
222
- sstChannelId: process.env.SLACK_SALES_AND_SST_CHANNEL_ID,
223
- issuesChannelId: process.env.SLACK_ISSUES_CHANNEL_ID,
224
- comingServicesChannelId: process.env.SLACK_COMING_SERVICES_CHANNEL_ID,
225
- engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL_ID,
226
- esmsChannelId: process.env.SLACK_ESMS_CHANNEL_ID,
227
- excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID,
228
- },
229
- noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
230
- notion: {
231
- secret: process.env.NOTION_SECRET,
232
- /**
233
- * No need to use env variables for the following
234
- */
235
- requestDatabaseId: process.env.NOTION_REQUESTS_DATABASE_ID,
236
- reviewsDatabaseId: process.env.NOTION_REVIEW_DATABASE_ID,
237
- fbcDatabaseId: process.env.NOTION_FBC_DATABASE_ID,
238
- fluxstersDatabaseId: process.env.NOTION_FLUXSTERS_DATABASE_ID,
239
- bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
240
- referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
241
- brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
242
- knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID,
243
- },
244
- algolia: {
245
- appId: process.env.ALGOLIA_APP_ID,
246
- adminKey: process.env.ALGOLIA_ADMIN_KEY,
247
- searchKey: process.env.ALGOLIA_SEARCH_KEY,
248
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX,
249
- },
250
- flux: {
251
- defaultBillingAddress: {
252
- name: 'Flux Sdn. Bhd.',
253
- street1: '15-2 Jalan Solaris',
254
- street2: 'Solaris Mont Kiara',
255
- city: 'Kuala Lumpur',
256
- state: 'Kuala Lumpur',
181
+ stripe: {
182
+ secretKey: process.env.STRIPE_SECRET_KEY,
183
+ apiVersion: '2020-08-27',
184
+ webhook: {
185
+ connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
186
+ accountKey: process.env.STRIPE_WEBHOOK_SECRET
187
+ }
188
+ },
189
+ twilio: {
190
+ accountSid: process.env.TWILIO_ACCOUNT_SID,
191
+ authToken: process.env.TWILIO_AUTH_TOKEN,
192
+ phoneNumber: process.env.TWILIO_PHONE_NUMBER
193
+ },
194
+ vonage: {
195
+ apiKey: process.env.VONAGE_API_KEY,
196
+ apiSecret: process.env.VONAGE_API_SECRET
197
+ },
198
+ esms: {
199
+ apiKey: process.env.ESMS_API_KEY,
200
+ apiSecret: process.env.ESMS_API_SECRET
201
+ },
202
+ redisUrl: process.env.REDIS_URL,
203
+ slack: {
204
+ token: process.env.SLACK_TOKEN,
205
+ signingSecret: process.env.SLACK_SIGNING_SECRET,
206
+ defaultChannelId: process.env.SLACK_DEFAULT_CHANNEL_ID,
207
+ reservationsChannelId: process.env.SLACK_RESERVATIONS_CHANNEL_ID,
208
+ fbcChannel: process.env.SLACK_FBC_CHANNEL_ID,
209
+ bdChannel: process.env.SLACK_BD_CHANNEL_ID,
210
+ mainFluxChannel: process.env.SLACK_MAIN_FLUX_CHANNEL_ID,
211
+ invoiceFailuresChannelId: process.env.SLACK_INVOICE_FAILURES_CHANNEL_ID,
212
+ inquiriesChannelId: process.env.SLACK_INQUIRIES_CHANNEL_ID,
213
+ sstChannelId: process.env.SLACK_SALES_AND_SST_CHANNEL_ID,
214
+ issuesChannelId: process.env.SLACK_ISSUES_CHANNEL_ID,
215
+ comingServicesChannelId: process.env.SLACK_COMING_SERVICES_CHANNEL_ID,
216
+ engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL_ID,
217
+ esmsChannelId: process.env.SLACK_ESMS_CHANNEL_ID,
218
+ excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID
219
+ },
220
+ noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
221
+ notion: {
222
+ secret: process.env.NOTION_SECRET,
257
223
  /**
258
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
259
- */
260
- country: 'MY',
261
- postalCode: '50480',
224
+ * No need to use env variables for the following
225
+ */ requestDatabaseId: process.env.NOTION_REQUESTS_DATABASE_ID,
226
+ reviewsDatabaseId: process.env.NOTION_REVIEW_DATABASE_ID,
227
+ fbcDatabaseId: process.env.NOTION_FBC_DATABASE_ID,
228
+ fluxstersDatabaseId: process.env.NOTION_FLUXSTERS_DATABASE_ID,
229
+ bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
230
+ referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
231
+ brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
232
+ knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID
262
233
  },
263
- },
264
- html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
265
- cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
266
- search: {
267
- noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true',
268
- },
269
- auth: {
270
- secureCookies: process.env.SECURE_COOKIES !== 'false',
271
- authSecret: process.env.NEXTAUTH_SECRET,
272
- jwtSecret: process.env.NEXTAUTH_SECRET,
273
- google: {
274
- clientId: process.env.GOOGLE_CLIENT_ID,
275
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
234
+ algolia: {
235
+ appId: process.env.ALGOLIA_APP_ID,
236
+ adminKey: process.env.ALGOLIA_ADMIN_KEY,
237
+ searchKey: process.env.ALGOLIA_SEARCH_KEY,
238
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX
276
239
  },
277
- facebook: {
278
- clientId: process.env.FACEBOOK_CLIENT_ID,
279
- clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
240
+ flux: {
241
+ defaultBillingAddress: {
242
+ name: 'Flux Sdn. Bhd.',
243
+ street1: '15-2 Jalan Solaris',
244
+ street2: 'Solaris Mont Kiara',
245
+ city: 'Kuala Lumpur',
246
+ state: 'Kuala Lumpur',
247
+ /**
248
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
249
+ */ country: 'MY',
250
+ postalCode: '50480'
251
+ }
280
252
  },
281
- apple: {
282
- clientId: process.env.APPLE_ID,
283
- clientSecret: process.env.APPLE_SECRET,
253
+ html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
254
+ cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
255
+ search: {
256
+ noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true'
284
257
  },
285
- // email: {
286
- // server: process.env.EMAIL_SERVER! || composeMailServer(),
287
- // from: process.env.AUTH_EMAIL_FROM || process.env.FROM_MAIL!,
288
- // }
289
- },
290
- sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
291
- vercel: {
292
- cronSecret: process.env.CRON_SECRET,
293
- },
294
- kv: {
295
- url: process.env.KV_URL,
296
- token: process.env.KV_REST_API_TOKEN,
297
- apiUrl: process.env.KV_REST_API_URL,
298
- },
299
- });
300
- export const resetConfig = () => {
258
+ auth: {
259
+ secureCookies: process.env.SECURE_COOKIES !== 'false',
260
+ authSecret: process.env.NEXTAUTH_SECRET,
261
+ jwtSecret: process.env.NEXTAUTH_SECRET,
262
+ google: {
263
+ clientId: process.env.GOOGLE_CLIENT_ID,
264
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET
265
+ },
266
+ facebook: {
267
+ clientId: process.env.FACEBOOK_CLIENT_ID,
268
+ clientSecret: process.env.FACEBOOK_CLIENT_SECRET
269
+ },
270
+ apple: {
271
+ clientId: process.env.APPLE_ID,
272
+ clientSecret: process.env.APPLE_SECRET
273
+ }
274
+ },
275
+ sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
276
+ vercel: {
277
+ cronSecret: process.env.CRON_SECRET
278
+ },
279
+ kv: {
280
+ url: process.env.KV_URL,
281
+ token: process.env.KV_REST_API_TOKEN,
282
+ apiUrl: process.env.KV_REST_API_URL
283
+ }
284
+ };
285
+ };
286
+ export var resetConfig = function() {
301
287
  config = singleton('backendConfig', getConfig(), true);
302
288
  return config;
303
289
  };
304
- export let config = singleton('backendConfig', getConfig());
305
- export const setConfig = (key, value) => {
290
+ export var config = singleton('backendConfig', getConfig());
291
+ export var setConfig = function(key, value) {
306
292
  config[key] = value;
307
293
  };
308
- //# sourceMappingURL=backend.js.map
package/dist/frontend.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { singleton } from '@driveflux/singleton';
2
2
  import { z } from 'zod';
3
- export const ConfigValidation = z.object({
3
+ export var ConfigValidation = z.object({
4
4
  appUrl: z.url(),
5
5
  apiUrl: z.string(),
6
6
  taxRate: z.number(),
@@ -9,7 +9,7 @@ export const ConfigValidation = z.object({
9
9
  currency: z.string(),
10
10
  stripe: z.object({
11
11
  publishableKey: z.string(),
12
- connectClientId: z.string(),
12
+ connectClientId: z.string()
13
13
  }),
14
14
  gtmCode: z.string().optional(),
15
15
  secureCookies: z.boolean(),
@@ -17,7 +17,7 @@ export const ConfigValidation = z.object({
17
17
  graphCms: z.object({
18
18
  devAuthToken: z.string(),
19
19
  prodAuthToken: z.string(),
20
- projectApi: z.string(),
20
+ projectApi: z.string()
21
21
  }),
22
22
  isProd: z.boolean(),
23
23
  noStaticGenerating: z.boolean(),
@@ -27,40 +27,39 @@ export const ConfigValidation = z.object({
27
27
  vehicleIndexName: z.string(),
28
28
  appId: z.string(),
29
29
  searchKey: z.string(),
30
- knowledgeBaseIndex: z.string(),
30
+ knowledgeBaseIndex: z.string()
31
31
  }),
32
32
  glitchTip: z.object({
33
- dsn: z.string().optional(),
33
+ dsn: z.string().optional()
34
34
  }),
35
35
  postHog: z.object({
36
36
  apiKey: z.string(),
37
- apiHost: z.string().optional(),
38
- }),
37
+ apiHost: z.string().optional()
38
+ })
39
39
  });
40
40
  /**
41
41
  * Do not use this function, use the config object directly
42
- */
43
- const getConfig = () => {
44
- const appUrl = process.env.APP_URL;
45
- const apiUrl = process.env.API_URL || `${appUrl}/api`;
42
+ */ var getConfig = function() {
43
+ var appUrl = process.env.APP_URL;
44
+ var apiUrl = process.env.API_URL || "".concat(appUrl, "/api");
46
45
  return {
47
- appUrl,
48
- apiUrl,
46
+ appUrl: appUrl,
47
+ apiUrl: apiUrl,
49
48
  taxRate: 0.08,
50
49
  serviceRate: 0.1,
51
50
  reservationFee: 49,
52
51
  currency: 'MYR',
53
52
  stripe: {
54
53
  publishableKey: process.env.STRIPE_PUBLISHABLE_KEY,
55
- connectClientId: process.env.STRIPE_CONNECT_CLIENT_ID || '',
54
+ connectClientId: process.env.STRIPE_CONNECT_CLIENT_ID || ''
56
55
  },
57
56
  gtmCode: process.env.GTM_CODE,
58
57
  secureCookies: process.env.SECURE_COOKIES !== 'false',
59
58
  appEnv: process.env.APP_ENV,
60
59
  graphCms: {
61
- devAuthToken: `${process.env.GRAPHCMS_AUTH_TOKEN}`,
62
- prodAuthToken: `${process.env.GRAPHCMS_AUTH_TOKEN}`,
63
- projectApi: `${process.env.GRAPHCMS_PROJECT_API}`,
60
+ devAuthToken: "".concat(process.env.GRAPHCMS_AUTH_TOKEN),
61
+ prodAuthToken: "".concat(process.env.GRAPHCMS_AUTH_TOKEN),
62
+ projectApi: "".concat(process.env.GRAPHCMS_PROJECT_API)
64
63
  },
65
64
  isProd: process.env.APP_ENV === 'production',
66
65
  noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
@@ -70,23 +69,22 @@ const getConfig = () => {
70
69
  vehicleIndexName: process.env.ALGOLIA_VEHICLE_INDEX_NAME || 'vehicles',
71
70
  appId: process.env.ALGOLIA_APP_ID,
72
71
  searchKey: process.env.ALGOLIA_SEARCH_KEY,
73
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX || 'knowledge_base',
72
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX || 'knowledge_base'
74
73
  },
75
74
  glitchTip: {
76
- dsn: process.env.GLITCHTIP_DSN,
75
+ dsn: process.env.GLITCHTIP_DSN
77
76
  },
78
77
  postHog: {
79
78
  apiKey: process.env.NEXT_PUBLIC_POSTHOG_KEY,
80
- apiHost: process.env.NEXT_PUBLIC_POSTHOG_HOST,
81
- },
79
+ apiHost: process.env.NEXT_PUBLIC_POSTHOG_HOST
80
+ }
82
81
  };
83
82
  };
84
- export const resetConfig = () => {
83
+ export var resetConfig = function() {
85
84
  config = singleton('frontendConfig', getConfig(), true);
86
85
  return config;
87
86
  };
88
- export let config = singleton('frontendConfig', getConfig());
89
- export const setConfig = (key, value) => {
87
+ export var config = singleton('frontendConfig', getConfig());
88
+ export var setConfig = function(key, value) {
90
89
  config[key] = value;
91
90
  };
92
- //# sourceMappingURL=frontend.js.map
@@ -1,92 +1,101 @@
1
+ function _type_of(obj) {
2
+ "@swc/helpers - typeof";
3
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
4
+ }
1
5
  /**
2
6
  * Remove React properties from the bundle when explicitly set via DO_NOT_REMOVE_REACT_PROPERTIES
3
7
  * or when the app is in production mode.
4
- */
5
- const reactRemoveProperties = typeof process.env.DO_NOT_REMOVE_REACT_PROPERTIES === 'string' &&
6
- typeof process.env.DO_NOT_REMOVE_REACT_PROPERTIES
7
- ? process.env.DO_NOT_REMOVE_REACT_PROPERTIES.toLowerCase() === 'true'
8
- : process.env.APP_ENV === 'production';
9
- export const baseNextConfig = {
8
+ */ var reactRemoveProperties = typeof process.env.DO_NOT_REMOVE_REACT_PROPERTIES === 'string' && _type_of(process.env.DO_NOT_REMOVE_REACT_PROPERTIES) ? process.env.DO_NOT_REMOVE_REACT_PROPERTIES.toLowerCase() === 'true' : process.env.APP_ENV === 'production';
9
+ export var baseNextConfig = {
10
10
  i18n: {
11
- locales: ['en', 'ms'],
12
- defaultLocale: 'en',
11
+ locales: [
12
+ 'en',
13
+ 'ms'
14
+ ],
15
+ defaultLocale: 'en'
13
16
  },
14
17
  env: {
15
- BASE_CURRENCY: 'MYR',
18
+ BASE_CURRENCY: 'MYR'
16
19
  },
17
20
  reactStrictMode: true,
18
21
  images: {
19
- deviceSizes: [640, 750, 1200, 1920],
20
- minimumCacheTTL: 31536000, // 1 year
22
+ deviceSizes: [
23
+ 640,
24
+ 750,
25
+ 1200,
26
+ 1920
27
+ ],
28
+ minimumCacheTTL: 31536000,
21
29
  remotePatterns: [
22
30
  {
23
31
  protocol: 'https',
24
- hostname: 'driveflux.com',
32
+ hostname: 'driveflux.com'
25
33
  },
26
34
  {
27
35
  protocol: 'https',
28
- hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com',
36
+ hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com'
29
37
  },
30
38
  {
31
39
  protocol: 'https',
32
- hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com',
40
+ hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com'
33
41
  },
34
42
  {
35
43
  protocol: 'https',
36
- hostname: 's3.ap-southeast-1.amazonaws.com',
44
+ hostname: 's3.ap-southeast-1.amazonaws.com'
37
45
  },
38
46
  {
39
47
  protocol: 'https',
40
- hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com',
48
+ hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com'
41
49
  },
42
50
  {
43
51
  protocol: 'https',
44
- hostname: 'vercel.app',
52
+ hostname: 'vercel.app'
45
53
  },
46
54
  {
47
55
  protocol: 'https',
48
- hostname: 'media.graphcms.com',
56
+ hostname: 'media.graphcms.com'
49
57
  },
50
58
  {
51
59
  protocol: 'https',
52
- hostname: 'media.graphassets.com',
60
+ hostname: 'media.graphassets.com'
53
61
  },
54
62
  {
55
63
  protocol: 'https',
56
- hostname: 'www.notion.so',
64
+ hostname: 'www.notion.so'
57
65
  },
58
66
  // This is for notion images
59
67
  {
60
68
  protocol: 'https',
61
- hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com',
69
+ hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com'
62
70
  },
63
71
  {
64
72
  protocol: 'https',
65
- hostname: 'ap-northeast-1.graphassets.com',
66
- },
67
- ],
73
+ hostname: 'ap-northeast-1.graphassets.com'
74
+ }
75
+ ]
68
76
  },
69
77
  experimental: {
70
78
  esmExternals: true,
71
- swcPlugins: [['@lingui/swc-plugin', {}]],
79
+ swcPlugins: [
80
+ [
81
+ '@lingui/swc-plugin',
82
+ {}
83
+ ]
84
+ ]
72
85
  },
73
- transpilePackages: [],
74
86
  eslint: {
75
- ignoreDuringBuilds: process.env.NODE_ENV === 'production',
87
+ ignoreDuringBuilds: process.env.NODE_ENV === 'production'
76
88
  },
77
89
  compiler: {
78
- reactRemoveProperties,
79
- removeConsole: process.env.FORCE_LOGGING_IN_PROD
80
- ? false
81
- : process.env.APP_ENV === 'production'
82
- ? {
83
- exclude: ['error'],
84
- }
85
- : false,
90
+ reactRemoveProperties: reactRemoveProperties,
91
+ removeConsole: process.env.FORCE_LOGGING_IN_PROD ? false : process.env.APP_ENV === 'production' ? {
92
+ exclude: [
93
+ 'error'
94
+ ]
95
+ } : false
86
96
  },
87
97
  typescript: {
88
- ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true',
98
+ ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true'
89
99
  },
90
- poweredByHeader: false,
100
+ poweredByHeader: false
91
101
  };
92
- //# sourceMappingURL=next.config.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/config",
3
- "version": "2.1.0-next.1",
3
+ "version": "2.1.0-next.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./backend": {
@@ -20,12 +20,12 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@driveflux/singleton": "2.0.2",
23
+ "@driveflux/singleton": "2.0.3-next.0",
24
24
  "zod": "^4.1.4"
25
25
  },
26
26
  "devDependencies": {
27
- "@driveflux/fab": "3.0.2",
28
- "@driveflux/tsconfig": "2.0.2",
27
+ "@driveflux/fab": "3.0.3-next.0",
28
+ "@driveflux/tsconfig": "2.0.3-next.0",
29
29
  "@swc/cli": "^0.7.8",
30
30
  "@swc/core": "^1.13.5",
31
31
  "@types/node": "^24.3.0",