@percher/toml 0.1.2 → 0.1.4

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/schema.d.ts CHANGED
@@ -1,148 +1,89 @@
1
1
  import { z } from "zod";
2
2
  export declare const appSchema: z.ZodObject<{
3
3
  name: z.ZodString;
4
- runtime: z.ZodEnum<["node", "bun", "python", "static", "docker"]>;
5
- framework: z.ZodOptional<z.ZodEnum<["nextjs", "sveltekit", "astro", "remix", "nuxt", "vite", "preact", "solid", "express", "fastify", "hono", "elysia", "fastapi", "flask", "django", "eleventy", "hugo", "laravel", "rails", "phoenix", "go", "rust", "dotnet", "java", "docker"]>>;
6
- }, "strict", z.ZodTypeAny, {
7
- name: string;
8
- runtime: "node" | "bun" | "python" | "static" | "docker";
9
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
10
- }, {
11
- name: string;
12
- runtime: "node" | "bun" | "python" | "static" | "docker";
13
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
14
- }>;
4
+ runtime: z.ZodEnum<{
5
+ node: "node";
6
+ bun: "bun";
7
+ python: "python";
8
+ static: "static";
9
+ docker: "docker";
10
+ }>;
11
+ framework: z.ZodOptional<z.ZodEnum<{
12
+ docker: "docker";
13
+ nextjs: "nextjs";
14
+ sveltekit: "sveltekit";
15
+ astro: "astro";
16
+ remix: "remix";
17
+ nuxt: "nuxt";
18
+ vite: "vite";
19
+ preact: "preact";
20
+ solid: "solid";
21
+ express: "express";
22
+ fastify: "fastify";
23
+ hono: "hono";
24
+ elysia: "elysia";
25
+ fastapi: "fastapi";
26
+ flask: "flask";
27
+ django: "django";
28
+ eleventy: "eleventy";
29
+ hugo: "hugo";
30
+ laravel: "laravel";
31
+ rails: "rails";
32
+ phoenix: "phoenix";
33
+ go: "go";
34
+ rust: "rust";
35
+ dotnet: "dotnet";
36
+ java: "java";
37
+ }>>;
38
+ }, z.core.$strict>;
15
39
  export declare const buildSchema: z.ZodObject<{
16
40
  command: z.ZodOptional<z.ZodString>;
17
- output: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
18
- /**
19
- * Allow-list of env var names from the app's runtime env that should
20
- * also be available at build time. Frameworks like Vite/Next/Astro/
21
- * Expo bake `*_PUBLIC_*` values into the static bundle at build time;
22
- * without this list, those variables are only present at runtime and
23
- * frontends ship with the default value baked in. Values are read
24
- * from the encrypted env store at deploy time — never from the TOML
25
- * itself, so no secrets in source control.
26
- */
27
- pass_env: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
28
- }, "strict", z.ZodTypeAny, {
29
- command?: string | undefined;
30
- output?: string | undefined;
31
- pass_env?: string[] | undefined;
32
- }, {
33
- command?: string | undefined;
34
- output?: string | undefined;
35
- pass_env?: string[] | undefined;
36
- }>;
41
+ output: z.ZodOptional<z.ZodString>;
42
+ pass_env: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ }, z.core.$strict>;
37
44
  export declare const webSchema: z.ZodObject<{
38
45
  port: z.ZodNumber;
39
46
  health: z.ZodOptional<z.ZodString>;
40
- /** Enable password protection. Set SITE_PASSWORD env var to configure. */
41
47
  password: z.ZodOptional<z.ZodBoolean>;
42
- }, "strict", z.ZodTypeAny, {
43
- port: number;
44
- health?: string | undefined;
45
- password?: boolean | undefined;
46
- }, {
47
- port: number;
48
- health?: string | undefined;
49
- password?: boolean | undefined;
50
- }>;
48
+ spa: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strict>;
51
50
  export declare const convexConfigSchema: z.ZodObject<{
52
51
  deployment_url: z.ZodString;
53
- }, "strict", z.ZodTypeAny, {
54
- deployment_url: string;
55
- }, {
56
- deployment_url: string;
57
- }>;
52
+ }, z.core.$strict>;
58
53
  export declare const supabaseConfigSchema: z.ZodObject<{
59
54
  url: z.ZodString;
60
55
  anon_key: z.ZodOptional<z.ZodString>;
61
- }, "strict", z.ZodTypeAny, {
62
- url: string;
63
- anon_key?: string | undefined;
64
- }, {
65
- url: string;
66
- anon_key?: string | undefined;
67
- }>;
68
- export declare const dataSchema: z.ZodEffects<z.ZodObject<{
69
- mode: z.ZodEnum<["pocketbase", "postgres", "sqlite", "convex", "supabase", "external", "none"]>;
56
+ }, z.core.$strict>;
57
+ export declare const dataSchema: z.ZodObject<{
58
+ mode: z.ZodEnum<{
59
+ pocketbase: "pocketbase";
60
+ postgres: "postgres";
61
+ sqlite: "sqlite";
62
+ convex: "convex";
63
+ supabase: "supabase";
64
+ external: "external";
65
+ none: "none";
66
+ }>;
70
67
  file: z.ZodOptional<z.ZodString>;
71
68
  convex: z.ZodOptional<z.ZodObject<{
72
69
  deployment_url: z.ZodString;
73
- }, "strict", z.ZodTypeAny, {
74
- deployment_url: string;
75
- }, {
76
- deployment_url: string;
77
- }>>;
70
+ }, z.core.$strict>>;
78
71
  supabase: z.ZodOptional<z.ZodObject<{
79
72
  url: z.ZodString;
80
73
  anon_key: z.ZodOptional<z.ZodString>;
81
- }, "strict", z.ZodTypeAny, {
82
- url: string;
83
- anon_key?: string | undefined;
84
- }, {
85
- url: string;
86
- anon_key?: string | undefined;
87
- }>>;
88
- }, "strict", z.ZodTypeAny, {
89
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
90
- convex?: {
91
- deployment_url: string;
92
- } | undefined;
93
- supabase?: {
94
- url: string;
95
- anon_key?: string | undefined;
96
- } | undefined;
97
- file?: string | undefined;
98
- }, {
99
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
100
- convex?: {
101
- deployment_url: string;
102
- } | undefined;
103
- supabase?: {
104
- url: string;
105
- anon_key?: string | undefined;
106
- } | undefined;
107
- file?: string | undefined;
108
- }>, {
109
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
110
- convex?: {
111
- deployment_url: string;
112
- } | undefined;
113
- supabase?: {
114
- url: string;
115
- anon_key?: string | undefined;
116
- } | undefined;
117
- file?: string | undefined;
118
- }, {
119
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
120
- convex?: {
121
- deployment_url: string;
122
- } | undefined;
123
- supabase?: {
124
- url: string;
125
- anon_key?: string | undefined;
126
- } | undefined;
127
- file?: string | undefined;
128
- }>;
74
+ }, z.core.$strict>>;
75
+ }, z.core.$strict>;
129
76
  export declare const domainSchema: z.ZodObject<{
130
77
  subdomain: z.ZodOptional<z.ZodString>;
131
78
  custom: z.ZodOptional<z.ZodString>;
132
- }, "strict", z.ZodTypeAny, {
133
- custom?: string | undefined;
134
- subdomain?: string | undefined;
135
- }, {
136
- custom?: string | undefined;
137
- subdomain?: string | undefined;
138
- }>;
79
+ }, z.core.$strict>;
139
80
  /**
140
81
  * Phase 6.3: CPU-based autoscaling. Mutually exclusive with the static
141
82
  * `instances` field on the parent resourcesSchema — see the superRefine
142
83
  * below. All threshold/sustain fields have sane defaults and most users
143
84
  * never touch them.
144
85
  */
