@lokalise/harmony 1.6.0-exp-jwtutils.22 → 1.8.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.
Files changed (57) hide show
  1. package/README.md +64 -0
  2. package/dist/harmony.cjs +1 -1
  3. package/dist/harmony.mjs +547 -552
  4. package/dist/types/src/components/Sidebar/Sidebar.d.ts +5 -2
  5. package/dist/types/src/components/Sidebar/Sidebar.stories.d.ts +1 -0
  6. package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +3 -0
  7. package/dist/types/src/components/Sidebar/Widgets/IconLink/IconLink.d.ts +3 -0
  8. package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +3 -0
  9. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +4 -0
  10. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +4 -0
  11. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +5 -0
  12. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +3 -0
  13. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +5 -0
  14. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/types.d.ts +9 -6
  15. package/dist/types/src/features/auth/backend/services/getAuthenticatedSessionDetailFromRequest.d.ts +10 -0
  16. package/dist/types/src/features/auth/core/jwtTokenPayload.d.ts +7 -14
  17. package/dist/types/src/features/auth/core/lokaliseAuthAddon.d.ts +8 -0
  18. package/dist/types/src/features/auth/core/middleware/jwtAuthMiddleware.d.ts +1 -1
  19. package/dist/types/src/features/auth/core/middleware/publicApiHeadersMiddleware.d.ts +3 -0
  20. package/dist/types/src/features/auth/core/types/jwtTokenPayload.d.ts +4 -4
  21. package/dist/types/src/features/auth/core/types/jwtTokenPayload.fixture.d.ts +5 -5
  22. package/dist/types/src/features/auth/core/utils/makeAuthHeader.d.ts +2 -3
  23. package/dist/types/src/features/auth/frontend/addon/lokaliseAuthBrowserAddon.d.ts +7 -0
  24. package/dist/types/src/features/auth/frontend/events/NewJwtIssuedEvent.d.ts +1 -1
  25. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedProjectContributor.d.ts +9 -1
  26. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedSessionPayload.d.ts +2 -2
  27. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +7 -1
  28. package/dist/types/src/features/auth/frontend/hooks/useGetPromotedClassicSessionJwtQuery.d.ts +11 -202
  29. package/dist/types/src/features/auth/frontend/utils/cookieTokenUtils.d.ts +4 -0
  30. package/dist/types/src/features/auth/frontend/utils/cookieTokenUtils.test.d.ts +1 -0
  31. package/dist/types/src/features/auth/{index.d.ts → node.d.ts} +1 -11
  32. package/dist/types/src/features/node.d.ts +2 -0
  33. package/dist/types/src/features/publicApi/contributors.d.ts +3 -97
  34. package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +11 -6
  35. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +11 -2
  36. package/dist/types/src/features/publicApi/hooks/useGetUserTokenQuery.d.ts +11 -2
  37. package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +13 -4
  38. package/dist/types/src/features/publicApi/hooks/useRetrieveContributorQuery.d.ts +11 -2
  39. package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +13 -4
  40. package/dist/types/src/features/publicApi/{index.d.ts → node.d.ts} +6 -3
  41. package/dist/types/src/features/publicApi/projects.d.ts +259 -784
  42. package/dist/types/src/features/publicApi/teamUsers.d.ts +3 -70
  43. package/dist/types/src/features/publicApi/types/contributorTypes.d.ts +171 -0
  44. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +1061 -0
  45. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +70 -0
  46. package/dist/types/src/features/publicApi/types/userTokenTypes.d.ts +26 -0
  47. package/dist/types/src/features/publicApi/userToken.d.ts +0 -11
  48. package/dist/types/src/node.d.ts +3 -6
  49. package/dist/types/tests/utils.d.ts +1 -6
  50. package/package.json +23 -18
  51. package/dist/types/src/features/auth/bff/services/getAuthenticatedSessionDetailFromRequest.d.ts +0 -18
  52. package/dist/types/src/features/auth/frontend/utils/cookieToken.d.ts +0 -4
  53. package/dist/types/src/features/publicApi/types/project.d.ts +0 -522
  54. /package/dist/types/src/{features/auth/bff/services/getAuthenticatedSessionPayloadFromRequest.test.d.ts → components/Sidebar/Widgets/ProfileMenu/ProfileMenu.test.d.ts} +0 -0
  55. /package/dist/types/src/features/auth/{frontend/utils/cookieToken.test.d.ts → backend/services/getAuthenticatedSessionPayloadFromRequest.test.d.ts} +0 -0
  56. /package/dist/types/src/features/publicApi/types/{language.d.ts → languageTypes.d.ts} +0 -0
  57. /package/dist/types/src/features/publicApi/types/{teamRole.d.ts → teamRoleTypes.d.ts} +0 -0
