founder-schema 0.15.0 → 0.17.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.
- package/README.md +197 -5
- package/dist/core/common.d.ts +103 -20
- package/dist/core/common.d.ts.map +1 -1
- package/dist/core/common.js +104 -16
- package/dist/core/common.js.map +1 -1
- package/dist/core/limits.d.ts +7 -0
- package/dist/core/limits.d.ts.map +1 -1
- package/dist/core/limits.js +7 -0
- package/dist/core/limits.js.map +1 -1
- package/dist/core/validation.d.ts +26 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +26 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/domains/communities/communities.d.ts +9 -9
- package/dist/domains/discover/discover.d.ts +7 -0
- package/dist/domains/discover/discover.d.ts.map +1 -1
- package/dist/domains/feed/feed.d.ts +11 -11
- package/dist/domains/location/india.d.ts +205 -0
- package/dist/domains/location/india.d.ts.map +1 -0
- package/dist/domains/location/india.js +1175 -0
- package/dist/domains/location/india.js.map +1 -0
- package/dist/domains/onboarding/onboarding-answers.d.ts +81 -0
- package/dist/domains/onboarding/onboarding-answers.d.ts.map +1 -0
- package/dist/domains/onboarding/onboarding-answers.js +141 -0
- package/dist/domains/onboarding/onboarding-answers.js.map +1 -0
- package/dist/domains/onboarding/onboarding.d.ts +422 -34
- package/dist/domains/onboarding/onboarding.d.ts.map +1 -1
- package/dist/domains/onboarding/onboarding.js +314 -58
- package/dist/domains/onboarding/onboarding.js.map +1 -1
- package/dist/domains/products/products.d.ts +3 -3
- package/dist/domains/profile/founder-profile.d.ts +122 -6
- package/dist/domains/profile/founder-profile.d.ts.map +1 -1
- package/dist/domains/profile/founder-profile.js +29 -9
- package/dist/domains/profile/founder-profile.js.map +1 -1
- package/dist/domains/profile/my-profile.d.ts +386 -0
- package/dist/domains/profile/my-profile.d.ts.map +1 -0
- package/dist/domains/profile/my-profile.js +52 -0
- package/dist/domains/profile/my-profile.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* for the end. Letting those two drift is how a wizard says a step is optional
|
|
17
17
|
* and then answers 422 at Finish.
|
|
18
18
|
*
|
|
19
|
-
* NO COPY IN HERE.
|
|
20
|
-
* (`
|
|
19
|
+
* NO COPY IN HERE. A step's label and title are translation KEYS
|
|
20
|
+
* (`labelKey`, `titleKey`), Jansathi's rule for every config string: an English
|
|
21
21
|
* sentence in a shared package is a sentence every other language has to match
|
|
22
22
|
* by wording. A topic category is named by its `key`, which the client words
|
|
23
23
|
* (0.6.0 dropped its `labelKey`: the web, English-only since 2026-10-06, read
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
* @module founder-schema/domains/onboarding
|
|
27
27
|
*/
|
|
28
28
|
import { z } from 'zod';
|
|
29
|
+
import { type Goal } from '../../core/common.js';
|
|
29
30
|
/**
|
|
30
31
|
* 18, ruled by the user 2026-09-21. Under-18 would pull in parental-consent
|
|
31
32
|
* duties under the DPDP Act, which is a different and larger problem than a
|
|
@@ -41,6 +42,40 @@ export declare function ageInYears(isoDate: string, now?: Date): number;
|
|
|
41
42
|
/** A calendar date with no time component, `YYYY-MM-DD`. */
|
|
42
43
|
export declare const isoDateSchema: z.ZodString;
|
|
43
44
|
export type IsoDate = z.infer<typeof isoDateSchema>;
|
|
45
|
+
/**
|
|
46
|
+
* True for a `YYYY-MM-DD` that is a real calendar date (0.17.0, exported so a
|
|
47
|
+
* client's date picker checks a date exactly as `dateOfBirthSchema` does):
|
|
48
|
+
* not 2026-02-30, not 2026-13-01.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isRealIsoDate(value: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Today in India, `YYYY-MM-DD` (0.17.0): the day every age here is counted
|
|
53
|
+
* from (`ageInYears`), so a client's "today" must be this one, never the
|
|
54
|
+
* device's own: east of India the device is already on tomorrow.
|
|
55
|
+
*/
|
|
56
|
+
export declare function todayInIndia(now?: Date): IsoDate;
|
|
57
|
+
/**
|
|
58
|
+
* The dates of birth `dateOfBirthSchema` accepts TODAY, both ends included
|
|
59
|
+
* (0.17.0): `latest` makes someone exactly `MIN_AGE_YEARS` today, `earliest`
|
|
60
|
+
* exactly `MAX_AGE_YEARS`. Worked out with `ageInYears` itself, so a picker
|
|
61
|
+
* that offers only this window can never offer a date the schema refuses, a
|
|
62
|
+
* 29 February included.
|
|
63
|
+
*/
|
|
64
|
+
export declare function dateOfBirthBounds(now?: Date): {
|
|
65
|
+
earliest: IsoDate;
|
|
66
|
+
latest: IsoDate;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* True only for a COMPLETE, real date of birth that is under `MIN_AGE_YEARS`
|
|
70
|
+
* today (0.17.0): the rule the server applies to a draft, where a date still
|
|
71
|
+
* being typed must pass ("19" says nothing about anyone's age yet). Until
|
|
72
|
+
* 0.17.0 the backend wrote this out by hand and skipped the real-date check.
|
|
73
|
+
*/
|
|
74
|
+
export declare function isUnderAgeDateOfBirth(value: unknown, now?: Date): boolean;
|
|
75
|
+
/** A `YYYY-MM-DD` as the instant it is stored as: midnight UTC that day (0.17.0). */
|
|
76
|
+
export declare const isoDateToDate: (iso: IsoDate) => Date;
|
|
77
|
+
/** A stored date (midnight UTC) as `YYYY-MM-DD` (0.17.0): `isoDateToDate`'s inverse. */
|
|
78
|
+
export declare const dateToIsoDate: (date: Date) => IsoDate;
|
|
44
79
|
/**
|
|
45
80
|
* Date of birth, with the age gate applied per parse.
|
|
46
81
|
*
|
|
@@ -52,13 +87,63 @@ export type IsoDate = z.infer<typeof isoDateSchema>;
|
|
|
52
87
|
*/
|
|
53
88
|
export declare const dateOfBirthSchema: z.ZodString;
|
|
54
89
|
export type DateOfBirth = z.infer<typeof dateOfBirthSchema>;
|
|
55
|
-
|
|
90
|
+
/**
|
|
91
|
+
* What KIND of business it is, which is not how it is registered
|
|
92
|
+
* (`LEGAL_STRUCTURE_VALUES`): a freelancer may be a sole proprietorship, a
|
|
93
|
+
* startup a private limited company, a social enterprise a Section 8 company.
|
|
94
|
+
*
|
|
95
|
+
* 0.16.0 (the user, 2026-10-18: "check what more business types we can use")
|
|
96
|
+
* added the kinds an Indian founder network meets beyond the three it had: the
|
|
97
|
+
* independent professional, the services firm, the social enterprise, the
|
|
98
|
+
* family business and the franchise. `sme` is India's MSME.
|
|
99
|
+
*
|
|
100
|
+
* ⚠ Stored on the profile's venture and a Mongoose enum. Append only.
|
|
101
|
+
*/
|
|
102
|
+
export declare const BUSINESS_TYPE_VALUES: readonly ["startup", "sme", "enterprise", "freelancer", "agency", "social_enterprise", "family_business", "franchise"];
|
|
56
103
|
export declare const businessTypeSchema: z.ZodEnum<{
|
|
57
104
|
startup: "startup";
|
|
58
105
|
sme: "sme";
|
|
59
106
|
enterprise: "enterprise";
|
|
107
|
+
freelancer: "freelancer";
|
|
108
|
+
agency: "agency";
|
|
109
|
+
social_enterprise: "social_enterprise";
|
|
110
|
+
family_business: "family_business";
|
|
111
|
+
franchise: "franchise";
|
|
60
112
|
}>;
|
|
61
113
|
export type BusinessType = z.infer<typeof businessTypeSchema>;
|
|
114
|
+
/**
|
|
115
|
+
* How the business is registered in India, or that it is not yet (0.16.0, the
|
|
116
|
+
* user, 2026-10-18: "the categories that we have in India like private
|
|
117
|
+
* limited, LLP or OPC or proprietorship").
|
|
118
|
+
*
|
|
119
|
+
* The forms Indian law provides: a sole proprietorship and a partnership firm
|
|
120
|
+
* (Indian Partnership Act, 1932), a limited liability partnership (LLP Act,
|
|
121
|
+
* 2008), a one person, private limited, public limited or Section 8 (not for
|
|
122
|
+
* profit) company (Companies Act, 2013), a trust or society, and a
|
|
123
|
+
* co-operative society. Two more are answers a founder often has: not
|
|
124
|
+
* registered yet (an idea, or a side project), and registered outside India
|
|
125
|
+
* (an Indian team whose company is incorporated abroad, often in the US).
|
|
126
|
+
*
|
|
127
|
+
* Optional, like the business type, and private to the member: nothing here
|
|
128
|
+
* verifies it (documents are a settings matter, by the user's ruling).
|
|
129
|
+
*
|
|
130
|
+
* ⚠ Stored on the profile's venture and a Mongoose enum. Append only.
|
|
131
|
+
*/
|
|
132
|
+
export declare const LEGAL_STRUCTURE_VALUES: readonly ["not_registered", "sole_proprietorship", "partnership", "llp", "opc", "private_limited", "public_limited", "section_8", "trust_or_society", "cooperative", "registered_abroad"];
|
|
133
|
+
export declare const legalStructureSchema: z.ZodEnum<{
|
|
134
|
+
not_registered: "not_registered";
|
|
135
|
+
sole_proprietorship: "sole_proprietorship";
|
|
136
|
+
partnership: "partnership";
|
|
137
|
+
llp: "llp";
|
|
138
|
+
opc: "opc";
|
|
139
|
+
private_limited: "private_limited";
|
|
140
|
+
public_limited: "public_limited";
|
|
141
|
+
section_8: "section_8";
|
|
142
|
+
trust_or_society: "trust_or_society";
|
|
143
|
+
cooperative: "cooperative";
|
|
144
|
+
registered_abroad: "registered_abroad";
|
|
145
|
+
}>;
|
|
146
|
+
export type LegalStructure = z.infer<typeof legalStructureSchema>;
|
|
62
147
|
/**
|
|
63
148
|
* ONE vocabulary, used TWICE: a member picks these as their `interests`, and a
|
|
64
149
|
* post carries them as its `topics`. That is what makes relevance an index
|
|
@@ -100,6 +185,7 @@ export declare const topicSchema: z.ZodEnum<{
|
|
|
100
185
|
marketing: "marketing";
|
|
101
186
|
supply_chain: "supply_chain";
|
|
102
187
|
fundraising: "fundraising";
|
|
188
|
+
social_enterprise: "social_enterprise";
|
|
103
189
|
mentoring: "mentoring";
|
|
104
190
|
leadership: "leadership";
|
|
105
191
|
networking: "networking";
|
|
@@ -158,7 +244,6 @@ export declare const topicSchema: z.ZodEnum<{
|
|
|
158
244
|
environmental: "environmental";
|
|
159
245
|
women_empowerment: "women_empowerment";
|
|
160
246
|
community_service: "community_service";
|
|
161
|
-
social_enterprise: "social_enterprise";
|
|
162
247
|
education_access: "education_access";
|
|
163
248
|
}>;
|
|
164
249
|
export type Topic = z.infer<typeof topicSchema>;
|
|
@@ -182,6 +267,24 @@ export interface TopicCategory {
|
|
|
182
267
|
values: readonly Topic[];
|
|
183
268
|
}
|
|
184
269
|
export declare const TOPIC_CATEGORIES: readonly TopicCategory[];
|
|
270
|
+
/**
|
|
271
|
+
* The goals step's three headings (0.17.0, moved here from the web, where the
|
|
272
|
+
* grouping lived in the screen): eighteen goals since 0.16.0, shown a group at
|
|
273
|
+
* a time so the eye takes six tiles, not a wall of eighteen. A group is named
|
|
274
|
+
* by its `key`, which the client words, like a topic category.
|
|
275
|
+
*
|
|
276
|
+
* ⚠ `GOAL_VALUES` stays the single source of truth for what a goal IS; this is
|
|
277
|
+
* typed against it, and a test holds the two together in both directions:
|
|
278
|
+
* every goal in exactly one group, nothing in a group that is not a goal.
|
|
279
|
+
*/
|
|
280
|
+
export declare const GOAL_CATEGORY_KEYS: readonly ["build", "grow", "learn"];
|
|
281
|
+
export type GoalCategoryKey = (typeof GOAL_CATEGORY_KEYS)[number];
|
|
282
|
+
/** One group of the goals picker: its `key` (the client words it) and its goals, in order. */
|
|
283
|
+
export interface GoalCategory {
|
|
284
|
+
key: GoalCategoryKey;
|
|
285
|
+
values: readonly Goal[];
|
|
286
|
+
}
|
|
287
|
+
export declare const GOAL_CATEGORIES: readonly GoalCategory[];
|
|
185
288
|
/**
|
|
186
289
|
* How many a member must pick. A minimum exists because these drive feed
|
|
187
290
|
* relevance and zero of them means no relevance at all.
|
|
@@ -193,13 +296,103 @@ export declare const TOPIC_CATEGORIES: readonly TopicCategory[];
|
|
|
193
296
|
*/
|
|
194
297
|
export declare const INTERESTS_MIN = 3;
|
|
195
298
|
export declare const INTERESTS_MAX = 10;
|
|
299
|
+
/**
|
|
300
|
+
* A member's interests, by ONE rule (0.16.0): onboarding's finish and the Me
|
|
301
|
+
* tab's editor (`putMyInterestsBodySchema`) both apply this very schema, so a
|
|
302
|
+
* list one accepts the other can never refuse.
|
|
303
|
+
*
|
|
304
|
+
* Each topic only once: without that, three copies of one topic met the
|
|
305
|
+
* minimum of three while meaning one interest.
|
|
306
|
+
*/
|
|
307
|
+
export declare const interestsSchema: z.ZodArray<z.ZodEnum<{
|
|
308
|
+
ai_ml: "ai_ml";
|
|
309
|
+
b2b_saas: "b2b_saas";
|
|
310
|
+
d2c: "d2c";
|
|
311
|
+
deeptech: "deeptech";
|
|
312
|
+
robotics: "robotics";
|
|
313
|
+
growth: "growth";
|
|
314
|
+
sales: "sales";
|
|
315
|
+
marketing: "marketing";
|
|
316
|
+
supply_chain: "supply_chain";
|
|
317
|
+
fundraising: "fundraising";
|
|
318
|
+
social_enterprise: "social_enterprise";
|
|
319
|
+
mentoring: "mentoring";
|
|
320
|
+
leadership: "leadership";
|
|
321
|
+
networking: "networking";
|
|
322
|
+
public_speaking: "public_speaking";
|
|
323
|
+
teaching: "teaching";
|
|
324
|
+
hiring_talent: "hiring_talent";
|
|
325
|
+
personal_branding: "personal_branding";
|
|
326
|
+
career_transition: "career_transition";
|
|
327
|
+
remote_work: "remote_work";
|
|
328
|
+
blockchain: "blockchain";
|
|
329
|
+
crypto_web3: "crypto_web3";
|
|
330
|
+
data_science: "data_science";
|
|
331
|
+
cybersecurity: "cybersecurity";
|
|
332
|
+
game_dev: "game_dev";
|
|
333
|
+
ux_design: "ux_design";
|
|
334
|
+
app_development: "app_development";
|
|
335
|
+
open_source: "open_source";
|
|
336
|
+
electronics: "electronics";
|
|
337
|
+
space_exploration: "space_exploration";
|
|
338
|
+
green_tech: "green_tech";
|
|
339
|
+
no_code: "no_code";
|
|
340
|
+
entrepreneurship: "entrepreneurship";
|
|
341
|
+
investing: "investing";
|
|
342
|
+
stock_trading: "stock_trading";
|
|
343
|
+
personal_finance: "personal_finance";
|
|
344
|
+
consulting: "consulting";
|
|
345
|
+
ecommerce: "ecommerce";
|
|
346
|
+
retail: "retail";
|
|
347
|
+
real_estate: "real_estate";
|
|
348
|
+
product_management: "product_management";
|
|
349
|
+
meditation: "meditation";
|
|
350
|
+
journaling: "journaling";
|
|
351
|
+
self_improvement: "self_improvement";
|
|
352
|
+
productivity: "productivity";
|
|
353
|
+
reading: "reading";
|
|
354
|
+
online_courses: "online_courses";
|
|
355
|
+
philosophy: "philosophy";
|
|
356
|
+
psychology: "psychology";
|
|
357
|
+
therapy: "therapy";
|
|
358
|
+
sleep_optimization: "sleep_optimization";
|
|
359
|
+
gym: "gym";
|
|
360
|
+
yoga: "yoga";
|
|
361
|
+
photography: "photography";
|
|
362
|
+
writing: "writing";
|
|
363
|
+
graphic_design: "graphic_design";
|
|
364
|
+
filmmaking: "filmmaking";
|
|
365
|
+
digital_art: "digital_art";
|
|
366
|
+
content_creation: "content_creation";
|
|
367
|
+
blogging: "blogging";
|
|
368
|
+
vlogging: "vlogging";
|
|
369
|
+
podcasts: "podcasts";
|
|
370
|
+
animation: "animation";
|
|
371
|
+
music_production: "music_production";
|
|
372
|
+
volunteering: "volunteering";
|
|
373
|
+
ngo_work: "ngo_work";
|
|
374
|
+
environmental: "environmental";
|
|
375
|
+
women_empowerment: "women_empowerment";
|
|
376
|
+
community_service: "community_service";
|
|
377
|
+
education_access: "education_access";
|
|
378
|
+
}>>;
|
|
196
379
|
/**
|
|
197
380
|
* The step keys, in order, as a literal union, so a consumer can key a table by
|
|
198
381
|
* step and have TypeScript insist on every one. Before 0.2.0 `key` was a plain
|
|
199
382
|
* string and the web client kept its own copy of this list to get the same
|
|
200
383
|
* check; a test there held the two together. Now there is one list.
|
|
384
|
+
*
|
|
385
|
+
* 0.16.0 (the user, 2026-10-18) split the old first step, `identity`, into
|
|
386
|
+
* three: `basics` (full name, gender, date of birth, nothing else), `photo`
|
|
387
|
+
* (the photo alone) and `professional` (title, about, skills). Nine steps, up
|
|
388
|
+
* from seven.
|
|
389
|
+
*
|
|
390
|
+
* ⚠ THE SERVER'S RESUME CURSOR IS AN INDEX INTO THIS LIST, so re-ordering it
|
|
391
|
+
* moves every member who stopped part-way. A cursor saved under the old seven
|
|
392
|
+
* is translated by the backend (its progress rows carry the list's version);
|
|
393
|
+
* any further change needs the same.
|
|
201
394
|
*/
|
|
202
|
-
export declare const ONBOARDING_STEP_KEYS: readonly ["
|
|
395
|
+
export declare const ONBOARDING_STEP_KEYS: readonly ["basics", "photo", "professional", "contact", "location", "goals", "interests", "business", "guidelines"];
|
|
203
396
|
export type OnboardingStepKey = (typeof ONBOARDING_STEP_KEYS)[number];
|
|
204
397
|
/**
|
|
205
398
|
* The community guidelines a member agrees to at the last step, by version.
|
|
@@ -214,6 +407,11 @@ export type OnboardingStepKey = (typeof ONBOARDING_STEP_KEYS)[number];
|
|
|
214
407
|
* profile; that record is the point.
|
|
215
408
|
*/
|
|
216
409
|
export declare const GUIDELINES_VERSION: "2026-10-03";
|
|
410
|
+
/**
|
|
411
|
+
* Not agreed at all (the box left unticked) is `guidelinesRequired`; agreed to
|
|
412
|
+
* another text is `guidelinesOutdated` (0.17.0: both were the second, so a
|
|
413
|
+
* client had to word an unticked box itself).
|
|
414
|
+
*/
|
|
217
415
|
export declare const guidelinesVersionSchema: z.ZodLiteral<"2026-10-03">;
|
|
218
416
|
/**
|
|
219
417
|
* The links the contact step collects, picked from the profile's own links so
|
|
@@ -228,6 +426,12 @@ export declare const contactLinksSchema: z.ZodObject<{
|
|
|
228
426
|
export type ContactLinks = z.infer<typeof contactLinksSchema>;
|
|
229
427
|
/** A team size has at most this many digits: `TEAM_SIZE_MAX` written out. */
|
|
230
428
|
export declare const TEAM_SIZE_DIGITS_MAX: number;
|
|
429
|
+
/**
|
|
430
|
+
* A team size as typed, kept to what the field may hold: digits only, at most
|
|
431
|
+
* `TEAM_SIZE_DIGITS_MAX` (0.17.0: the draft reader and every client's field
|
|
432
|
+
* clean it with this one rule).
|
|
433
|
+
*/
|
|
434
|
+
export declare const teamSizeDigits: (raw: string) => string;
|
|
231
435
|
/**
|
|
232
436
|
* The answers so far, keyed by the finish body's own field names: what each
|
|
233
437
|
* step SAVES (`PATCH /onboarding`, merged per field), what `GET` hands back
|
|
@@ -241,10 +445,10 @@ export declare const TEAM_SIZE_DIGITS_MAX: number;
|
|
|
241
445
|
* `completeOnboardingBodySchema`'s decision, and the client builds that body
|
|
242
446
|
* from these answers.
|
|
243
447
|
*
|
|
244
|
-
* Screens may hold a different shape on top of this one
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
448
|
+
* Screens may hold a different shape on top of this one. Derive that type from
|
|
449
|
+
* `OnboardingForm` rather than writing it out, so a field added here reaches
|
|
450
|
+
* every screen. (Since 0.16.0 the name is asked as one full name, which is
|
|
451
|
+
* `displayName` as typed; first and last name are deduced by `splitFullName`.)
|
|
248
452
|
*
|
|
249
453
|
* A stored draft is UNTRUSTED when it comes back: an older client, or another
|
|
250
454
|
* one, wrote it, and the server stores values opaquely. Read it with
|
|
@@ -302,6 +506,13 @@ export declare const onboardingFormSchema: z.ZodObject<{
|
|
|
302
506
|
market_insights: "market_insights";
|
|
303
507
|
learn_startup: "learn_startup";
|
|
304
508
|
start_company: "start_company";
|
|
509
|
+
get_feedback: "get_feedback";
|
|
510
|
+
find_testers: "find_testers";
|
|
511
|
+
mentor_others: "mentor_others";
|
|
512
|
+
invest_in_startups: "invest_in_startups";
|
|
513
|
+
join_startup: "join_startup";
|
|
514
|
+
find_service_providers: "find_service_providers";
|
|
515
|
+
attend_events: "attend_events";
|
|
305
516
|
}>>;
|
|
306
517
|
interests: z.ZodArray<z.ZodEnum<{
|
|
307
518
|
ai_ml: "ai_ml";
|
|
@@ -314,6 +525,7 @@ export declare const onboardingFormSchema: z.ZodObject<{
|
|
|
314
525
|
marketing: "marketing";
|
|
315
526
|
supply_chain: "supply_chain";
|
|
316
527
|
fundraising: "fundraising";
|
|
528
|
+
social_enterprise: "social_enterprise";
|
|
317
529
|
mentoring: "mentoring";
|
|
318
530
|
leadership: "leadership";
|
|
319
531
|
networking: "networking";
|
|
@@ -372,7 +584,6 @@ export declare const onboardingFormSchema: z.ZodObject<{
|
|
|
372
584
|
environmental: "environmental";
|
|
373
585
|
women_empowerment: "women_empowerment";
|
|
374
586
|
community_service: "community_service";
|
|
375
|
-
social_enterprise: "social_enterprise";
|
|
376
587
|
education_access: "education_access";
|
|
377
588
|
}>>;
|
|
378
589
|
venture: z.ZodObject<{
|
|
@@ -417,6 +628,24 @@ export declare const onboardingFormSchema: z.ZodObject<{
|
|
|
417
628
|
startup: "startup";
|
|
418
629
|
sme: "sme";
|
|
419
630
|
enterprise: "enterprise";
|
|
631
|
+
freelancer: "freelancer";
|
|
632
|
+
agency: "agency";
|
|
633
|
+
social_enterprise: "social_enterprise";
|
|
634
|
+
family_business: "family_business";
|
|
635
|
+
franchise: "franchise";
|
|
636
|
+
}>>;
|
|
637
|
+
legalStructure: z.ZodNullable<z.ZodEnum<{
|
|
638
|
+
not_registered: "not_registered";
|
|
639
|
+
sole_proprietorship: "sole_proprietorship";
|
|
640
|
+
partnership: "partnership";
|
|
641
|
+
llp: "llp";
|
|
642
|
+
opc: "opc";
|
|
643
|
+
private_limited: "private_limited";
|
|
644
|
+
public_limited: "public_limited";
|
|
645
|
+
section_8: "section_8";
|
|
646
|
+
trust_or_society: "trust_or_society";
|
|
647
|
+
cooperative: "cooperative";
|
|
648
|
+
registered_abroad: "registered_abroad";
|
|
420
649
|
}>>;
|
|
421
650
|
guidelinesVersion: z.ZodNullable<z.ZodString>;
|
|
422
651
|
}, z.core.$strip>;
|
|
@@ -430,8 +659,8 @@ export declare const EMPTY_ONBOARDING_VENTURE: OnboardingForm['venture'];
|
|
|
430
659
|
* one that does not fit becomes "not answered" (`''`, `null`, `[]`) and the
|
|
431
660
|
* rest of the draft survives. Never coerced into a different answer: a value
|
|
432
661
|
* outside a vocabulary is dropped, not mapped to the nearest one. A photo
|
|
433
|
-
* is never restored (
|
|
434
|
-
* CURRENT guidelines.
|
|
662
|
+
* is never restored from here (it comes back as the status's `photo`; see
|
|
663
|
+
* `avatarMediaId`), and agreement only counts for the CURRENT guidelines.
|
|
435
664
|
*
|
|
436
665
|
* It fills in no answer the member did not give: a blank country stays blank.
|
|
437
666
|
* Whatever a screen shows by default is that screen's choice.
|
|
@@ -453,9 +682,13 @@ export declare function readOnboardingDraft(draft: unknown): OnboardingForm;
|
|
|
453
682
|
*
|
|
454
683
|
* Location, venture and links are the profile's own shapes, not copies: the
|
|
455
684
|
* copies are how the profile model came to lack Instagram.
|
|
685
|
+
*
|
|
686
|
+
* Refined (the business type and registration need a venture, above), so Zod 4
|
|
687
|
+
* throws on `.pick` / `.omit` / `.partial` / `.merge` of it: read a field with
|
|
688
|
+
* `.shape.<field>`, a step's with `ONBOARDING_STEP_SCHEMAS.<step>`.
|
|
456
689
|
*/
|
|
457
690
|
export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
458
|
-
displayName: z.ZodString
|
|
691
|
+
displayName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
459
692
|
gender: z.ZodEnum<{
|
|
460
693
|
other: "other";
|
|
461
694
|
male: "male";
|
|
@@ -474,8 +707,45 @@ export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
|
474
707
|
}, z.core.$strip>>;
|
|
475
708
|
location: z.ZodOptional<z.ZodObject<{
|
|
476
709
|
city: z.ZodString;
|
|
477
|
-
state: z.ZodPreprocess<z.
|
|
478
|
-
|
|
710
|
+
state: z.ZodPreprocess<z.ZodEnum<{
|
|
711
|
+
"Jammu and Kashmir": "Jammu and Kashmir";
|
|
712
|
+
"Himachal Pradesh": "Himachal Pradesh";
|
|
713
|
+
Punjab: "Punjab";
|
|
714
|
+
Chandigarh: "Chandigarh";
|
|
715
|
+
Uttarakhand: "Uttarakhand";
|
|
716
|
+
Haryana: "Haryana";
|
|
717
|
+
Delhi: "Delhi";
|
|
718
|
+
Rajasthan: "Rajasthan";
|
|
719
|
+
"Uttar Pradesh": "Uttar Pradesh";
|
|
720
|
+
Bihar: "Bihar";
|
|
721
|
+
Sikkim: "Sikkim";
|
|
722
|
+
"Arunachal Pradesh": "Arunachal Pradesh";
|
|
723
|
+
Nagaland: "Nagaland";
|
|
724
|
+
Manipur: "Manipur";
|
|
725
|
+
Mizoram: "Mizoram";
|
|
726
|
+
Tripura: "Tripura";
|
|
727
|
+
Meghalaya: "Meghalaya";
|
|
728
|
+
Assam: "Assam";
|
|
729
|
+
"West Bengal": "West Bengal";
|
|
730
|
+
Jharkhand: "Jharkhand";
|
|
731
|
+
Odisha: "Odisha";
|
|
732
|
+
Chhattisgarh: "Chhattisgarh";
|
|
733
|
+
"Madhya Pradesh": "Madhya Pradesh";
|
|
734
|
+
Gujarat: "Gujarat";
|
|
735
|
+
"Dadra and Nagar Haveli and Daman and Diu": "Dadra and Nagar Haveli and Daman and Diu";
|
|
736
|
+
Maharashtra: "Maharashtra";
|
|
737
|
+
Karnataka: "Karnataka";
|
|
738
|
+
Goa: "Goa";
|
|
739
|
+
Lakshadweep: "Lakshadweep";
|
|
740
|
+
Kerala: "Kerala";
|
|
741
|
+
"Tamil Nadu": "Tamil Nadu";
|
|
742
|
+
Puducherry: "Puducherry";
|
|
743
|
+
"Andaman and Nicobar Islands": "Andaman and Nicobar Islands";
|
|
744
|
+
Telangana: "Telangana";
|
|
745
|
+
"Andhra Pradesh": "Andhra Pradesh";
|
|
746
|
+
Ladakh: "Ladakh";
|
|
747
|
+
}>, unknown>;
|
|
748
|
+
country: z.ZodLiteral<"India">;
|
|
479
749
|
}, z.core.$strip>>;
|
|
480
750
|
goals: z.ZodArray<z.ZodEnum<{
|
|
481
751
|
find_cofounder: "find_cofounder";
|
|
@@ -489,6 +759,13 @@ export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
|
489
759
|
market_insights: "market_insights";
|
|
490
760
|
learn_startup: "learn_startup";
|
|
491
761
|
start_company: "start_company";
|
|
762
|
+
get_feedback: "get_feedback";
|
|
763
|
+
find_testers: "find_testers";
|
|
764
|
+
mentor_others: "mentor_others";
|
|
765
|
+
invest_in_startups: "invest_in_startups";
|
|
766
|
+
join_startup: "join_startup";
|
|
767
|
+
find_service_providers: "find_service_providers";
|
|
768
|
+
attend_events: "attend_events";
|
|
492
769
|
}>>;
|
|
493
770
|
interests: z.ZodArray<z.ZodEnum<{
|
|
494
771
|
ai_ml: "ai_ml";
|
|
@@ -501,6 +778,7 @@ export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
|
501
778
|
marketing: "marketing";
|
|
502
779
|
supply_chain: "supply_chain";
|
|
503
780
|
fundraising: "fundraising";
|
|
781
|
+
social_enterprise: "social_enterprise";
|
|
504
782
|
mentoring: "mentoring";
|
|
505
783
|
leadership: "leadership";
|
|
506
784
|
networking: "networking";
|
|
@@ -559,7 +837,6 @@ export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
|
559
837
|
environmental: "environmental";
|
|
560
838
|
women_empowerment: "women_empowerment";
|
|
561
839
|
community_service: "community_service";
|
|
562
|
-
social_enterprise: "social_enterprise";
|
|
563
840
|
education_access: "education_access";
|
|
564
841
|
}>>;
|
|
565
842
|
skills: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
@@ -622,6 +899,24 @@ export declare const completeOnboardingBodySchema: z.ZodObject<{
|
|
|
622
899
|
startup: "startup";
|
|
623
900
|
sme: "sme";
|
|
624
901
|
enterprise: "enterprise";
|
|
902
|
+
freelancer: "freelancer";
|
|
903
|
+
agency: "agency";
|
|
904
|
+
social_enterprise: "social_enterprise";
|
|
905
|
+
family_business: "family_business";
|
|
906
|
+
franchise: "franchise";
|
|
907
|
+
}>>;
|
|
908
|
+
legalStructure: z.ZodOptional<z.ZodEnum<{
|
|
909
|
+
not_registered: "not_registered";
|
|
910
|
+
sole_proprietorship: "sole_proprietorship";
|
|
911
|
+
partnership: "partnership";
|
|
912
|
+
llp: "llp";
|
|
913
|
+
opc: "opc";
|
|
914
|
+
private_limited: "private_limited";
|
|
915
|
+
public_limited: "public_limited";
|
|
916
|
+
section_8: "section_8";
|
|
917
|
+
trust_or_society: "trust_or_society";
|
|
918
|
+
cooperative: "cooperative";
|
|
919
|
+
registered_abroad: "registered_abroad";
|
|
625
920
|
}>>;
|
|
626
921
|
guidelinesVersion: z.ZodLiteral<"2026-10-03">;
|
|
627
922
|
}, z.core.$strip>;
|
|
@@ -643,9 +938,21 @@ export type CompleteOnboardingBodyInput = z.input<typeof completeOnboardingBodyS
|
|
|
643
938
|
* on a draft save, because a half-answered step must be storable.
|
|
644
939
|
*/
|
|
645
940
|
export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
646
|
-
readonly
|
|
941
|
+
readonly basics: z.ZodObject<{
|
|
942
|
+
displayName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
943
|
+
gender: z.ZodEnum<{
|
|
944
|
+
other: "other";
|
|
945
|
+
male: "male";
|
|
946
|
+
female: "female";
|
|
947
|
+
prefer_not_to_say: "prefer_not_to_say";
|
|
948
|
+
}>;
|
|
949
|
+
dateOfBirth: z.ZodString;
|
|
950
|
+
}, z.core.$strip>;
|
|
951
|
+
readonly photo: z.ZodObject<{
|
|
952
|
+
avatarMediaId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
953
|
+
}, z.core.$strip>;
|
|
954
|
+
readonly professional: z.ZodObject<{
|
|
647
955
|
about: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
648
|
-
displayName: z.ZodString;
|
|
649
956
|
headline: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
650
957
|
skills: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
651
958
|
engineering: "engineering";
|
|
@@ -664,14 +971,6 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
664
971
|
fundraising: "fundraising";
|
|
665
972
|
community: "community";
|
|
666
973
|
}>>>;
|
|
667
|
-
gender: z.ZodEnum<{
|
|
668
|
-
other: "other";
|
|
669
|
-
male: "male";
|
|
670
|
-
female: "female";
|
|
671
|
-
prefer_not_to_say: "prefer_not_to_say";
|
|
672
|
-
}>;
|
|
673
|
-
dateOfBirth: z.ZodString;
|
|
674
|
-
avatarMediaId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
675
974
|
}, z.core.$strip>;
|
|
676
975
|
readonly contact: z.ZodObject<{
|
|
677
976
|
links: z.ZodOptional<z.ZodObject<{
|
|
@@ -684,8 +983,45 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
684
983
|
readonly location: z.ZodObject<{
|
|
685
984
|
location: z.ZodOptional<z.ZodObject<{
|
|
686
985
|
city: z.ZodString;
|
|
687
|
-
state: z.ZodPreprocess<z.
|
|
688
|
-
|
|
986
|
+
state: z.ZodPreprocess<z.ZodEnum<{
|
|
987
|
+
"Jammu and Kashmir": "Jammu and Kashmir";
|
|
988
|
+
"Himachal Pradesh": "Himachal Pradesh";
|
|
989
|
+
Punjab: "Punjab";
|
|
990
|
+
Chandigarh: "Chandigarh";
|
|
991
|
+
Uttarakhand: "Uttarakhand";
|
|
992
|
+
Haryana: "Haryana";
|
|
993
|
+
Delhi: "Delhi";
|
|
994
|
+
Rajasthan: "Rajasthan";
|
|
995
|
+
"Uttar Pradesh": "Uttar Pradesh";
|
|
996
|
+
Bihar: "Bihar";
|
|
997
|
+
Sikkim: "Sikkim";
|
|
998
|
+
"Arunachal Pradesh": "Arunachal Pradesh";
|
|
999
|
+
Nagaland: "Nagaland";
|
|
1000
|
+
Manipur: "Manipur";
|
|
1001
|
+
Mizoram: "Mizoram";
|
|
1002
|
+
Tripura: "Tripura";
|
|
1003
|
+
Meghalaya: "Meghalaya";
|
|
1004
|
+
Assam: "Assam";
|
|
1005
|
+
"West Bengal": "West Bengal";
|
|
1006
|
+
Jharkhand: "Jharkhand";
|
|
1007
|
+
Odisha: "Odisha";
|
|
1008
|
+
Chhattisgarh: "Chhattisgarh";
|
|
1009
|
+
"Madhya Pradesh": "Madhya Pradesh";
|
|
1010
|
+
Gujarat: "Gujarat";
|
|
1011
|
+
"Dadra and Nagar Haveli and Daman and Diu": "Dadra and Nagar Haveli and Daman and Diu";
|
|
1012
|
+
Maharashtra: "Maharashtra";
|
|
1013
|
+
Karnataka: "Karnataka";
|
|
1014
|
+
Goa: "Goa";
|
|
1015
|
+
Lakshadweep: "Lakshadweep";
|
|
1016
|
+
Kerala: "Kerala";
|
|
1017
|
+
"Tamil Nadu": "Tamil Nadu";
|
|
1018
|
+
Puducherry: "Puducherry";
|
|
1019
|
+
"Andaman and Nicobar Islands": "Andaman and Nicobar Islands";
|
|
1020
|
+
Telangana: "Telangana";
|
|
1021
|
+
"Andhra Pradesh": "Andhra Pradesh";
|
|
1022
|
+
Ladakh: "Ladakh";
|
|
1023
|
+
}>, unknown>;
|
|
1024
|
+
country: z.ZodLiteral<"India">;
|
|
689
1025
|
}, z.core.$strip>>;
|
|
690
1026
|
}, z.core.$strip>;
|
|
691
1027
|
readonly goals: z.ZodObject<{
|
|
@@ -701,6 +1037,13 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
701
1037
|
market_insights: "market_insights";
|
|
702
1038
|
learn_startup: "learn_startup";
|
|
703
1039
|
start_company: "start_company";
|
|
1040
|
+
get_feedback: "get_feedback";
|
|
1041
|
+
find_testers: "find_testers";
|
|
1042
|
+
mentor_others: "mentor_others";
|
|
1043
|
+
invest_in_startups: "invest_in_startups";
|
|
1044
|
+
join_startup: "join_startup";
|
|
1045
|
+
find_service_providers: "find_service_providers";
|
|
1046
|
+
attend_events: "attend_events";
|
|
704
1047
|
}>>;
|
|
705
1048
|
}, z.core.$strip>;
|
|
706
1049
|
readonly interests: z.ZodObject<{
|
|
@@ -715,6 +1058,7 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
715
1058
|
marketing: "marketing";
|
|
716
1059
|
supply_chain: "supply_chain";
|
|
717
1060
|
fundraising: "fundraising";
|
|
1061
|
+
social_enterprise: "social_enterprise";
|
|
718
1062
|
mentoring: "mentoring";
|
|
719
1063
|
leadership: "leadership";
|
|
720
1064
|
networking: "networking";
|
|
@@ -773,7 +1117,6 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
773
1117
|
environmental: "environmental";
|
|
774
1118
|
women_empowerment: "women_empowerment";
|
|
775
1119
|
community_service: "community_service";
|
|
776
|
-
social_enterprise: "social_enterprise";
|
|
777
1120
|
education_access: "education_access";
|
|
778
1121
|
}>>;
|
|
779
1122
|
}, z.core.$strip>;
|
|
@@ -821,6 +1164,24 @@ export declare const ONBOARDING_STEP_SCHEMAS: {
|
|
|
821
1164
|
startup: "startup";
|
|
822
1165
|
sme: "sme";
|
|
823
1166
|
enterprise: "enterprise";
|
|
1167
|
+
freelancer: "freelancer";
|
|
1168
|
+
agency: "agency";
|
|
1169
|
+
social_enterprise: "social_enterprise";
|
|
1170
|
+
family_business: "family_business";
|
|
1171
|
+
franchise: "franchise";
|
|
1172
|
+
}>>;
|
|
1173
|
+
legalStructure: z.ZodOptional<z.ZodEnum<{
|
|
1174
|
+
not_registered: "not_registered";
|
|
1175
|
+
sole_proprietorship: "sole_proprietorship";
|
|
1176
|
+
partnership: "partnership";
|
|
1177
|
+
llp: "llp";
|
|
1178
|
+
opc: "opc";
|
|
1179
|
+
private_limited: "private_limited";
|
|
1180
|
+
public_limited: "public_limited";
|
|
1181
|
+
section_8: "section_8";
|
|
1182
|
+
trust_or_society: "trust_or_society";
|
|
1183
|
+
cooperative: "cooperative";
|
|
1184
|
+
registered_abroad: "registered_abroad";
|
|
824
1185
|
}>>;
|
|
825
1186
|
}, z.core.$strip>;
|
|
826
1187
|
readonly guidelines: z.ZodObject<{
|
|
@@ -842,9 +1203,15 @@ export type OnboardingField = keyof CompleteOnboardingBody;
|
|
|
842
1203
|
export interface OnboardingStepConfig {
|
|
843
1204
|
/** Stable identifier. Safe for analytics and for a resume cursor, unlike an index. */
|
|
844
1205
|
key: OnboardingStepKey;
|
|
845
|
-
/**
|
|
1206
|
+
/**
|
|
1207
|
+
* Translation keys for what the step's header shows: its short label beside
|
|
1208
|
+
* the step number ("STEP 5 OF 9 · LOCATION") and its one question. The words
|
|
1209
|
+
* live in each client. There is no help line (the user removed it,
|
|
1210
|
+
* 2026-10-19; `helpKey` went in 0.17.0): who sees an answer is said on the
|
|
1211
|
+
* field it is about.
|
|
1212
|
+
*/
|
|
1213
|
+
labelKey: `onboarding.steps.${OnboardingStepKey}.label`;
|
|
846
1214
|
titleKey: `onboarding.steps.${OnboardingStepKey}.title`;
|
|
847
|
-
helpKey: `onboarding.steps.${OnboardingStepKey}.help`;
|
|
848
1215
|
/** The step's slice of the finish body, in schema order. */
|
|
849
1216
|
fields: readonly OnboardingField[];
|
|
850
1217
|
/**
|
|
@@ -888,9 +1255,10 @@ export declare const onboardingDraftKeySchema: z.ZodEnum<{
|
|
|
888
1255
|
interests: "interests";
|
|
889
1256
|
avatarMediaId: "avatarMediaId";
|
|
890
1257
|
businessType: "businessType";
|
|
1258
|
+
legalStructure: "legalStructure";
|
|
891
1259
|
guidelinesVersion: "guidelinesVersion";
|
|
892
1260
|
}>;
|
|
893
|
-
export declare const ONBOARDING_DRAFT_KEYS: ("location" | "about" | "displayName" | "headline" | "venture" | "skills" | "goals" | "links" | "phone" | "gender" | "dateOfBirth" | "interests" | "avatarMediaId" | "businessType" | "guidelinesVersion")[];
|
|
1261
|
+
export declare const ONBOARDING_DRAFT_KEYS: ("location" | "about" | "displayName" | "headline" | "venture" | "skills" | "goals" | "links" | "phone" | "gender" | "dateOfBirth" | "interests" | "avatarMediaId" | "businessType" | "legalStructure" | "guidelinesVersion")[];
|
|
894
1262
|
export type OnboardingDraftKey = z.infer<typeof onboardingDraftKeySchema>;
|
|
895
1263
|
/**
|
|
896
1264
|
* Where the member got to, kept in its own collection, separate from the
|
|
@@ -922,6 +1290,7 @@ export declare const onboardingDraftSchema: z.ZodRecord<z.ZodEnum<{
|
|
|
922
1290
|
interests: "interests";
|
|
923
1291
|
avatarMediaId: "avatarMediaId";
|
|
924
1292
|
businessType: "businessType";
|
|
1293
|
+
legalStructure: "legalStructure";
|
|
925
1294
|
guidelinesVersion: "guidelinesVersion";
|
|
926
1295
|
}> & z.core.$partial, z.ZodUnknown>;
|
|
927
1296
|
export type OnboardingDraft = z.infer<typeof onboardingDraftSchema>;
|
|
@@ -942,6 +1311,7 @@ export declare const onboardingProgressSchema: z.ZodObject<{
|
|
|
942
1311
|
interests: "interests";
|
|
943
1312
|
avatarMediaId: "avatarMediaId";
|
|
944
1313
|
businessType: "businessType";
|
|
1314
|
+
legalStructure: "legalStructure";
|
|
945
1315
|
guidelinesVersion: "guidelinesVersion";
|
|
946
1316
|
}> & z.core.$partial, z.ZodUnknown>>;
|
|
947
1317
|
}, z.core.$strip>;
|
|
@@ -950,10 +1320,14 @@ export type OnboardingProgress = z.infer<typeof onboardingProgressSchema>;
|
|
|
950
1320
|
* `PATCH` body: any subset of the cursor, merged server-side. No defaults.
|
|
951
1321
|
* `step` may equal `ONBOARDING_TOTAL_STEPS`: "past the last step", which the
|
|
952
1322
|
* client sends on its way to finish.
|
|
1323
|
+
*
|
|
1324
|
+
* The draft's values are opaque, but ONE is not kept as typed (0.17.0): the
|
|
1325
|
+
* photo step's `avatarMediaId` is handed to the server, which holds that
|
|
1326
|
+
* upload, so it must be an upload id or `null` like the form's own field.
|
|
953
1327
|
*/
|
|
954
1328
|
export declare const onboardingProgressUpdateSchema: z.ZodObject<{
|
|
955
1329
|
step: z.ZodOptional<z.ZodNumber>;
|
|
956
|
-
draft: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
1330
|
+
draft: z.ZodOptional<z.ZodPipe<z.ZodRecord<z.ZodEnum<{
|
|
957
1331
|
location: "location";
|
|
958
1332
|
about: "about";
|
|
959
1333
|
displayName: "displayName";
|
|
@@ -968,8 +1342,9 @@ export declare const onboardingProgressUpdateSchema: z.ZodObject<{
|
|
|
968
1342
|
interests: "interests";
|
|
969
1343
|
avatarMediaId: "avatarMediaId";
|
|
970
1344
|
businessType: "businessType";
|
|
1345
|
+
legalStructure: "legalStructure";
|
|
971
1346
|
guidelinesVersion: "guidelinesVersion";
|
|
972
|
-
}> & z.core.$partial, z.ZodUnknown
|
|
1347
|
+
}> & z.core.$partial, z.ZodUnknown>, z.ZodTransform<Partial<Record<"location" | "about" | "displayName" | "headline" | "venture" | "skills" | "goals" | "links" | "phone" | "gender" | "dateOfBirth" | "interests" | "avatarMediaId" | "businessType" | "legalStructure" | "guidelinesVersion", unknown>>, Partial<Record<"location" | "about" | "displayName" | "headline" | "venture" | "skills" | "goals" | "links" | "phone" | "gender" | "dateOfBirth" | "interests" | "avatarMediaId" | "businessType" | "legalStructure" | "guidelinesVersion", unknown>>>>>;
|
|
973
1348
|
}, z.core.$strip>;
|
|
974
1349
|
export type OnboardingProgressUpdate = z.infer<typeof onboardingProgressUpdateSchema>;
|
|
975
1350
|
/**
|
|
@@ -998,8 +1373,21 @@ export declare const onboardingStatusSchema: z.ZodObject<{
|
|
|
998
1373
|
interests: "interests";
|
|
999
1374
|
avatarMediaId: "avatarMediaId";
|
|
1000
1375
|
businessType: "businessType";
|
|
1376
|
+
legalStructure: "legalStructure";
|
|
1001
1377
|
guidelinesVersion: "guidelinesVersion";
|
|
1002
1378
|
}> & z.core.$partial, z.ZodUnknown>>;
|
|
1379
|
+
photo: z.ZodOptional<z.ZodObject<{
|
|
1380
|
+
id: z.ZodString;
|
|
1381
|
+
url: z.ZodURL;
|
|
1382
|
+
width: z.ZodNumber;
|
|
1383
|
+
height: z.ZodNumber;
|
|
1384
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
1385
|
+
width: z.ZodNumber;
|
|
1386
|
+
height: z.ZodNumber;
|
|
1387
|
+
url: z.ZodURL;
|
|
1388
|
+
}, z.core.$strip>>;
|
|
1389
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
1390
|
+
}, z.core.$strip>>;
|
|
1003
1391
|
}, z.core.$strip>;
|
|
1004
1392
|
export type OnboardingStatus = z.infer<typeof onboardingStatusSchema>;
|
|
1005
1393
|
//# sourceMappingURL=onboarding.d.ts.map
|