@townco/env 0.1.23 → 0.1.24
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/index.d.ts +4 -34
- package/dist/index.js +5 -17
- package/dist/schema.json +24 -0
- package/dist/update-schema.d.ts +2 -2
- package/dist/update-schema.js +6 -20
- package/package.json +5 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,35 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
AWS_SECRET_ACCESS_KEY: z.ZodString;
|
|
6
|
-
EXA_API_KEY: z.ZodString;
|
|
7
|
-
FLY_TOKEN: z.ZodString;
|
|
8
|
-
NEXT_PUBLIC_SITE_URL: z.ZodString;
|
|
9
|
-
NEXT_PUBLIC_SUPABASE_ANON_KEY: z.ZodString;
|
|
10
|
-
NEXT_PUBLIC_SUPABASE_URL: z.ZodString;
|
|
11
|
-
SUPABASE_ACCESS_TOKEN: z.ZodString;
|
|
12
|
-
SUPABASE_ANON_KEY: z.ZodString;
|
|
13
|
-
SUPABASE_DB_PASSWORD: z.ZodString;
|
|
14
|
-
SUPABASE_PROJECT_ID: z.ZodString;
|
|
15
|
-
SUPABASE_SRC_ARC_BUCKET: z.ZodString;
|
|
16
|
-
SUPABASE_URL: z.ZodString;
|
|
17
|
-
}, z.core.$strip>;
|
|
18
|
-
export type Env = z.infer<typeof envSchema>;
|
|
19
|
-
export declare const parseEnv: (env?: NodeJS.ProcessEnv) => {
|
|
20
|
-
ANTHROPIC_API_KEY: string;
|
|
21
|
-
AWS_ACCESS_KEY_ID: string;
|
|
22
|
-
AWS_SECRET_ACCESS_KEY: string;
|
|
23
|
-
EXA_API_KEY: string;
|
|
24
|
-
FLY_TOKEN: string;
|
|
25
|
-
NEXT_PUBLIC_SITE_URL: string;
|
|
26
|
-
NEXT_PUBLIC_SUPABASE_ANON_KEY: string;
|
|
27
|
-
NEXT_PUBLIC_SUPABASE_URL: string;
|
|
28
|
-
SUPABASE_ACCESS_TOKEN: string;
|
|
29
|
-
SUPABASE_ANON_KEY: string;
|
|
30
|
-
SUPABASE_DB_PASSWORD: string;
|
|
31
|
-
SUPABASE_PROJECT_ID: string;
|
|
32
|
-
SUPABASE_SRC_ARC_BUCKET: string;
|
|
33
|
-
SUPABASE_URL: string;
|
|
34
|
-
};
|
|
1
|
+
import envKeys from "./schema.json";
|
|
2
|
+
export type EnvKey = keyof typeof envKeys;
|
|
3
|
+
export declare const parseEnvFromSrc: (src?: typeof process.env) => <T extends EnvKey[]>(...keys: T) => { [K in T[number]]: string; };
|
|
4
|
+
export declare const parseEnv: <T extends EnvKey[]>(...keys: T) => { [K in T[number]]: string; };
|
|
35
5
|
export { EnvFile } from "./env-file";
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
FLY_TOKEN: z.string().min(1),
|
|
8
|
-
NEXT_PUBLIC_SITE_URL: z.string().min(1),
|
|
9
|
-
NEXT_PUBLIC_SUPABASE_ANON_KEY: z.string().min(1),
|
|
10
|
-
NEXT_PUBLIC_SUPABASE_URL: z.string().min(1),
|
|
11
|
-
SUPABASE_ACCESS_TOKEN: z.string().min(1),
|
|
12
|
-
SUPABASE_ANON_KEY: z.string().min(1),
|
|
13
|
-
SUPABASE_DB_PASSWORD: z.string().min(1),
|
|
14
|
-
SUPABASE_PROJECT_ID: z.string().min(1),
|
|
15
|
-
SUPABASE_SRC_ARC_BUCKET: z.string().min(1),
|
|
16
|
-
SUPABASE_URL: z.string().min(1),
|
|
17
|
-
});
|
|
18
|
-
export const parseEnv = (env = process.env) => envSchema.parse(env);
|
|
2
|
+
import envKeys from "./schema.json" with { type: "json" };
|
|
3
|
+
export const parseEnvFromSrc = (src = process.env) => (...keys) => z
|
|
4
|
+
.object(keys.reduce((acc, key) => ({ ...acc, [key]: z.string().min(1) }), {}))
|
|
5
|
+
.parse(src);
|
|
6
|
+
export const parseEnv = parseEnvFromSrc();
|
|
19
7
|
export { EnvFile } from "./env-file";
|
package/dist/schema.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ANTHROPIC_API_KEY": null,
|
|
3
|
+
"AWS_ACCESS_KEY_ID": null,
|
|
4
|
+
"AWS_BUCKET": null,
|
|
5
|
+
"AWS_ENDPOINT": null,
|
|
6
|
+
"AWS_REGION": null,
|
|
7
|
+
"AWS_SECRET_ACCESS_KEY": null,
|
|
8
|
+
"BIBLIOTECHA_URL": null,
|
|
9
|
+
"EXA_API_KEY": null,
|
|
10
|
+
"FLY_ORG_SLUG": null,
|
|
11
|
+
"FLY_TOKEN": null,
|
|
12
|
+
"MCP_PROXY_URL": null,
|
|
13
|
+
"NEXT_PUBLIC_SITE_URL": null,
|
|
14
|
+
"NEXT_PUBLIC_SUPABASE_ANON_KEY": null,
|
|
15
|
+
"NEXT_PUBLIC_SUPABASE_URL": null,
|
|
16
|
+
"OPENAI_API_KEY": null,
|
|
17
|
+
"SUPABASE_ACCESS_TOKEN": null,
|
|
18
|
+
"SUPABASE_ANON_KEY": null,
|
|
19
|
+
"SUPABASE_DB_PASSWORD": null,
|
|
20
|
+
"SUPABASE_PROJECT_ID": null,
|
|
21
|
+
"SUPABASE_SECRET_KEY": null,
|
|
22
|
+
"SUPABASE_SRC_ARC_BUCKET": null,
|
|
23
|
+
"SUPABASE_URL": null
|
|
24
|
+
}
|
package/dist/update-schema.d.ts
CHANGED
package/dist/update-schema.js
CHANGED
|
@@ -1,31 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { Biome } from "@biomejs/js-api/nodejs";
|
|
4
3
|
import { findRoot } from "@townco/core";
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const envFile = opts.envFile ?? path.join(await findRoot(), ".env.in");
|
|
9
|
-
const root = await findRoot();
|
|
10
|
-
const keys = (await Bun.file(envFile).text())
|
|
4
|
+
const envKeysFile = path.join("src", "schema.json");
|
|
5
|
+
export const updateSchema = async ({ filePath = envKeysFile, ...opts } = {}) => {
|
|
6
|
+
const keys = (await Bun.file(opts.envFile ?? path.join(await findRoot(), ".env.in")).text())
|
|
11
7
|
.split("\n")
|
|
12
8
|
.filter((line) => line.match(/^[A-Z_]+\=/))
|
|
13
9
|
.map((line) => line.split("=")[0])
|
|
14
10
|
.filter((k) => Boolean(k))
|
|
15
11
|
.sort();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.getInitializerIfKindOrThrow(SyntaxKind.CallExpression)
|
|
20
|
-
.getArguments()[0]
|
|
21
|
-
?.asKindOrThrow(SyntaxKind.ObjectLiteralExpression);
|
|
22
|
-
obj?.getProperties().forEach((p) => p.remove());
|
|
23
|
-
obj?.addPropertyAssignments(keys.map((name) => ({ name, initializer: "z.string().min(1)" })));
|
|
24
|
-
const biome = new Biome();
|
|
25
|
-
src.replaceWithText(biome.formatContent(biome.openProject(root).projectKey, src.getFullText(), {
|
|
26
|
-
filePath: src.getFilePath(),
|
|
27
|
-
}).content);
|
|
28
|
-
await src.save();
|
|
12
|
+
await Bun.write(filePath, Bun.spawnSync(["biome", "format", "--stdin-file-path", filePath], {
|
|
13
|
+
stdin: Buffer.from(JSON.stringify(keys.reduce((acc, key) => ({ ...acc, [key]: null }), {}))),
|
|
14
|
+
}).stdout.toString());
|
|
29
15
|
};
|
|
30
16
|
if (import.meta.main)
|
|
31
17
|
await updateSchema();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@townco/env",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.24",
|
|
5
5
|
"description": "env",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@
|
|
24
|
+
"@biomejs/biome": "^2.3.8",
|
|
25
|
+
"@townco/core": "0.0.52",
|
|
26
|
+
"@townco/tsconfig": "0.1.71",
|
|
25
27
|
"typescript": "^5.9.3"
|
|
26
28
|
},
|
|
27
29
|
"scripts": {
|
|
@@ -30,10 +32,7 @@
|
|
|
30
32
|
"schema:update": "bun src/update-schema"
|
|
31
33
|
},
|
|
32
34
|
"dependencies": {
|
|
33
|
-
"@
|
|
34
|
-
"@biomejs/wasm-nodejs": "^2.3.7",
|
|
35
|
-
"@townco/core": "0.0.51",
|
|
36
|
-
"ts-morph": "^27.0.2",
|
|
35
|
+
"@townco/core": "0.0.52",
|
|
37
36
|
"zod": "^4.1.13"
|
|
38
37
|
}
|
|
39
38
|
}
|