@arkenv/vite-plugin 0.0.18 → 0.0.19

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/README.md CHANGED
@@ -57,9 +57,9 @@ bun add @arkenv/vite-plugin arktype
57
57
 
58
58
  This plugin uses [the Vite specific `config` hook](https://vite.dev/guide/api-plugin.html#config), which is not available in Rollup.
59
59
 
60
- ## Playground
60
+ ## Examples
61
61
 
62
- * [vite-playground](https://github.com/yamcodes/arkenv/tree/main/apps/playgrounds/vite)
62
+ * [with-vite-react-ts](https://github.com/yamcodes/arkenv/tree/main/examples/with-vite-react-ts)
63
63
 
64
64
  ## Related
65
65
 
package/dist/index.d.cts CHANGED
@@ -1,116 +1,75 @@
1
- /**
2
- * Augment the `import.meta.env` object with typesafe environment variables
3
- * based on the schema validator.
4
- *
5
- * This type extracts the inferred type from the schema (result of `type()` from arkenv),
6
- * filters it to only include variables matching the Vite prefix (defaults to "VITE_"),
7
- * and makes them available on `import.meta.env`.
8
- *
9
- * @template TSchema - The environment variable schema (result of `type()` from arkenv)
10
- * @template Prefix - The prefix to filter by (defaults to "VITE_")
11
- *
12
- * @example
13
- * ```ts
14
- * // vite.config.ts
15
- * import arkenv from '@arkenv/vite-plugin';
16
- * import { type } from 'arkenv';
17
- *
18
- * export const Env = type({
19
- * VITE_API_URL: 'string',
20
- * VITE_API_KEY: 'string',
21
- * PORT: 'number.port', // Server-only, won't be in ImportMetaEnvAugmented
22
- * });
23
- *
24
- * export default defineConfig({
25
- * plugins: [arkenv(Env)],
26
- * });
27
- * ```
28
- *
29
- * @example
30
- * ```ts
31
- * // src/vite-env.d.ts
32
- * /// <reference types="vite/client" />
33
- *
34
- * import type { ImportMetaEnvAugmented } from '@arkenv/vite-plugin';
35
- * import type { Env } from './env'; // or from vite.config.ts
36
- *
37
- * interface ImportMetaEnv extends ImportMetaEnvAugmented<typeof Env> {}
38
- * ```
39
- *
40
- * @see {@link https://github.com/Julien-R44/vite-plugin-validate-env#typing-importmetaenv | Original implementation by Julien-R44}
41
- */import * as arktype16 from "arktype";
42
- import { type } from "arktype";
43
- import * as arktype_internal_keywords_string_ts10 from "arktype/internal/keywords/string.ts";
44
- import * as arktype_internal_attributes_ts5 from "arktype/internal/attributes.ts";
1
+ import * as arktype0 from "arktype";
2
+ import { Type, type } from "arktype";
3
+ import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
4
+ import * as arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
5
+ import * as arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
45
6
  import { Plugin } from "vite";
46
7
 
47
- //#region ../arkenv/dist/index.d.ts
48
-
49
- //#endregion
50
- //#region src/scope.d.ts
8
+ //#region ../internal/scope/dist/index.d.ts
9
+ //#region src/index.d.ts
51
10
  /**
52
11
  * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.
53
12
  */
54
- declare const $: arktype16.Scope<{
55
- string: arktype16.Submodule<{
56
- trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {
57
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
13
+ declare const $$1: arktype0.Scope<{
14
+ string: arktype0.Submodule<{
15
+ trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
16
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
58
17
  }>;
59
- normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {
60
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
18
+ normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
19
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
61
20
  }>;
62
21
  root: string;
63
22
  alpha: string;
64
23
  alphanumeric: string;
65
24
  hex: string;
66
- base64: arktype16.Submodule<{
25
+ base64: arktype0.Submodule<{
67
26
  root: string;
68
27
  url: string;
69
28
  } & {
70
29
  " arkInferred": string;
71
30
  }>;
72
- capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {
73
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
31
+ capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
32
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
74
33
  }>;
75
34
  creditCard: string;
76
- date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {
35
+ date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
77
36
  " arkInferred": string;
78
37
  }>;
79
38
  digits: string;
80
39
  email: string;
81
- integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {
40
+ integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
82
41
  " arkInferred": string;
83
42
  }>;
84
- ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {
43
+ ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
85
44
  " arkInferred": string;
86
45
  }>;
87
- json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {
46
+ json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
88
47
  " arkInferred": string;
89
48
  }>;
90
- lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {
91
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
49
+ lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
50
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
92
51
  }>;
93
- numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {
52
+ numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
94
53
  " arkInferred": string;
95
54
  }>;
96
55
  regex: string;
97
56
  semver: string;
98
- upper: arktype16.Submodule<{
99
- root: (In: string) => arktype_internal_attributes_ts5.To<string>;
57
+ upper: arktype0.Submodule<{
58
+ root: (In: string) => arktype_internal_attributes_ts0.To<string>;
100
59
  preformatted: string;
101
60
  } & {
102
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
61
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
103
62
  }>;
104
- url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {
63
+ url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
105
64
  " arkInferred": string;
106
65
  }>;
107
- uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {
66
+ uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
108
67
  " arkInferred": string;
109
68
  }>;
110
69
  " arkInferred": string;
111
70
  host: string;
112
71
  }>;
113
- number: arktype16.Submodule<{
72
+ number: arktype0.Submodule<{
114
73
  NaN: number;
115
74
  Infinity: number;
116
75
  root: number;
@@ -119,25 +78,98 @@ declare const $: arktype16.Scope<{
119
78
  epoch: number;
120
79
  safe: number;
121
80
  NegativeInfinity: number;
122
- port: (In: string) => arktype16.Out<number>;
81
+ port: (In: string) => arktype0.Out<number>;
123
82
  }>;
124
- boolean: (In: boolean | "false" | "true") => arktype16.Out<boolean>;
83
+ boolean: (In: boolean | "false" | "true") => arktype0.Out<boolean>;
125
84
  }>;
126
85
  //#endregion
127
- //#region src/create-env.d.ts
128
-
129
- type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
130
- /**
131
- * TODO: If possible, find a better type than "const T extends Record<string, unknown>",
132
- * and be as close as possible to the type accepted by ArkType's `type`.
133
- */
86
+ //#endregion
87
+ //#region ../internal/types/dist/schema.d.ts
88
+ declare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{
89
+ [x: string]: unknown;
90
+ }, {}>;
91
+ type SchemaShape = typeof SchemaShape.infer;
92
+ type EnvSchemaWithType = Type<SchemaShape, (typeof $$1)["t"]>;
93
+ //#endregion
94
+ //#region ../arkenv/dist/index.d.ts
95
+ //#region ../internal/scope/dist/index.d.ts
96
+ //#region src/index.d.ts
134
97
  /**
135
- * Create an environment variables object from a schema and an environment
136
- * @param def - The environment variable schema (raw object or type definition created with `type()`)
137
- * @param env - The environment variables to validate, defaults to `process.env`
138
- * @returns The validated environment variable schema
139
- * @throws An {@link ArkEnvError | error} if the environment variables are invalid.
98
+ * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.
140
99
  */
100
+ declare const $: arktype0.Scope<{
101
+ string: arktype0.Submodule<{
102
+ trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
103
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
104
+ }>;
105
+ normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
106
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
107
+ }>;
108
+ root: string;
109
+ alpha: string;
110
+ alphanumeric: string;
111
+ hex: string;
112
+ base64: arktype0.Submodule<{
113
+ root: string;
114
+ url: string;
115
+ } & {
116
+ " arkInferred": string;
117
+ }>;
118
+ capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
119
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
120
+ }>;
121
+ creditCard: string;
122
+ date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
123
+ " arkInferred": string;
124
+ }>;
125
+ digits: string;
126
+ email: string;
127
+ integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
128
+ " arkInferred": string;
129
+ }>;
130
+ ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
131
+ " arkInferred": string;
132
+ }>;
133
+ json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
134
+ " arkInferred": string;
135
+ }>;
136
+ lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
137
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
138
+ }>;
139
+ numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
140
+ " arkInferred": string;
141
+ }>;
142
+ regex: string;
143
+ semver: string;
144
+ upper: arktype0.Submodule<{
145
+ root: (In: string) => arktype_internal_attributes_ts0.To<string>;
146
+ preformatted: string;
147
+ } & {
148
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
149
+ }>;
150
+ url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
151
+ " arkInferred": string;
152
+ }>;
153
+ uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
154
+ " arkInferred": string;
155
+ }>;
156
+ " arkInferred": string;
157
+ host: string;
158
+ }>;
159
+ number: arktype0.Submodule<{
160
+ NaN: number;
161
+ Infinity: number;
162
+ root: number;
163
+ integer: number;
164
+ " arkInferred": number;
165
+ epoch: number;
166
+ safe: number;
167
+ NegativeInfinity: number;
168
+ port: (In: string) => arktype0.Out<number>;
169
+ }>;
170
+ boolean: (In: boolean | "false" | "true") => arktype0.Out<boolean>;
171
+ }>;
172
+ //#endregion
141
173
  //#endregion