145
- export declare const autoscaleSchema: z.ZodEffects<z.ZodObject<{
86
+ export declare const autoscaleSchema: z.ZodObject<{
146
87
  min: z.ZodNumber;
147
88
  max: z.ZodNumber;
148
89
  scale_up_cpu_percent: z.ZodOptional<z.ZodNumber>;
@@ -150,45 +91,17 @@ export declare const autoscaleSchema: z.ZodEffects<z.ZodObject<{
150
91
  scale_down_cpu_percent: z.ZodOptional<z.ZodNumber>;
151
92
  scale_down_sustain_seconds: z.ZodOptional<z.ZodNumber>;
152
93
  cooldown_seconds: z.ZodOptional<z.ZodNumber>;
153
- }, "strict", z.ZodTypeAny, {
154
- min: number;
155
- max: number;
156
- scale_up_cpu_percent?: number | undefined;
157
- scale_up_sustain_seconds?: number | undefined;
158
- scale_down_cpu_percent?: number | undefined;
159
- scale_down_sustain_seconds?: number | undefined;
160
- cooldown_seconds?: number | undefined;
161
- }, {
162
- min: number;
163
- max: number;
164
- scale_up_cpu_percent?: number | undefined;
165
- scale_up_sustain_seconds?: number | undefined;
166
- scale_down_cpu_percent?: number | undefined;
167
- scale_down_sustain_seconds?: number | undefined;
168
- cooldown_seconds?: number | undefined;
169
- }>, {
170
- min: number;
171
- max: number;
172
- scale_up_cpu_percent?: number | undefined;
173
- scale_up_sustain_seconds?: number | undefined;
174
- scale_down_cpu_percent?: number | undefined;
175
- scale_down_sustain_seconds?: number | undefined;
176
- cooldown_seconds?: number | undefined;
177
- }, {
178
- min: number;
179
- max: number;
180
- scale_up_cpu_percent?: number | undefined;
181
- scale_up_sustain_seconds?: number | undefined;
182
- scale_down_cpu_percent?: number | undefined;
183
- scale_down_sustain_seconds?: number | undefined;
184
- cooldown_seconds?: number | undefined;
185
- }>;
186
- export declare const resourcesSchema: z.ZodEffects<z.ZodObject<{
187
- memory: z.ZodOptional<z.ZodEnum<["256mb", "512mb", "1gb", "2gb"]>>;
94
+ }, z.core.$strict>;
95
+ export declare const resourcesSchema: z.ZodObject<{
96
+ memory: z.ZodOptional<z.ZodEnum<{
97
+ "256mb": "256mb";
98
+ "512mb": "512mb";
99
+ "1gb": "1gb";
100
+ "2gb": "2gb";
101
+ }>>;
188
102
  cpu: z.ZodOptional<z.ZodNumber>;
189
- /** Number of parallel container instances (Phase 6.1). Plan-gated. */
190
103
  instances: z.ZodOptional<z.ZodNumber>;
191
- autoscale: z.ZodOptional<z.ZodEffects<z.ZodObject<{
104
+ autoscale: z.ZodOptional<z.ZodObject<{
192
105
  min: z.ZodNumber;
193
106
  max: z.ZodNumber;
194
107
  scale_up_cpu_percent: z.ZodOptional<z.ZodNumber>;
@@ -196,309 +109,183 @@ export declare const resourcesSchema: z.ZodEffects<z.ZodObject<{
196
109
  scale_down_cpu_percent: z.ZodOptional<z.ZodNumber>;
197
110
  scale_down_sustain_seconds: z.ZodOptional<z.ZodNumber>;
198
111
  cooldown_seconds: z.ZodOptional<z.ZodNumber>;
199
- }, "strict", z.ZodTypeAny, {
200
- min: number;
201
- max: number;
202
- scale_up_cpu_percent?: number | undefined;
203
- scale_up_sustain_seconds?: number | undefined;
204
- scale_down_cpu_percent?: number | undefined;
205
- scale_down_sustain_seconds?: number | undefined;
206
- cooldown_seconds?: number | undefined;
207
- }, {
208
- min: number;
209
- max: number;
210
- scale_up_cpu_percent?: number | undefined;
211
- scale_up_sustain_seconds?: number | undefined;
212
- scale_down_cpu_percent?: number | undefined;
213
- scale_down_sustain_seconds?: number | undefined;
214
- cooldown_seconds?: number | undefined;
215
- }>, {
216
- min: number;
217
- max: number;
218
- scale_up_cpu_percent?: number | undefined;
219
- scale_up_sustain_seconds?: number | undefined;
220
- scale_down_cpu_percent?: number | undefined;
221
- scale_down_sustain_seconds?: number | undefined;
222
- cooldown_seconds?: number | undefined;
223
- }, {
224
- min: number;
225
- max: number;
226
- scale_up_cpu_percent?: number | undefined;
227
- scale_up_sustain_seconds?: number | undefined;
228
- scale_down_cpu_percent?: number | undefined;
229
- scale_down_sustain_seconds?: number | undefined;
230
- cooldown_seconds?: number | undefined;
231
- }>>;
232
- }, "strict", z.ZodTypeAny, {
233
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
234
- cpu?: number | undefined;
235
- instances?: number | undefined;
236
- autoscale?: {
237
- min: number;
238
- max: number;
239
- scale_up_cpu_percent?: number | undefined;
240
- scale_up_sustain_seconds?: number | undefined;
241
- scale_down_cpu_percent?: number | undefined;
242
- scale_down_sustain_seconds?: number | undefined;
243
- cooldown_seconds?: number | undefined;
244
- } | undefined;
245
- }, {
246
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
247
- cpu?: number | undefined;
248
- instances?: number | undefined;
249
- autoscale?: {
250
- min: number;
251
- max: number;
252
- scale_up_cpu_percent?: number | undefined;
253
- scale_up_sustain_seconds?: number | undefined;
254
- scale_down_cpu_percent?: number | undefined;
255
- scale_down_sustain_seconds?: number | undefined;
256
- cooldown_seconds?: number | undefined;
257
- } | undefined;
258
- }>, {
259
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
260
- cpu?: number | undefined;
261
- instances?: number | undefined;
262
- autoscale?: {
263
- min: number;
264
- max: number;
265
- scale_up_cpu_percent?: number | undefined;
266
- scale_up_sustain_seconds?: number | undefined;
267
- scale_down_cpu_percent?: number | undefined;
268
- scale_down_sustain_seconds?: number | undefined;
269
- cooldown_seconds?: number | undefined;
270
- } | undefined;
271
- }, {
272
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
273
- cpu?: number | undefined;
274
- instances?: number | undefined;
275
- autoscale?: {
276
- min: number;
277
- max: number;
278
- scale_up_cpu_percent?: number | undefined;
279
- scale_up_sustain_seconds?: number | undefined;
280
- scale_down_cpu_percent?: number | undefined;
281
- scale_down_sustain_seconds?: number | undefined;
282
- cooldown_seconds?: number | undefined;
283
- } | undefined;
284
- }>;
285
- export declare const envSchema: z.ZodRecord<z.ZodString, z.ZodString>;
112
+ }, z.core.$strict>>;
113
+ }, z.core.$strict>;
114
+ /**
115
+ * Legacy `[env]` shape: `KEY = "value"` pairs that seed the encrypted
116
+ * env store with placeholder values when running `percher init`. Still
117
+ * supported for back-compat — all existing percher.toml files in the
118
+ * wild use this shape.
119
+ */
120
+ export declare const envValuesSchema: z.ZodRecord<z.ZodString, z.ZodString>;
121
+ /**
122
+ * FUTURE12 Phase 6 — explicit env contract. Replaces the legacy
123
+ * KEY=VALUE shape over time. The three lists tell Percher's
124
+ * server-side env scanner how to treat each env reference it finds in
125
+ * the source:
126
+ *
127
+ * - `required` — must exist in the encrypted env store before queueing.
128
+ * - `optional` — may be referenced by source; presence is not enforced.
129
+ * - `ignore` — explicitly ignored by the scanner (e.g. NODE_ENV).
130
+ *
131
+ * A key may appear in only one list. Phase 6a (this file) ships the
132
+ * parsing + validation only; the actual pre-queue gate is Phase 6b/c.
133
+ */
134
+ export declare const envContractSchema: z.ZodObject<{
135
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
136
+ optional: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
+ ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
138
+ }, z.core.$strict>;
139
+ /**
140
+ * The `[env]` table must coexist in Phase 6a with two shapes:
141
+ *
142
+ * - Legacy: `[env]\nKEY = "value"` → `Record<string, string>`
143
+ * - Contract: `[env]\nrequired = [...]` → `{ required, optional, ignore }`
144
+ *
145
+ * A TOML table can only ever carry one of the two. We branch on shape
146
+ * detection: if the table has any of the contract keys (`required`,
147
+ * `optional`, `ignore`), parse as contract. Otherwise parse as the
148
+ * legacy string-map. This guarantees that mistyping a contract field
149
+ * (e.g. `required = "OPENAI_API_KEY"` instead of an array) yields a
150
+ * contract validation error, not a silent fallback into legacy.
151
+ *
152
+ * Phase 6b/c will narrow this — when the gate is live and templates
153
+ * have migrated, we can remove the legacy branch.
154
+ */
155
+ export type EnvContract = z.infer<typeof envContractSchema>;
156
+ export type EnvValues = Record<string, string>;
157
+ export type EnvSection = EnvValues | EnvContract;
158
+ /**
159
+ * Narrow an `[env]` section to the new contract shape, or null if it's
160
+ * the legacy KEY=VALUE map (or missing). Useful for downstream code in
161
+ * Phase 6b/c that needs to read `required`/`optional`/`ignore`.
162
+ */
163
+ export declare function isEnvContract(value: EnvSection | undefined): value is EnvContract;
164
+ /**
165
+ * Narrow an `[env]` section to the legacy `Record<string, string>`
166
+ * shape. Returns null when the section is the new contract or missing.
167
+ */
168
+ export declare function getEnvValues(value: EnvSection | undefined): EnvValues | null;
169
+ export declare const envSchema: z.ZodType<EnvSection, unknown>;
286
170
  export declare const devSchema: z.ZodObject<{
287
- ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
171
+ ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
288
172
  debounce: z.ZodOptional<z.ZodNumber>;
289
173
  auto_open: z.ZodOptional<z.ZodBoolean>;
290
- }, "strict", z.ZodTypeAny, {
291
- ignore?: string[] | undefined;
292
- debounce?: number | undefined;
293
- auto_open?: boolean | undefined;
294
- }, {
295
- ignore?: string[] | undefined;
296
- debounce?: number | undefined;
297
- auto_open?: boolean | undefined;
298
- }>;
299
- export declare const requiredEnvSchema: z.ZodRecord<z.ZodString, z.ZodEnum<["secret", "url", "string"]>>;
174
+ }, z.core.$strict>;
175
+ export declare const requiredEnvSchema: z.ZodRecord<z.ZodString, z.ZodEnum<{
176
+ string: "string";
177
+ url: "url";
178
+ secret: "secret";
179
+ }>>;
300
180
  export declare const cronSchema: z.ZodObject<{
301
181
  schedule: z.ZodString;
302
182
  command: z.ZodString;
303
- }, "strict", z.ZodTypeAny, {
304
- command: string;
305
- schedule: string;
306
- }, {
307
- command: string;
308
- schedule: string;
309
- }>;
183
+ }, z.core.$strict>;
310
184
  export declare const addonsSchema: z.ZodObject<{
311
185
  pocketbase: z.ZodOptional<z.ZodObject<{
312
186
  enabled: z.ZodOptional<z.ZodBoolean>;
313
- }, "strict", z.ZodTypeAny, {
314
- enabled?: boolean | undefined;
315
- }, {
316
- enabled?: boolean | undefined;
317
- }>>;
187
+ }, z.core.$strict>>;
318
188
  cron: z.ZodOptional<z.ZodObject<{
319
189
  enabled: z.ZodOptional<z.ZodBoolean>;
320
- }, "strict", z.ZodTypeAny, {
321
- enabled?: boolean | undefined;
322
- }, {
323
- enabled?: boolean | undefined;
324
- }>>;
190
+ }, z.core.$strict>>;
325
191
  storage: z.ZodOptional<z.ZodObject<{
326
- mode: z.ZodOptional<z.ZodEnum<["pocketbase", "volume", "s3"]>>;
192
+ mode: z.ZodOptional<z.ZodEnum<{
193
+ pocketbase: "pocketbase";
194
+ volume: "volume";
195
+ s3: "s3";
196
+ }>>;
327
197
  max_size: z.ZodOptional<z.ZodString>;
328
- }, "strict", z.ZodTypeAny, {
329
- mode?: "pocketbase" | "volume" | "s3" | undefined;
330
- max_size?: string | undefined;
331
- }, {
332
- mode?: "pocketbase" | "volume" | "s3" | undefined;
333
- max_size?: string | undefined;
334
- }>>;
335
- }, "strict", z.ZodTypeAny, {
336
- pocketbase?: {
337
- enabled?: boolean | undefined;
338
- } | undefined;
339
- cron?: {
340
- enabled?: boolean | undefined;
341
- } | undefined;
342
- storage?: {
343
- mode?: "pocketbase" | "volume" | "s3" | undefined;
344
- max_size?: string | undefined;
345
- } | undefined;
346
- }, {
347
- pocketbase?: {
348
- enabled?: boolean | undefined;
349
- } | undefined;
350
- cron?: {
351
- enabled?: boolean | undefined;
352
- } | undefined;
353
- storage?: {
354
- mode?: "pocketbase" | "volume" | "s3" | undefined;
355
- max_size?: string | undefined;
356
- } | undefined;
357
- }>;
198
+ }, z.core.$strict>>;
199
+ }, z.core.$strict>;
358
200
  export declare const checkSchema: z.ZodObject<{
359
201
  path: z.ZodString;
360
202
  interval: z.ZodOptional<z.ZodNumber>;
361
203
  timeout: z.ZodOptional<z.ZodNumber>;
362
204
  initial_delay: z.ZodOptional<z.ZodNumber>;
363
- }, "strict", z.ZodTypeAny, {
364
- path: string;
365
- interval?: number | undefined;
366
- timeout?: number | undefined;
367
- initial_delay?: number | undefined;
368
- }, {
369
- path: string;
370
- interval?: number | undefined;
371
- timeout?: number | undefined;
372
- initial_delay?: number | undefined;
373
- }>;
205
+ }, z.core.$strict>;
374
206
  export declare const percherConfigSchema: z.ZodObject<{
375
207
  app: z.ZodObject<{
376
208
  name: z.ZodString;
377
- runtime: z.ZodEnum<["node", "bun", "python", "static", "docker"]>;
378
- framework: z.ZodOptional<z.ZodEnum<["nextjs", "sveltekit", "astro", "remix", "nuxt", "vite", "preact", "solid", "express", "fastify", "hono", "elysia", "fastapi", "flask", "django", "eleventy", "hugo", "laravel", "rails", "phoenix", "go", "rust", "dotnet", "java", "docker"]>>;
379
- }, "strict", z.ZodTypeAny, {
380
- name: string;
381
- runtime: "node" | "bun" | "python" | "static" | "docker";
382
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
383
- }, {
384
- name: string;
385
- runtime: "node" | "bun" | "python" | "static" | "docker";
386
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
387
- }>;
209
+ runtime: z.ZodEnum<{
210
+ node: "node";
211
+ bun: "bun";
212
+ python: "python";
213
+ static: "static";
214
+ docker: "docker";
215
+ }>;
216
+ framework: z.ZodOptional<z.ZodEnum<{
217
+ docker: "docker";
218
+ nextjs: "nextjs";
219
+ sveltekit: "sveltekit";
220
+ astro: "astro";
221
+ remix: "remix";
222
+ nuxt: "nuxt";
223
+ vite: "vite";
224
+ preact: "preact";
225
+ solid: "solid";
226
+ express: "express";
227
+ fastify: "fastify";
228
+ hono: "hono";
229
+ elysia: "elysia";
230
+ fastapi: "fastapi";
231
+ flask: "flask";
232
+ django: "django";
233
+ eleventy: "eleventy";
234
+ hugo: "hugo";
235
+ laravel: "laravel";
236
+ rails: "rails";
237
+ phoenix: "phoenix";
238
+ go: "go";
239
+ rust: "rust";
240
+ dotnet: "dotnet";
241
+ java: "java";
242
+ }>>;
243
+ }, z.core.$strict>;
388
244
  build: z.ZodOptional<z.ZodObject<{
389
245
  command: z.ZodOptional<z.ZodString>;
390
- output: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
391
- /**
392
- * Allow-list of env var names from the app's runtime env that should
393
- * also be available at build time. Frameworks like Vite/Next/Astro/
394
- * Expo bake `*_PUBLIC_*` values into the static bundle at build time;
395
- * without this list, those variables are only present at runtime and
396
- * frontends ship with the default value baked in. Values are read
397
- * from the encrypted env store at deploy time — never from the TOML
398
- * itself, so no secrets in source control.
399
- */
400
- pass_env: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
401
- }, "strict", z.ZodTypeAny, {
402
- command?: string | undefined;
403
- output?: string | undefined;
404
- pass_env?: string[] | undefined;
405
- }, {
406
- command?: string | undefined;
407
- output?: string | undefined;
408
- pass_env?: string[] | undefined;
409
- }>>;
246
+ output: z.ZodOptional<z.ZodString>;
247
+ pass_env: z.ZodOptional<z.ZodArray<z.ZodString>>;
248
+ }, z.core.$strict>>;
410
249
  web: z.ZodOptional<z.ZodObject<{
411
250
  port: z.ZodNumber;
412
251
  health: z.ZodOptional<z.ZodString>;
413
- /** Enable password protection. Set SITE_PASSWORD env var to configure. */
414
252
  password: z.ZodOptional<z.ZodBoolean>;
415
- }, "strict", z.ZodTypeAny, {
416
- port: number;
417
- health?: string | undefined;
418
- password?: boolean | undefined;
419
- }, {
420
- port: number;
421
- health?: string | undefined;
422
- password?: boolean | undefined;
423
- }>>;
424
- data: z.ZodOptional<z.ZodEffects<z.ZodObject<{
425
- mode: z.ZodEnum<["pocketbase", "postgres", "sqlite", "convex", "supabase", "external", "none"]>;
253
+ spa: z.ZodOptional<z.ZodBoolean>;
254
+ }, z.core.$strict>>;
255
+ data: z.ZodOptional<z.ZodObject<{
256
+ mode: z.ZodEnum<{
257
+ pocketbase: "pocketbase";
258
+ postgres: "postgres";
259
+ sqlite: "sqlite";
260
+ convex: "convex";
261
+ supabase: "supabase";
262
+ external: "external";
263
+ none: "none";
264
+ }>;
426
265
  file: z.ZodOptional<z.ZodString>;
427
266
  convex: z.ZodOptional<z.ZodObject<{
428
267
  deployment_url: z.ZodString;
429
- }, "strict", z.ZodTypeAny, {
430
- deployment_url: string;
431
- }, {
432
- deployment_url: string;
433
- }>>;
268
+ }, z.core.$strict>>;
434
269
  supabase: z.ZodOptional<z.ZodObject<{
435
270
  url: z.ZodString;
436
271
  anon_key: z.ZodOptional<z.ZodString>;
437
- }, "strict", z.ZodTypeAny, {
438
- url: string;
439
- anon_key?: string | undefined;
440
- }, {
441
- url: string;
442
- anon_key?: string | undefined;
443
- }>>;
444
- }, "strict", z.ZodTypeAny, {
445
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
446
- convex?: {
447
- deployment_url: string;
448
- } | undefined;
449
- supabase?: {
450
- url: string;
451
- anon_key?: string | undefined;
452
- } | undefined;
453
- file?: string | undefined;
454
- }, {
455
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
456
- convex?: {
457
- deployment_url: string;
458
- } | undefined;
459
- supabase?: {
460
- url: string;
461
- anon_key?: string | undefined;
462
- } | undefined;
463
- file?: string | undefined;
464
- }>, {
465
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
466
- convex?: {
467
- deployment_url: string;
468
- } | undefined;
469
- supabase?: {
470
- url: string;
471
- anon_key?: string | undefined;
472
- } | undefined;
473
- file?: string | undefined;
474
- }, {
475
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
476
- convex?: {
477
- deployment_url: string;
478
- } | undefined;
479
- supabase?: {
480
- url: string;
481
- anon_key?: string | undefined;
482
- } | undefined;
483
- file?: string | undefined;
484
- }>>;
485
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
272
+ }, z.core.$strict>>;
273
+ }, z.core.$strict>>;
274
+ env: z.ZodOptional<z.ZodType<EnvSection, unknown, z.core.$ZodTypeInternals<EnvSection, unknown>>>;
486
275
  domain: z.ZodOptional<z.ZodObject<{
487
276
  subdomain: z.ZodOptional<z.ZodString>;
488
277
  custom: z.ZodOptional<z.ZodString>;
489
- }, "strict", z.ZodTypeAny, {
490
- custom?: string | undefined;
491
- subdomain?: string | undefined;
492
- }, {
493
- custom?: string | undefined;
494
- subdomain?: string | undefined;
495
- }>>;
496
- resources: z.ZodOptional<z.ZodEffects<z.ZodObject<{
497
- memory: z.ZodOptional<z.ZodEnum<["256mb", "512mb", "1gb", "2gb"]>>;
278
+ }, z.core.$strict>>;
279
+ resources: z.ZodOptional<z.ZodObject<{
280
+ memory: z.ZodOptional<z.ZodEnum<{
281
+ "256mb": "256mb";
282
+ "512mb": "512mb";
283
+ "1gb": "1gb";
284
+ "2gb": "2gb";
285
+ }>>;
498
286
  cpu: z.ZodOptional<z.ZodNumber>;
499
- /** Number of parallel container instances (Phase 6.1). Plan-gated. */
500
287
  instances: z.ZodOptional<z.ZodNumber>;
501
- autoscale: z.ZodOptional<z.ZodEffects<z.ZodObject<{
288
+ autoscale: z.ZodOptional<z.ZodObject<{
502
289
  min: z.ZodNumber;
503
290
  max: z.ZodNumber;
504
291
  scale_up_cpu_percent: z.ZodOptional<z.ZodNumber>;
@@ -506,328 +293,44 @@ export declare const percherConfigSchema: z.ZodObject<{
506
293
  scale_down_cpu_percent: z.ZodOptional<z.ZodNumber>;
507
294
  scale_down_sustain_seconds: z.ZodOptional<z.ZodNumber>;
508
295
  cooldown_seconds: z.ZodOptional<z.ZodNumber>;
509
- }, "strict", z.ZodTypeAny, {
510
- min: number;
511
- max: number;
512
- scale_up_cpu_percent?: number | undefined;
513
- scale_up_sustain_seconds?: number | undefined;
514
- scale_down_cpu_percent?: number | undefined;
515
- scale_down_sustain_seconds?: number | undefined;
516
- cooldown_seconds?: number | undefined;
517
- }, {
518
- min: number;
519
- max: number;
520
- scale_up_cpu_percent?: number | undefined;
521
- scale_up_sustain_seconds?: number | undefined;
522
- scale_down_cpu_percent?: number | undefined;
523
- scale_down_sustain_seconds?: number | undefined;
524
- cooldown_seconds?: number | undefined;
525
- }>, {
526
- min: number;
527
- max: number;
528
- scale_up_cpu_percent?: number | undefined;
529
- scale_up_sustain_seconds?: number | undefined;
530
- scale_down_cpu_percent?: number | undefined;
531
- scale_down_sustain_seconds?: number | undefined;
532
- cooldown_seconds?: number | undefined;
533
- }, {
534
- min: number;
535
- max: number;
536
- scale_up_cpu_percent?: number | undefined;
537
- scale_up_sustain_seconds?: number | undefined;
538
- scale_down_cpu_percent?: number | undefined;
539
- scale_down_sustain_seconds?: number | undefined;
540
- cooldown_seconds?: number | undefined;
541
- }>>;
542
- }, "strict", z.ZodTypeAny, {
543
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
544
- cpu?: number | undefined;
545
- instances?: number | undefined;
546
- autoscale?: {
547
- min: number;
548
- max: number;
549
- scale_up_cpu_percent?: number | undefined;
550
- scale_up_sustain_seconds?: number | undefined;
551
- scale_down_cpu_percent?: number | undefined;
552
- scale_down_sustain_seconds?: number | undefined;
553
- cooldown_seconds?: number | undefined;
554
- } | undefined;
555
- }, {
556
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
557
- cpu?: number | undefined;
558
- instances?: number | undefined;
559
- autoscale?: {
560
- min: number;
561
- max: number;
562
- scale_up_cpu_percent?: number | undefined;
563
- scale_up_sustain_seconds?: number | undefined;
564
- scale_down_cpu_percent?: number | undefined;
565
- scale_down_sustain_seconds?: number | undefined;
566
- cooldown_seconds?: number | undefined;
567
- } | undefined;
568
- }>, {
569
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
570
- cpu?: number | undefined;
571
- instances?: number | undefined;
572
- autoscale?: {
573
- min: number;
574
- max: number;
575
- scale_up_cpu_percent?: number | undefined;
576
- scale_up_sustain_seconds?: number | undefined;
577
- scale_down_cpu_percent?: number | undefined;
578
- scale_down_sustain_seconds?: number | undefined;
579
- cooldown_seconds?: number | undefined;
580
- } | undefined;
581
- }, {
582
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
583
- cpu?: number | undefined;
584
- instances?: number | undefined;
585
- autoscale?: {
586
- min: number;
587
- max: number;
588
- scale_up_cpu_percent?: number | undefined;
589
- scale_up_sustain_seconds?: number | undefined;
590
- scale_down_cpu_percent?: number | undefined;
591
- scale_down_sustain_seconds?: number | undefined;
592
- cooldown_seconds?: number | undefined;
593
- } | undefined;
594
- }>>;
296
+ }, z.core.$strict>>;
297
+ }, z.core.$strict>>;
595
298
  dev: z.ZodOptional<z.ZodObject<{
596
- ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
299
+ ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
597
300
  debounce: z.ZodOptional<z.ZodNumber>;
598
301
  auto_open: z.ZodOptional<z.ZodBoolean>;
599
- }, "strict", z.ZodTypeAny, {
600
- ignore?: string[] | undefined;
601
- debounce?: number | undefined;
602
- auto_open?: boolean | undefined;
603
- }, {
604
- ignore?: string[] | undefined;
605
- debounce?: number | undefined;
606
- auto_open?: boolean | undefined;
607
- }>>;
608
- required_env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["secret", "url", "string"]>>>;
302
+ }, z.core.$strict>>;
303
+ required_env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
304
+ string: "string";
305
+ url: "url";
306
+ secret: "secret";
307
+ }>>>;
609
308
  crons: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
