@driveflux/config 3.0.12 → 3.0.13

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,8 +1,36 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
1
29
  import { singleton } from '@driveflux/singleton';
2
30
  import { z } from 'zod';
3
31
  import { getNotionIds, getSlackIds } from './constants.js';
4
32
  import { getAppEnv, isProd, requiredStringIfProdValidation } from './utils.js';
5
- export const ConfigValidation = z.object({
33
+ export var ConfigValidation = z.object({
6
34
  appUrl: z.url(),
7
35
  appEnv: z.string().optional(),
8
36
  tunnelUrl: z.string().optional(),
@@ -12,21 +40,23 @@ export const ConfigValidation = z.object({
12
40
  isProd: z.boolean(),
13
41
  taxRate: z.number(),
14
42
  oldTaxRate: z.number(),
15
- baseCurrency: z.enum(['MYR']),
43
+ baseCurrency: z.enum([
44
+ 'MYR'
45
+ ]),
16
46
  dbUrl: z.string(),
17
47
  cse: z.object({
18
48
  login: requiredStringIfProdValidation,
19
49
  password: requiredStringIfProdValidation,
20
- templateId: requiredStringIfProdValidation,
50
+ templateId: requiredStringIfProdValidation
21
51
  }),
22
52
  utilization: z.object({
23
- amountThreshold: z.number().min(0).default(5),
53
+ amountThreshold: z.number().min(0).default(5)
24
54
  }),
25
55
  algolia: z.object({
26
56
  appId: z.string(),
27
57
  adminKey: z.string(),
28
58
  searchKey: z.string(),
29
- knowledgeBaseIndex: z.string(),
59
+ knowledgeBaseIndex: z.string()
30
60
  }),
31
61
  upload: z.object({
32
62
  awsKey: z.string(),
@@ -36,7 +66,7 @@ export const ConfigValidation = z.object({
36
66
  siteBucket: z.string(),
37
67
  region: z.string(),
38
68
  secret: z.string().optional(),
39
- debug: z.boolean().optional(),
69
+ debug: z.boolean().optional()
40
70
  }),
41
71
  stripe: z.object({
42
72
  secretKey: z.string(),
@@ -46,23 +76,21 @@ export const ConfigValidation = z.object({
46
76
  // Both possess different keys
47
77
  webhook: z.object({
48
78
  connectAccountKey: z.string(),
49
- accountKey: z.string(),
50
- }),
79
+ accountKey: z.string()
80
+ })
51
81
  }),
52
- twilio: z
53
- .object({
82
+ twilio: z.object({
54
83
  accountSid: z.string().optional(),
55
84
  authToken: z.string().optional(),
56
- phoneNumber: z.string().optional(),
57
- })
58
- .optional(),
85
+ phoneNumber: z.string().optional()
86
+ }).optional(),
59
87
  vonage: z.object({
60
88
  apiKey: requiredStringIfProdValidation,
61
- apiSecret: requiredStringIfProdValidation,
89
+ apiSecret: requiredStringIfProdValidation
62
90
  }),
63
91
  esms: z.object({
64
92
  apiKey: requiredStringIfProdValidation,
65
- apiSecret: requiredStringIfProdValidation,
93
+ apiSecret: requiredStringIfProdValidation
66
94
  }),
67
95
  slack: z.object({
68
96
  token: requiredStringIfProdValidation,
@@ -81,7 +109,7 @@ export const ConfigValidation = z.object({
81
109
  engineeringRequestsChannel: z.string().min(1),
82
110
  esmsChannelId: z.string().min(1),
83
111
  excessMileageChannelId: z.string().min(1),
84
- endingSubscriptionsChannelId: z.string().min(1),
112
+ endingSubscriptionsChannelId: z.string().min(1)
85
113
  }),
86
114
  noStaticGenerating: z.boolean(),
87
115
  notion: z.object({
@@ -93,7 +121,7 @@ export const ConfigValidation = z.object({
93
121
  bdDatabaseId: z.string().min(1),
94
122
  referralsDatabaseId: z.string().min(1),
95
123
  brandsLandingPagesDatabaseId: z.string().min(1),
96
- knowledgeBaseDatabaseId: z.string().min(1),
124
+ knowledgeBaseDatabaseId: z.string().min(1)
97
125
  }),
98
126
  flux: z.object({
99
127
  defaultBillingAddress: z.object({
@@ -103,72 +131,75 @@ export const ConfigValidation = z.object({
103
131
  city: z.string(),
104
132
  state: z.string(),
105
133
  /**
106
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
107
- */
108
- country: z.string(),
109
- postalCode: z.string(),
110
- }),
134
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
135
+ */ country: z.string(),
136
+ postalCode: z.string()
137
+ })
111
138
  }),
112
139
  html2pdfKey: z.string(),
113
140
  cmsPreviewSecret: requiredStringIfProdValidation,
114
141
  search: z.object({
115
- noIdOptimization: z.boolean(),
142
+ noIdOptimization: z.boolean()
116
143
  }),
117
144
  auth: z.object({
118
145
  secureCookies: z.boolean(),
119
146
  authSecret: z.string(),
120
147
  jwtSecret: z.string(),
121
- google: z
122
- .object({
148
+ google: z.object({
123
149
  clientId: z.string(),
124
- clientSecret: z.string(),
125
- })
126
- .optional(),
127
- facebook: z
128
- .object({
150
+ clientSecret: z.string()
151
+ }).optional(),
152
+ facebook: z.object({
129
153
  clientId: z.string(),
130
- clientSecret: z.string(),
131
- })
132
- .optional(),
133
- apple: z
134
- .object({
154
+ clientSecret: z.string()
155
+ }).optional(),
156
+ apple: z.object({
135
157
  clientId: z.string(),
136
- clientSecret: z.string(),
137
- })
138
- .optional(),
139
- email: z
140
- .object({
158
+ clientSecret: z.string()
159
+ }).optional(),
160
+ email: z.object({
141
161
  server: z.string(),
142
- from: z.string(),
143
- })
144
- .optional(),
162
+ from: z.string()
163
+ }).optional()
145
164
  }),
146
165
  kv: z.object({
147
166
  url: z.string(),
148
167
  token: z.string(),
149
- apiUrl: z.string(),
168
+ apiUrl: z.string()
150
169
  }),
151
170
  sendSMSOutsideOfProd: z.boolean().optional(),
152
- vercel: z
153
- .object({
154
- cronSecret: z.string().optional(),
155
- })
156
- .optional(),
157
- currentSubscriptionContractVersion: z.number(),
171
+ vercel: z.object({
172
+ cronSecret: z.string().optional()
173
+ }).optional(),
174
+ currentSubscriptionContractVersion: z.number()
158
175
  });
159
- const augmentEnv = () => {
160
- const allEnv = {
161
- ...getSlackIds(getAppEnv(), process.env),
162
- ...getNotionIds(getAppEnv()),
163
- };
164
- for (const key of Object.keys(allEnv)) {
165
- if (process.env[key]) {
166
- continue;
176
+ var augmentEnv = function augmentEnv() {
177
+ var allEnv = _object_spread({}, getSlackIds(getAppEnv(), process.env), getNotionIds(getAppEnv()));
178
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
179
+ try {
180
+ for(var _iterator = Object.keys(allEnv)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
181
+ var key = _step.value;
182
+ if (process.env[key]) {
183
+ continue;
184
+ }
185
+ process.env[key] = allEnv[key];
186
+ }
187
+ } catch (err) {
188
+ _didIteratorError = true;
189
+ _iteratorError = err;
190
+ } finally{
191
+ try {
192
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
193
+ _iterator.return();
194
+ }
195
+ } finally{
196
+ if (_didIteratorError) {
197
+ throw _iteratorError;
198
+ }
167
199
  }
168
- process.env[key] = allEnv[key];
169
200
  }
170
201
  };
171
- const getConfig = () => {
202
+ var getConfig = function getConfig() {
172
203
  augmentEnv();
173
204
  return {
174
205
  appUrl: process.env.APP_URL,
@@ -176,8 +207,7 @@ const getConfig = () => {
176
207
  apiVersion: process.env.API_VERSION,
177
208
  tunnelUrl: process.env.TUNNEL_URL,
178
209
  prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
179
- apiUrl: process.env.API_URL ||
180
- (process.env.APP_URL ? `${process.env.APP_URL}/api` : undefined),
210
+ apiUrl: process.env.API_URL || (process.env.APP_URL ? "".concat(process.env.APP_URL, "/api") : undefined),
181
211
  reservationFee: 49,
182
212
  isProd: isProd(),
183
213
  taxRate: 0.1,
@@ -189,7 +219,7 @@ const getConfig = () => {
189
219
  cse: {
190
220
  login: process.env.CSE_LOGIN,
191
221
  password: process.env.CSE_PASSWORD,
192
- templateId: process.env.CSE_TEMPLATE_ID,
222
+ templateId: process.env.CSE_TEMPLATE_ID
193
223
  },
194
224
  upload: {
195
225
  awsKey: process.env.AWS_KEY,
@@ -199,28 +229,28 @@ const getConfig = () => {
199
229
  siteBucket: process.env.SITE_BUCKET,
200
230
  region: process.env.STORAGE_REGION,
201
231
  secret: process.env.COMPANION_SECRET,
202
- debug: process.env.COMPANION_DEBUG === 'true',
232
+ debug: process.env.COMPANION_DEBUG === 'true'
203
233
  },
204
234
  stripe: {
205
235
  secretKey: process.env.STRIPE_SECRET_KEY,
206
236
  apiVersion: '2020-08-27',
207
237
  webhook: {
208
238
  connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
209
- accountKey: process.env.STRIPE_WEBHOOK_SECRET,
210
- },
239
+ accountKey: process.env.STRIPE_WEBHOOK_SECRET
240
+ }
211
241
  },
212
242
  twilio: {
213
243
  accountSid: process.env.TWILIO_ACCOUNT_SID,
214
244
  authToken: process.env.TWILIO_AUTH_TOKEN,
215
- phoneNumber: process.env.TWILIO_PHONE_NUMBER,
245
+ phoneNumber: process.env.TWILIO_PHONE_NUMBER
216
246
  },
217
247
  vonage: {
218
248
  apiKey: process.env.VONAGE_API_KEY,
219
- apiSecret: process.env.VONAGE_API_SECRET,
249
+ apiSecret: process.env.VONAGE_API_SECRET
220
250
  },
221
251
  esms: {
222
252
  apiKey: process.env.ESMS_API_KEY,
223
- apiSecret: process.env.ESMS_API_SECRET,
253
+ apiSecret: process.env.ESMS_API_SECRET
224
254
  },
225
255
  redisUrl: process.env.REDIS_URL,
226
256
  slack: {
@@ -240,7 +270,7 @@ const getConfig = () => {
240
270
  engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL_ID,
241
271
  esmsChannelId: process.env.SLACK_ESMS_CHANNEL_ID,
242
272
  excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID,
243
- endingSubscriptionsChannelId: process.env.SLACK_ENDING_SUBSCRIPTIONS_CHANNEL_ID,
273
+ endingSubscriptionsChannelId: process.env.SLACK_ENDING_SUBSCRIPTIONS_CHANNEL_ID
244
274
  },
245
275
  noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
246
276
  notion: {
@@ -252,13 +282,13 @@ const getConfig = () => {
252
282
  bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
253
283
  referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
254
284
  brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
255
- knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID,
285
+ knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID
256
286
  },
257
287
  algolia: {
258
288
  appId: process.env.ALGOLIA_APP_ID,
259
289
  adminKey: process.env.ALGOLIA_ADMIN_KEY,
260
290
  searchKey: process.env.ALGOLIA_SEARCH_KEY,
261
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX,
291
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX
262
292
  },
263
293
  flux: {
264
294
  defaultBillingAddress: {
@@ -268,16 +298,15 @@ const getConfig = () => {
268
298
  city: 'Kuala Lumpur',
269
299
  state: 'Kuala Lumpur',
270
300
  /**
271
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
272
- */
273
- country: 'MY',
274
- postalCode: '50480',
275
- },
301
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
302
+ */ country: 'MY',
303
+ postalCode: '50480'
304
+ }
276
305
  },
277
306
  html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
278
307
  cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
279
308
  search: {
280
- noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true',
309
+ noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true'
281
310
  },
282
311
  auth: {
283
312
  secureCookies: process.env.SECURE_COOKIES !== 'false',
@@ -285,39 +314,34 @@ const getConfig = () => {
285
314
  jwtSecret: process.env.NEXTAUTH_SECRET,
286
315
  google: {
287
316
  clientId: process.env.GOOGLE_CLIENT_ID,
288
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
317
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET
289
318
  },
290
319
  facebook: {
291
320
  clientId: process.env.FACEBOOK_CLIENT_ID,
292
- clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
321
+ clientSecret: process.env.FACEBOOK_CLIENT_SECRET
293
322
  },
294
323
  apple: {
295
324
  clientId: process.env.APPLE_ID,
296
- clientSecret: process.env.APPLE_SECRET,
297
- },
298
- // email: {
299
- // server: process.env.EMAIL_SERVER! || composeMailServer(),
300
- // from: process.env.AUTH_EMAIL_FROM || process.env.FROM_MAIL!,
301
- // }
325
+ clientSecret: process.env.APPLE_SECRET
326
+ }
302
327
  },
303
328
  sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
304
329
  vercel: {
305
- cronSecret: process.env.CRON_SECRET,
330
+ cronSecret: process.env.CRON_SECRET
306
331
  },
307
332
  kv: {
308
333
  url: process.env.KV_URL,
309
334
  token: process.env.KV_REST_API_TOKEN,
310
- apiUrl: process.env.KV_REST_API_URL,
335
+ apiUrl: process.env.KV_REST_API_URL
311
336
  },
312
- currentSubscriptionContractVersion: 2,
337
+ currentSubscriptionContractVersion: 2
313
338
  };
314
339
  };
315
- export const resetConfig = () => {
340
+ export var resetConfig = function resetConfig() {
316
341
  config = singleton('backendConfig', getConfig(), true);
317
342
  return config;
318
343
  };
319
- export let config = singleton('backendConfig', getConfig());
320
- export const setConfig = (key, value) => {
344
+ export var config = singleton('backendConfig', getConfig());
345
+ export var setConfig = function setConfig(key, value) {
321
346
  config[key] = value;
322
347
  };
323
- //# sourceMappingURL=backend.js.map
package/dist/constants.js CHANGED
@@ -1,4 +1,56 @@
1
- const slackProductionChannels = {
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
+ });
37
+ }
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _object_spread_props(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ var slackProductionChannels = {
2
54
  SLACK_DEFAULT_CHANNEL_ID: 'C0679V8KGSH',
3
55
  SLACK_RESERVATIONS_CHANNEL_ID: 'C01G8B12G67',
4
56
  SLACK_FBC_CHANNEL: 'C01L1AAKB3N',
@@ -12,60 +64,89 @@ const slackProductionChannels = {
12
64
  SLACK_COMING_SERVICES_CHANNEL_ID: 'C06SB20H2J1',
13
65
  SLACK_ESMS_CHANNEL_ID: 'C07RPEP2BMY',
14
66
  SLACK_EXCESS_MILEAGE_CHANNEL_ID: 'C0679URBY93',
15
- SLACK_ENGINEERING_REQUESTS_CHANNEL_ID: 'C01U8GTK3K9',
67
+ SLACK_ENGINEERING_REQUESTS_CHANNEL_ID: 'C01U8GTK3K9'
68
+ };
69
+ var getSlackIdsMap = function getSlackIdsMap(processEnv) {
70
+ return {
71
+ production: slackProductionChannels,
72
+ staging: Object.keys(slackProductionChannels).reduce(function(acc, key) {
73
+ acc[key] = 'C0661UNMBQU'; // #platform-staging-notifications
74
+ return acc;
75
+ }, {}),
76
+ development: Object.keys(slackProductionChannels).reduce(function(acc, key) {
77
+ acc[key] = (processEnv === null || processEnv === void 0 ? void 0 : processEnv.SLACK_MY_CHANNEL_ID) || 'C09GJ4FJVRS'; // #platform-dev-notifications
78
+ return acc;
79
+ }, {})
80
+ };
16
81
  };
17
- const getSlackIdsMap = (processEnv) => ({
18
- production: slackProductionChannels,
19
- staging: Object.keys(slackProductionChannels).reduce((acc, key) => {
20
- acc[key] = 'C0661UNMBQU'; // #platform-staging-notifications
21
- return acc;
22
- }, {}),
23
- development: Object.keys(slackProductionChannels).reduce((acc, key) => {
24
- acc[key] =
25
- processEnv?.SLACK_MY_CHANNEL_ID || 'C09GJ4FJVRS'; // #platform-dev-notifications
26
- return acc;
27
- }, {}),
28
- });
29
- export const getSlackIds = (appEnv, processEnv) => {
30
- const slackIdsMap = getSlackIdsMap(processEnv);
31
- const envIds = appEnv && appEnv in slackIdsMap
32
- ? slackIdsMap[appEnv]
33
- : slackIdsMap.staging;
34
- // Override the values from ENV if available
35
- for (const key of Object.keys(envIds)) {
36
- if (processEnv?.[key]) {
37
- envIds[key] = processEnv[key];
82
+ export var getSlackIds = function getSlackIds(appEnv, processEnv) {
83
+ var slackIdsMap = getSlackIdsMap(processEnv);
84
+ var envIds = appEnv && appEnv in slackIdsMap ? slackIdsMap[appEnv] : slackIdsMap.staging;
85
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
86
+ try {
87
+ // Override the values from ENV if available
88
+ for(var _iterator = Object.keys(envIds)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
89
+ var key = _step.value;
90
+ if (processEnv === null || processEnv === void 0 ? void 0 : processEnv[key]) {
91
+ envIds[key] = processEnv[key];
92
+ }
93
+ }
94
+ } catch (err) {
95
+ _didIteratorError = true;
96
+ _iteratorError = err;
97
+ } finally{
98
+ try {
99
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
100
+ _iterator.return();
101
+ }
102
+ } finally{
103
+ if (_didIteratorError) {
104
+ throw _iteratorError;
105
+ }
38
106
  }
39
107
  }
40
108
  return envIds;
41
109
  };
42
- const notionProductionChannels = {
110
+ var notionProductionChannels = {
43
111
  NOTION_REQUEST_DATABASE_ID: '32332c0e-4277-43fa-b10e-7d458234f9ea',
44
- NOTION_REVIEWS_DATABASE_ID: '8a8b0df9-567d-433f-8937-583db2766176', // Seems to be unused
45
- NOTION_FBC_DATABASE_ID: '76960d4b-2b43-4019-a77e-ac46a0b3d752', // Seems to be unused
112
+ NOTION_REVIEWS_DATABASE_ID: '8a8b0df9-567d-433f-8937-583db2766176',
113
+ NOTION_FBC_DATABASE_ID: '76960d4b-2b43-4019-a77e-ac46a0b3d752',
46
114
  NOTION_FLUXSTERS_DATABASE_ID: '4ea6953a-61c2-4673-8950-c0d0e158de0a',
47
115
  NOTION_BD_DATABASE_ID: '172a9182-56c0-4358-b4f1-7e8fcfa44e46',
48
116
  NOTION_BRANDS_LANDING_PAGES_DATABASE_ID: 'e321d71a-0d29-42da-ab0b-dca2260b643e',
49
117
  NOTION_KNOWLEDGE_BASE_DATABASE_ID: '7a81653f-4351-4a17-aa1e-c3082c378441',
50
- NOTION_REFERRALS_DATABASE_ID: 'b5599d70-b414-4aa9-9ff2-d445c8f3f0fc',
118
+ NOTION_REFERRALS_DATABASE_ID: 'b5599d70-b414-4aa9-9ff2-d445c8f3f0fc'
51
119
  };
52
- const NOTION_IDS_MAP = {
120
+ var NOTION_IDS_MAP = {
53
121
  production: notionProductionChannels,
54
- staging: {
55
- ...notionProductionChannels,
56
- NOTION_KNOWLEDGE_BASE_DATABASE_ID: 'f95b9986-c1c9-46ca-a742-d49f3f80d7dd',
57
- },
122
+ staging: _object_spread_props(_object_spread({}, notionProductionChannels), {
123
+ NOTION_KNOWLEDGE_BASE_DATABASE_ID: 'f95b9986-c1c9-46ca-a742-d49f3f80d7dd'
124
+ })
58
125
  };
59
- export const getNotionIds = (appEnv, processEnv) => {
60
- const envIds = appEnv && appEnv in NOTION_IDS_MAP
61
- ? NOTION_IDS_MAP[appEnv]
62
- : NOTION_IDS_MAP.staging;
63
- // Override the values from ENV if available
64
- for (const key of Object.keys(envIds)) {
65
- if (processEnv?.[key]) {
66
- envIds[key] = processEnv[key];
126
+ export var getNotionIds = function getNotionIds(appEnv, processEnv) {
127
+ var envIds = appEnv && appEnv in NOTION_IDS_MAP ? NOTION_IDS_MAP[appEnv] : NOTION_IDS_MAP.staging;
128
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
129
+ try {
130
+ // Override the values from ENV if available
131
+ for(var _iterator = Object.keys(envIds)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
132
+ var key = _step.value;
133
+ if (processEnv === null || processEnv === void 0 ? void 0 : processEnv[key]) {
134
+ envIds[key] = processEnv[key];
135
+ }
136
+ }
137
+ } catch (err) {
138
+ _didIteratorError = true;
139
+ _iteratorError = err;
140
+ } finally{
141
+ try {
142
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
143
+ _iterator.return();
144
+ }
145
+ } finally{
146
+ if (_didIteratorError) {
147
+ throw _iteratorError;
148
+ }
67
149
  }
68
150
  }
69
151
  return envIds;
70
152
  };
71
- //# sourceMappingURL=constants.js.map
package/dist/frontend.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { initSingleton } 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 getConfig() {
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.1,
50
49
  oldTaxRate: 0.08,
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 resetConfig() {
85
84
  config = initSingleton('frontendConfig', getConfig, true);
86
85
  return config;
87
86
  };
88
- export let config = initSingleton('frontendConfig', getConfig);
89
- export const setConfig = (key, value) => {
87
+ export var config = initSingleton('frontendConfig', getConfig);
88
+ export var setConfig = function setConfig(key, value) {
90
89
  config[key] = value;
91
90
  };
92
- //# sourceMappingURL=frontend.js.map
@@ -1,89 +1,104 @@
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', 'zh'],
12
- defaultLocale: 'en',
11
+ locales: [
12
+ 'en',
13
+ 'ms',
14
+ 'zh'
15
+ ],
16
+ defaultLocale: 'en'
13
17
  },
14
18
  env: {
15
- BASE_CURRENCY: 'MYR',
19
+ BASE_CURRENCY: 'MYR'
16
20
  },
17
21
  reactStrictMode: true,
18
22
  images: {
19
- deviceSizes: [640, 750, 1200, 1920],
20
- qualities: [70, 75, 90],
21
- minimumCacheTTL: 31536000, // 1 year
23
+ deviceSizes: [
24
+ 640,
25
+ 750,
26
+ 1200,
27
+ 1920
28
+ ],
29
+ qualities: [
30
+ 70,
31
+ 75,
32
+ 90
33
+ ],
34
+ minimumCacheTTL: 31536000,
22
35
  remotePatterns: [
23
36
  {
24
37
  protocol: 'https',
25
- hostname: 'driveflux.com',
38
+ hostname: 'driveflux.com'
26
39
  },
27
40
  {
28
41
  protocol: 'https',
29
- hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com',
42
+ hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com'
30
43
  },
31
44
  {
32
45
  protocol: 'https',
33
- hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com',
46
+ hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com'
34
47
  },
35
48
  {
36
49
  protocol: 'https',
37
- hostname: 's3.ap-southeast-1.amazonaws.com',
50
+ hostname: 's3.ap-southeast-1.amazonaws.com'
38
51
  },
39
52
  {
40
53
  protocol: 'https',
41
- hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com',
54
+ hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com'
42
55
  },
43
56
  {
44
57
  protocol: 'https',
45
- hostname: 'vercel.app',
58
+ hostname: 'vercel.app'
46
59
  },
47
60
  {
48
61
  protocol: 'https',
49
- hostname: 'media.graphcms.com',
62
+ hostname: 'media.graphcms.com'
50
63
  },
51
64
  {
52
65
  protocol: 'https',
53
- hostname: 'media.graphassets.com',
66
+ hostname: 'media.graphassets.com'
54
67
  },
55
68
  {
56
69
  protocol: 'https',
57
- hostname: 'www.notion.so',
70
+ hostname: 'www.notion.so'
58
71
  },
59
72
  // This is for notion images
60
73
  {
61
74
  protocol: 'https',
62
- hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com',
75
+ hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com'
63
76
  },
64
77
  {
65
78
  protocol: 'https',
66
- hostname: 'ap-northeast-1.graphassets.com',
67
- },
68
- ],
79
+ hostname: 'ap-northeast-1.graphassets.com'
80
+ }
81
+ ]
69
82
  },
70
83
  experimental: {
71
84
  esmExternals: true,
72
- swcPlugins: [['@lingui/swc-plugin', {}]],
85
+ swcPlugins: [
86
+ [
87
+ '@lingui/swc-plugin',
88
+ {}
89
+ ]
90
+ ]
73
91
  },
74
92
  compiler: {
75
- reactRemoveProperties,
76
- removeConsole: process.env.FORCE_LOGGING_IN_PROD
77
- ? false
78
- : process.env.APP_ENV === 'production'
79
- ? {
80
- exclude: ['error'],
81
- }
82
- : false,
93
+ reactRemoveProperties: reactRemoveProperties,
94
+ removeConsole: process.env.FORCE_LOGGING_IN_PROD ? false : process.env.APP_ENV === 'production' ? {
95
+ exclude: [
96
+ 'error'
97
+ ]
98
+ } : false
83
99
  },
84
100
  typescript: {
85
- ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true',
101
+ ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true'
86
102
  },
87
- poweredByHeader: false,
103
+ poweredByHeader: false
88
104
  };
89
- //# sourceMappingURL=next.config.js.map
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import z from 'zod';
2
- export const getAppEnv = () => {
2
+ export var getAppEnv = function getAppEnv() {
3
3
  if (process.env.APP_ENV) {
4
4
  return process.env.APP_ENV;
5
5
  }
@@ -14,9 +14,10 @@ export const getAppEnv = () => {
14
14
  // Default to development as a last resort
15
15
  return 'development';
16
16
  };
17
- const isAppEnv = (env) => getAppEnv() === env;
18
- export const isProd = () => isAppEnv('production');
19
- export const requiredStringIfProdValidation = isProd()
20
- ? z.string().min(1)
21
- : z.string().optional();
22
- //# sourceMappingURL=utils.js.map
17
+ var isAppEnv = function isAppEnv(env) {
18
+ return getAppEnv() === env;
19
+ };
20
+ export var isProd = function isProd() {
21
+ return isAppEnv('production');
22
+ };
23
+ export var requiredStringIfProdValidation = isProd() ? z.string().min(1) : z.string().optional();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/config",
3
- "version": "3.0.12",
3
+ "version": "3.0.13",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./backend": {
@@ -24,14 +24,14 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@driveflux/singleton": "3.0.2",
27
+ "@driveflux/singleton": "3.0.3",
28
28
  "zod": "^4.4.3"
29
29
  },
30
30
  "devDependencies": {
31
- "@driveflux/fab": "4.0.2",
31
+ "@driveflux/fab": "4.0.3",
32
32
  "@driveflux/tsconfig": "3.0.2",
33
33
  "@swc/cli": "^0.8.1",
34
- "@swc/core": "^1.15.33",
34
+ "@swc/core": "^1.15.40",
35
35
  "@types/node": "^25.9.1",
36
36
  "@types/react": "19.2.15",
37
37
  "del-cli": "^7.0.0",