142
174
  //#region ../internal/types/dist/infer-type.d.ts
143
175
  /**
@@ -146,19 +178,20 @@ type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
146
178
  *
147
179
  * @template T - The ArkType type definition to infer from
148
180
  */
149
- type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;
181
+
150
182
  //#endregion
151
- //#region src/types.d.ts
152
- /**
153
- * Filter environment variables to only include those that start with the given prefix.
154
- * This ensures only client-exposed variables (e.g., VITE_*) are included in import.meta.env.
155
- */
156
- type FilterByPrefix<T extends Record<string, unknown>, Prefix extends string = "VITE_"> = { [K in keyof T as K extends `${Prefix}${string}` ? K : never]: T[K] };
157
- type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "VITE_"> = FilterByPrefix<InferType<TSchema>, Prefix>;
183
+ //#region src/create-env.d.ts
184
+ type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
158
185
  //#endregion
159
186
  //#region src/index.d.ts
160
187
  /**
161
- * TODO: If possible, find a better type than "const T extends Record<string, unknown>",
188
+ * Extract the inferred type from an ArkType type definition by checking its call signature.
189
+ * When a type definition is called, it returns either the validated value or type.errors.
190
+ */
191
+ type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;
192
+ type ImportMetaEnvAugmented<T> = InferType<T>;
193
+ /**
194
+ * TODO: If possible, find a better type than "const T extends SchemaShape",
162
195
  * and be as close as possible to the type accepted by ArkType's `type`.
163
196
  */
164
197
  /**
@@ -169,7 +202,7 @@ type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "V
169
202
  * Only environment variables matching the prefix are exposed to client code via `import.meta.env.*`.
170
203
  *
171
204
  * @param options - The environment variable schema definition. Can be an `EnvSchema` object
172
- * for typesafe validation or an ArkType `type.Any` for dynamic schemas.
205
+ * for typesafe validation or an ArkType `EnvSchemaWithType` for dynamic schemas.
173
206
  * @returns A Vite plugin that validates environment variables and exposes them to the client.
174
207
  *
175
208
  * @example
@@ -191,11 +224,11 @@ type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "V
191
224
  * @example
192
225
  * ```ts
193
226
  * // In your client code
194
- * console.log(import.meta.env.VITE_API_URL); // Type-safe access
227
+ * console.log(import.meta.env.VITE_API_URL); // Typesafe access
195
228
  * ```
196
229
  */
197
- declare function arkenv<const T extends Record<string, unknown>>(options: EnvSchema<T>): Plugin;
198
- declare function arkenv(options: type.Any): Plugin;
230
+ declare function arkenv(options: EnvSchemaWithType): Plugin;
231
+ declare function arkenv<const T extends SchemaShape>(options: EnvSchema<T>): Plugin;
199
232
  //#endregion