@@ -1,522 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const PROJECT_TYPE_SCHEMA: z.ZodUnion<[z.ZodLiteral<"localization_files">, z.ZodLiteral<"paged_documents">, z.ZodLiteral<"marketing">]>;
3
- export type ProjectType = z.infer<typeof PROJECT_TYPE_SCHEMA>;
4
- export declare const PROJECT_SETTINGS_SCHEMA: z.ZodObject<{
5
- per_platform_key_names: z.ZodBoolean;
6
- reviewing: z.ZodBoolean;
7
- auto_toggle_unverified: z.ZodBoolean;
8
- offline_translation: z.ZodBoolean;
9
- key_editing: z.ZodBoolean;
10
- inline_machine_translations: z.ZodBoolean;
11
- custom_translation_statuses: z.ZodBoolean;
12
- custom_translation_statuses_allow_multiple: z.ZodBoolean;
13
- segmentation: z.ZodBoolean;
14
- contributor_preview_download_enabled: z.ZodBoolean;
15
- }, "strip", z.ZodTypeAny, {
16
- per_platform_key_names: boolean;
17
- reviewing: boolean;
18
- auto_toggle_unverified: boolean;
19
- offline_translation: boolean;
20
- key_editing: boolean;
21
- inline_machine_translations: boolean;
22
- custom_translation_statuses: boolean;
23
- custom_translation_statuses_allow_multiple: boolean;
24
- segmentation: boolean;
25
- contributor_preview_download_enabled: boolean;
26
- }, {
27
- per_platform_key_names: boolean;
28
- reviewing: boolean;
29
- auto_toggle_unverified: boolean;
30
- offline_translation: boolean;
31
- key_editing: boolean;
32
- inline_machine_translations: boolean;
33
- custom_translation_statuses: boolean;
34
- custom_translation_statuses_allow_multiple: boolean;
35
- segmentation: boolean;
36
- contributor_preview_download_enabled: boolean;
37
- }>;
38
- export type ProjectSettings = z.infer<typeof PROJECT_SETTINGS_SCHEMA>;
39
- export declare const PROJECT_QA_ISSUES_SCHEMA: z.ZodObject<{
40
- not_reviewed: z.ZodNumber;
41
- unverified: z.ZodNumber;
42
- spelling_grammar: z.ZodNumber;
43
- inconsistent_placeholders: z.ZodNumber;
44
- inconsistent_html: z.ZodNumber;
45
- different_number_of_urls: z.ZodNumber;
46
- different_urls: z.ZodNumber;
47
- leading_whitespace: z.ZodNumber;
48
- trailing_whitespace: z.ZodNumber;
49
- different_number_of_email_address: z.ZodNumber;
50
- different_email_address: z.ZodNumber;
51
- different_brackets: z.ZodNumber;
52
- different_numbers: z.ZodNumber;
53
- double_space: z.ZodNumber;
54
- special_placeholder: z.ZodNumber;
55
- unbalanced_brackets: z.ZodNumber;
56
- }, "strip", z.ZodTypeAny, {
57
- not_reviewed: number;
58
- unverified: number;
59
- spelling_grammar: number;
60
- inconsistent_placeholders: number;
61
- inconsistent_html: number;
62
- different_number_of_urls: number;
63
- different_urls: number;
64
- leading_whitespace: number;
65
- trailing_whitespace: number;
66
- different_number_of_email_address: number;
67
- different_email_address: number;
68
- different_brackets: number;
69
- different_numbers: number;
70
- double_space: number;
71
- special_placeholder: number;
72
- unbalanced_brackets: number;
73
- }, {
74
- not_reviewed: number;
75
- unverified: number;
76
- spelling_grammar: number;
77
- inconsistent_placeholders: number;
78
- inconsistent_html: number;
79
- different_number_of_urls: number;
80
- different_urls: number;
81
- leading_whitespace: number;
82
- trailing_whitespace: number;
83
- different_number_of_email_address: number;
84
- different_email_address: number;
85
- different_brackets: number;
86
- different_numbers: number;
87
- double_space: number;
88
- special_placeholder: number;
89
- unbalanced_brackets: number;
90
- }>;
91
- export type ProjectQaIssues = z.infer<typeof PROJECT_QA_ISSUES_SCHEMA>;
92
- export declare const PROJECT_STATISTICS_SCHEMA: z.ZodObject<{
93
- progress_total: z.ZodNumber;
94
- keys_total: z.ZodNumber;
95
- team: z.ZodNumber;
96
- base_words: z.ZodNumber;
97
- qa_issues_total: z.ZodNumber;
98
- qa_issues: z.ZodObject<{
99
- not_reviewed: z.ZodNumber;
100
- unverified: z.ZodNumber;
101
- spelling_grammar: z.ZodNumber;
102
- inconsistent_placeholders: z.ZodNumber;
103
- inconsistent_html: z.ZodNumber;
104
- different_number_of_urls: z.ZodNumber;
105
- different_urls: z.ZodNumber;
106
- leading_whitespace: z.ZodNumber;
107
- trailing_whitespace: z.ZodNumber;
108
- different_number_of_email_address: z.ZodNumber;
109
- different_email_address: z.ZodNumber;
110
- different_brackets: z.ZodNumber;
111
- different_numbers: z.ZodNumber;
112
- double_space: z.ZodNumber;
113
- special_placeholder: z.ZodNumber;
114
- unbalanced_brackets: z.ZodNumber;
115
- }, "strip", z.ZodTypeAny, {
116
- not_reviewed: number;
117
- unverified: number;
118
- spelling_grammar: number;
119
- inconsistent_placeholders: number;
120
- inconsistent_html: number;
121
- different_number_of_urls: number;
122
- different_urls: number;
123
- leading_whitespace: number;
124
- trailing_whitespace: number;
125
- different_number_of_email_address: number;
126
- different_email_address: number;
127
- different_brackets: number;
128
- different_numbers: number;
129
- double_space: number;
130
- special_placeholder: number;
131
- unbalanced_brackets: number;
132
- }, {
133
- not_reviewed: number;
134
- unverified: number;
135
- spelling_grammar: number;
136
- inconsistent_placeholders: number;
137
- inconsistent_html: number;
138
- different_number_of_urls: number;
139
- different_urls: number;
140
- leading_whitespace: number;
141
- trailing_whitespace: number;
142
- different_number_of_email_address: number;
143
- different_email_address: number;
144
- different_brackets: number;
145
- different_numbers: number;
146
- double_space: number;
147
- special_placeholder: number;
148
- unbalanced_brackets: number;
149
- }>;
150
- languages: z.ZodArray<z.ZodObject<{
151
- language_id: z.ZodNumber;
152
- language_iso: z.ZodString;
153
- progress: z.ZodNumber;
154
- words_to_do: z.ZodNumber;
155
- }, "strip", z.ZodTypeAny, {
156
- progress: number;
157
- language_id: number;
158
- language_iso: string;
159
- words_to_do: number;
160
- }, {
161
- progress: number;
162
- language_id: number;
163
- language_iso: string;
164
- words_to_do: number;
165
- }>, "many">;
166
- }, "strip", z.ZodTypeAny, {
167
- team: number;
168
- languages: {
169
- progress: number;
170
- language_id: number;
171
- language_iso: string;
172
- words_to_do: number;
173
- }[];
174
- progress_total: number;
175
- keys_total: number;
176
- base_words: number;
177
- qa_issues_total: number;
178
- qa_issues: {
179
- not_reviewed: number;
180
- unverified: number;
181
- spelling_grammar: number;
182
- inconsistent_placeholders: number;
183
- inconsistent_html: number;
184
- different_number_of_urls: number;
185
- different_urls: number;
186
- leading_whitespace: number;
187
- trailing_whitespace: number;
188
- different_number_of_email_address: number;
189
- different_email_address: number;
190
- different_brackets: number;
191
- different_numbers: number;
192
- double_space: number;
193
- special_placeholder: number;
194
- unbalanced_brackets: number;
195
- };
196
- }, {
197
- team: number;
198
- languages: {
199
- progress: number;
200
- language_id: number;
201
- language_iso: string;
202
- words_to_do: number;
203
- }[];
204
- progress_total: number;
205
- keys_total: number;
206
- base_words: number;
207
- qa_issues_total: number;
208
- qa_issues: {
209
- not_reviewed: number;
210
- unverified: number;
211
- spelling_grammar: number;
212
- inconsistent_placeholders: number;
213
- inconsistent_html: number;
214
- different_number_of_urls: number;
215
- different_urls: number;
216
- leading_whitespace: number;
217
- trailing_whitespace: number;
218
- different_number_of_email_address: number;
219
- different_email_address: number;
220
- different_brackets: number;
221
- different_numbers: number;
222
- double_space: number;
223
- special_placeholder: number;
224
- unbalanced_brackets: number;
225
- };
226
- }>;
227
- export declare const PROJECT_SCHEMA: z.ZodObject<{
228
- project_id: z.ZodString;
229
- uuid: z.ZodString;
230
- project_type: z.ZodUnion<[z.ZodLiteral<"localization_files">, z.ZodLiteral<"paged_documents">, z.ZodLiteral<"marketing">]>;
231
- name: z.ZodString;
232
- description: z.ZodString;
233
- created_at: z.ZodString;
234
- created_at_timestamp: z.ZodNumber;
235
- created_by: z.ZodNumber;
236
- created_by_email: z.ZodString;
237
- team_id: z.ZodNumber;
238
- base_language_id: z.ZodNumber;
239
- base_language_iso: z.ZodString;
240
- settings: z.ZodObject<{
241
- per_platform_key_names: z.ZodBoolean;
242
- reviewing: z.ZodBoolean;
243
- auto_toggle_unverified: z.ZodBoolean;
244
- offline_translation: z.ZodBoolean;
245
- key_editing: z.ZodBoolean;
246
- inline_machine_translations: z.ZodBoolean;
247
- custom_translation_statuses: z.ZodBoolean;
248
- custom_translation_statuses_allow_multiple: z.ZodBoolean;
249
- segmentation: z.ZodBoolean;
250
- contributor_preview_download_enabled: z.ZodBoolean;
251
- }, "strip", z.ZodTypeAny, {
252
- per_platform_key_names: boolean;
253
- reviewing: boolean;
254
- auto_toggle_unverified: boolean;
255
- offline_translation: boolean;
256
- key_editing: boolean;
257
- inline_machine_translations: boolean;
258
- custom_translation_statuses: boolean;
259
- custom_translation_statuses_allow_multiple: boolean;
260
- segmentation: boolean;
261
- contributor_preview_download_enabled: boolean;
262
- }, {
263
- per_platform_key_names: boolean;
264
- reviewing: boolean;
265
- auto_toggle_unverified: boolean;
266
- offline_translation: boolean;
267
- key_editing: boolean;
268
- inline_machine_translations: boolean;
269
- custom_translation_statuses: boolean;
270
- custom_translation_statuses_allow_multiple: boolean;
271
- segmentation: boolean;
272
- contributor_preview_download_enabled: boolean;
273
- }>;
274
- statistics: z.ZodObject<{
275
- progress_total: z.ZodNumber;
276
- keys_total: z.ZodNumber;
277
- team: z.ZodNumber;
278
- base_words: z.ZodNumber;
279
- qa_issues_total: z.ZodNumber;
280
- qa_issues: z.ZodObject<{
281
- not_reviewed: z.ZodNumber;
282
- unverified: z.ZodNumber;
283
- spelling_grammar: z.ZodNumber;
284
- inconsistent_placeholders: z.ZodNumber;
285
- inconsistent_html: z.ZodNumber;
286
- different_number_of_urls: z.ZodNumber;
287
- different_urls: z.ZodNumber;
288
- leading_whitespace: z.ZodNumber;
289
- trailing_whitespace: z.ZodNumber;
290
- different_number_of_email_address: z.ZodNumber;
291
- different_email_address: z.ZodNumber;
292
- different_brackets: z.ZodNumber;
293
- different_numbers: z.ZodNumber;
294
- double_space: z.ZodNumber;
295
- special_placeholder: z.ZodNumber;
296
- unbalanced_brackets: z.ZodNumber;
297
- }, "strip", z.ZodTypeAny, {
298
- not_reviewed: number;
299
- unverified: number;
300
- spelling_grammar: number;
301
- inconsistent_placeholders: number;
302
- inconsistent_html: number;
303
- different_number_of_urls: number;
304
- different_urls: number;
305
- leading_whitespace: number;
306
- trailing_whitespace: number;
307
- different_number_of_email_address: number;
308
- different_email_address: number;
309
- different_brackets: number;
310
- different_numbers: number;
311
- double_space: number;
312
- special_placeholder: number;
313
- unbalanced_brackets: number;
314
- }, {
315
- not_reviewed: number;
316
- unverified: number;
317
- spelling_grammar: number;
318
- inconsistent_placeholders: number;
319
- inconsistent_html: number;
320
- different_number_of_urls: number;
321
- different_urls: number;
322
- leading_whitespace: number;
323
- trailing_whitespace: number;
324
- different_number_of_email_address: number;
325
- different_email_address: number;
326
- different_brackets: number;
327
- different_numbers: number;
328
- double_space: number;
329
- special_placeholder: number;
330
- unbalanced_brackets: number;
331
- }>;
332
- languages: z.ZodArray<z.ZodObject<{
333
- language_id: z.ZodNumber;
334
- language_iso: z.ZodString;
335
- progress: z.ZodNumber;
336
- words_to_do: z.ZodNumber;
337
- }, "strip", z.ZodTypeAny, {
338
- progress: number;
339
- language_id: number;
340
- language_iso: string;
341
- words_to_do: number;
342
- }, {
343
- progress: number;
344
- language_id: number;
345
- language_iso: string;
346
- words_to_do: number;
347
- }>, "many">;
348
- }, "strip", z.ZodTypeAny, {
349
- team: number;
350
- languages: {
351
- progress: number;
352
- language_id: number;
353
- language_iso: string;
354
- words_to_do: number;
355
- }[];
356
- progress_total: number;
357
- keys_total: number;
358
- base_words: number;
359
- qa_issues_total: number;
360
- qa_issues: {
361
- not_reviewed: number;
362
- unverified: number;
363
- spelling_grammar: number;
364
- inconsistent_placeholders: number;
365
- inconsistent_html: number;
366
- different_number_of_urls: number;
367
- different_urls: number;
368
- leading_whitespace: number;
369
- trailing_whitespace: number;
370
- different_number_of_email_address: number;
371
- different_email_address: number;
372
- different_brackets: number;
373
- different_numbers: number;
374
- double_space: number;
375
- special_placeholder: number;
376
- unbalanced_brackets: number;
377
- };
378
- }, {
379
- team: number;
380
- languages: {
381
- progress: number;
382
- language_id: number;
383
- language_iso: string;
384
- words_to_do: number;
385
- }[];
386
- progress_total: number;
387
- keys_total: number;
388
- base_words: number;
389
- qa_issues_total: number;
390
- qa_issues: {
391
- not_reviewed: number;
392
- unverified: number;
393
- spelling_grammar: number;
394
- inconsistent_placeholders: number;
395
- inconsistent_html: number;
396
- different_number_of_urls: number;
397
- different_urls: number;
398
- leading_whitespace: number;
399
- trailing_whitespace: number;
400
- different_number_of_email_address: number;
401
- different_email_address: number;
402
- different_brackets: number;
403
- different_numbers: number;
404
- double_space: number;
405
- special_placeholder: number;
406
- unbalanced_brackets: number;
407
- };
408
- }>;
409
- }, "strip", z.ZodTypeAny, {
410
- name: string;
411
- created_at: string;
412
- created_at_timestamp: number;
413
- project_id: string;
414
- description: string;
415
- uuid: string;
416
- project_type: "localization_files" | "paged_documents" | "marketing";
417
- created_by: number;
418
- created_by_email: string;
419
- team_id: number;
420
- base_language_id: number;
421
- base_language_iso: string;
422
- settings: {
423
- per_platform_key_names: boolean;
424
- reviewing: boolean;
425
- auto_toggle_unverified: boolean;
426
- offline_translation: boolean;
427
- key_editing: boolean;
428
- inline_machine_translations: boolean;
429
- custom_translation_statuses: boolean;
430
- custom_translation_statuses_allow_multiple: boolean;
431
- segmentation: boolean;
432
- contributor_preview_download_enabled: boolean;
433
- };
434
- statistics: {
435
- team: number;
436
- languages: {
437
- progress: number;
438
- language_id: number;
439
- language_iso: string;
440
- words_to_do: number;
441
- }[];
442
- progress_total: number;
443
- keys_total: number;
444
- base_words: number;
445
- qa_issues_total: number;
446
- qa_issues: {
447
- not_reviewed: number;
448
- unverified: number;
449
- spelling_grammar: number;
450
- inconsistent_placeholders: number;
451
- inconsistent_html: number;
452
- different_number_of_urls: number;
453
- different_urls: number;
454
- leading_whitespace: number;
455
- trailing_whitespace: number;
456
- different_number_of_email_address: number;
457
- different_email_address: number;
458
- different_brackets: number;
459
- different_numbers: number;
460
- double_space: number;
461
- special_placeholder: number;
462
- unbalanced_brackets: number;
463
- };
464
- };
465
- }, {
466
- name: string;
467
- created_at: string;
468
- created_at_timestamp: number;
469
- project_id: string;
470
- description: string;
471
- uuid: string;
472
- project_type: "localization_files" | "paged_documents" | "marketing";
473
- created_by: number;
474
- created_by_email: string;
475
- team_id: number;
476
- base_language_id: number;
477
- base_language_iso: string;
478
- settings: {
479
- per_platform_key_names: boolean;
480
- reviewing: boolean;
481
- auto_toggle_unverified: boolean;
482
- offline_translation: boolean;
483
- key_editing: boolean;
484
- inline_machine_translations: boolean;
485
- custom_translation_statuses: boolean;
486
- custom_translation_statuses_allow_multiple: boolean;
487
- segmentation: boolean;
488
- contributor_preview_download_enabled: boolean;
489
- };
490
- statistics: {
491
- team: number;
492
- languages: {
493
- progress: number;
494
- language_id: number;
495
- language_iso: string;
496
- words_to_do: number;
497
- }[];
498
- progress_total: number;
499
- keys_total: number;
500
- base_words: number;
501
- qa_issues_total: number;
502
- qa_issues: {
503
- not_reviewed: number;
504
- unverified: number;
505
- spelling_grammar: number;
506
- inconsistent_placeholders: number;
507
- inconsistent_html: number;
508
- different_number_of_urls: number;
509
- different_urls: number;
510
- leading_whitespace: number;
511
- trailing_whitespace: number;
512
- different_number_of_email_address: number;
513
- different_email_address: number;
514
- different_brackets: number;
515
- different_numbers: number;
516
- double_space: number;
517
- special_placeholder: number;
518
- unbalanced_brackets: number;
519
- };
520
- };
521
- }>;
522
- export type Project = z.infer<typeof PROJECT_SCHEMA>;