@teardown/schemas 0.1.21 → 0.1.23

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.
Files changed (76) hide show
  1. package/package.json +49 -52
  2. package/src/common/primitives.ts +21 -0
  3. package/src/common/responses.ts +25 -0
  4. package/{dist/common/type-checks.d.ts → src/common/type-checks.ts} +23 -4
  5. package/{dist/index.js → src/index.ts} +1 -0
  6. package/src/modules/analytics/schemas.ts +178 -0
  7. package/src/modules/builds/schemas.ts +171 -0
  8. package/src/modules/devices/schemas.ts +196 -0
  9. package/src/modules/environment/schemas.ts +81 -0
  10. package/src/modules/events/index.ts +2 -0
  11. package/src/modules/events/schemas.ts +129 -0
  12. package/src/modules/identify/schemas.ts +257 -0
  13. package/src/modules/me/schemas.ts +87 -0
  14. package/src/modules/orgs/schemas.ts +260 -0
  15. package/src/modules/personas/schemas.ts +123 -0
  16. package/src/modules/projects/schemas.ts +179 -0
  17. package/src/modules/sessions/schemas.ts +158 -0
  18. package/src/modules/versions/schemas.ts +192 -0
  19. package/dist/common/index.js +0 -3
  20. package/dist/common/primitives.d.ts +0 -11
  21. package/dist/common/primitives.js +0 -8
  22. package/dist/common/responses.d.ts +0 -27
  23. package/dist/common/responses.js +0 -13
  24. package/dist/common/type-checks.js +0 -1
  25. package/dist/index.d.ts +0 -13
  26. package/dist/modules/analytics/schemas.d.ts +0 -239
  27. package/dist/modules/analytics/schemas.js +0 -136
  28. package/dist/modules/builds/schemas.d.ts +0 -248
  29. package/dist/modules/builds/schemas.js +0 -137
  30. package/dist/modules/devices/schemas.d.ts +0 -207
  31. package/dist/modules/devices/schemas.js +0 -165
  32. package/dist/modules/environment/schemas.d.ts +0 -56
  33. package/dist/modules/environment/schemas.js +0 -57
  34. package/dist/modules/events/schemas.d.ts +0 -138
  35. package/dist/modules/events/schemas.js +0 -116
  36. package/dist/modules/identify/index.js +0 -1
  37. package/dist/modules/identify/schemas.d.ts +0 -377
  38. package/dist/modules/identify/schemas.js +0 -221
  39. package/dist/modules/index.js +0 -12
  40. package/dist/modules/me/index.d.ts +0 -1
  41. package/dist/modules/me/index.js +0 -1
  42. package/dist/modules/me/schemas.d.ts +0 -75
  43. package/dist/modules/me/schemas.js +0 -76
  44. package/dist/modules/orgs/index.d.ts +0 -1
  45. package/dist/modules/orgs/index.js +0 -1
  46. package/dist/modules/orgs/schemas.d.ts +0 -308
  47. package/dist/modules/orgs/schemas.js +0 -214
  48. package/dist/modules/personas/index.d.ts +0 -1
  49. package/dist/modules/personas/index.js +0 -1
  50. package/dist/modules/personas/schemas.d.ts +0 -170
  51. package/dist/modules/personas/schemas.js +0 -100
  52. package/dist/modules/projects/index.d.ts +0 -1
  53. package/dist/modules/projects/index.js +0 -1
  54. package/dist/modules/projects/schemas.d.ts +0 -222
  55. package/dist/modules/projects/schemas.js +0 -145
  56. package/dist/modules/sessions/index.d.ts +0 -1
  57. package/dist/modules/sessions/index.js +0 -1
  58. package/dist/modules/sessions/schemas.d.ts +0 -258
  59. package/dist/modules/sessions/schemas.js +0 -128
  60. package/dist/modules/versions/index.d.ts +0 -1
  61. package/dist/modules/versions/index.js +0 -1
  62. package/dist/modules/versions/schemas.d.ts +0 -248
  63. package/dist/modules/versions/schemas.js +0 -155
  64. /package/{dist/common/index.d.ts → src/common/index.ts} +0 -0
  65. /package/{dist/modules/analytics/index.d.ts → src/modules/analytics/index.ts} +0 -0
  66. /package/{dist/modules/analytics/index.js → src/modules/builds/index.ts} +0 -0
  67. /package/{dist/modules/builds/index.d.ts → src/modules/devices/index.ts} +0 -0
  68. /package/{dist/modules/builds/index.js → src/modules/environment/index.ts} +0 -0
  69. /package/{dist/modules/devices/index.d.ts → src/modules/identify/index.ts} +0 -0
  70. /package/{dist/modules/index.d.ts → src/modules/index.ts} +0 -0
  71. /package/{dist/modules/devices/index.js → src/modules/me/index.ts} +0 -0
  72. /package/{dist/modules/environment/index.d.ts → src/modules/orgs/index.ts} +0 -0
  73. /package/{dist/modules/environment/index.js → src/modules/personas/index.ts} +0 -0
  74. /package/{dist/modules/events/index.d.ts → src/modules/projects/index.ts} +0 -0
  75. /package/{dist/modules/events/index.js → src/modules/sessions/index.ts} +0 -0
  76. /package/{dist/modules/identify/index.d.ts → src/modules/versions/index.ts} +0 -0