200
- export { type ImportMetaEnvAugmented, arkenv as default };
233
+ export { ImportMetaEnvAugmented, arkenv as default };
201
234
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":["arktype16","ArkErrors","distill","type","type$1","arktype_internal_keywords_string_ts10","arktype_internal_attributes_ts5","arktype_internal_type_ts0","InferType","T","Record","R","errors","Any","U","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","RuntimeEnvironment","EnvSchema","def$1","validate","createEnv","infer","def","TypeParser","ArkEnvError","Error","arkenv","default","type","InferType","T","Record","R","errors","Any","U"],"sources":["../../arkenv/dist/index.d.ts","../../internal/types/dist/infer-type.d.ts","../src/types.ts","../src/index.ts"],"sourcesContent":["import * as arktype16 from \"arktype\";\nimport { ArkErrors, distill, type as type$1 } from \"arktype\";\nimport * as arktype_internal_keywords_string_ts10 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts5 from \"arktype/internal/attributes.ts\";\nimport * as arktype_internal_type_ts0 from \"arktype/internal/type.ts\";\n\n//#region ../internal/types/dist/infer-type.d.ts\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\ntype InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;\n//#endregion\n//#region src/scope.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype16.Scope<{\n string: arktype16.Submodule<{\n trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype16.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n creditCard: string;\n date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype16.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts5.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype16.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype16.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype16.Out<boolean>;\n}>;\n//#endregion\n//#region src/create-env.d.ts\ntype RuntimeEnvironment = Record<string, string | undefined>;\ntype EnvSchema<def$1> = type$1.validate<def$1, (typeof $)[\"t\"]>;\n/**\n * TODO: If possible, find a better type than \"const T extends Record<string, unknown>\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n/**\n * Create an environment variables object from a schema and an environment\n * @param def - The environment variable schema (raw object or type definition created with `type()`)\n * @param env - The environment variables to validate, defaults to `process.env`\n * @returns The validated environment variable schema\n * @throws An {@link ArkEnvError | error} if the environment variables are invalid.\n */\ndeclare function createEnv<const T extends Record<string, unknown>>(def: EnvSchema<T>, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>>;\ndeclare function createEnv<T extends type$1.Any>(def: T, env?: RuntimeEnvironment): InferType<T>;\ndeclare function createEnv<const T extends Record<string, unknown>>(def: EnvSchema<T> | type$1.Any, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>> | InferType<typeof def>;\n//#endregion\n//#region src/type.d.ts\ndeclare const type: arktype_internal_type_ts0.TypeParser<{\n string: arktype16.Submodule<{\n trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype16.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n creditCard: string;\n date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype16.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts5.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype16.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype16.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype16.Out<boolean>;\n}>;\n//#endregion\n//#region src/errors.d.ts\ndeclare class ArkEnvError extends Error {\n constructor(errors: ArkErrors, message?: string);\n}\n//#endregion\n//#region src/index.d.ts\n/**\n * `arkenv`'s main export, an alias for {@link createEnv}\n *\n * {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables parser powered by {@link https://arktype.io | ArkType}, TypeScript's 1:1 validator.\n */\ndeclare const arkenv: typeof createEnv;\n//#endregion\nexport { ArkEnvError, type EnvSchema, createEnv, arkenv as default, type };\n//# sourceMappingURL=index.d.ts.map","import type { type } from \"arktype\";\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\nexport type InferType<T> = T extends (value: Record<string, string | undefined>) => infer R ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;\n//# sourceMappingURL=infer-type.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":["arktype0","arktype_internal_keywords_string_ts0","arktype_internal_attributes_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","$","Type","SchemaShape","arktype_internal_variants_object_ts0","ObjectType","infer","EnvSchemaWithType","arktype0","ArkErrors","Type","distill","type","type$1","arktype_internal_keywords_string_ts0","arktype_internal_attributes_ts0","arktype_internal_variants_object_ts0","arktype_internal_type_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","InferType","T","Record","R","errors","Any","U","SchemaShape","ObjectType","infer","EnvSchemaWithType","EnvSchema","def$1","validate","RuntimeEnvironment","createEnv","def","TypeParser","ArkEnvError","Error","arkenv","default"],"sources":["../../internal/scope/dist/index.d.ts","../../internal/types/dist/schema.d.ts","../../arkenv/dist/index.d.ts","../src/index.ts"],"sourcesContent":["import * as arktype0 from \"arktype\";\nimport * as arktype_internal_keywords_string_ts0 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts0 from \"arktype/internal/attributes.ts\";\n\n//#region src/index.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype0.Scope<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\nexport { $ };\n//# sourceMappingURL=index.d.ts.map","import type { $ } from \"@repo/scope\";\nimport { type Type } from \"arktype\";\nexport declare const SchemaShape: import(\"arktype/internal/variants/object.ts\").ObjectType<{\n [x: string]: unknown;\n}, {}>;\nexport type SchemaShape = typeof SchemaShape.infer;\nexport type EnvSchemaWithType = Type<SchemaShape, (typeof $)[\"t\"]>;\n//# sourceMappingURL=schema.d.ts.map","import * as arktype0 from \"arktype\";\nimport { ArkErrors, Type, distill, type as type$1 } from \"arktype\";\nimport * as arktype_internal_keywords_string_ts0 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts0 from \"arktype/internal/attributes.ts\";\nimport * as arktype_internal_variants_object_ts0 from \"arktype/internal/variants/object.ts\";\nimport * as arktype_internal_type_ts0 from \"arktype/internal/type.ts\";\n\n//#region ../internal/scope/dist/index.d.ts\n//#region src/index.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype0.Scope<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\n//#endregion\n//#region ../internal/types/dist/infer-type.d.ts\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\ntype InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;\n//#endregion\n//#region ../internal/types/dist/schema.d.ts\ndeclare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{\n [x: string]: unknown;\n}, {}>;\ntype SchemaShape = typeof SchemaShape.infer;\ntype EnvSchemaWithType = Type<SchemaShape, (typeof $)[\"t\"]>;\n//#endregion\n//#region src/create-env.d.ts\ntype EnvSchema<def$1> = type$1.validate<def$1, (typeof $)[\"t\"]>;\ntype RuntimeEnvironment = Record<string, string | undefined>;\n/**\n * TODO: `SchemaShape` is basically `Record<string, unknown>`.\n * If possible, find a better type than \"const T extends Record<string, unknown>\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n/**\n * Create an environment variables object from a schema and an environment\n * @param def - The environment variable schema (raw object or type definition created with `type()`)\n * @param env - The environment variables to validate, defaults to `process.env`\n * @returns The validated environment variable schema\n * @throws An {@link ArkEnvError | error} if the environment variables are invalid.\n */\ndeclare function createEnv<T extends EnvSchemaWithType>(def: T, env?: RuntimeEnvironment): InferType<T>;\ndeclare function createEnv<const T extends SchemaShape>(def: EnvSchema<T>, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>>;\ndeclare function createEnv<const T extends SchemaShape>(def: EnvSchema<T> | EnvSchemaWithType, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>> | InferType<typeof def>;\n//#endregion\n//#region src/type.d.ts\ndeclare const type: arktype_internal_type_ts0.TypeParser<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\n//#region src/errors.d.ts\ndeclare class ArkEnvError extends Error {\n constructor(errors: ArkErrors, message?: string);\n}\n//#endregion\n//#region src/index.d.ts\n/**\n * `arkenv`'s main export, an alias for {@link createEnv}\n *\n * {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables parser powered by {@link https://arktype.io | ArkType}, TypeScript's 1:1 validator.\n */\ndeclare const arkenv: typeof createEnv;\n//#endregion\nexport { ArkEnvError, type EnvSchema, createEnv, arkenv as default, type };\n//# sourceMappingURL=index.d.ts.map"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,116 +1,75 @@
1
- /**
2
- * Augment the `import.meta.env` object with typesafe environment variables
3
- * based on the schema validator.
4
- *
5
- * This type extracts the inferred type from the schema (result of `type()` from arkenv),
6
- * filters it to only include variables matching the Vite prefix (defaults to "VITE_"),
7
- * and makes them available on `import.meta.env`.
8
- *
9
- * @template TSchema - The environment variable schema (result of `type()` from arkenv)
10
- * @template Prefix - The prefix to filter by (defaults to "VITE_")
11
- *
12
- * @example
13
- * ```ts
14
- * // vite.config.ts
15
- * import arkenv from '@arkenv/vite-plugin';
16
- * import { type } from 'arkenv';
17
- *
18
- * export const Env = type({
19
- * VITE_API_URL: 'string',
20
- * VITE_API_KEY: 'string',
21
- * PORT: 'number.port', // Server-only, won't be in ImportMetaEnvAugmented
22
- * });
23
- *
24
- * export default defineConfig({
25
- * plugins: [arkenv(Env)],
26
- * });
27
- * ```
28
- *
29
- * @example
30
- * ```ts
31
- * // src/vite-env.d.ts
32
- * /// <reference types="vite/client" />
33
- *
34
- * import type { ImportMetaEnvAugmented } from '@arkenv/vite-plugin';
35
- * import type { Env } from './env'; // or from vite.config.ts
36
- *
37
- * interface ImportMetaEnv extends ImportMetaEnvAugmented<typeof Env> {}
38
- * ```
39
- *
40
- * @see {@link https://github.com/Julien-R44/vite-plugin-validate-env#typing-importmetaenv | Original implementation by Julien-R44}
41
- */import { Plugin } from "vite";
42
- import * as arktype16 from "arktype";
43
- import { type } from "arktype";
44
- import * as arktype_internal_keywords_string_ts10 from "arktype/internal/keywords/string.ts";
45
- import * as arktype_internal_attributes_ts5 from "arktype/internal/attributes.ts";
1
+ import { Plugin } from "vite";
2
+ import * as arktype0 from "arktype";
3
+ import { Type, type } from "arktype";
4
+ import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
5
+ import * as arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
6
+ import * as arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
46
7
 
47
- //#region ../arkenv/dist/index.d.ts
48
-
49
- //#endregion
50
- //#region src/scope.d.ts
8
+ //#region ../internal/scope/dist/index.d.ts
9
+ //#region src/index.d.ts
51
10
  /**
52
11
  * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.
53
12
  */
54
- declare const $: arktype16.Scope<{
55
- string: arktype16.Submodule<{
56
- trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {
57
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
13
+ declare const $$1: arktype0.Scope<{
14
+ string: arktype0.Submodule<{
15
+ trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
16
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
58
17
  }>;
59
- normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {
60
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
18
+ normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
19
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
61
20
  }>;
62
21
  root: string;
63
22
  alpha: string;
64
23
  alphanumeric: string;
65
24
  hex: string;
66
- base64: arktype16.Submodule<{
25
+ base64: arktype0.Submodule<{
67
26
  root: string;
68
27
  url: string;
69
28
  } & {
70
29
  " arkInferred": string;
71
30
  }>;
72
- capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {
73
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
31
+ capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
32
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
74
33
  }>;
75
34
  creditCard: string;
76
- date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {
35
+ date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
77
36
  " arkInferred": string;
78
37
  }>;
79
38
  digits: string;
80
39
  email: string;
81
- integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {
40
+ integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
82
41
  " arkInferred": string;
83
42
  }>;
84
- ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {
43
+ ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
85
44
  " arkInferred": string;
86
45
  }>;
87
- json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {
46
+ json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
88
47
  " arkInferred": string;
89
48
  }>;
90
- lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {
91
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
49
+ lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
50
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
92
51
  }>;
93
- numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {
52
+ numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
94
53
  " arkInferred": string;
95
54
  }>;
96
55
  regex: string;
97
56
  semver: string;
98
- upper: arktype16.Submodule<{
99
- root: (In: string) => arktype_internal_attributes_ts5.To<string>;
57
+ upper: arktype0.Submodule<{
58
+ root: (In: string) => arktype_internal_attributes_ts0.To<string>;
100
59
  preformatted: string;
101
60
  } & {
102
- " arkInferred": (In: string) => arktype_internal_attributes_ts5.To<string>;
61
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
103
62
  }>;
104
- url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {
63
+ url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
105
64
  " arkInferred": string;
106
65
  }>;
107
- uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {
66
+ uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
108
67
  " arkInferred": string;
109
68
  }>;
110
69
  " arkInferred": string;
111
70
  host: string;
112
71
  }>;
113
- number: arktype16.Submodule<{
72
+ number: arktype0.Submodule<{
114
73
  NaN: number;
115
74
  Infinity: number;
116
75
  root: number;
@@ -119,25 +78,98 @@ declare const $: arktype16.Scope<{
119
78
  epoch: number;
120
79
  safe: number;
121
80
  NegativeInfinity: number;
122
- port: (In: string) => arktype16.Out<number>;
81
+ port: (In: string) => arktype0.Out<number>;
123
82
  }>;
124
- boolean: (In: boolean | "false" | "true") => arktype16.Out<boolean>;
83
+ boolean: (In: boolean | "false" | "true") => arktype0.Out<boolean>;
125
84
  }>;
126
85
  //#endregion
127
- //#region src/create-env.d.ts
128
-
129
- type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
130
- /**
131
- * TODO: If possible, find a better type than "const T extends Record<string, unknown>",
132
- * and be as close as possible to the type accepted by ArkType's `type`.
133
- */
86
+ //#endregion
87
+ //#region ../internal/types/dist/schema.d.ts
88
+ declare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{
89
+ [x: string]: unknown;
90
+ }, {}>;
91
+ type SchemaShape = typeof SchemaShape.infer;
92
+ type EnvSchemaWithType = Type<SchemaShape, (typeof $$1)["t"]>;
93
+ //#endregion
94
+ //#region ../arkenv/dist/index.d.ts
95
+ //#region ../internal/scope/dist/index.d.ts
96
+ //#region src/index.d.ts
134
97
  /**
135
- * Create an environment variables object from a schema and an environment
136
- * @param def - The environment variable schema (raw object or type definition created with `type()`)
137
- * @param env - The environment variables to validate, defaults to `process.env`
138
- * @returns The validated environment variable schema
139
- * @throws An {@link ArkEnvError | error} if the environment variables are invalid.
98
+ * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.
140
99
  */
100
+ declare const $: arktype0.Scope<{
101
+ string: arktype0.Submodule<{
102
+ trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
103
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
104
+ }>;
105
+ normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
106
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
107
+ }>;
108
+ root: string;
109
+ alpha: string;
110
+ alphanumeric: string;
111
+ hex: string;
112
+ base64: arktype0.Submodule<{
113
+ root: string;
114
+ url: string;
115
+ } & {
116
+ " arkInferred": string;
117
+ }>;
118
+ capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
119
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
120
+ }>;
121
+ creditCard: string;
122
+ date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
123
+ " arkInferred": string;
124
+ }>;
125
+ digits: string;
126
+ email: string;
127
+ integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
128
+ " arkInferred": string;
129
+ }>;
130
+ ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
131
+ " arkInferred": string;
132
+ }>;
133
+ json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
134
+ " arkInferred": string;
135
+ }>;
136
+ lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
137
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
138
+ }>;
139
+ numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
140
+ " arkInferred": string;
141
+ }>;
142
+ regex: string;
143
+ semver: string;
144
+ upper: arktype0.Submodule<{
145
+ root: (In: string) => arktype_internal_attributes_ts0.To<string>;
146
+ preformatted: string;
147
+ } & {
148
+ " arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
149
+ }>;
150
+ url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
151
+ " arkInferred": string;
152
+ }>;
153
+ uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
154
+ " arkInferred": string;
155
+ }>;
156
+ " arkInferred": string;
157
+ host: string;
158
+ }>;
159
+ number: arktype0.Submodule<{
160
+ NaN: number;
161
+ Infinity: number;
162
+ root: number;
163
+ integer: number;
164
+ " arkInferred": number;
165
+ epoch: number;
166
+ safe: number;
167
+ NegativeInfinity: number;
168
+ port: (In: string) => arktype0.Out<number>;
169
+ }>;
170
+ boolean: (In: boolean | "false" | "true") => arktype0.Out<boolean>;
171
+ }>;
172
+ //#endregion
141
173
  //#endregion