610
309
  schedule: z.ZodString;
611
310
  command: z.ZodString;
612
- }, "strict", z.ZodTypeAny, {
613
- command: string;
614
- schedule: string;
615
- }, {
616
- command: string;
617
- schedule: string;
618
- }>>>;
311
+ }, z.core.$strict>>>;
619
312
  addons: z.ZodOptional<z.ZodObject<{
620
313
  pocketbase: z.ZodOptional<z.ZodObject<{
621
314
  enabled: z.ZodOptional<z.ZodBoolean>;
622
- }, "strict", z.ZodTypeAny, {
623
- enabled?: boolean | undefined;
624
- }, {
625
- enabled?: boolean | undefined;
626
- }>>;
315
+ }, z.core.$strict>>;
627
316
  cron: z.ZodOptional<z.ZodObject<{
628
317
  enabled: z.ZodOptional<z.ZodBoolean>;
629
- }, "strict", z.ZodTypeAny, {
630
- enabled?: boolean | undefined;
631
- }, {
632
- enabled?: boolean | undefined;
633
- }>>;
318
+ }, z.core.$strict>>;
634
319
  storage: z.ZodOptional<z.ZodObject<{
635
- mode: z.ZodOptional<z.ZodEnum<["pocketbase", "volume", "s3"]>>;
320
+ mode: z.ZodOptional<z.ZodEnum<{
321
+ pocketbase: "pocketbase";
322
+ volume: "volume";
323
+ s3: "s3";
324
+ }>>;
636
325
  max_size: z.ZodOptional<z.ZodString>;
637
- }, "strict", z.ZodTypeAny, {
638
- mode?: "pocketbase" | "volume" | "s3" | undefined;
639
- max_size?: string | undefined;
640
- }, {
641
- mode?: "pocketbase" | "volume" | "s3" | undefined;
642
- max_size?: string | undefined;
643
- }>>;
644
- }, "strict", z.ZodTypeAny, {
645
- pocketbase?: {
646
- enabled?: boolean | undefined;
647
- } | undefined;
648
- cron?: {
649
- enabled?: boolean | undefined;
650
- } | undefined;
651
- storage?: {
652
- mode?: "pocketbase" | "volume" | "s3" | undefined;
653
- max_size?: string | undefined;
654
- } | undefined;
655
- }, {
656
- pocketbase?: {
657
- enabled?: boolean | undefined;
658
- } | undefined;
659
- cron?: {
660
- enabled?: boolean | undefined;
661
- } | undefined;
662
- storage?: {
663
- mode?: "pocketbase" | "volume" | "s3" | undefined;
664
- max_size?: string | undefined;
665
- } | undefined;
666
- }>>;
326
+ }, z.core.$strict>>;
327
+ }, z.core.$strict>>;
667
328
  checks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
