@driveflux/config 2.1.0-next.7 → 3.0.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.
Files changed (2) hide show
  1. package/dist/backend.js +116 -92
  2. package/package.json +4 -4
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';
4
32
  import { getAppEnv, isProd, requiredStringIfProdValidation } from './utils';
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
  serviceRate: 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,
@@ -80,7 +108,7 @@ export const ConfigValidation = z.object({
80
108
  comingServicesChannelId: z.string().min(1),
81
109
  engineeringRequestsChannel: z.string().min(1),
82
110
  esmsChannelId: z.string().min(1),
83
- excessMileageChannelId: z.string().min(1),
111
+ excessMileageChannelId: z.string().min(1)
84
112
  }),
85
113
  noStaticGenerating: z.boolean(),
86
114
  notion: z.object({
@@ -92,7 +120,7 @@ export const ConfigValidation = z.object({
92
120
  bdDatabaseId: z.string().min(1),
93
121
  referralsDatabaseId: z.string().min(1),
94
122
  brandsLandingPagesDatabaseId: z.string().min(1),
95
- knowledgeBaseDatabaseId: z.string().min(1),
123
+ knowledgeBaseDatabaseId: z.string().min(1)
96
124
  }),
97
125
  flux: z.object({
98
126
  defaultBillingAddress: z.object({
@@ -102,71 +130,74 @@ export const ConfigValidation = z.object({
102
130
  city: z.string(),
103
131
  state: z.string(),
104
132
  /**
105
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
106
- */
107
- country: z.string(),
108
- postalCode: z.string(),
109
- }),
133
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
134
+ */ country: z.string(),
135
+ postalCode: z.string()
136
+ })
110
137
  }),
111
138
  html2pdfKey: z.string(),
112
139
  cmsPreviewSecret: requiredStringIfProdValidation,
113
140
  search: z.object({
114
- noIdOptimization: z.boolean(),
141
+ noIdOptimization: z.boolean()
115
142
  }),
116
143
  auth: z.object({
117
144
  secureCookies: z.boolean(),
118
145
  authSecret: z.string(),
119
146
  jwtSecret: z.string(),
120
- google: z
121
- .object({
147
+ google: z.object({
122
148
  clientId: z.string(),
123
- clientSecret: z.string(),
124
- })
125
- .optional(),
126
- facebook: z
127
- .object({
149
+ clientSecret: z.string()
150
+ }).optional(),
151
+ facebook: z.object({
128
152
  clientId: z.string(),
129
- clientSecret: z.string(),
130
- })
131
- .optional(),
132
- apple: z
133
- .object({
153
+ clientSecret: z.string()
154
+ }).optional(),
155
+ apple: z.object({
134
156
  clientId: z.string(),
135
- clientSecret: z.string(),
136
- })
137
- .optional(),
138
- email: z
139
- .object({
157
+ clientSecret: z.string()
158
+ }).optional(),
159
+ email: z.object({
140
160
  server: z.string(),
141
- from: z.string(),
142
- })
143
- .optional(),
161
+ from: z.string()
162
+ }).optional()
144
163
  }),
145
164
  kv: z.object({
146
165
  url: z.string(),
147
166
  token: z.string(),
148
- apiUrl: z.string(),
167
+ apiUrl: z.string()
149
168
  }),
150
169
  sendSMSOutsideOfProd: z.boolean().optional(),
151
- vercel: z
152
- .object({
153
- cronSecret: z.string().optional(),
154
- })
155
- .optional(),
170
+ vercel: z.object({
171
+ cronSecret: z.string().optional()
172
+ }).optional()
156
173
  });