142
174
  //#region ../internal/types/dist/infer-type.d.ts
143
175
  /**
@@ -146,19 +178,20 @@ type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
146
178
  *
147
179
  * @template T - The ArkType type definition to infer from
148
180
  */
149
- type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;
181
+
150
182
  //#endregion
151
- //#region src/types.d.ts
152
- /**
153
- * Filter environment variables to only include those that start with the given prefix.
154
- * This ensures only client-exposed variables (e.g., VITE_*) are included in import.meta.env.
155
- */
156
- type FilterByPrefix<T extends Record<string, unknown>, Prefix extends string = "VITE_"> = { [K in keyof T as K extends `${Prefix}${string}` ? K : never]: T[K] };
157
- type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "VITE_"> = FilterByPrefix<InferType<TSchema>, Prefix>;
183
+ //#region src/create-env.d.ts
184
+ type EnvSchema<def$1> = type.validate<def$1, (typeof $)["t"]>;
158
185
  //#endregion
159
186
  //#region src/index.d.ts
160
187
  /**
161
- * TODO: If possible, find a better type than "const T extends Record<string, unknown>",
188
+ * Extract the inferred type from an ArkType type definition by checking its call signature.
189
+ * When a type definition is called, it returns either the validated value or type.errors.
190
+ */
191
+ type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;
192
+ type ImportMetaEnvAugmented<T> = InferType<T>;
193
+ /**
194
+ * TODO: If possible, find a better type than "const T extends SchemaShape",
162
195
  * and be as close as possible to the type accepted by ArkType's `type`.
163
196
  */