668
329
  path: z.ZodString;
669
330
  interval: z.ZodOptional<z.ZodNumber>;
670
331
  timeout: z.ZodOptional<z.ZodNumber>;
671
332
  initial_delay: z.ZodOptional<z.ZodNumber>;
672
- }, "strict", z.ZodTypeAny, {
673
- path: string;
674
- interval?: number | undefined;
675
- timeout?: number | undefined;
676
- initial_delay?: number | undefined;
677
- }, {
678
- path: string;
679
- interval?: number | undefined;
680
- timeout?: number | undefined;
681
- initial_delay?: number | undefined;
682
- }>>>;
683
- }, "strict", z.ZodTypeAny, {
684
- app: {
685
- name: string;
686
- runtime: "node" | "bun" | "python" | "static" | "docker";
687
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
688
- };
689
- build?: {
690
- command?: string | undefined;
691
- output?: string | undefined;
692
- pass_env?: string[] | undefined;
693
- } | undefined;
694
- web?: {
695
- port: number;
696
- health?: string | undefined;
697
- password?: boolean | undefined;
698
- } | undefined;
699
- data?: {
700
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
701
- convex?: {
702
- deployment_url: string;
703
- } | undefined;
704
- supabase?: {
705
- url: string;
706
- anon_key?: string | undefined;
707
- } | undefined;
708
- file?: string | undefined;
709
- } | undefined;
710
- env?: Record<string, string> | undefined;
711
- domain?: {
712
- custom?: string | undefined;
713
- subdomain?: string | undefined;
714
- } | undefined;
715
- resources?: {
716
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
717
- cpu?: number | undefined;
718
- instances?: number | undefined;
719
- autoscale?: {
720
- min: number;
721
- max: number;
722
- scale_up_cpu_percent?: number | undefined;
723
- scale_up_sustain_seconds?: number | undefined;
724
- scale_down_cpu_percent?: number | undefined;
725
- scale_down_sustain_seconds?: number | undefined;
726
- cooldown_seconds?: number | undefined;
727
- } | undefined;
728
- } | undefined;
729
- dev?: {
730
- ignore?: string[] | undefined;
731
- debounce?: number | undefined;
732
- auto_open?: boolean | undefined;
733
- } | undefined;
734
- required_env?: Record<string, "string" | "url" | "secret"> | undefined;
735
- crons?: Record<string, {
736
- command: string;
737
- schedule: string;
738
- }> | undefined;
739
- addons?: {
740
- pocketbase?: {
741
- enabled?: boolean | undefined;
742
- } | undefined;
743
- cron?: {
744
- enabled?: boolean | undefined;
745
- } | undefined;
746
- storage?: {
747
- mode?: "pocketbase" | "volume" | "s3" | undefined;
748
- max_size?: string | undefined;
749
- } | undefined;
750
- } | undefined;
751
- checks?: Record<string, {
752
- path: string;
753
- interval?: number | undefined;
754
- timeout?: number | undefined;
755
- initial_delay?: number | undefined;
756
- }> | undefined;
757
- }, {
758
- app: {
759
- name: string;
760
- runtime: "node" | "bun" | "python" | "static" | "docker";
761
- framework?: "docker" | "nextjs" | "sveltekit" | "astro" | "remix" | "nuxt" | "vite" | "preact" | "solid" | "express" | "fastify" | "hono" | "elysia" | "fastapi" | "flask" | "django" | "eleventy" | "hugo" | "laravel" | "rails" | "phoenix" | "go" | "rust" | "dotnet" | "java" | undefined;
762
- };
763
- build?: {
764
- command?: string | undefined;
765
- output?: string | undefined;
766
- pass_env?: string[] | undefined;
767
- } | undefined;
768
- web?: {
769
- port: number;
770
- health?: string | undefined;
771
- password?: boolean | undefined;
772
- } | undefined;
773
- data?: {
774
- mode: "pocketbase" | "postgres" | "sqlite" | "convex" | "supabase" | "external" | "none";
775
- convex?: {
776
- deployment_url: string;
777
- } | undefined;
778
- supabase?: {
779
- url: string;
780
- anon_key?: string | undefined;
781
- } | undefined;
782
- file?: string | undefined;
783
- } | undefined;
784
- env?: Record<string, string> | undefined;
785
- domain?: {
786
- custom?: string | undefined;
787
- subdomain?: string | undefined;
788
- } | undefined;
789
- resources?: {
790
- memory?: "256mb" | "512mb" | "1gb" | "2gb" | undefined;
791
- cpu?: number | undefined;
792
- instances?: number | undefined;
793
- autoscale?: {
794
- min: number;
795
- max: number;
796
- scale_up_cpu_percent?: number | undefined;
797
- scale_up_sustain_seconds?: number | undefined;
798
- scale_down_cpu_percent?: number | undefined;
799
- scale_down_sustain_seconds?: number | undefined;
800
- cooldown_seconds?: number | undefined;
801
- } | undefined;
802
- } | undefined;
803
- dev?: {
804
- ignore?: string[] | undefined;
805
- debounce?: number | undefined;
806
- auto_open?: boolean | undefined;
807
- } | undefined;
808
- required_env?: Record<string, "string" | "url" | "secret"> | undefined;
809
- crons?: Record<string, {
810
- command: string;
811
- schedule: string;
812
- }> | undefined;
813
- addons?: {
814
- pocketbase?: {
815
- enabled?: boolean | undefined;
816
- } | undefined;
817
- cron?: {
818
- enabled?: boolean | undefined;
819
- } | undefined;
820
- storage?: {
821
- mode?: "pocketbase" | "volume" | "s3" | undefined;
822
- max_size?: string | undefined;
823
- } | undefined;
824
- } | undefined;
825
- checks?: Record<string, {
826
- path: string;
827
- interval?: number | undefined;
828
- timeout?: number | undefined;
829
- initial_delay?: number | undefined;
830
- }> | undefined;
831
- }>;
333
+ }, z.core.$strict>>>;
334
+ }, z.core.$strict>;
832
335
  export type PercherConfig = z.infer<typeof percherConfigSchema>;
833
336
  //# sourceMappingURL=schema.d.ts.map