@sdods/contracts 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,158 @@
1
+ import { z } from 'zod';
2
+ export declare const ApiAuthSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ type: z.ZodLiteral<"none">;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ type: z.ZodLiteral<"bearer">;
6
+ token: z.ZodString;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ type: z.ZodLiteral<"basic">;
9
+ username: z.ZodString;
10
+ password: z.ZodString;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ type: z.ZodLiteral<"header">;
13
+ name: z.ZodString;
14
+ value: z.ZodString;
15
+ }, z.core.$strip>, z.ZodObject<{
16
+ type: z.ZodLiteral<"oauth-client-credentials">;
17
+ tokenUrl: z.ZodString;
18
+ clientId: z.ZodString;
19
+ clientSecret: z.ZodString;
20
+ scope: z.ZodOptional<z.ZodString>;
21
+ audience: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>], "type">;
23
+ export declare const EnvUseSchema: z.ZodObject<{
24
+ locale: z.ZodOptional<z.ZodString>;
25
+ timezoneId: z.ZodOptional<z.ZodString>;
26
+ geolocation: z.ZodOptional<z.ZodObject<{
27
+ latitude: z.ZodNumber;
28
+ longitude: z.ZodNumber;
29
+ }, z.core.$strip>>;
30
+ permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ colorScheme: z.ZodOptional<z.ZodEnum<{
32
+ light: "light";
33
+ dark: "dark";
34
+ "no-preference": "no-preference";
35
+ }>>;
36
+ ignoreHTTPSErrors: z.ZodOptional<z.ZodBoolean>;
37
+ extraHTTPHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
38
+ httpCredentials: z.ZodOptional<z.ZodObject<{
39
+ username: z.ZodString;
40
+ password: z.ZodString;
41
+ }, z.core.$strip>>;
42
+ }, z.core.$strip>;
43
+ export declare const EnvConfigSchema: z.ZodObject<{
44
+ name: z.ZodString;
45
+ description: z.ZodOptional<z.ZodString>;
46
+ ui: z.ZodObject<{
47
+ baseUrl: z.ZodString;
48
+ }, z.core.$strip>;
49
+ api: z.ZodObject<{
50
+ baseUrl: z.ZodString;
51
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
52
+ auth: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
53
+ type: z.ZodLiteral<"none">;
54
+ }, z.core.$strip>, z.ZodObject<{
55
+ type: z.ZodLiteral<"bearer">;
56
+ token: z.ZodString;
57
+ }, z.core.$strip>, z.ZodObject<{
58
+ type: z.ZodLiteral<"basic">;
59
+ username: z.ZodString;
60
+ password: z.ZodString;
61
+ }, z.core.$strip>, z.ZodObject<{
62
+ type: z.ZodLiteral<"header">;
63
+ name: z.ZodString;
64
+ value: z.ZodString;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ type: z.ZodLiteral<"oauth-client-credentials">;
67
+ tokenUrl: z.ZodString;
68
+ clientId: z.ZodString;
69
+ clientSecret: z.ZodString;
70
+ scope: z.ZodOptional<z.ZodString>;
71
+ audience: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strip>], "type">>;
73
+ openapi: z.ZodOptional<z.ZodString>;
74
+ }, z.core.$strip>;
75
+ aliases: z.ZodDefault<z.ZodArray<z.ZodString>>;
76
+ db: z.ZodOptional<z.ZodObject<{
77
+ driver: z.ZodEnum<{
78
+ sqlite: "sqlite";
79
+ postgres: "postgres";
80
+ }>;
81
+ url: z.ZodString;
82
+ }, z.core.$strip>>;
83
+ users: z.ZodDefault<z.ZodObject<{
84
+ poolSize: z.ZodOptional<z.ZodNumber>;
85
+ }, z.core.$strip>>;
86
+ vars: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
87
+ use: z.ZodDefault<z.ZodObject<{
88
+ locale: z.ZodOptional<z.ZodString>;
89
+ timezoneId: z.ZodOptional<z.ZodString>;
90
+ geolocation: z.ZodOptional<z.ZodObject<{
91
+ latitude: z.ZodNumber;
92
+ longitude: z.ZodNumber;
93
+ }, z.core.$strip>>;
94
+ permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
95
+ colorScheme: z.ZodOptional<z.ZodEnum<{
96
+ light: "light";
97
+ dark: "dark";
98
+ "no-preference": "no-preference";
99
+ }>>;
100
+ ignoreHTTPSErrors: z.ZodOptional<z.ZodBoolean>;
101
+ extraHTTPHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
102
+ httpCredentials: z.ZodOptional<z.ZodObject<{
103
+ username: z.ZodString;
104
+ password: z.ZodString;
105
+ }, z.core.$strip>>;
106
+ }, z.core.$strip>>;
107
+ screenshots: z.ZodOptional<z.ZodObject<{
108
+ policy: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<{
109
+ off: "off";
110
+ "on-failure": "on-failure";
111
+ scenario: "scenario";
112
+ step: "step";
113
+ visual: "visual";
114
+ }>>>>;
115
+ fullPage: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
116
+ mask: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
117
+ viewport: z.ZodOptional<z.ZodDefault<z.ZodObject<{
118
+ width: z.ZodNumber;
119
+ height: z.ZodNumber;
120
+ }, z.core.$strip>>>;
121
+ onlyOnFailure: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
122
+ }, z.core.$strip>>;
123
+ heal: z.ZodOptional<z.ZodObject<{
124
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
125
+ primaryTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
126
+ probeTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
127
+ minScore: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
128
+ actions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<{
129
+ check: "check";
130
+ click: "click";
131
+ fill: "fill";
132
+ select: "select";
133
+ assert: "assert";
134
+ hover: "hover";
135
+ }>>>>;
136
+ }, z.core.$strip>>;
137
+ timeouts: z.ZodOptional<z.ZodObject<{
138
+ test: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
139
+ expect: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
140
+ action: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
141
+ navigation: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
142
+ api: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
143
+ }, z.core.$strip>>;
144
+ perf: z.ZodOptional<z.ZodObject<{
145
+ budgets: z.ZodObject<{
146
+ pageLoadMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
147
+ lcpMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
148
+ fcpMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
149
+ ttfbMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
150
+ apiP95Ms: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
151
+ }, z.core.$strip>;
152
+ }, z.core.$strip>>;
153
+ ci: z.ZodOptional<z.ZodBoolean>;
154
+ }, z.core.$strip>;
155
+ export type EnvConfig = z.infer<typeof EnvConfigSchema>;
156
+ export type EnvConfigInput = z.input<typeof EnvConfigSchema>;
157
+ export type ApiAuthConfig = z.infer<typeof ApiAuthSchema>;
158
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { z } from 'zod';
2
+ import { HealConfigSchema, PerfBudgetsSchema, ScreenshotConfigSchema, TimeoutsSchema, } from './project.js';
3
+ export const ApiAuthSchema = z.discriminatedUnion('type', [
4
+ z.object({ type: z.literal('none') }),
5
+ z.object({ type: z.literal('bearer'), token: z.string() }),
6
+ z.object({ type: z.literal('basic'), username: z.string(), password: z.string() }),
7
+ z.object({ type: z.literal('header'), name: z.string(), value: z.string() }),
8
+ z.object({
9
+ type: z.literal('oauth-client-credentials'),
10
+ tokenUrl: z.string().url(),
11
+ clientId: z.string(),
12
+ clientSecret: z.string(),
13
+ scope: z.string().optional(),
14
+ audience: z.string().optional(),
15
+ }),
16
+ ]);
17
+ export const EnvUseSchema = z.object({
18
+ locale: z.string().optional(),
19
+ timezoneId: z.string().optional(),
20
+ geolocation: z.object({ latitude: z.number(), longitude: z.number() }).optional(),
21
+ permissions: z.array(z.string()).optional(),
22
+ colorScheme: z.enum(['light', 'dark', 'no-preference']).optional(),
23
+ ignoreHTTPSErrors: z.boolean().optional(),
24
+ extraHTTPHeaders: z.record(z.string(), z.string()).optional(),
25
+ httpCredentials: z.object({ username: z.string(), password: z.string() }).optional(),
26
+ });
27
+ export const EnvConfigSchema = z.object({
28
+ name: z.string().min(1),
29
+ description: z.string().optional(),
30
+ ui: z.object({ baseUrl: z.string().url() }),
31
+ api: z.object({
32
+ baseUrl: z.string().url(),
33
+ headers: z.record(z.string(), z.string()).default({}),
34
+ auth: ApiAuthSchema.default({ type: 'none' }),
35
+ openapi: z.string().optional(),
36
+ }),
37
+ aliases: z.array(z.string().url()).default([]),
38
+ db: z.object({ driver: z.enum(['sqlite', 'postgres']), url: z.string() }).optional(),
39
+ users: z.object({ poolSize: z.number().int().positive().optional() }).default({}),
40
+ vars: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).default({}),
41
+ use: EnvUseSchema.default({}),
42
+ screenshots: ScreenshotConfigSchema.partial().optional(),
43
+ heal: HealConfigSchema.partial().optional(),
44
+ timeouts: TimeoutsSchema.partial().optional(),
45
+ perf: z.object({ budgets: PerfBudgetsSchema.partial() }).optional(),
46
+ ci: z.boolean().optional(),
47
+ });
48
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1,3 @@
1
+ export * from './project.js';
2
+ export * from './env.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export * from './project.js';
2
+ export * from './env.js';
3
+ //# sourceMappingURL=index.js.map