164
197
  /**
@@ -169,7 +202,7 @@ type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "V
169
202
  * Only environment variables matching the prefix are exposed to client code via `import.meta.env.*`.
170
203
  *
171
204
  * @param options - The environment variable schema definition. Can be an `EnvSchema` object
172
- * for typesafe validation or an ArkType `type.Any` for dynamic schemas.
205
+ * for typesafe validation or an ArkType `EnvSchemaWithType` for dynamic schemas.
173
206
  * @returns A Vite plugin that validates environment variables and exposes them to the client.
174
207
  *
175
208
  * @example
@@ -191,11 +224,11 @@ type ImportMetaEnvAugmented<TSchema extends type.Any, Prefix extends string = "V
191
224
  * @example
192
225
  * ```ts
193
226
  * // In your client code
194
- * console.log(import.meta.env.VITE_API_URL); // Type-safe access
227
+ * console.log(import.meta.env.VITE_API_URL); // Typesafe access
195
228
  * ```
196
229
  */
197
- declare function arkenv<const T extends Record<string, unknown>>(options: EnvSchema<T>): Plugin;
198
- declare function arkenv(options: type.Any): Plugin;
230
+ declare function arkenv(options: EnvSchemaWithType): Plugin;
231
+ declare function arkenv<const T extends SchemaShape>(options: EnvSchema<T>): Plugin;
199
232
  //#endregion
