@driveflux/env 3.0.0 → 4.0.0-develop.1

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.
@@ -0,0 +1,13 @@
1
+ $ bun run ./build.ts
2
+ 🔍 Scanning folder: ./dist
3
+ 📄 Found 4 JS files to process
4
+
5
+ 📊 Processing Summary:
6
+ Files processed: 4
7
+ Total exports found: 7
8
+ Duplicates removed: 0
9
+ Total processing time: 23.01ms
10
+ Average time per file: 5.75ms
11
+
12
+ ✅ No duplicate exports found in any files
13
+ ✅ Build successful
package/CHANGELOG.md ADDED
@@ -0,0 +1,44 @@
1
+ # @driveflux/env
2
+
3
+ ## 4.0.0-develop.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 8a06a8c: env version
8
+ - env version
9
+
10
+ ## 0.0.2-develop.5
11
+
12
+ ### Patch Changes
13
+
14
+ - 225b59a: env + updated deps
15
+
16
+ ## 0.0.2-develop.4
17
+
18
+ ### Patch Changes
19
+
20
+ - 1f995b9: added PrivacyPolicySettings
21
+
22
+ ## 0.0.2-develop.3
23
+
24
+ ### Patch Changes
25
+
26
+ - 0b0dce3: Bundle dotenvx
27
+
28
+ ## 0.0.2-develop.2
29
+
30
+ ### Patch Changes
31
+
32
+ - 6a7cbad: Fixed error
33
+
34
+ ## 0.0.2-develop.1
35
+
36
+ ### Patch Changes
37
+
38
+ - b469487: Fixed slack env names
39
+
40
+ ## 0.0.2-develop.0
41
+
42
+ ### Patch Changes
43
+
44
+ - afe41e3: Created env package
package/build.ts ADDED
@@ -0,0 +1,45 @@
1
+ import { readdirSync, rmdirSync, statSync, unlinkSync } from 'node:fs'
2
+ import path from 'node:path'
3
+ import { autoRemoveDuplicateExports } from '@driveflux/fix-builds'
4
+ import type { Target } from 'bun'
5
+
6
+ // Clean the dist directory
7
+ const outdir = './dist'
8
+ const clearDir = (dir: string) => {
9
+ try {
10
+ const files = readdirSync(dir)
11
+ for (const file of files) {
12
+ if (file.endsWith('.js') || file.endsWith('.js.map')) {
13
+ unlinkSync(path.join(dir, file))
14
+ } else {
15
+ try {
16
+ if (statSync(path.join(dir, file)).isDirectory()) {
17
+ clearDir(path.join(dir, file))
18
+ rmdirSync(path.join(dir, file))
19
+ }
20
+ } catch (_error) {
21
+ // Directory might not exist, that's fine
22
+ }
23
+ }
24
+ }
25
+ } catch (_error) {
26
+ // Directory might not exist, that's fine
27
+ }
28
+ }
29
+ clearDir(outdir)
30
+
31
+ await Bun.build({
32
+ entrypoints: ['./src/main.ts', './src/init-env.ts', './src/augment-env.ts'],
33
+ root: './src',
34
+ plugins: [],
35
+ packages: 'bundle',
36
+ outdir,
37
+ target: (process.env.BUILD_TARGET as Target) ?? 'bun',
38
+ splitting: true,
39
+ minify: process.env.CI === 'true' || process.env.CI === '1',
40
+ sourcemap: 'linked',
41
+ })
42
+
43
+ await autoRemoveDuplicateExports(outdir)
44
+
45
+ console.info('✅ Build successful')
@@ -0,0 +1,4 @@
1
+ {
2
+ "@types/bun": "^1.3",
3
+ "typescript": "5.9.3"
4
+ }
@@ -0,0 +1,2 @@
1
+ export declare const getAppEnv: () => string;
2
+ export declare const isProd: () => boolean;
@@ -0,0 +1 @@
1
+ export declare const augmentEnv: () => void;
@@ -0,0 +1,5 @@
1
+ import"./chunk-wy1gj9e4.js";var x=()=>{if(process.env.APP_ENV)return process.env.APP_ENV;if(process.env.USE_ENV)return process.env.USE_ENV;return"development"};var b={SLACK_DEFAULT_CHANNEL_ID:"C0679V8KGSH",SLACK_RESERVATIONS_CHANNEL_ID:"C01G8B12G67",SLACK_FBC_CHANNEL:"C01L1AAKB3N",SLACK_BD_CHANNEL:"CN21PGKK8",SLACK_MAIN_FLUX_CHANNEL:"GHDPV1858",SLACK_INQUIRIES_CHANNEL_ID:"C067CSK5J5Q",SLACK_INVOICE_FAILURES_CHANNEL_ID:"C067CPUMB8T",SLACK_SST_CHANNEL_ID:"C068NH60A78",SLACK_ERROR_CHANNEL_ID:"C04N4Q7HA79",SLACK_ISSUES_CHANNEL_ID:"C0680P99AE8",SLACK_COMING_SERVICES_CHANNEL_ID:"C06SB20H2J1",SLACK_ESMS_CHANNEL_ID:"C07RPEP2BMY",SLACK_EXCESS_MILEAGE_CHANNEL_ID:"C0679URBY93",SLACK_ENGINEERING_REQUESTS_CHANNEL_ID:"C01U8GTK3K9"},F=(g)=>({production:b,staging:Object.keys(b).reduce((m,f)=>{return m[f]="C0661UNMBQU",m},{}),development:Object.keys(b).reduce((m,f)=>{return m[f]=g?.SLACK_MY_CHANNEL_ID||"C09GJ4FJVRS",m},{})}),z=(g,m)=>{let f=F(m),j=g&&g in f?f[g]:f.staging;for(let t of Object.keys(j))if(m?.[t])j[t]=m[t];return j},w={NOTION_REQUEST_DATABASE_ID:"32332c0e-4277-43fa-b10e-7d458234f9ea",NOTION_REVIEWS_DATABASE_ID:"8a8b0df9-567d-433f-8937-583db2766176",NOTION_FBC_DATABASE_ID:"76960d4b-2b43-4019-a77e-ac46a0b3d752",NOTION_FLUXSTERS_DATABASE_ID:"4ea6953a-61c2-4673-8950-c0d0e158de0a",NOTION_BD_DATABASE_ID:"172a9182-56c0-4358-b4f1-7e8fcfa44e46",NOTION_BRANDS_LANDING_PAGES_DATABASE_ID:"e321d71a-0d29-42da-ab0b-dca2260b643e",NOTION_KNOWLEDGE_BASE_DATABASE_ID:"7a81653f-4351-4a17-aa1e-c3082c378441",NOTION_REFERRALS_DATABASE_ID:"b5599d70-b414-4aa9-9ff2-d445c8f3f0fc"},q={production:w,staging:{...w,NOTION_KNOWLEDGE_BASE_DATABASE_ID:"f95b9986-c1c9-46ca-a742-d49f3f80d7dd"}},B=(g,m)=>{let f=g&&g in q?q[g]:q.staging;for(let j of Object.keys(f))if(m?.[j])f[j]=m[j];return f};var L=()=>{let g=z(x(),process.env),m=B(x());for(let[f,j]of Object.entries({...g,...m})){if(process.env[f])continue;process.env[f]=j}};export{L as augmentEnv};
2
+ export{L as b};
3
+
4
+ //# debugId=C69569CEF99ABD9C64756E2164756E21
5
+ //# sourceMappingURL=augment-env.js.map
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/app-env.ts", "../src/base-configs.ts", "../src/augment-env.ts"],
4
+ "sourcesContent": [
5
+ "export const getAppEnv = () => {\n if (process.env.APP_ENV) {\n return process.env.APP_ENV\n }\n\n // If USE_ENV is set, use it\n if (process.env.USE_ENV) {\n return process.env.USE_ENV\n }\n\n // If NODE_ENV is set, use it\n if (process.env.NODE_ENV) {\n return process.env.NODE_ENV\n }\n\n // Default to development as a last resort\n return 'development'\n}\n\nconst isAppEnv = (env: string) => getAppEnv() === env\nexport const isProd = () => isAppEnv('production')\n",
6
+ "type SlackIds = {\n -readonly [k in keyof typeof slackProductionChannels]: string\n}\ntype NotionIds = {\n -readonly [k in keyof typeof notionProductionChannels]: string\n}\n\nconst slackProductionChannels = {\n SLACK_DEFAULT_CHANNEL_ID: 'C0679V8KGSH',\n SLACK_RESERVATIONS_CHANNEL_ID: 'C01G8B12G67',\n SLACK_FBC_CHANNEL: 'C01L1AAKB3N',\n SLACK_BD_CHANNEL: 'CN21PGKK8',\n SLACK_MAIN_FLUX_CHANNEL: 'GHDPV1858',\n SLACK_INQUIRIES_CHANNEL_ID: 'C067CSK5J5Q',\n SLACK_INVOICE_FAILURES_CHANNEL_ID: 'C067CPUMB8T',\n SLACK_SST_CHANNEL_ID: 'C068NH60A78',\n SLACK_ERROR_CHANNEL_ID: 'C04N4Q7HA79',\n SLACK_ISSUES_CHANNEL_ID: 'C0680P99AE8',\n SLACK_COMING_SERVICES_CHANNEL_ID: 'C06SB20H2J1',\n SLACK_ESMS_CHANNEL_ID: 'C07RPEP2BMY',\n SLACK_EXCESS_MILEAGE_CHANNEL_ID: 'C0679URBY93',\n SLACK_ENGINEERING_REQUESTS_CHANNEL_ID: 'C01U8GTK3K9',\n} as const\n\nconst getSlackIdsMap = (processEnv?: Record<string, string | undefined>) =>\n ({\n production: slackProductionChannels,\n staging: Object.keys(slackProductionChannels).reduce((acc, key) => {\n acc[key as keyof SlackIds] = 'C0661UNMBQU' // #platform-staging-notifications\n return acc\n }, {} as SlackIds),\n development: Object.keys(slackProductionChannels).reduce((acc, key) => {\n acc[key as keyof SlackIds] =\n processEnv?.SLACK_MY_CHANNEL_ID || 'C09GJ4FJVRS' // #platform-dev-notifications\n return acc\n }, {} as SlackIds),\n }) as const satisfies Record<string, SlackIds>\n\nexport const getSlackIds = (\n appEnv?: string,\n processEnv?: Record<string, string | undefined>,\n): SlackIds => {\n const slackIdsMap = getSlackIdsMap(processEnv)\n const envIds: SlackIds =\n appEnv && appEnv in slackIdsMap\n ? slackIdsMap[appEnv as keyof typeof slackIdsMap]\n : slackIdsMap.staging\n\n // Override the values from ENV if available\n for (const key of Object.keys(envIds)) {\n if (processEnv?.[key]) {\n envIds[key as keyof SlackIds] = processEnv[key] as string\n }\n }\n\n return envIds\n}\n\nconst notionProductionChannels = {\n NOTION_REQUEST_DATABASE_ID: '32332c0e-4277-43fa-b10e-7d458234f9ea',\n NOTION_REVIEWS_DATABASE_ID: '8a8b0df9-567d-433f-8937-583db2766176', // Seems to be unused\n NOTION_FBC_DATABASE_ID: '76960d4b-2b43-4019-a77e-ac46a0b3d752', // Seems to be unused\n NOTION_FLUXSTERS_DATABASE_ID: '4ea6953a-61c2-4673-8950-c0d0e158de0a',\n NOTION_BD_DATABASE_ID: '172a9182-56c0-4358-b4f1-7e8fcfa44e46',\n NOTION_BRANDS_LANDING_PAGES_DATABASE_ID:\n 'e321d71a-0d29-42da-ab0b-dca2260b643e',\n NOTION_KNOWLEDGE_BASE_DATABASE_ID: '7a81653f-4351-4a17-aa1e-c3082c378441',\n NOTION_REFERRALS_DATABASE_ID: 'b5599d70-b414-4aa9-9ff2-d445c8f3f0fc',\n} as const satisfies Record<string, string>\n\nconst NOTION_IDS_MAP = {\n production: notionProductionChannels,\n staging: {\n ...notionProductionChannels,\n NOTION_KNOWLEDGE_BASE_DATABASE_ID: 'f95b9986-c1c9-46ca-a742-d49f3f80d7dd',\n },\n} as const satisfies Record<string, NotionIds>\n\nexport const getNotionIds = (\n appEnv?: string,\n processEnv?: Record<string, string>,\n): NotionIds => {\n const envIds: NotionIds =\n appEnv && appEnv in NOTION_IDS_MAP\n ? NOTION_IDS_MAP[appEnv as keyof typeof NOTION_IDS_MAP]\n : NOTION_IDS_MAP.staging\n\n // Override the values from ENV if available\n for (const key of Object.keys(envIds)) {\n if (processEnv?.[key]) {\n envIds[key as keyof NotionIds] = processEnv[key] as string\n }\n }\n\n return envIds\n}\n",
7
+ "import { getAppEnv } from './app-env'\nimport { getNotionIds, getSlackIds } from './base-configs'\n\nexport const augmentEnv = () => {\n const slackIds = getSlackIds(getAppEnv(), process.env)\n const notionIds = getNotionIds(getAppEnv())\n\n for (const [key, value] of Object.entries({ ...slackIds, ...notionIds })) {\n if (process.env[key]) {\n continue\n }\n\n process.env[key] = value\n }\n}\n"
8
+ ],
9
+ "mappings": "4BAAO,IAAM,EAAY,IAAM,CAC7B,GAAI,QAAQ,IAAI,QACd,OAAO,QAAQ,IAAI,QAIrB,GAAI,QAAQ,IAAI,QACd,OAAO,QAAQ,IAAI,QAKnB,MAAO,eCLX,IAAM,EAA0B,CAC9B,yBAA0B,cAC1B,8BAA+B,cAC/B,kBAAmB,cACnB,iBAAkB,YAClB,wBAAyB,YACzB,2BAA4B,cAC5B,kCAAmC,cACnC,qBAAsB,cACtB,uBAAwB,cACxB,wBAAyB,cACzB,iCAAkC,cAClC,sBAAuB,cACvB,gCAAiC,cACjC,sCAAuC,aACzC,EAEM,EAAiB,CAAC,KACrB,CACC,WAAY,EACZ,QAAS,OAAO,KAAK,CAAuB,EAAE,OAAO,CAAC,EAAK,IAAQ,CAEjE,OADA,EAAI,GAAyB,cACtB,GACN,CAAC,CAAa,EACjB,YAAa,OAAO,KAAK,CAAuB,EAAE,OAAO,CAAC,EAAK,IAAQ,CAGrE,OAFA,EAAI,GACF,GAAY,qBAAuB,cAC9B,GACN,CAAC,CAAa,CACnB,GAEW,EAAc,CACzB,EACA,IACa,CACb,IAAM,EAAc,EAAe,CAAU,EACvC,EACJ,GAAU,KAAU,EAChB,EAAY,GACZ,EAAY,QAGlB,QAAW,KAAO,OAAO,KAAK,CAAM,EAClC,GAAI,IAAa,GACf,EAAO,GAAyB,EAAW,GAI/C,OAAO,GAGH,EAA2B,CAC/B,2BAA4B,uCAC5B,2BAA4B,uCAC5B,uBAAwB,uCACxB,6BAA8B,uCAC9B,sBAAuB,uCACvB,wCACE,uCACF,kCAAmC,uCACnC,6BAA8B,sCAChC,EAEM,EAAiB,CACrB,WAAY,EACZ,QAAS,IACJ,EACH,kCAAmC,sCACrC,CACF,EAEa,EAAe,CAC1B,EACA,IACc,CACd,IAAM,EACJ,GAAU,KAAU,EAChB,EAAe,GACf,EAAe,QAGrB,QAAW,KAAO,OAAO,KAAK,CAAM,EAClC,GAAI,IAAa,GACf,EAAO,GAA0B,EAAW,GAIhD,OAAO,GC3FF,IAAM,EAAa,IAAM,CAC9B,IAAM,EAAW,EAAY,EAAU,EAAG,QAAQ,GAAG,EAC/C,EAAY,EAAa,EAAU,CAAC,EAE1C,QAAY,EAAK,KAAU,OAAO,QAAQ,IAAK,KAAa,CAAU,CAAC,EAAG,CACxE,GAAI,QAAQ,IAAI,GACd,SAGF,QAAQ,IAAI,GAAO",
10
+ "debugId": "C69569CEF99ABD9C64756E2164756E21",
11
+ "names": []
12
+ }
@@ -0,0 +1,35 @@
1
+ type SlackIds = {
2
+ -readonly [k in keyof typeof slackProductionChannels]: string;
3
+ };
4
+ type NotionIds = {
5
+ -readonly [k in keyof typeof notionProductionChannels]: string;
6
+ };
7
+ declare const slackProductionChannels: {
8
+ readonly SLACK_DEFAULT_CHANNEL_ID: "C0679V8KGSH";
9
+ readonly SLACK_RESERVATIONS_CHANNEL_ID: "C01G8B12G67";
10
+ readonly SLACK_FBC_CHANNEL: "C01L1AAKB3N";
11
+ readonly SLACK_BD_CHANNEL: "CN21PGKK8";
12
+ readonly SLACK_MAIN_FLUX_CHANNEL: "GHDPV1858";
13
+ readonly SLACK_INQUIRIES_CHANNEL_ID: "C067CSK5J5Q";
14
+ readonly SLACK_INVOICE_FAILURES_CHANNEL_ID: "C067CPUMB8T";
15
+ readonly SLACK_SST_CHANNEL_ID: "C068NH60A78";
16
+ readonly SLACK_ERROR_CHANNEL_ID: "C04N4Q7HA79";
17
+ readonly SLACK_ISSUES_CHANNEL_ID: "C0680P99AE8";
18
+ readonly SLACK_COMING_SERVICES_CHANNEL_ID: "C06SB20H2J1";
19
+ readonly SLACK_ESMS_CHANNEL_ID: "C07RPEP2BMY";
20
+ readonly SLACK_EXCESS_MILEAGE_CHANNEL_ID: "C0679URBY93";
21
+ readonly SLACK_ENGINEERING_REQUESTS_CHANNEL_ID: "C01U8GTK3K9";
22
+ };
23
+ export declare const getSlackIds: (appEnv?: string, processEnv?: Record<string, string | undefined>) => SlackIds;
24
+ declare const notionProductionChannels: {
25
+ readonly NOTION_REQUEST_DATABASE_ID: "32332c0e-4277-43fa-b10e-7d458234f9ea";
26
+ readonly NOTION_REVIEWS_DATABASE_ID: "8a8b0df9-567d-433f-8937-583db2766176";
27
+ readonly NOTION_FBC_DATABASE_ID: "76960d4b-2b43-4019-a77e-ac46a0b3d752";
28
+ readonly NOTION_FLUXSTERS_DATABASE_ID: "4ea6953a-61c2-4673-8950-c0d0e158de0a";
29
+ readonly NOTION_BD_DATABASE_ID: "172a9182-56c0-4358-b4f1-7e8fcfa44e46";
30
+ readonly NOTION_BRANDS_LANDING_PAGES_DATABASE_ID: "e321d71a-0d29-42da-ab0b-dca2260b643e";
31
+ readonly NOTION_KNOWLEDGE_BASE_DATABASE_ID: "7a81653f-4351-4a17-aa1e-c3082c378441";
32
+ readonly NOTION_REFERRALS_DATABASE_ID: "b5599d70-b414-4aa9-9ff2-d445c8f3f0fc";
33
+ };
34
+ export declare const getNotionIds: (appEnv?: string, processEnv?: Record<string, string>) => NotionIds;
35
+ export {};
@@ -0,0 +1,5 @@
1
+ import{createRequire as k}from"node:module";var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var l=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var m=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var o=k(import.meta.url);
2
+ export{l as c,m as d,o as e};
3
+
4
+ //# debugId=CFD90F239E730D9164756E2164756E21
5
+ //# sourceMappingURL=chunk-wy1gj9e4.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "CFD90F239E730D9164756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Dealing with env variables can be complicated. So we need to simplify the process
3
+ *
4
+ * Bun automatically loads a .env (or .env.[NODE_ENV]) file which will be detected
5
+ * here as system set env variables and dotenvx won't work properly with USE_ENV.
6
+ *
7
+ * The way to fix this behaviour is to know how to separate between env set from the shell
8
+ * and env loaded by bun.
9
+ *
10
+ * 1. Check the env loaded by bun according to its logic (load using NODE_ENV)
11
+ * 2. If USE_ENV !== NODE_ENV, load those variables
12
+ * 3. For each env loaded automatically by bun, we override the process env with the values from the loaded env.$USE_ENv files
13
+ */
14
+ export declare const initEnv: () => Promise<void>;