@driveflux/config 3.0.6 → 3.0.7-next.0

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,71 +131,74 @@ 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(),
171
+ vercel: z.object({
172
+ cronSecret: z.string().optional()
173
+ }).optional()
157
174
  });
158
- const augmentEnv = () => {
159
- const allEnv = {
160
- ...getSlackIds(getAppEnv(), process.env),
161
- ...getNotionIds(getAppEnv()),
162
- };
163
- for (const key of Object.keys(allEnv)) {
164
- if (process.env[key]) {
165
- continue;
175
+ var augmentEnv = function() {
176
+ var allEnv = _object_spread({}, getSlackIds(getAppEnv(), process.env), getNotionIds(getAppEnv()));
177
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
178
+ try {
179
+ for(var _iterator = Object.keys(allEnv)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
180
+ var key = _step.value;
181
+ if (process.env[key]) {
182
+ continue;
183
+ }
184
+ process.env[key] = allEnv[key];
185
+ }
186
+ } catch (err) {
187
+ _didIteratorError = true;
188
+ _iteratorError = err;
189
+ } finally{
190
+ try {
191
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
192
+ _iterator.return();
193
+ }
194
+ } finally{
195
+ if (_didIteratorError) {
196
+ throw _iteratorError;
197
+ }
166
198
  }
167
- process.env[key] = allEnv[key];
168
199
  }
169
200
  };
170
- const getConfig = () => {
201
+ var getConfig = function() {
171
202
  augmentEnv();
172
203
  return {
173
204
  appUrl: process.env.APP_URL,
@@ -175,8 +206,7 @@ const getConfig = () => {
175
206
  apiVersion: process.env.API_VERSION,
176
207
  tunnelUrl: process.env.TUNNEL_URL,
177
208
  prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
178
- apiUrl: process.env.API_URL ||
179
- (process.env.APP_URL ? `${process.env.APP_URL}/api` : undefined),
209
+ apiUrl: process.env.API_URL || (process.env.APP_URL ? "".concat(process.env.APP_URL, "/api") : undefined),
180
210
  reservationFee: 49,
181
211
  isProd: isProd(),
182
212
  taxRate: 0.1,
@@ -188,7 +218,7 @@ const getConfig = () => {
188
218
  cse: {
189
219
  login: process.env.CSE_LOGIN,
190
220
  password: process.env.CSE_PASSWORD,
191
- templateId: process.env.CSE_TEMPLATE_ID,
221
+ templateId: process.env.CSE_TEMPLATE_ID
192
222
  },
193
223
  upload: {
194
224
  awsKey: process.env.AWS_KEY,
@@ -198,28 +228,28 @@ const getConfig = () => {
198
228
  siteBucket: process.env.SITE_BUCKET,
199
229
  region: process.env.STORAGE_REGION,
200
230
  secret: process.env.COMPANION_SECRET,
201
- debug: process.env.COMPANION_DEBUG === 'true',
231
+ debug: process.env.COMPANION_DEBUG === 'true'
202
232
  },
203
233
  stripe: {
204
234
  secretKey: process.env.STRIPE_SECRET_KEY,
205
235
  apiVersion: '2020-08-27',
206
236
  webhook: {
207
237
  connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
208
- accountKey: process.env.STRIPE_WEBHOOK_SECRET,
209
- },
238
+ accountKey: process.env.STRIPE_WEBHOOK_SECRET
239
+ }
210
240
  },
211
241
  twilio: {
212
242
  accountSid: process.env.TWILIO_ACCOUNT_SID,
213
243
  authToken: process.env.TWILIO_AUTH_TOKEN,
214
- phoneNumber: process.env.TWILIO_PHONE_NUMBER,
244
+ phoneNumber: process.env.TWILIO_PHONE_NUMBER
215
245
  },
216
246
  vonage: {
217
247
  apiKey: process.env.VONAGE_API_KEY,
218
- apiSecret: process.env.VONAGE_API_SECRET,
248
+ apiSecret: process.env.VONAGE_API_SECRET
219
249
  },
220
250
  esms: {
221
251
  apiKey: process.env.ESMS_API_KEY,
222
- apiSecret: process.env.ESMS_API_SECRET,
252
+ apiSecret: process.env.ESMS_API_SECRET
223
253
  },
224
254
  redisUrl: process.env.REDIS_URL,
225
255
  slack: {
@@ -239,7 +269,7 @@ const getConfig = () => {
239
269
  engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL_ID,
240
270
  esmsChannelId: process.env.SLACK_ESMS_CHANNEL_ID,
241
271
  excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID,
242
- endingSubscriptionsChannelId: process.env.SLACK_ENDING_SUBSCRIPTIONS_CHANNEL_ID,
272
+ endingSubscriptionsChannelId: process.env.SLACK_ENDING_SUBSCRIPTIONS_CHANNEL_ID
243
273
  },
244
274
  noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
245
275
  notion: {
@@ -251,13 +281,13 @@ const getConfig = () => {
251
281
  bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
252
282
  referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
253
283
  brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
254
- knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID,
284
+ knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID
255
285
  },
256
286
  algolia: {
257
287
  appId: process.env.ALGOLIA_APP_ID,
258
288
  adminKey: process.env.ALGOLIA_ADMIN_KEY,
259
289
  searchKey: process.env.ALGOLIA_SEARCH_KEY,
260
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX,
290
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX
261
291
  },
262
292
  flux: {
263
293
  defaultBillingAddress: {
@@ -267,16 +297,15 @@ const getConfig = () => {
267
297
  city: 'Kuala Lumpur',
268
298
  state: 'Kuala Lumpur',
269
299
  /**
270
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
271
- */
272
- country: 'MY',
273
- postalCode: '50480',
274
- },
300
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
301
+ */ country: 'MY',
302
+ postalCode: '50480'
303
+ }
275
304
  },
276
305
  html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
277
306
  cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
278
307
  search: {
279
- noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true',
308
+ noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true'
280
309
  },
281
310
  auth: {
282
311
  secureCookies: process.env.SECURE_COOKIES !== 'false',
@@ -284,38 +313,33 @@ const getConfig = () => {
284
313
  jwtSecret: process.env.NEXTAUTH_SECRET,
285
314
  google: {
286
315
  clientId: process.env.GOOGLE_CLIENT_ID,
287
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
316
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET
288
317
  },
289
318
  facebook: {
290
319
  clientId: process.env.FACEBOOK_CLIENT_ID,
291
- clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
320
+ clientSecret: process.env.FACEBOOK_CLIENT_SECRET
292
321
  },
293
322
  apple: {
294
323
  clientId: process.env.APPLE_ID,
295
- clientSecret: process.env.APPLE_SECRET,
296
- },
297
- // email: {
298
- // server: process.env.EMAIL_SERVER! || composeMailServer(),
299
- // from: process.env.AUTH_EMAIL_FROM || process.env.FROM_MAIL!,
300
- // }
324
+ clientSecret: process.env.APPLE_SECRET
325
+ }
301
326
  },
302
327
  sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
303
328
  vercel: {
304
- cronSecret: process.env.CRON_SECRET,
329
+ cronSecret: process.env.CRON_SECRET
305
330
  },
306
331
  kv: {
307
332
  url: process.env.KV_URL,
308
333
  token: process.env.KV_REST_API_TOKEN,
309
- apiUrl: process.env.KV_REST_API_URL,
310
- },
334
+ apiUrl: process.env.KV_REST_API_URL
335
+ }
311
336
  };
312
337
  };
313
- export const resetConfig = () => {
338
+ export var resetConfig = function() {
314
339
  config = singleton('backendConfig', getConfig(), true);
315
340
  return config;
316
341
  };
317
- export let config = singleton('backendConfig', getConfig());
318
- export const setConfig = (key, value) => {
342
+ export var config = singleton('backendConfig', getConfig());
343
+ export var setConfig = function(key, value) {
319
344
  config[key] = value;
320
345
  };
321
- //# 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(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(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(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() {
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() {
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(key, value) {
90
89
  config[key] = value;
91
90
  };
92
- //# sourceMappingURL=frontend.js.map
@@ -1,89 +1,103 @@
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
- qualities: [70, 75, 90],
21
- minimumCacheTTL: 31536000, // 1 year
22
+ deviceSizes: [
23
+ 640,
24
+ 750,
25
+ 1200,
26
+ 1920
27
+ ],
28
+ qualities: [
29
+ 70,
30
+ 75,
31
+ 90
32
+ ],
33
+ minimumCacheTTL: 31536000,
22
34
  remotePatterns: [
23
35
  {
24
36
  protocol: 'https',
25
- hostname: 'driveflux.com',
37
+ hostname: 'driveflux.com'
26
38
  },
27
39
  {
28
40
  protocol: 'https',
29
- hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com',
41
+ hostname: 'dev-flux-site-files.s3.ap-southeast-1.amazonaws.com'
30
42
  },
31
43
  {
32
44
  protocol: 'https',
33
- hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com',
45
+ hostname: 'flux-site-files.s3.ap-southeast-1.amazonaws.com'
34
46
  },
35
47
  {
36
48
  protocol: 'https',
37
- hostname: 's3.ap-southeast-1.amazonaws.com',
49
+ hostname: 's3.ap-southeast-1.amazonaws.com'
38
50
  },
39
51
  {
40
52
  protocol: 'https',
41
- hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com',
53
+ hostname: 'flux-admin.s3.ap-southeast-1.amazonaws.com'
42
54
  },
43
55
  {
44
56
  protocol: 'https',
45
- hostname: 'vercel.app',
57
+ hostname: 'vercel.app'
46
58
  },
47
59
  {
48
60
  protocol: 'https',
49
- hostname: 'media.graphcms.com',
61
+ hostname: 'media.graphcms.com'
50
62
  },
51
63
  {
52
64
  protocol: 'https',
53
- hostname: 'media.graphassets.com',
65
+ hostname: 'media.graphassets.com'
54
66
  },
55
67
  {
56
68
  protocol: 'https',
57
- hostname: 'www.notion.so',
69
+ hostname: 'www.notion.so'
58
70
  },
59
71
  // This is for notion images
60
72
  {
61
73
  protocol: 'https',
62
- hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com',
74
+ hostname: 'prod-files-secure.s3.us-west-2.amazonaws.com'
63
75
  },
64
76
  {
65
77
  protocol: 'https',
66
- hostname: 'ap-northeast-1.graphassets.com',
67
- },
68
- ],
78
+ hostname: 'ap-northeast-1.graphassets.com'
79
+ }
80
+ ]
69
81
  },
70
82
  experimental: {
71
83
  esmExternals: true,
72
- swcPlugins: [['@lingui/swc-plugin', {}]],
84
+ swcPlugins: [
85
+ [
86
+ '@lingui/swc-plugin',
87
+ {}
88
+ ]
89
+ ]
73
90
  },
74
91
  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,
92
+ reactRemoveProperties: reactRemoveProperties,
93
+ removeConsole: process.env.FORCE_LOGGING_IN_PROD ? false : process.env.APP_ENV === 'production' ? {
94
+ exclude: [
95
+ 'error'
96
+ ]
97
+ } : false
83
98
  },
84
99
  typescript: {
85
- ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true',
100
+ ignoreBuildErrors: process.env.IGNORE_NEXT_BUILD_ERRORS === 'true'
86
101
  },
87
- poweredByHeader: false,
102
+ poweredByHeader: false
88
103
  };
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() {
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(env) {
18
+ return getAppEnv() === env;
19
+ };
20
+ export var isProd = function() {
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.6",
3
+ "version": "3.0.7-next.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./backend": {
@@ -35,7 +35,7 @@
35
35
  "@types/node": "^24.9.1",
36
36
  "@types/react": "19.2.2",
37
37
  "del-cli": "^7.0.0",
38
- "next": "16.0.3",
38
+ "next": "16.0.7",
39
39
  "typescript": "^5.9.3"
40
40
  },
41
41
  "scripts": {