200
- export { type ImportMetaEnvAugmented, arkenv as default };
233
+ export { ImportMetaEnvAugmented, arkenv as default };
201
234
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["arktype16","ArkErrors","distill","type","type$1","arktype_internal_keywords_string_ts10","arktype_internal_attributes_ts5","arktype_internal_type_ts0","InferType","T","Record","R","errors","Any","U","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","RuntimeEnvironment","EnvSchema","def$1","validate","createEnv","infer","def","TypeParser","ArkEnvError","Error","arkenv","default","type","InferType","T","Record","R","errors","Any","U"],"sources":["../../arkenv/dist/index.d.ts","../../internal/types/dist/infer-type.d.ts","../src/types.ts","../src/index.ts"],"sourcesContent":["import * as arktype16 from \"arktype\";\nimport { ArkErrors, distill, type as type$1 } from \"arktype\";\nimport * as arktype_internal_keywords_string_ts10 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts5 from \"arktype/internal/attributes.ts\";\nimport * as arktype_internal_type_ts0 from \"arktype/internal/type.ts\";\n\n//#region ../internal/types/dist/infer-type.d.ts\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\ntype InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;\n//#endregion\n//#region src/scope.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype16.Scope<{\n string: arktype16.Submodule<{\n trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype16.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n creditCard: string;\n date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype16.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts5.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype16.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype16.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype16.Out<boolean>;\n}>;\n//#endregion\n//#region src/create-env.d.ts\ntype RuntimeEnvironment = Record<string, string | undefined>;\ntype EnvSchema<def$1> = type$1.validate<def$1, (typeof $)[\"t\"]>;\n/**\n * TODO: If possible, find a better type than \"const T extends Record<string, unknown>\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n/**\n * Create an environment variables object from a schema and an environment\n * @param def - The environment variable schema (raw object or type definition created with `type()`)\n * @param env - The environment variables to validate, defaults to `process.env`\n * @returns The validated environment variable schema\n * @throws An {@link ArkEnvError | error} if the environment variables are invalid.\n */\ndeclare function createEnv<const T extends Record<string, unknown>>(def: EnvSchema<T>, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>>;\ndeclare function createEnv<T extends type$1.Any>(def: T, env?: RuntimeEnvironment): InferType<T>;\ndeclare function createEnv<const T extends Record<string, unknown>>(def: EnvSchema<T> | type$1.Any, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>> | InferType<typeof def>;\n//#endregion\n//#region src/type.d.ts\ndeclare const type: arktype_internal_type_ts0.TypeParser<{\n string: arktype16.Submodule<{\n trim: arktype16.Submodule<arktype_internal_keywords_string_ts10.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n normalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype16.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype16.Submodule<arktype_internal_keywords_string_ts10.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n creditCard: string;\n date: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype16.Submodule<arktype_internal_keywords_string_ts10.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype16.Submodule<arktype_internal_keywords_string_ts10.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n numeric: arktype16.Submodule<arktype_internal_keywords_string_ts10.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype16.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts5.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts5.To<string>;\n }>;\n url: arktype16.Submodule<arktype_internal_keywords_string_ts10.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype16.Submodule<arktype_internal_keywords_string_ts10.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype16.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype16.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype16.Out<boolean>;\n}>;\n//#endregion\n//#region src/errors.d.ts\ndeclare class ArkEnvError extends Error {\n constructor(errors: ArkErrors, message?: string);\n}\n//#endregion\n//#region src/index.d.ts\n/**\n * `arkenv`'s main export, an alias for {@link createEnv}\n *\n * {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables parser powered by {@link https://arktype.io | ArkType}, TypeScript's 1:1 validator.\n */\ndeclare const arkenv: typeof createEnv;\n//#endregion\nexport { ArkEnvError, type EnvSchema, createEnv, arkenv as default, type };\n//# sourceMappingURL=index.d.ts.map","import type { type } from \"arktype\";\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\nexport type InferType<T> = T extends (value: Record<string, string | undefined>) => infer R ? R extends type.errors ? never : R : T extends type.Any<infer U, infer _Scope> ? U : never;\n//# sourceMappingURL=infer-type.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["arktype0","arktype_internal_keywords_string_ts0","arktype_internal_attributes_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","$","Type","SchemaShape","arktype_internal_variants_object_ts0","ObjectType","infer","EnvSchemaWithType","arktype0","ArkErrors","Type","distill","type","type$1","arktype_internal_keywords_string_ts0","arktype_internal_attributes_ts0","arktype_internal_variants_object_ts0","arktype_internal_type_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Out","Scope","InferType","T","Record","R","errors","Any","U","SchemaShape","ObjectType","infer","EnvSchemaWithType","EnvSchema","def$1","validate","RuntimeEnvironment","createEnv","def","TypeParser","ArkEnvError","Error","arkenv","default"],"sources":["../../internal/scope/dist/index.d.ts","../../internal/types/dist/schema.d.ts","../../arkenv/dist/index.d.ts","../src/index.ts"],"sourcesContent":["import * as arktype0 from \"arktype\";\nimport * as arktype_internal_keywords_string_ts0 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts0 from \"arktype/internal/attributes.ts\";\n\n//#region src/index.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype0.Scope<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\nexport { $ };\n//# sourceMappingURL=index.d.ts.map","import type { $ } from \"@repo/scope\";\nimport { type Type } from \"arktype\";\nexport declare const SchemaShape: import(\"arktype/internal/variants/object.ts\").ObjectType<{\n [x: string]: unknown;\n}, {}>;\nexport type SchemaShape = typeof SchemaShape.infer;\nexport type EnvSchemaWithType = Type<SchemaShape, (typeof $)[\"t\"]>;\n//# sourceMappingURL=schema.d.ts.map","import * as arktype0 from \"arktype\";\nimport { ArkErrors, Type, distill, type as type$1 } from \"arktype\";\nimport * as arktype_internal_keywords_string_ts0 from \"arktype/internal/keywords/string.ts\";\nimport * as arktype_internal_attributes_ts0 from \"arktype/internal/attributes.ts\";\nimport * as arktype_internal_variants_object_ts0 from \"arktype/internal/variants/object.ts\";\nimport * as arktype_internal_type_ts0 from \"arktype/internal/type.ts\";\n\n//#region ../internal/scope/dist/index.d.ts\n//#region src/index.d.ts\n/**\n * The root scope for the ArkEnv library, containing extensions to the ArkType scopes with ArkEnv-specific types like `string.host` and `number.port`.\n */\ndeclare const $: arktype0.Scope<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\n//#endregion\n//#region ../internal/types/dist/infer-type.d.ts\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n *\n * @template T - The ArkType type definition to infer from\n */\ntype InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;\n//#endregion\n//#region ../internal/types/dist/schema.d.ts\ndeclare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{\n [x: string]: unknown;\n}, {}>;\ntype SchemaShape = typeof SchemaShape.infer;\ntype EnvSchemaWithType = Type<SchemaShape, (typeof $)[\"t\"]>;\n//#endregion\n//#region src/create-env.d.ts\ntype EnvSchema<def$1> = type$1.validate<def$1, (typeof $)[\"t\"]>;\ntype RuntimeEnvironment = Record<string, string | undefined>;\n/**\n * TODO: `SchemaShape` is basically `Record<string, unknown>`.\n * If possible, find a better type than \"const T extends Record<string, unknown>\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n/**\n * Create an environment variables object from a schema and an environment\n * @param def - The environment variable schema (raw object or type definition created with `type()`)\n * @param env - The environment variables to validate, defaults to `process.env`\n * @returns The validated environment variable schema\n * @throws An {@link ArkEnvError | error} if the environment variables are invalid.\n */\ndeclare function createEnv<T extends EnvSchemaWithType>(def: T, env?: RuntimeEnvironment): InferType<T>;\ndeclare function createEnv<const T extends SchemaShape>(def: EnvSchema<T>, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>>;\ndeclare function createEnv<const T extends SchemaShape>(def: EnvSchema<T> | EnvSchemaWithType, env?: RuntimeEnvironment): distill.Out<type$1.infer<T, (typeof $)[\"t\"]>> | InferType<typeof def>;\n//#endregion\n//#region src/type.d.ts\ndeclare const type: arktype_internal_type_ts0.TypeParser<{\n string: arktype0.Submodule<{\n trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n root: string;\n alpha: string;\n alphanumeric: string;\n hex: string;\n base64: arktype0.Submodule<{\n root: string;\n url: string;\n } & {\n \" arkInferred\": string;\n }>;\n capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n creditCard: string;\n date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {\n \" arkInferred\": string;\n }>;\n digits: string;\n email: string;\n integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {\n \" arkInferred\": string;\n }>;\n ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {\n \" arkInferred\": string;\n }>;\n json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {\n \" arkInferred\": string;\n }>;\n lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {\n \" arkInferred\": string;\n }>;\n regex: string;\n semver: string;\n upper: arktype0.Submodule<{\n root: (In: string) => arktype_internal_attributes_ts0.To<string>;\n preformatted: string;\n } & {\n \" arkInferred\": (In: string) => arktype_internal_attributes_ts0.To<string>;\n }>;\n url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {\n \" arkInferred\": string;\n }>;\n uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {\n \" arkInferred\": string;\n }>;\n \" arkInferred\": string;\n host: string;\n }>;\n number: arktype0.Submodule<{\n NaN: number;\n Infinity: number;\n root: number;\n integer: number;\n \" arkInferred\": number;\n epoch: number;\n safe: number;\n NegativeInfinity: number;\n port: (In: string) => arktype0.Out<number>;\n }>;\n boolean: (In: boolean | \"false\" | \"true\") => arktype0.Out<boolean>;\n}>;\n//#endregion\n//#region src/errors.d.ts\ndeclare class ArkEnvError extends Error {\n constructor(errors: ArkErrors, message?: string);\n}\n//#endregion\n//#region src/index.d.ts\n/**\n * `arkenv`'s main export, an alias for {@link createEnv}\n *\n * {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables parser powered by {@link https://arktype.io | ArkType}, TypeScript's 1:1 validator.\n */\ndeclare const arkenv: typeof createEnv;\n//#endregion\nexport { ArkEnvError, type EnvSchema, createEnv, arkenv as default, type };\n//# sourceMappingURL=index.d.ts.map"],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { EnvSchema } from \"arkenv\";\nimport { createEnv } from \"arkenv\";\nimport type { type } from \"arktype\";\nimport { loadEnv, type Plugin } from \"vite\";\n\nexport type { ImportMetaEnvAugmented } from \"./types\";\n\n/**\n * TODO: If possible, find a better type than \"const T extends Record<string, unknown>\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n\n/**\n * Vite plugin to validate environment variables using ArkEnv and expose them to client code.\n *\n * The plugin validates environment variables using ArkEnv's schema validation and\n * automatically filters them based on Vite's `envPrefix` configuration (defaults to `\"VITE_\"`).\n * Only environment variables matching the prefix are exposed to client code via `import.meta.env.*`.\n *\n * @param options - The environment variable schema definition. Can be an `EnvSchema` object\n * for typesafe validation or an ArkType `type.Any` for dynamic schemas.\n * @returns A Vite plugin that validates environment variables and exposes them to the client.\n *\n * @example\n * ```ts\n * // vite.config.ts\n * import { defineConfig } from 'vite';\n * import arkenv from '@arkenv/vite-plugin';\n *\n * export default defineConfig({\n * plugins: [\n * arkenv({\n * VITE_API_URL: 'string',\n * VITE_API_KEY: 'string',\n * }),\n * ],\n * });\n * ```\n *\n * @example\n * ```ts\n * // In your client code\n * console.log(import.meta.env.VITE_API_URL); // Type-safe access\n * ```\n */\nexport default function arkenv<const T extends Record<string, unknown>>(\n\toptions: EnvSchema<T>,\n): Plugin;\nexport default function arkenv(options: type.Any): Plugin;\nexport default function arkenv<const T extends Record<string, unknown>>(\n\toptions: EnvSchema<T> | type.Any,\n): Plugin {\n\treturn {\n\t\tname: \"@arkenv/vite-plugin\",\n\t\tconfig(config, { mode }) {\n\t\t\t// Get the Vite prefix for client-exposed environment variables\n\t\t\t// Defaults to \"VITE_\" if not specified\n\t\t\t// Vite allows envPrefix to be a string or array of strings\n\t\t\tconst envPrefix = config.envPrefix ?? \"VITE_\";\n\t\t\tconst prefixes = Array.isArray(envPrefix) ? envPrefix : [envPrefix];\n\n\t\t\t// createEnv accepts both EnvSchema and type.Any at runtime\n\t\t\t// We use overloads above to provide external type precision\n\t\t\tconst env = createEnv(options, loadEnv(mode, process.cwd(), \"\"));\n\n\t\t\t// Filter to only include environment variables matching the prefix\n\t\t\t// This prevents server-only variables from being exposed to client code\n\t\t\tconst filteredEnv = Object.fromEntries(\n\t\t\t\tObject.entries(<Record<string, unknown>>env).filter(([key]) =>\n\t\t\t\t\tprefixes.some((prefix) => key.startsWith(prefix)),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\t// Expose transformed environment variables through Vite's define option\n\t\t\t// Only prefixed variables are exposed to client code\n\t\t\tconst define = Object.fromEntries(\n\t\t\t\tObject.entries(filteredEnv).map(([key, value]) => [\n\t\t\t\t\t`import.meta.env.${key}`,\n\t\t\t\t\tJSON.stringify(value),\n\t\t\t\t]),\n\t\t\t);\n\n\t\t\treturn { define };\n\t\t},\n\t};\n}\n"],"mappings":"kEAiDA,SAAwB,EACvB,EACS,CACT,MAAO,CACN,KAAM,sBACN,OAAO,EAAQ,CAAE,QAAQ,CAIxB,IAAM,EAAY,EAAO,WAAa,QAChC,EAAW,MAAM,QAAQ,EAAU,CAAG,EAAY,CAAC,EAAU,CAI7D,EAAM,EAAU,EAAS,EAAQ,EAAM,QAAQ,KAAK,CAAE,GAAG,CAAC,CAI1D,EAAc,OAAO,YAC1B,OAAO,QAAiC,EAAI,CAAC,QAAQ,CAAC,KACrD,EAAS,KAAM,GAAW,EAAI,WAAW,EAAO,CAAC,CACjD,CACD,CAWD,MAAO,CAAE,OAPM,OAAO,YACrB,OAAO,QAAQ,EAAY,CAAC,KAAK,CAAC,EAAK,KAAW,CACjD,mBAAmB,IACnB,KAAK,UAAU,EAAM,CACrB,CAAC,CACF,CAEgB,EAElB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { EnvSchemaWithType, SchemaShape } from \"@repo/types\";\nimport { createEnv, type EnvSchema } from \"arkenv\";\nimport type { type } from \"arktype\";\nimport { loadEnv, type Plugin } from \"vite\";\n\n/**\n * Extract the inferred type from an ArkType type definition by checking its call signature.\n * When a type definition is called, it returns either the validated value or type.errors.\n */\ntype InferType<T> = T extends (\n\tvalue: Record<string, string | undefined>,\n) => infer R\n\t? R extends type.errors\n\t\t? never\n\t\t: R\n\t: T extends type.Any<infer U, infer _Scope>\n\t\t? U\n\t\t: never;\n\nexport type ImportMetaEnvAugmented<T> = InferType<T>;\n\n/**\n * TODO: If possible, find a better type than \"const T extends SchemaShape\",\n * and be as close as possible to the type accepted by ArkType's `type`.\n */\n\n/**\n * Vite plugin to validate environment variables using ArkEnv and expose them to client code.\n *\n * The plugin validates environment variables using ArkEnv's schema validation and\n * automatically filters them based on Vite's `envPrefix` configuration (defaults to `\"VITE_\"`).\n * Only environment variables matching the prefix are exposed to client code via `import.meta.env.*`.\n *\n * @param options - The environment variable schema definition. Can be an `EnvSchema` object\n * for typesafe validation or an ArkType `EnvSchemaWithType` for dynamic schemas.\n * @returns A Vite plugin that validates environment variables and exposes them to the client.\n *\n * @example\n * ```ts\n * // vite.config.ts\n * import { defineConfig } from 'vite';\n * import arkenv from '@arkenv/vite-plugin';\n *\n * export default defineConfig({\n * plugins: [\n * arkenv({\n * VITE_API_URL: 'string',\n * VITE_API_KEY: 'string',\n * }),\n * ],\n * });\n * ```\n *\n * @example\n * ```ts\n * // In your client code\n * console.log(import.meta.env.VITE_API_URL); // Typesafe access\n * ```\n */\nexport default function arkenv(options: EnvSchemaWithType): Plugin;\nexport default function arkenv<const T extends SchemaShape>(\n\toptions: EnvSchema<T>,\n): Plugin;\nexport default function arkenv<const T extends SchemaShape>(\n\toptions: EnvSchema<T> | EnvSchemaWithType,\n): Plugin {\n\treturn {\n\t\tname: \"@arkenv/vite-plugin\",\n\t\tconfig(config, { mode }) {\n\t\t\t// Get the Vite prefix for client-exposed environment variables\n\t\t\t// Defaults to \"VITE_\" if not specified\n\t\t\t// Vite allows envPrefix to be a string or array of strings\n\t\t\tconst envPrefix = config.envPrefix ?? \"VITE_\";\n\t\t\tconst prefixes = Array.isArray(envPrefix) ? envPrefix : [envPrefix];\n\n\t\t\t// TODO: We're using type assertions and explicitly pass in the type arguments here to avoid\n\t\t\t// \"Type instantiation is excessively deep and possibly infinite\" errors.\n\t\t\t// Ideally, we should find a way to avoid these assertions while maintaining type safety.\n\t\t\tconst env = createEnv<T>(options, loadEnv(mode, process.cwd(), \"\"));\n\n\t\t\t// Filter to only include environment variables matching the prefix\n\t\t\t// This prevents server-only variables from being exposed to client code\n\t\t\tconst filteredEnv = Object.fromEntries(\n\t\t\t\tObject.entries(<SchemaShape>env).filter(([key]) =>\n\t\t\t\t\tprefixes.some((prefix) => key.startsWith(prefix)),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\t// Expose transformed environment variables through Vite's define option\n\t\t\t// Only prefixed variables are exposed to client code\n\t\t\tconst define = Object.fromEntries(\n\t\t\t\tObject.entries(filteredEnv).map(([key, value]) => [\n\t\t\t\t\t`import.meta.env.${key}`,\n\t\t\t\t\tJSON.stringify(value),\n\t\t\t\t]),\n\t\t\t);\n\n\t\t\treturn { define };\n\t\t},\n\t};\n}\n"],"mappings":"kEA+DA,SAAwB,EACvB,EACS,CACT,MAAO,CACN,KAAM,sBACN,OAAO,EAAQ,CAAE,QAAQ,CAIxB,IAAM,EAAY,EAAO,WAAa,QAChC,EAAW,MAAM,QAAQ,EAAU,CAAG,EAAY,CAAC,EAAU,CAK7D,EAAM,EAAa,EAAS,EAAQ,EAAM,QAAQ,KAAK,CAAE,GAAG,CAAC,CAI7D,EAAc,OAAO,YAC1B,OAAO,QAAqB,EAAI,CAAC,QAAQ,CAAC,KACzC,EAAS,KAAM,GAAW,EAAI,WAAW,EAAO,CAAC,CACjD,CACD,CAWD,MAAO,CAAE,OAPM,OAAO,YACrB,OAAO,QAAQ,EAAY,CAAC,KAAK,CAAC,EAAK,KAAW,CACjD,mBAAmB,IACnB,KAAK,UAAU,EAAM,CACrB,CAAC,CACF,CAEgB,EAElB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkenv/vite-plugin",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "author": "Yam Borodetsky <yam@yam.codes>",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,18 +9,19 @@
9
9
  "main": "./dist/index.cjs",
