@driveflux/config 2.0.2 → 2.0.4

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,207 +106,190 @@ 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
  sentryAuthToken: z.string().optional(),
153
146
  sendSMSOutsideOfProd: z.boolean().optional(),
154
- vercel: z
155
- .object({
156
- cronSecret: z.string().optional(),
157
- })
158
- .optional(),
147
+ vercel: z.object({
148
+ cronSecret: z.string().optional()
149
+ }).optional()
159
150
  });
160
- const getConfig = () => ({
161
- appUrl: process.env.APP_URL,
162
- appEnv: process.env.APP_ENV,
163
- apiVersion: process.env.API_VERSION,
164
- tunnelUrl: process.env.TUNNEL_URL,
165
- prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
166
- apiUrl: process.env.API_URL ||
167
- (process.env.APP_URL ? `${process.env.APP_URL}/api` : undefined),
168
- reservationFee: 49.0 / 1.1,
169
- isProd: isProd(),
170
- taxRate: 0.08,
171
- serviceRate: 0.1,
172
- // TODO
173
- // @ts-expect-error zod will valide away the wrong values
174
- baseCurrency: process.env.BASE_CURRENCY || 'MYR',
175
- dbUrl: process.env.DATABASE_URL,
176
- cse: {
177
- login: process.env.CSE_LOGIN,
178
- password: process.env.CSE_PASSWORD,
179
- templateId: process.env.CSE_TEMPLATE_ID,
180
- },
181
- upload: {
182
- awsKey: process.env.AWS_KEY,
183
- awsSecret: process.env.AWS_SECRET,
184
- usersBucket: process.env.USER_UPLOADS_BUCKET,
185
- adminBucket: process.env.ADMIN_DOCS_BUCKET,
186
- siteBucket: process.env.SITE_BUCKET,
187
- region: process.env.STORAGE_REGION,
188
- secret: process.env.COMPANION_SECRET,
189
- debug: process.env.COMPANION_DEBUG === 'true',
190
- },
191
- stripe: {
192
- secretKey: process.env.STRIPE_SECRET_KEY,
193
- apiVersion: '2020-08-27',
194
- webhook: {
195
- connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
196
- accountKey: process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET,
151
+ var getConfig = function() {
152
+ return {
153
+ appUrl: process.env.APP_URL,
154
+ appEnv: process.env.APP_ENV,
155
+ apiVersion: process.env.API_VERSION,
156
+ tunnelUrl: process.env.TUNNEL_URL,
157
+ prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
158
+ apiUrl: process.env.API_URL || (process.env.APP_URL ? "".concat(process.env.APP_URL, "/api") : undefined),
159
+ reservationFee: 49.0 / 1.1,
160
+ isProd: isProd(),
161
+ taxRate: 0.08,
162
+ serviceRate: 0.1,
163
+ // TODO
164
+ // @ts-expect-error zod will valide away the wrong values
165
+ baseCurrency: process.env.BASE_CURRENCY || 'MYR',
166
+ dbUrl: process.env.DATABASE_URL,
167
+ cse: {
168
+ login: process.env.CSE_LOGIN,
169
+ password: process.env.CSE_PASSWORD,
170
+ templateId: process.env.CSE_TEMPLATE_ID
171
+ },
172
+ upload: {
173
+ awsKey: process.env.AWS_KEY,
174
+ awsSecret: process.env.AWS_SECRET,
175
+ usersBucket: process.env.USER_UPLOADS_BUCKET,
176
+ adminBucket: process.env.ADMIN_DOCS_BUCKET,
177
+ siteBucket: process.env.SITE_BUCKET,
178
+ region: process.env.STORAGE_REGION,
179
+ secret: process.env.COMPANION_SECRET,
180
+ debug: process.env.COMPANION_DEBUG === 'true'
181
+ },
182
+ stripe: {
183
+ secretKey: process.env.STRIPE_SECRET_KEY,
184
+ apiVersion: '2020-08-27',
185
+ webhook: {
186
+ connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
187
+ accountKey: process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET
188
+ }
197
189
  },
198
- },
199
- twilio: {
200
- accountSid: process.env.TWILIO_ACCOUNT_SID,
201
- authToken: process.env.TWILIO_AUTH_TOKEN,
202
- phoneNumber: process.env.TWILIO_PHONE_NUMBER,
203
- },
204
- vonage: {
205
- apiKey: process.env.VONAGE_API_KEY,
206
- apiSecret: process.env.VONAGE_API_SECRET,
207
- },
208
- esms: {
209
- apiKey: process.env.ESMS_API_KEY,
210
- apiSecret: process.env.ESMS_API_SECRET,
211
- },
212
- redisUrl: process.env.REDIS_URL,
213
- slack: {
214
- token: process.env.SLACK_TOKEN,
215
- signingSecret: process.env.SLACK_SIGNING_SECRET,
216
- defaultChannelId: process.env.SLACK_DEFAULT_CHANNEL,
217
- reservationsChannelId: process.env.SLACK_RESERVATIONS_CHANNEL,
218
- fbcChannel: process.env.SLACK_FBC_CHANNEL,
219
- bdChannel: process.env.SLACK_BD_CHANNEL,
220
- mainFluxChannel: process.env.SLACK_MAIN_FLUX_CHANNEL,
221
- invoiceFailuresChannelId: process.env.SLACK_INVOICE_FAILURES_CHANNEL,
222
- inquiriesChannelId: process.env.SLACK_INQUIRIES_CHANNEL,
223
- sstChannelId: process.env.SLACK_SALES_AND_SST_CHANNEL,
224
- issuesChannelId: process.env.SLACK_ISSUES_CHANNEL,
225
- comingServicesChannelId: process.env.SLACK_COMING_SERVICES_CHANNEL,
226
- engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL,
227
- esmsChannelId: process.env.SLACK_ESMS_CHANNEL,
228
- excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL,
229
- },
230
- noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
231
- notion: {
232
- secret: process.env.NOTION_SECRET,
233
- /**
234
- * No need to use env variables for the following
235
- */
236
- requestDatabaseId: process.env.NOTION_REQUESTS_DATABASE_ID,
237
- reviewsDatabaseId: process.env.NOTION_REVIEW_DATABASE_ID,
238
- fbcDatabaseId: process.env.NOTION_FBC_DATABASE_ID,
239
- fluxstersDatabaseId: process.env.NOTION_FLUXSTERS_DATABASE_ID,
240
- bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
241
- referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
242
- brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
243
- knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID,
244
- },
245
- algolia: {
246
- appId: process.env.ALGOLIA_APP_ID,
247
- adminKey: process.env.ALGOLIA_ADMIN_KEY,
248
- searchKey: process.env.ALGOLIA_SEARCH_KEY,
249
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX,
250
- },
251
- flux: {
252
- defaultBillingAddress: {
253
- name: 'Flux Sdn. Bhd.',
254
- street1: '15-2 Jalan Solaris',
255
- street2: 'Solaris Mont Kiara',
256
- city: 'Kuala Lumpur',
257
- state: 'Kuala Lumpur',
190
+ twilio: {
191
+ accountSid: process.env.TWILIO_ACCOUNT_SID,
192
+ authToken: process.env.TWILIO_AUTH_TOKEN,
193
+ phoneNumber: process.env.TWILIO_PHONE_NUMBER
194
+ },
195
+ vonage: {
196
+ apiKey: process.env.VONAGE_API_KEY,
197
+ apiSecret: process.env.VONAGE_API_SECRET
198
+ },
199
+ esms: {
200
+ apiKey: process.env.ESMS_API_KEY,
201
+ apiSecret: process.env.ESMS_API_SECRET
202
+ },
203
+ redisUrl: process.env.REDIS_URL,
204
+ slack: {
205
+ token: process.env.SLACK_TOKEN,
206
+ signingSecret: process.env.SLACK_SIGNING_SECRET,
207
+ defaultChannelId: process.env.SLACK_DEFAULT_CHANNEL,
208
+ reservationsChannelId: process.env.SLACK_RESERVATIONS_CHANNEL,
209
+ fbcChannel: process.env.SLACK_FBC_CHANNEL,
210
+ bdChannel: process.env.SLACK_BD_CHANNEL,
211
+ mainFluxChannel: process.env.SLACK_MAIN_FLUX_CHANNEL,
212
+ invoiceFailuresChannelId: process.env.SLACK_INVOICE_FAILURES_CHANNEL,
213
+ inquiriesChannelId: process.env.SLACK_INQUIRIES_CHANNEL,
214
+ sstChannelId: process.env.SLACK_SALES_AND_SST_CHANNEL,
215
+ issuesChannelId: process.env.SLACK_ISSUES_CHANNEL,
216
+ comingServicesChannelId: process.env.SLACK_COMING_SERVICES_CHANNEL,
217
+ engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL,
218
+ esmsChannelId: process.env.SLACK_ESMS_CHANNEL,
219
+ excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL
220
+ },
221
+ noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
222
+ notion: {
223
+ secret: process.env.NOTION_SECRET,
258
224
  /**
259
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
260
- */
261
- country: 'MY',
262
- postalCode: '50480',
225
+ * No need to use env variables for the following
226
+ */ requestDatabaseId: process.env.NOTION_REQUESTS_DATABASE_ID,
227
+ reviewsDatabaseId: process.env.NOTION_REVIEW_DATABASE_ID,
228
+ fbcDatabaseId: process.env.NOTION_FBC_DATABASE_ID,
229
+ fluxstersDatabaseId: process.env.NOTION_FLUXSTERS_DATABASE_ID,
230
+ bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
231
+ referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
232
+ brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
233
+ knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID
263
234
  },
264
- },
265
- html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
266
- cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
267
- search: {
268
- noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true',
269
- },
270
- auth: {
271
- secureCookies: process.env.SECURE_COOKIES !== 'false',
272
- authSecret: process.env.NEXTAUTH_SECRET,
273
- jwtSecret: process.env.NEXTAUTH_SECRET,
274
- google: {
275
- clientId: process.env.GOOGLE_CLIENT_ID,
276
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
235
+ algolia: {
236
+ appId: process.env.ALGOLIA_APP_ID,
237
+ adminKey: process.env.ALGOLIA_ADMIN_KEY,
238
+ searchKey: process.env.ALGOLIA_SEARCH_KEY,
239
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX
277
240
  },
278
- facebook: {
279
- clientId: process.env.FACEBOOK_CLIENT_ID,
280
- clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
241
+ flux: {
242
+ defaultBillingAddress: {
243
+ name: 'Flux Sdn. Bhd.',
244
+ street1: '15-2 Jalan Solaris',
245
+ street2: 'Solaris Mont Kiara',
246
+ city: 'Kuala Lumpur',
247
+ state: 'Kuala Lumpur',
248
+ /**
249
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
250
+ */ country: 'MY',
251
+ postalCode: '50480'
252
+ }
281
253
  },
282
- apple: {
283
- clientId: process.env.APPLE_ID,
284
- clientSecret: process.env.APPLE_SECRET,
254
+ html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
255
+ cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
256
+ search: {
257
+ noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true'
285
258
  },
286
- // email: {
287
- // server: process.env.EMAIL_SERVER! || composeMailServer(),
288
- // from: process.env.AUTH_EMAIL_FROM || process.env.FROM_MAIL!,
289
- // }
290
- },
291
- sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
292
- vercel: {
293
- cronSecret: process.env.CRON_SECRET,
294
- },
295
- kv: {
296
- url: process.env.KV_URL,
297
- token: process.env.KV_REST_API_TOKEN,
298
- apiUrl: process.env.KV_REST_API_URL,
299
- },
300
- sentryAuthToken: process.env.SENTRY_AUTH_TOKEN,
301
- });
302
- export const resetConfig = () => {
259
+ auth: {
260
+ secureCookies: process.env.SECURE_COOKIES !== 'false',
261
+ authSecret: process.env.NEXTAUTH_SECRET,
262
+ jwtSecret: process.env.NEXTAUTH_SECRET,
263
+ google: {
264
+ clientId: process.env.GOOGLE_CLIENT_ID,
265
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET
266
+ },
267
+ facebook: {
268
+ clientId: process.env.FACEBOOK_CLIENT_ID,
269
+ clientSecret: process.env.FACEBOOK_CLIENT_SECRET
270
+ },
271
+ apple: {
272
+ clientId: process.env.APPLE_ID,
273
+ clientSecret: process.env.APPLE_SECRET
274
+ }
275
+ },
276
+ sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
277
+ vercel: {
278
+ cronSecret: process.env.CRON_SECRET
279
+ },
280
+ kv: {
281
+ url: process.env.KV_URL,
282
+ token: process.env.KV_REST_API_TOKEN,
283
+ apiUrl: process.env.KV_REST_API_URL
284
+ },
285
+ sentryAuthToken: process.env.SENTRY_AUTH_TOKEN
286
+ };
287
+ };
288
+ export var resetConfig = function() {
303
289
  config = singleton('backendConfig', getConfig(), true);
304
290
  return config;
305
291
  };
306
- export let config = singleton('backendConfig', getConfig());
307
- export const setConfig = (key, value) => {
292
+ export var config = singleton('backendConfig', getConfig());
293
+ export var setConfig = function(key, value) {
308
294
  config[key] = value;
309
295
  };
310
- //# 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.string().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
  gtmCodeOld: z.string().optional(),
@@ -18,7 +18,7 @@ export const ConfigValidation = z.object({
18
18
  graphCms: z.object({
19
19
  devAuthToken: z.string(),
20
20
  prodAuthToken: z.string(),
21
- projectApi: z.string(),
21
+ projectApi: z.string()
22
22
  }),
23
23
  isProd: z.boolean(),
24
24
  noStaticGenerating: z.boolean(),
@@ -28,47 +28,46 @@ export const ConfigValidation = z.object({
28
28
  vehicleIndexName: z.string(),
29
29
  appId: z.string(),
30
30
  searchKey: z.string(),
31
- knowledgeBaseIndex: z.string(),
31
+ knowledgeBaseIndex: z.string()
32
32
  }),
33
33
  kv: z.object({
34
34
  url: z.string(),
35
35
  token: z.string(),
36
- apiUrl: z.string(),
36
+ apiUrl: z.string()
37
37
  }),
38
38
  glitchTip: z.object({
39
- dsn: z.string().optional(),
39
+ dsn: z.string().optional()
40
40
  }),
41
41
  sentryAuthToken: z.string().optional(),
42
42
  postHog: z.object({
43
43
  apiKey: z.string(),
44
- apiHost: z.string().optional(),
45
- }),
44
+ apiHost: z.string().optional()
45
+ })
46
46
  });
47
47
  /**
48
48
  * Do not use this function, use the config object directly
49
- */
50
- const getConfig = () => {
51
- const appUrl = process.env.APP_URL;
52
- const apiUrl = process.env.API_URL || `${appUrl}/api`;
49
+ */ var getConfig = function() {
50
+ var appUrl = process.env.APP_URL;
51
+ var apiUrl = process.env.API_URL || "".concat(appUrl, "/api");
53
52
  return {
54
- appUrl,
55
- apiUrl,
53
+ appUrl: appUrl,
54
+ apiUrl: apiUrl,
56
55
  taxRate: 0.08,
57
56
  serviceRate: 0.1,
58
57
  reservationFee: 49.0 / 1.1,
59
58
  currency: 'MYR',
60
59
  stripe: {
61
60
  publishableKey: process.env.STRIPE_PUBLISHABLE_KEY,
62
- connectClientId: process.env.STRIPE_CONNECT_CLIENT_ID || '',
61
+ connectClientId: process.env.STRIPE_CONNECT_CLIENT_ID || ''
63
62
  },
64
63
  gtmCode: process.env.GTM_CODE,
65
64
  gtmCodeOld: process.env.GTM_CODE_OLD,
66
65
  secureCookies: process.env.SECURE_COOKIES !== 'false',
67
66
  appEnv: process.env.APP_ENV,
68
67
  graphCms: {
69
- devAuthToken: `${process.env.GRAPHCMS_AUTH_TOKEN}`,
70
- prodAuthToken: `${process.env.GRAPHCMS_AUTH_TOKEN}`,
71
- projectApi: `${process.env.GRAPHCMS_PROJECT_API}`,
68
+ devAuthToken: "".concat(process.env.GRAPHCMS_AUTH_TOKEN),
69
+ prodAuthToken: "".concat(process.env.GRAPHCMS_AUTH_TOKEN),
70
+ projectApi: "".concat(process.env.GRAPHCMS_PROJECT_API)
72
71
  },
73
72
  isProd: process.env.APP_ENV === 'production',
74
73
  noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
@@ -78,29 +77,28 @@ const getConfig = () => {
78
77
  vehicleIndexName: process.env.ALGOLIA_VEHICLE_INDEX_NAME || 'vehicles',
79
78
  appId: process.env.ALGOLIA_APP_ID,
80
79
  searchKey: process.env.ALGOLIA_SEARCH_KEY,
81
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX || 'knowledge_base',
80
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX || 'knowledge_base'
82
81
  },
83
82
  kv: {
84
83
  url: process.env.KV_URL,
85
84
  token: process.env.KV_REST_API_TOKEN,
86
- apiUrl: process.env.KV_REST_API_URL,
85
+ apiUrl: process.env.KV_REST_API_URL
87
86
  },
88
87
  glitchTip: {
89
- dsn: process.env.GLITCHTIP_DSN,
88
+ dsn: process.env.GLITCHTIP_DSN
90
89
  },
91
90
  sentryAuthToken: process.env.SENTRY_AUTH_TOKEN,
92
91
  postHog: {
93
92
  apiKey: process.env.NEXT_PUBLIC_POSTHOG_KEY,
94
- apiHost: process.env.NEXT_PUBLIC_POSTHOG_HOST,
95
- },
93
+ apiHost: process.env.NEXT_PUBLIC_POSTHOG_HOST
94
+ }
96
95
  };
97
96
  };
98
- export const resetConfig = () => {
97
+ export var resetConfig = function() {
99
98
  config = singleton('frontendConfig', getConfig(), true);
100
99
  return config;
101
100
  };
102
- export let config = singleton('frontendConfig', getConfig());
103
- export const setConfig = (key, value) => {
101
+ export var config = singleton('frontendConfig', getConfig());
102
+ export var setConfig = function(key, value) {
104
103
  config[key] = value;
105
104
  };
106
- //# sourceMappingURL=frontend.js.map
@@ -20,6 +20,9 @@ export declare const baseNextConfig: {
20
20
  }, {
21
21
  readonly protocol: "https";
22
22
  readonly hostname: "s3.ap-southeast-1.amazonaws.com";
23
+ }, {
24
+ readonly protocol: "https";
25
+ readonly hostname: "flux-admin.s3.ap-southeast-1.amazonaws.com";
23
26
  }, {
24
27
  readonly protocol: "https";
25
28
  readonly hostname: "vercel.app";
@@ -1 +1 @@
1
- {"version":3,"file":"next.config.d.ts","sourceRoot":"","sources":["../src/next.config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EI,CAAA"}
1
+ {"version":3,"file":"next.config.d.ts","sourceRoot":"","sources":["../src/next.config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EI,CAAA"}
@@ -1,83 +1,97 @@
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
18
  reactStrictMode: true,
16
19
  images: {
17
- deviceSizes: [640, 750, 1200, 1920],
18
- minimumCacheTTL: 31536000, // 1 year
20
+ deviceSizes: [
21
+ 640,
22
+ 750,
23
+ 1200,
24
+ 1920
25
+ ],
26
+ minimumCacheTTL: 31536000,
19
27
  remotePatterns: [
20
28
  {
21
29
  protocol: 'https',
22
- hostname: 'driveflux.com',
30
+ hostname: 'driveflux.com'
23
31
  },
24
32
  {
25
33
  protocol: 'https',
26
- hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com',
34
+ hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com'
27
35
  },
28
36
  {
29
37
  protocol: 'https',
30
- hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com',
38
+ hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com'
31
39
  },
32
40
  {
33
41
  protocol: 'https',
34
- hostname: 's3.ap-southeast-1.amazonaws.com',
42
+ hostname: 's3.ap-southeast-1.amazonaws.com'
35
43
  },
36
44
  {
37
45
  protocol: 'https',
38
- hostname: 'vercel.app',
46
+ hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com'
39
47
  },
40
48
  {
41
49
  protocol: 'https',
42
- hostname: 'media.graphcms.com',
50
+ hostname: 'vercel.app'
43
51
  },
44
52
  {
45
53
  protocol: 'https',
46
- hostname: 'media.graphassets.com',
54
+ hostname: 'media.graphcms.com'
47
55
  },
48
56
  {
49
57
  protocol: 'https',
50
- hostname: 'www.notion.so',
58
+ hostname: 'media.graphassets.com'
51
59
  },
52
- // This is for notion images
53
60
  {
54
61
  protocol: 'https',
55
- hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com',
62
+ hostname: 'www.notion.so'
56
63
  },
64
+ // This is for notion images
57
65
  {
58
66
  protocol: 'https',
59
- hostname: 'ap-northeast-1.graphassets.com',
67
+ hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com'
60
68
  },
61
- ],
69
+ {
70
+ protocol: 'https',
71
+ hostname: 'ap-northeast-1.graphassets.com'
72
+ }
73
+ ]
62
74
  },
63
75
  experimental: {
64
76
  esmExternals: true,
65
- swcPlugins: [['@lingui/swc-plugin', {}]],
77
+ swcPlugins: [
78
+ [
79
+ '@lingui/swc-plugin',
80
+ {}
81
+ ]
82
+ ]
66
83
  },
67
84
  transpilePackages: [],
68
85
  eslint: {
69
- ignoreDuringBuilds: process.env.NODE_ENV === 'production',
86
+ ignoreDuringBuilds: process.env.NODE_ENV === 'production'
70
87
  },
71
88
  compiler: {
72
- reactRemoveProperties,
73
- removeConsole: process.env.FORCE_LOGGING_IN_PROD
74
- ? false
75
- : process.env.APP_ENV === 'production'
76
- ? {
77
- exclude: ['error'],
78
- }
79
- : false,
89
+ reactRemoveProperties: reactRemoveProperties,
90
+ removeConsole: process.env.FORCE_LOGGING_IN_PROD ? false : process.env.APP_ENV === 'production' ? {
91
+ exclude: [
92
+ 'error'
93
+ ]
94
+ } : false
80
95
  },
81
- poweredByHeader: false,
96
+ poweredByHeader: false
82
97
  };
83
- //# sourceMappingURL=next.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"next.config.js","sourceRoot":"","sources":["../src/next.config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,qBAAqB,GAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,QAAQ;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B;IAChD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,WAAW,EAAE,KAAK,MAAM;IACrE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACrB,aAAa,EAAE,IAAI;KACnB;IACD,GAAG,EAAE,EAAE;IACP,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACP,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QACnC,eAAe,EAAE,QAAQ,EAAE,SAAS;QACpC,cAAc,EAAE;YACf;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,eAAe;aACzB;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,qDAAqD;aAC/D;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,iDAAiD;aAC3D;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,iCAAiC;aAC3C;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,YAAY;aACtB;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,oBAAoB;aAC9B;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,uBAAuB;aACjC;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,eAAe;aACzB;YACD,4BAA4B;YAC5B;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,8CAA8C;aACxD;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gCAAgC;aAC1C;SACD;KACD;IACD,YAAY,EAAE;QACb,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;KACxC;IAED,iBAAiB,EAAE,EAAE;IACrB,MAAM,EAAE;QACP,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;KACzD;IAED,QAAQ,EAAE;QACT,qBAAqB;QACrB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC/C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;gBACrC,CAAC,CAAC;oBACA,OAAO,EAAE,CAAC,OAAO,CAAC;iBAClB;gBACF,CAAC,CAAC,KAAK;KACT;IACD,eAAe,EAAE,KAAK;CACQ,CAAA"}
1
+ {"version":3,"file":"next.config.js","sourceRoot":"","sources":["../src/next.config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,qBAAqB,GAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,QAAQ;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B;IAChD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,WAAW,EAAE,KAAK,MAAM;IACrE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,IAAI,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACrB,aAAa,EAAE,IAAI;KACnB;IACD,GAAG,EAAE,EAAE;IACP,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACP,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QACnC,eAAe,EAAE,QAAQ,EAAE,SAAS;QACpC,cAAc,EAAE;YACf;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,eAAe;aACzB;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,qDAAqD;aAC/D;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,iDAAiD;aAC3D;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,iCAAiC;aAC3C;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,4CAA4C;aACtD;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,YAAY;aACtB;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,oBAAoB;aAC9B;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,uBAAuB;aACjC;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,eAAe;aACzB;YACD,4BAA4B;YAC5B;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,8CAA8C;aACxD;YACD;gBACC,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,gCAAgC;aAC1C;SACD;KACD;IACD,YAAY,EAAE;QACb,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;KACxC;IAED,iBAAiB,EAAE,EAAE;IACrB,MAAM,EAAE;QACP,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;KACzD;IAED,QAAQ,EAAE;QACT,qBAAqB;QACrB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC/C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;gBACrC,CAAC,CAAC;oBACA,OAAO,EAAE,CAAC,OAAO,CAAC;iBAClB;gBACF,CAAC,CAAC,KAAK;KACT;IACD,eAAe,EAAE,KAAK;CACQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/config",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./backend": {