@@ -1,239 +0,0 @@
1
- import { type Static } from "@sinclair/typebox";
2
- /**
3
- * Version adoption schema
4
- */
5
- export declare const VersionAdoptionPointSchema: import("@sinclair/typebox").TObject<{
6
- date: import("@sinclair/typebox").TString;
7
- versions: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber>;
8
- }>;
9
- export type VersionAdoptionPoint = Static<typeof VersionAdoptionPointSchema>;
10
- export declare const VersionAdoptionResponseSchema: import("@sinclair/typebox").TObject<{
11
- success: import("@sinclair/typebox").TLiteral<true>;
12
- data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
13
- date: import("@sinclair/typebox").TString;
14
- versions: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber>;
15
- }>>;
16
- }>;
17
- export type VersionAdoptionResponse = Static<typeof VersionAdoptionResponseSchema>;
18
- /**
19
- * Active sessions trend schema
20
- */
21
- export declare const ActiveSessionsPointSchema: import("@sinclair/typebox").TObject<{
22
- date: import("@sinclair/typebox").TString;
23
- count: import("@sinclair/typebox").TInteger;
24
- }>;
25
- export type ActiveSessionsPoint = Static<typeof ActiveSessionsPointSchema>;
26
- export declare const ActiveSessionsTrendResponseSchema: import("@sinclair/typebox").TObject<{
27
- success: import("@sinclair/typebox").TLiteral<true>;
28
- data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
29
- date: import("@sinclair/typebox").TString;
30
- count: import("@sinclair/typebox").TInteger;
31
- }>>;
32
- }>;
33
- export type ActiveSessionsTrendResponse = Static<typeof ActiveSessionsTrendResponseSchema>;
34
- /**
35
- * Active users schema (with platform breakdown)
36
- */
37
- export declare const ActiveUsersSchema: import("@sinclair/typebox").TObject<{
38
- total: import("@sinclair/typebox").TInteger;
39
- ios: import("@sinclair/typebox").TInteger;
40
- android: import("@sinclair/typebox").TInteger;
41
- trend: import("@sinclair/typebox").TNumber;
42
- }>;
43
- export type ActiveUsers = Static<typeof ActiveUsersSchema>;
44
- export declare const ActiveUsersResponseSchema: import("@sinclair/typebox").TObject<{
45
- success: import("@sinclair/typebox").TLiteral<true>;
46
- data: import("@sinclair/typebox").TObject<{
47
- total: import("@sinclair/typebox").TInteger;
48
- ios: import("@sinclair/typebox").TInteger;
49
- android: import("@sinclair/typebox").TInteger;
50
- trend: import("@sinclair/typebox").TNumber;
51
- }>;
52
- }>;
53
- export type ActiveUsersResponse = Static<typeof ActiveUsersResponseSchema>;
54
- /**
55
- * Active users query params schema
56
- */
57
- export declare const ActiveUsersQuerySchema: import("@sinclair/typebox").TObject<{
58
- start_date: import("@sinclair/typebox").TString;
59
- end_date: import("@sinclair/typebox").TString;
60
- }>;
61
- export type ActiveUsersQuery = Static<typeof ActiveUsersQuerySchema>;
62
- /**
63
- * Build adoption schema (with platform breakdown)
64
- */
65
- export declare const BuildStatsSchema: import("@sinclair/typebox").TObject<{
66
- total: import("@sinclair/typebox").TInteger;
67
- ios: import("@sinclair/typebox").TInteger;
68
- android: import("@sinclair/typebox").TInteger;
69
- }>;
70
- export type BuildStats = Static<typeof BuildStatsSchema>;
71
- export declare const BuildAdoptionPointSchema: import("@sinclair/typebox").TObject<{
72
- date: import("@sinclair/typebox").TString;
73
- builds: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
74
- total: import("@sinclair/typebox").TInteger;
75
- ios: import("@sinclair/typebox").TInteger;
76
- android: import("@sinclair/typebox").TInteger;
77
- }>>;
78
- }>;
79
- export type BuildAdoptionPoint = Static<typeof BuildAdoptionPointSchema>;
80
- export declare const BuildAdoptionResponseSchema: import("@sinclair/typebox").TObject<{
81
- success: import("@sinclair/typebox").TLiteral<true>;
82
- data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
83
- date: import("@sinclair/typebox").TString;
84
- builds: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
85
- total: import("@sinclair/typebox").TInteger;
86
- ios: import("@sinclair/typebox").TInteger;
87
- android: import("@sinclair/typebox").TInteger;
88
- }>>;
89
- }>>;
90
- }>;
91
- export type BuildAdoptionResponse = Static<typeof BuildAdoptionResponseSchema>;
92
- /**
93
- * Date range query params schema (shared)
94
- */
95
- export declare const DateRangeQuerySchema: import("@sinclair/typebox").TObject<{
96
- start_date: import("@sinclair/typebox").TString;
97
- end_date: import("@sinclair/typebox").TString;
98
- }>;
99
- export type DateRangeQuery = Static<typeof DateRangeQuerySchema>;
100
- /**
101
- * Active versions/builds query params schema (with optional search)
102
- */
103
- export declare const ActiveVersionsQuerySchema: import("@sinclair/typebox").TObject<{
104
- start_date: import("@sinclair/typebox").TString;
105
- end_date: import("@sinclair/typebox").TString;
106
- search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
107
- }>;
108
- export type ActiveVersionsQuery = Static<typeof ActiveVersionsQuerySchema>;
109
- /**
110
- * Active versions & builds analytics schema
111
- * Aggregated session counts by version and build for a date range
112
- */
113
- export declare const ActiveBuildStatsSchema: import("@sinclair/typebox").TObject<{
114
- build_id: import("@sinclair/typebox").TString;
115
- build_number: import("@sinclair/typebox").TInteger;
116
- platform: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"IOS">, import("@sinclair/typebox").TLiteral<"ANDROID">]>;
117
- session_count: import("@sinclair/typebox").TInteger;
118
- device_count: import("@sinclair/typebox").TInteger;
119
- }>;
120
- export type ActiveBuildStats = Static<typeof ActiveBuildStatsSchema>;
121
- export declare const ActiveVersionStatsSchema: import("@sinclair/typebox").TObject<{
122
- version_id: import("@sinclair/typebox").TString;
123
- version_name: import("@sinclair/typebox").TString;
124
- session_count: import("@sinclair/typebox").TInteger;
125
- device_count: import("@sinclair/typebox").TInteger;
126
- ios_count: import("@sinclair/typebox").TInteger;
127
- android_count: import("@sinclair/typebox").TInteger;
128
- builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
129
- build_id: import("@sinclair/typebox").TString;
130
- build_number: import("@sinclair/typebox").TInteger;
131
- platform: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"IOS">, import("@sinclair/typebox").TLiteral<"ANDROID">]>;
132
- session_count: import("@sinclair/typebox").TInteger;
133
- device_count: import("@sinclair/typebox").TInteger;
134
- }>>;
135
- }>;
136
- export type ActiveVersionStats = Static<typeof ActiveVersionStatsSchema>;
137
- export declare const ActiveVersionsBuildsSchema: import("@sinclair/typebox").TObject<{
138
- versions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
139
- version_id: import("@sinclair/typebox").TString;
140
- version_name: import("@sinclair/typebox").TString;
141
- session_count: import("@sinclair/typebox").TInteger;
142
- device_count: import("@sinclair/typebox").TInteger;
143
- ios_count: import("@sinclair/typebox").TInteger;
144
- android_count: import("@sinclair/typebox").TInteger;
145
- builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
146
- build_id: import("@sinclair/typebox").TString;
147
- build_number: import("@sinclair/typebox").TInteger;
148
- platform: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"IOS">, import("@sinclair/typebox").TLiteral<"ANDROID">]>;
149
- session_count: import("@sinclair/typebox").TInteger;
150
- device_count: import("@sinclair/typebox").TInteger;
151
- }>>;
152
- }>>;
153
- }>;
154
- export type ActiveVersionsBuilds = Static<typeof ActiveVersionsBuildsSchema>;
155
- export declare const ActiveVersionsBuildsResponseSchema: import("@sinclair/typebox").TObject<{
156
- success: import("@sinclair/typebox").TLiteral<true>;
157
- data: import("@sinclair/typebox").TObject<{
158
- versions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
159
- version_id: import("@sinclair/typebox").TString;
160
- version_name: import("@sinclair/typebox").TString;
161
- session_count: import("@sinclair/typebox").TInteger;
162
- device_count: import("@sinclair/typebox").TInteger;
163
- ios_count: import("@sinclair/typebox").TInteger;
164
- android_count: import("@sinclair/typebox").TInteger;
165
- builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
166
- build_id: import("@sinclair/typebox").TString;
167
- build_number: import("@sinclair/typebox").TInteger;
168
- platform: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"IOS">, import("@sinclair/typebox").TLiteral<"ANDROID">]>;
169
- session_count: import("@sinclair/typebox").TInteger;
170
- device_count: import("@sinclair/typebox").TInteger;
171
- }>>;
172
- }>>;
173
- }>;
174
- }>;
175
- export type ActiveVersionsBuildsResponse = Static<typeof ActiveVersionsBuildsResponseSchema>;
176
- /**
177
- * Session with user/device data for build sessions endpoint
178
- */
179
- export declare const SessionDeviceSchema: import("@sinclair/typebox").TObject<{
180
- id: import("@sinclair/typebox").TString;
181
- device_name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
182
- device_brand: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
183
- }>;
184
- export type SessionDevice = Static<typeof SessionDeviceSchema>;
185
- export declare const SessionUserSchema: import("@sinclair/typebox").TObject<{
186
- id: import("@sinclair/typebox").TString;
187
- user_id: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
188
- email: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
189
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
190
- }>;
191
- export type SessionUser = Static<typeof SessionUserSchema>;
192
- export declare const SessionWithUserSchema: import("@sinclair/typebox").TObject<{
193
- id: import("@sinclair/typebox").TString;
194
- started_at: import("@sinclair/typebox").TString;
195
- os_version: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
196
- device: import("@sinclair/typebox").TObject<{
197
- id: import("@sinclair/typebox").TString;
198
- device_name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
199
- device_brand: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
200
- }>;
201
- user: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
202
- id: import("@sinclair/typebox").TString;
203
- user_id: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
204
- email: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
205
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
206
- }>, import("@sinclair/typebox").TNull]>;
207
- }>;
208
- export type SessionWithUser = Static<typeof SessionWithUserSchema>;
209
- export declare const BuildSessionsQuerySchema: import("@sinclair/typebox").TObject<{
210
- start_date: import("@sinclair/typebox").TString;
211
- end_date: import("@sinclair/typebox").TString;
212
- cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
213
- limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
214
- search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
215
- }>;
216
- export type BuildSessionsQuery = Static<typeof BuildSessionsQuerySchema>;
217
- export declare const BuildSessionsResponseSchema: import("@sinclair/typebox").TObject<{
218
- success: import("@sinclair/typebox").TLiteral<true>;
219
- data: import("@sinclair/typebox").TObject<{
220
- sessions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
221
- id: import("@sinclair/typebox").TString;
222
- started_at: import("@sinclair/typebox").TString;
223
- os_version: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
224
- device: import("@sinclair/typebox").TObject<{
225
- id: import("@sinclair/typebox").TString;
226
- device_name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
227
- device_brand: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
228
- }>;
229
- user: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
230
- id: import("@sinclair/typebox").TString;
231
- user_id: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
232
- email: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
233
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
234
- }>, import("@sinclair/typebox").TNull]>;
235
- }>>;
236
- next_cursor: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
237
- }>;
238
- }>;
239
- export type BuildSessionsResponse = Static<typeof BuildSessionsResponseSchema>;
@@ -1,136 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- /**
3
- * Version adoption schema
4
- */
5
- export const VersionAdoptionPointSchema = Type.Object({
6
- date: Type.String(), // YYYY-MM-DD
7
- versions: Type.Record(Type.String(), Type.Number()), // version -> count
8
- });
9
- export const VersionAdoptionResponseSchema = Type.Object({
10
- success: Type.Literal(true),
11
- data: Type.Array(VersionAdoptionPointSchema),
12
- });
13
- /**
14
- * Active sessions trend schema
15
- */
16
- export const ActiveSessionsPointSchema = Type.Object({
17
- date: Type.String(), // YYYY-MM-DD
18
- count: Type.Integer({ minimum: 0 }),
19
- });
20
- export const ActiveSessionsTrendResponseSchema = Type.Object({
21
- success: Type.Literal(true),
22
- data: Type.Array(ActiveSessionsPointSchema),
23
- });
24
- /**
25
- * Active users schema (with platform breakdown)
26
- */
27
- export const ActiveUsersSchema = Type.Object({
28
- total: Type.Integer({ minimum: 0 }),
29
- ios: Type.Integer({ minimum: 0 }),
30
- android: Type.Integer({ minimum: 0 }),
31
- trend: Type.Number(), // percentage change vs previous period
32
- });
33
- export const ActiveUsersResponseSchema = Type.Object({
34
- success: Type.Literal(true),
35
- data: ActiveUsersSchema,
36
- });
37
- /**
38
- * Active users query params schema
39
- */
40
- export const ActiveUsersQuerySchema = Type.Object({
41
- start_date: Type.String({ format: "date-time" }),
42
- end_date: Type.String({ format: "date-time" }),
43
- });
44
- /**
45
- * Build adoption schema (with platform breakdown)
46
- */
47
- export const BuildStatsSchema = Type.Object({
48
- total: Type.Integer({ minimum: 0 }),
49
- ios: Type.Integer({ minimum: 0 }),
50
- android: Type.Integer({ minimum: 0 }),
51
- });
52
- export const BuildAdoptionPointSchema = Type.Object({
53
- date: Type.String(), // YYYY-MM-DD
54
- builds: Type.Record(Type.String(), BuildStatsSchema), // build_number -> stats
55
- });
56
- export const BuildAdoptionResponseSchema = Type.Object({
57
- success: Type.Literal(true),
58
- data: Type.Array(BuildAdoptionPointSchema),
59
- });
60
- /**
61
- * Date range query params schema (shared)
62
- */
63
- export const DateRangeQuerySchema = Type.Object({
64
- start_date: Type.String({ format: "date-time" }),
65
- end_date: Type.String({ format: "date-time" }),
66
- });
67
- /**
68
- * Active versions/builds query params schema (with optional search)
69
- */
70
- export const ActiveVersionsQuerySchema = Type.Object({
71
- start_date: Type.String({ format: "date-time" }),
72
- end_date: Type.String({ format: "date-time" }),
73
- search: Type.Optional(Type.String()),
74
- });
75
- /**
76
- * Active versions & builds analytics schema
77
- * Aggregated session counts by version and build for a date range
78
- */
79
- export const ActiveBuildStatsSchema = Type.Object({
80
- build_id: Type.String(),
81
- build_number: Type.Integer({ minimum: 0 }),
82
- platform: Type.Union([Type.Literal("IOS"), Type.Literal("ANDROID")]),
83
- session_count: Type.Integer({ minimum: 0 }),
84
- device_count: Type.Integer({ minimum: 0 }),
85
- });
86
- export const ActiveVersionStatsSchema = Type.Object({
87
- version_id: Type.String(),
88
- version_name: Type.String(),
89
- session_count: Type.Integer({ minimum: 0 }),
90
- device_count: Type.Integer({ minimum: 0 }),
91
- ios_count: Type.Integer({ minimum: 0 }),
92
- android_count: Type.Integer({ minimum: 0 }),
93
- builds: Type.Array(ActiveBuildStatsSchema),
94
- });
95
- export const ActiveVersionsBuildsSchema = Type.Object({
96
- versions: Type.Array(ActiveVersionStatsSchema),
97
- });
98
- export const ActiveVersionsBuildsResponseSchema = Type.Object({
99
- success: Type.Literal(true),
100
- data: ActiveVersionsBuildsSchema,
101
- });
102
- /**
103
- * Session with user/device data for build sessions endpoint
104
- */
105
- export const SessionDeviceSchema = Type.Object({
106
- id: Type.String(),
107
- device_name: Type.Union([Type.String(), Type.Null()]),
108
- device_brand: Type.Union([Type.String(), Type.Null()]),
109
- });
110
- export const SessionUserSchema = Type.Object({
111
- id: Type.String(),
112
- user_id: Type.Union([Type.String(), Type.Null()]),
113
- email: Type.Union([Type.String(), Type.Null()]),
114
- name: Type.Union([Type.String(), Type.Null()]),
115
- });
116
- export const SessionWithUserSchema = Type.Object({
117
- id: Type.String(),
118
- started_at: Type.String(),
119
- os_version: Type.Union([Type.String(), Type.Null()]),
120
- device: SessionDeviceSchema,
121
- user: Type.Union([SessionUserSchema, Type.Null()]),
122
- });
123
- export const BuildSessionsQuerySchema = Type.Object({
124
- start_date: Type.String({ format: "date-time" }),
125
- end_date: Type.String({ format: "date-time" }),
126
- cursor: Type.Optional(Type.String()),
127
- limit: Type.Optional(Type.String({ default: "20" })),
128
- search: Type.Optional(Type.String()),
129
- });
130
- export const BuildSessionsResponseSchema = Type.Object({
131
- success: Type.Literal(true),
132
- data: Type.Object({
133
- sessions: Type.Array(SessionWithUserSchema),
134
- next_cursor: Type.Union([Type.String(), Type.Null()]),
135
- }),
136
- });
@@ -1,248 +0,0 @@
1
- import { VersionBuildStatusEnum } from "@teardown/types";
2
- import { type Static } from "@sinclair/typebox";
3
- import type { AssertSchemaCompatibleWithRow, AssertTrue } from "../../common";
4
- /**
5
- * Build status enum matching database (reuses VersionBuildStatusEnum)
6
- */
7
- export declare const BuildStatusSchema: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
8
- export type BuildStatus = Static<typeof BuildStatusSchema>;
9
- /**
10
- * Base build schema
11
- * Represents version_builds table structure
12
- */
13
- export declare const BuildSchema: import("@sinclair/typebox").TObject<{
14
- id: import("@sinclair/typebox").TString;
15
- version_id: import("@sinclair/typebox").TString;
16
- build_number: import("@sinclair/typebox").TInteger;
17
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
18
- summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
19
- commit_sha: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
20
- platform: import("@sinclair/typebox").TEnum<typeof import("@teardown/types").DevicePlatformEnum>;
21
- status: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
22
- fingerprint: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
23
- created_at: import("@sinclair/typebox").TString;
24
- updated_at: import("@sinclair/typebox").TString;
25
- }>;
26
- export type Build = Static<typeof BuildSchema>;
27
- /**
28
- * Build params schema
29
- */
30
- export declare const BuildParamsSchema: import("@sinclair/typebox").TObject<{
31
- build_id: import("@sinclair/typebox").TString;
32
- }>;
33
- export type BuildParams = Static<typeof BuildParamsSchema>;
34
- /**
35
- * Search builds query schema
36
- * Supports pagination, search, and sorting
37
- */
38
- export declare const SearchBuildsQuerySchema: import("@sinclair/typebox").TObject<{
39
- project_id: import("@sinclair/typebox").TString;
40
- page: import("@sinclair/typebox").TNumber;
41
- limit: import("@sinclair/typebox").TNumber;
42
- search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
43
- sort_by: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"created_at">, import("@sinclair/typebox").TLiteral<"updated_at">, import("@sinclair/typebox").TLiteral<"build_number">, import("@sinclair/typebox").TLiteral<"platform">, import("@sinclair/typebox").TLiteral<"name">]>;
44
- sort_order: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"asc">, import("@sinclair/typebox").TLiteral<"desc">]>;
45
- }>;
46
- export type SearchBuildsQuery = Static<typeof SearchBuildsQuerySchema>;
47
- /**
48
- * Search builds query schema without project_id (injected from headers)
49
- */
50
- export declare const SearchBuildsQueryParamsSchema: import("@sinclair/typebox").TObject<{
51
- search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
52
- limit: import("@sinclair/typebox").TNumber;
53
- page: import("@sinclair/typebox").TNumber;
54
- sort_by: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"created_at">, import("@sinclair/typebox").TLiteral<"updated_at">, import("@sinclair/typebox").TLiteral<"build_number">, import("@sinclair/typebox").TLiteral<"platform">, import("@sinclair/typebox").TLiteral<"name">]>;
55
- sort_order: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"asc">, import("@sinclair/typebox").TLiteral<"desc">]>;
56
- }>;
57
- export type SearchBuildsQueryParams = Static<typeof SearchBuildsQueryParamsSchema>;
58
- /**
59
- * Builds by IDs request schema
60
- */
61
- export declare const BuildsByIdsSchema: import("@sinclair/typebox").TObject<{
62
- build_ids: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
63
- }>;
64
- export type BuildsByIds = Static<typeof BuildsByIdsSchema>;
65
- /**
66
- * Paginated builds response schema
67
- */
68
- export declare const BuildsResponseSchema: import("@sinclair/typebox").TObject<{
69
- builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
70
- id: import("@sinclair/typebox").TString;
71
- version_id: import("@sinclair/typebox").TString;
72
- build_number: import("@sinclair/typebox").TInteger;
73
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
74
- summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
75
- commit_sha: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
76
- platform: import("@sinclair/typebox").TEnum<typeof import("@teardown/types").DevicePlatformEnum>;
77
- status: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
78
- fingerprint: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
79
- created_at: import("@sinclair/typebox").TString;
80
- updated_at: import("@sinclair/typebox").TString;
81
- }>>;
82
- pagination: import("@sinclair/typebox").TObject<{
83
- page: import("@sinclair/typebox").TInteger;
84
- limit: import("@sinclair/typebox").TInteger;
85
- total: import("@sinclair/typebox").TInteger;
86
- total_pages: import("@sinclair/typebox").TInteger;
87
- }>;
88
- }>;
89
- export type BuildsResponse = Static<typeof BuildsResponseSchema>;
90
- /**
91
- * Single build response schema
92
- */
93
- export declare const BuildResponseSchema: import("@sinclair/typebox").TObject<{
94
- success: import("@sinclair/typebox").TLiteral<true>;
95
- data: import("@sinclair/typebox").TObject<{
96
- id: import("@sinclair/typebox").TString;
97
- version_id: import("@sinclair/typebox").TString;
98
- build_number: import("@sinclair/typebox").TInteger;
99
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
100
- summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
101
- commit_sha: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
102
- platform: import("@sinclair/typebox").TEnum<typeof import("@teardown/types").DevicePlatformEnum>;
103
- status: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
104
- fingerprint: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
105
- created_at: import("@sinclair/typebox").TString;
106
- updated_at: import("@sinclair/typebox").TString;
107
- }>;
108
- }>;
109
- export type BuildResponse = Static<typeof BuildResponseSchema>;
110
- /**
111
- * Build error response schema
112
- * Discriminated union by error code
113
- */
114
- export declare const BuildErrorSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
115
- code: import("@sinclair/typebox").TLiteral<"BUILD_NOT_FOUND">;
116
- message: import("@sinclair/typebox").TString;
117
- }>, import("@sinclair/typebox").TObject<{
118
- code: import("@sinclair/typebox").TLiteral<"PROJECT_NOT_FOUND">;
119
- message: import("@sinclair/typebox").TString;
120
- }>, import("@sinclair/typebox").TObject<{
121
- code: import("@sinclair/typebox").TLiteral<"FORBIDDEN">;
122
- message: import("@sinclair/typebox").TString;
123
- }>, import("@sinclair/typebox").TObject<{
124
- code: import("@sinclair/typebox").TLiteral<"FETCH_FAILED">;
125
- message: import("@sinclair/typebox").TString;
126
- }>, import("@sinclair/typebox").TObject<{
127
- code: import("@sinclair/typebox").TLiteral<"INVALID_PARAMS">;
128
- message: import("@sinclair/typebox").TString;
129
- }>]>;
130
- export type BuildError = Static<typeof BuildErrorSchema>;
131
- /**
132
- * Build error response wrapper
133
- */
134
- export declare const BuildErrorResponseSchema: import("@sinclair/typebox").TObject<{
135
- success: import("@sinclair/typebox").TLiteral<false>;
136
- error: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
137
- code: import("@sinclair/typebox").TLiteral<"BUILD_NOT_FOUND">;
138
- message: import("@sinclair/typebox").TString;
139
- }>, import("@sinclair/typebox").TObject<{
140
- code: import("@sinclair/typebox").TLiteral<"PROJECT_NOT_FOUND">;
141
- message: import("@sinclair/typebox").TString;
142
- }>, import("@sinclair/typebox").TObject<{
143
- code: import("@sinclair/typebox").TLiteral<"FORBIDDEN">;
144
- message: import("@sinclair/typebox").TString;
145
- }>, import("@sinclair/typebox").TObject<{
146
- code: import("@sinclair/typebox").TLiteral<"FETCH_FAILED">;
147
- message: import("@sinclair/typebox").TString;
148
- }>, import("@sinclair/typebox").TObject<{
149
- code: import("@sinclair/typebox").TLiteral<"INVALID_PARAMS">;
150
- message: import("@sinclair/typebox").TString;
151
- }>]>;
152
- }>;
153
- export type BuildErrorResponse = Static<typeof BuildErrorResponseSchema>;
154
- /**
155
- * Build request response schema
156
- */
157
- export declare const BuildRequestResponseSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
158
- success: import("@sinclair/typebox").TLiteral<true>;
159
- data: import("@sinclair/typebox").TObject<{
160
- id: import("@sinclair/typebox").TString;
161
- version_id: import("@sinclair/typebox").TString;
162
- build_number: import("@sinclair/typebox").TInteger;
163
- name: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
164
- summary: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
165
- commit_sha: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
166
- platform: import("@sinclair/typebox").TEnum<typeof import("@teardown/types").DevicePlatformEnum>;
167
- status: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
168
- fingerprint: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
169
- created_at: import("@sinclair/typebox").TString;
170
- updated_at: import("@sinclair/typebox").TString;
171
- }>;
172
- }>, import("@sinclair/typebox").TObject<{
173
- success: import("@sinclair/typebox").TLiteral<false>;
174
- error: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
175
- code: import("@sinclair/typebox").TLiteral<"BUILD_NOT_FOUND">;
176
- message: import("@sinclair/typebox").TString;
177
- }>, import("@sinclair/typebox").TObject<{
178
- code: import("@sinclair/typebox").TLiteral<"PROJECT_NOT_FOUND">;
179
- message: import("@sinclair/typebox").TString;
180
- }>, import("@sinclair/typebox").TObject<{
181
- code: import("@sinclair/typebox").TLiteral<"FORBIDDEN">;
182
- message: import("@sinclair/typebox").TString;
183
- }>, import("@sinclair/typebox").TObject<{
184
- code: import("@sinclair/typebox").TLiteral<"FETCH_FAILED">;
185
- message: import("@sinclair/typebox").TString;
186
- }>, import("@sinclair/typebox").TObject<{
187
- code: import("@sinclair/typebox").TLiteral<"INVALID_PARAMS">;
188
- message: import("@sinclair/typebox").TString;
189
- }>]>;
190
- }>]>;
191
- export type BuildRequestResponse = Static<typeof BuildRequestResponseSchema>;
192
- export type _CheckBuildRow = AssertTrue<AssertSchemaCompatibleWithRow<Build, "version_builds">>;
193
- /**
194
- * Update build status request body schema
195
- */
196
- export declare const UpdateBuildStatusBodySchema: import("@sinclair/typebox").TObject<{
197
- status: import("@sinclair/typebox").TEnum<typeof VersionBuildStatusEnum>;
198
- }>;
199
- export type UpdateBuildStatusBody = Static<typeof UpdateBuildStatusBodySchema>;
200
- /**
201
- * Add UPDATE_FAILED error code for update operations
202
- */
203
- export declare const BuildErrorSchemaWithUpdate: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
204
- code: import("@sinclair/typebox").TLiteral<"BUILD_NOT_FOUND">;
205
- message: import("@sinclair/typebox").TString;
206
- }>, import("@sinclair/typebox").TObject<{
207
- code: import("@sinclair/typebox").TLiteral<"PROJECT_NOT_FOUND">;
208
- message: import("@sinclair/typebox").TString;
209
- }>, import("@sinclair/typebox").TObject<{
210
- code: import("@sinclair/typebox").TLiteral<"FORBIDDEN">;
211
- message: import("@sinclair/typebox").TString;
212
- }>, import("@sinclair/typebox").TObject<{
213
- code: import("@sinclair/typebox").TLiteral<"FETCH_FAILED">;
214
- message: import("@sinclair/typebox").TString;
215
- }>, import("@sinclair/typebox").TObject<{
216
- code: import("@sinclair/typebox").TLiteral<"INVALID_PARAMS">;
217
- message: import("@sinclair/typebox").TString;
218
- }>]>, import("@sinclair/typebox").TObject<{
219
- code: import("@sinclair/typebox").TLiteral<"UPDATE_FAILED">;
220
- message: import("@sinclair/typebox").TString;
221
- }>]>;
222
- export type BuildErrorWithUpdate = Static<typeof BuildErrorSchemaWithUpdate>;
223
- /**
224
- * Build error response wrapper with update error
225
- */
226
- export declare const BuildErrorResponseWithUpdateSchema: import("@sinclair/typebox").TObject<{
227
- success: import("@sinclair/typebox").TLiteral<false>;
228
- error: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
229
- code: import("@sinclair/typebox").TLiteral<"BUILD_NOT_FOUND">;
230
- message: import("@sinclair/typebox").TString;
231
- }>, import("@sinclair/typebox").TObject<{
232
- code: import("@sinclair/typebox").TLiteral<"PROJECT_NOT_FOUND">;
233
- message: import("@sinclair/typebox").TString;
234
- }>, import("@sinclair/typebox").TObject<{
235
- code: import("@sinclair/typebox").TLiteral<"FORBIDDEN">;
236
- message: import("@sinclair/typebox").TString;
237
- }>, import("@sinclair/typebox").TObject<{
238
- code: import("@sinclair/typebox").TLiteral<"FETCH_FAILED">;
239
- message: import("@sinclair/typebox").TString;
240
- }>, import("@sinclair/typebox").TObject<{
241
- code: import("@sinclair/typebox").TLiteral<"INVALID_PARAMS">;
242
- message: import("@sinclair/typebox").TString;
243
- }>]>, import("@sinclair/typebox").TObject<{
244
- code: import("@sinclair/typebox").TLiteral<"UPDATE_FAILED">;
245
- message: import("@sinclair/typebox").TString;
246
- }>]>;
247
- }>;
248
- export type BuildErrorResponseWithUpdate = Static<typeof BuildErrorResponseWithUpdateSchema>;