10
10
  "module": "./dist/index.js",
11
11
  "dependencies": {
12
- "arkenv": "0.7.6"
12
+ "arkenv": "0.7.7"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@size-limit/preset-small-lib": "11.2.0",
16
- "arktype": "2.1.27",
16
+ "arktype": "2.1.28",
17
+ "rimraf": "6.1.2",
17
18
  "size-limit": "11.2.0",
18
- "tsdown": "0.16.5",
19
+ "tsdown": "0.16.8",
19
20
  "typescript": "5.9.3",
20
- "vite": "7.2.4",
21
+ "vite": "7.2.6",
21
22
  "vite-tsconfig-paths": "5.1.4",
22
- "vitest": "4.0.10",
23
- "@repo/types": "0.0.0"
23
+ "vitest": "4.0.15",
24
+ "@repo/types": "0.0.1"
24
25
  },
25
26
  "peerDependencies": {
26
27
  "arktype": "^2.1.22",
@@ -32,7 +33,7 @@
32
33
  "require": "./dist/index.cjs"
33
34
  },
34
35
  "bugs": "https://github.com/yamcodes/arkenv/labels/%40arkenv%2Fvite-plugin",
35
- "description": "Vite plugin for ArkEnv",
36
+ "description": "ArkEnv plugin for Vite",
36
37
  "files": [
37
38
  "dist"
38
39
  ],
@@ -54,7 +55,11 @@
54
55
  {
55
56
  "path": "dist/index.js",
56
57
  "limit": "2 kB",
57
- "import": "*"
58
+ "import": "*",
59
+ "ignore": [
60
+ "vite",
61
+ "arktype"
62
+ ]
58
63
  }
59
64
  ],
60
65
  "scripts": {