157
- const augmentEnv = () => {
158
- const allEnv = {
159
- ...getSlackIds(getAppEnv(), process.env),
160
- ...getNotionIds(getAppEnv()),
161
- };
162
- for (const key of Object.keys(allEnv)) {
163
- if (process.env[key]) {
164
- continue;
174
+ var augmentEnv = function() {
175
+ var allEnv = _object_spread({}, getSlackIds(getAppEnv(), process.env), getNotionIds(getAppEnv()));
176
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
177
+ try {
178
+ for(var _iterator = Object.keys(allEnv)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
179
+ var key = _step.value;
180
+ if (process.env[key]) {
181
+ continue;
182
+ }
183
+ process.env[key] = allEnv[key];
184
+ }
185
+ } catch (err) {
186
+ _didIteratorError = true;
187
+ _iteratorError = err;
188
+ } finally{
189
+ try {
190
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
191
+ _iterator.return();
192
+ }
193
+ } finally{
194
+ if (_didIteratorError) {
195
+ throw _iteratorError;
196
+ }
165
197
  }
166
- process.env[key] = allEnv[key];
167
198
  }
168
199
  };
169
- const getConfig = () => {
200
+ var getConfig = function() {
170
201
  augmentEnv();
171
202
  return {
172
203
  appUrl: process.env.APP_URL,
@@ -174,8 +205,7 @@ const getConfig = () => {
174
205
  apiVersion: process.env.API_VERSION,
175
206
  tunnelUrl: process.env.TUNNEL_URL,
176
207
  prodAppUrl: process.env.PROD_APP_URL || process.env.APP_URL,
177
- apiUrl: process.env.API_URL ||
178
- (process.env.APP_URL ? `${process.env.APP_URL}/api` : undefined),
208
+ apiUrl: process.env.API_URL || (process.env.APP_URL ? "".concat(process.env.APP_URL, "/api") : undefined),
179
209
  reservationFee: 49,
180
210
  isProd: isProd(),
181
211
  taxRate: 0.08,
@@ -187,7 +217,7 @@ const getConfig = () => {
187
217
  cse: {
188
218
  login: process.env.CSE_LOGIN,
189
219
  password: process.env.CSE_PASSWORD,
190
- templateId: process.env.CSE_TEMPLATE_ID,
220
+ templateId: process.env.CSE_TEMPLATE_ID
191
221
  },
192
222
  upload: {
193
223
  awsKey: process.env.AWS_KEY,
@@ -197,28 +227,28 @@ const getConfig = () => {
197
227
  siteBucket: process.env.SITE_BUCKET,
198
228
  region: process.env.STORAGE_REGION,
199
229
  secret: process.env.COMPANION_SECRET,
200
- debug: process.env.COMPANION_DEBUG === 'true',
230
+ debug: process.env.COMPANION_DEBUG === 'true'
201
231
  },
202
232
  stripe: {
203
233
  secretKey: process.env.STRIPE_SECRET_KEY,
204
234
  apiVersion: '2020-08-27',
205
235
  webhook: {
206
236
  connectAccountKey: process.env.STRIPE_CONNECT_WEBHOOK_ENDPOINT_SECRET,
207
- accountKey: process.env.STRIPE_WEBHOOK_SECRET,
208
- },
237
+ accountKey: process.env.STRIPE_WEBHOOK_SECRET
238
+ }
209
239
  },
210
240
  twilio: {
211
241
  accountSid: process.env.TWILIO_ACCOUNT_SID,
212
242
  authToken: process.env.TWILIO_AUTH_TOKEN,
213
- phoneNumber: process.env.TWILIO_PHONE_NUMBER,
243
+ phoneNumber: process.env.TWILIO_PHONE_NUMBER
214
244
  },
215
245
  vonage: {
216
246
  apiKey: process.env.VONAGE_API_KEY,
217
- apiSecret: process.env.VONAGE_API_SECRET,
247
+ apiSecret: process.env.VONAGE_API_SECRET
218
248
  },
219
249
  esms: {
220
250
  apiKey: process.env.ESMS_API_KEY,
221
- apiSecret: process.env.ESMS_API_SECRET,
251
+ apiSecret: process.env.ESMS_API_SECRET
222
252
  },
223
253
  redisUrl: process.env.REDIS_URL,
224
254
  slack: {
@@ -237,7 +267,7 @@ const getConfig = () => {
237
267
  comingServicesChannelId: process.env.SLACK_COMING_SERVICES_CHANNEL_ID,
238
268
  engineeringRequestsChannel: process.env.SLACK_ENGINEERING_REQUESTS_CHANNEL_ID,
239
269
  esmsChannelId: process.env.SLACK_ESMS_CHANNEL_ID,
240
- excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID,
270
+ excessMileageChannelId: process.env.SLACK_EXCESS_MILEAGE_CHANNEL_ID
241
271
  },
242
272
  noStaticGenerating: process.env.NO_STATIC_GENERATING === 'true',
243
273
  notion: {
@@ -249,13 +279,13 @@ const getConfig = () => {
249
279
  bdDatabaseId: process.env.NOTION_BD_DATABASE_ID,
250
280
  referralsDatabaseId: process.env.NOTION_REFERRALS_DATABASE_ID,
251
281
  brandsLandingPagesDatabaseId: process.env.NOTION_BRANDS_LANDING_PAGES_DATABASE_ID,
252
- knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID,
282
+ knowledgeBaseDatabaseId: process.env.NOTION_KNOWLEDGE_BASE_DATABASE_ID
253
283
  },
254
284
  algolia: {
255
285
  appId: process.env.ALGOLIA_APP_ID,
256
286
  adminKey: process.env.ALGOLIA_ADMIN_KEY,
257
287
  searchKey: process.env.ALGOLIA_SEARCH_KEY,
258
- knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX,
288
+ knowledgeBaseIndex: process.env.ALGOLIA_KNOWLEDGE_BASE_INDEX
259
289
  },
260
290
  flux: {
261
291
  defaultBillingAddress: {
@@ -265,16 +295,15 @@ const getConfig = () => {
265
295
  city: 'Kuala Lumpur',
266
296
  state: 'Kuala Lumpur',
267
297
  /**
268
- * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
269
- */
270
- country: 'MY',
271
- postalCode: '50480',
272
- },
298
+ * Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
299
+ */ country: 'MY',
300
+ postalCode: '50480'
301
+ }
273
302
  },
274
303
  html2pdfKey: process.env.HTML_2_PDF_APP_KEY,
275
304
  cmsPreviewSecret: process.env.CMS_PREVIEW_SECRET,
276
305
  search: {
277
- noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true',
306
+ noIdOptimization: process.env.NO_ID_OPTIMIZATION_IN_SEARCH === 'true'
278
307
  },
279
308
  auth: {
280
309
  secureCookies: process.env.SECURE_COOKIES !== 'false',
@@ -282,38 +311,33 @@ const getConfig = () => {
282
311
  jwtSecret: process.env.NEXTAUTH_SECRET,
283
312
  google: {
284
313
  clientId: process.env.GOOGLE_CLIENT_ID,
285
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
314
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET
286
315
  },
287
316
  facebook: {
288
317
  clientId: process.env.FACEBOOK_CLIENT_ID,
289
- clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
318
+ clientSecret: process.env.FACEBOOK_CLIENT_SECRET
290
319
  },
291
320
  apple: {
292
321
  clientId: process.env.APPLE_ID,
293
- clientSecret: process.env.APPLE_SECRET,
294
- },
295
- // email: {
296
- // server: process.env.EMAIL_SERVER! || composeMailServer(),
297
- // from: process.env.AUTH_EMAIL_FROM || process.env.FROM_MAIL!,
298
- // }
322
+ clientSecret: process.env.APPLE_SECRET
323
+ }
299
324
  },
300
325
  sendSMSOutsideOfProd: process.env.SEND_SMS_OUTSIDE_OF_PROD === 'true',
301
326
  vercel: {
302
- cronSecret: process.env.CRON_SECRET,
327
+ cronSecret: process.env.CRON_SECRET
303
328
  },
304
329
  kv: {
305
330
  url: process.env.KV_URL,
306
331
  token: process.env.KV_REST_API_TOKEN,
307
- apiUrl: process.env.KV_REST_API_URL,
308
- },
332
+ apiUrl: process.env.KV_REST_API_URL
333
+ }
309
334
  };
310
335
  };
311
- export const resetConfig = () => {
336
+ export var resetConfig = function() {
312
337
  config = singleton('backendConfig', getConfig(), true);
313
338
  return config;
314
339
  };
315
- export let config = singleton('backendConfig', getConfig());
316
- export const setConfig = (key, value) => {
340
+ export var config = singleton('backendConfig', getConfig());
341
+ export var setConfig = function(key, value) {
317
342
  config[key] = value;
318
343
  };
319
- //# sourceMappingURL=backend.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/config",
3
- "version": "2.1.0-next.7",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./backend": {
@@ -24,12 +24,12 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@driveflux/singleton": "2.0.3-next.1",
27
+ "@driveflux/singleton": "3.0.0",
28
28
  "zod": "^4.1.12"
29
29
  },
30
30
  "devDependencies": {
31
- "@driveflux/fab": "3.0.3-next.1",
32
- "@driveflux/tsconfig": "2.0.3-next.1",
31
+ "@driveflux/fab": "4.0.0",
32
+ "@driveflux/tsconfig": "3.0.0",
33
33
  "@swc/cli": "^0.7.8",
34
34
  "@swc/core": "^1.13.5",
35
35
  "@types/node": "^24.9.1",