@driveflux/config 3.0.11 → 3.0.12

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