@proteos/sdk 0.53.0 → 0.54.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/dist/{chunk-SWCPI6SL.cjs → chunk-KMNEQP3G.cjs} +13 -3
- package/dist/chunk-KMNEQP3G.cjs.map +1 -0
- package/dist/{chunk-HEUXXELG.js → chunk-OS4IQ5VH.js} +13 -3
- package/dist/chunk-OS4IQ5VH.js.map +1 -0
- package/dist/index.cjs +453 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +859 -30
- package/dist/index.d.ts +859 -30
- package/dist/index.js +338 -4
- package/dist/index.js.map +1 -1
- package/dist/meta/index.cjs +75 -75
- package/dist/meta/index.d.cts +1 -1
- package/dist/meta/index.d.ts +1 -1
- package/dist/meta/index.js +1 -1
- package/dist/{types-D5P6yk1L.d.cts → types-amvSTwJy.d.cts} +20 -2
- package/dist/{types-D5P6yk1L.d.ts → types-amvSTwJy.d.ts} +20 -2
- package/package.json +3 -3
- package/src/auth/platform-entities.ts +8 -0
- package/src/connector/types.ts +8 -0
- package/src/index.ts +87 -0
- package/src/meta/layout/elements.ts +29 -0
- package/src/meta/layout/index.ts +1 -0
- package/src/scheduling/index.ts +576 -0
- package/src/scheduling/types.ts +790 -0
- package/dist/chunk-HEUXXELG.js.map +0 -1
- package/dist/chunk-SWCPI6SL.cjs.map +0 -1
|
@@ -1613,6 +1613,7 @@ declare const LayoutElementType: {
|
|
|
1613
1613
|
readonly RecordFilter: "record_filter";
|
|
1614
1614
|
readonly List: "list";
|
|
1615
1615
|
readonly WorkflowTrigger: "workflow_trigger";
|
|
1616
|
+
readonly SchedulingPicker: "scheduling_picker";
|
|
1616
1617
|
};
|
|
1617
1618
|
type LayoutElementType = (typeof LayoutElementType)[keyof typeof LayoutElementType];
|
|
1618
1619
|
type RowElement = CommonProps & {
|
|
@@ -1832,13 +1833,30 @@ type WorkflowTriggerElement = CommonProps & {
|
|
|
1832
1833
|
*/
|
|
1833
1834
|
execution_attribute?: string;
|
|
1834
1835
|
};
|
|
1836
|
+
/**
|
|
1837
|
+
* Embeds a scheduling link's booking flow (type → time → details →
|
|
1838
|
+
* confirmation) in the layout — the in-page counterpart of /s/:orgId/:key.
|
|
1839
|
+
* `type_key` pre-selects one of the link's types (the picker shows the choice
|
|
1840
|
+
* otherwise), `host_user_id` pins one host, `contact_id` is a Liquid template
|
|
1841
|
+
* over the page scope that binds the booking to a known contact (no name /
|
|
1842
|
+
* email asked). Allowed on every page type; public pages book through the
|
|
1843
|
+
* unauthenticated surface.
|
|
1844
|
+
*/
|
|
1845
|
+
type SchedulingPickerElement = CommonProps & {
|
|
1846
|
+
type: 'scheduling_picker';
|
|
1847
|
+
link_key: string;
|
|
1848
|
+
type_key?: string;
|
|
1849
|
+
host_user_id?: string;
|
|
1850
|
+
contact_id?: string;
|
|
1851
|
+
is_header_hidden?: boolean;
|
|
1852
|
+
};
|
|
1835
1853
|
type TextVariant = 'heading' | 'subheading' | 'body' | 'caption' | 'callout';
|
|
1836
1854
|
type TextElement = CommonProps & {
|
|
1837
1855
|
type: 'text';
|
|
1838
1856
|
variant: TextVariant;
|
|
1839
1857
|
content: string;
|
|
1840
1858
|
};
|
|
1841
|
-
type LayoutElement = RowElement | ColumnElement | SectionElement | CardElement | TabsElement | FieldElement | RelatedListElement | RelatedRecordElement | ComponentElement | DividerElement | TextElement | RecordFilterElement | ListElement | WorkflowTriggerElement;
|
|
1859
|
+
type LayoutElement = RowElement | ColumnElement | SectionElement | CardElement | TabsElement | FieldElement | RelatedListElement | RelatedRecordElement | ComponentElement | DividerElement | TextElement | RecordFilterElement | ListElement | WorkflowTriggerElement | SchedulingPickerElement;
|
|
1842
1860
|
declare const LayoutTabSchema: z.ZodType<LayoutTab>;
|
|
1843
1861
|
declare const LayoutElementSchema: z.ZodType<LayoutElement>;
|
|
1844
1862
|
|
|
@@ -5706,4 +5724,4 @@ declare function isCurrentUserDefault(value: unknown): value is CurrentUserDefau
|
|
|
5706
5724
|
/** Only the identity-valued attribute types can carry the sentinel. */
|
|
5707
5725
|
declare function acceptsCurrentUserDefault(type: AttributeType): boolean;
|
|
5708
5726
|
|
|
5709
|
-
export {
|
|
5727
|
+
export { CurrencyAttributeMetaSchema as $, type AuditFields as A, type ComponentService as B, CURRENT_USER_DEFAULT as C, type ContactAddressAttributeKind as D, type ContactAddressAttributeMeta as E, type FileRef as F, ContactAddressAttributeMetaSchema as G, type ContactBindingDuplicatePolicy as H, type CreateAppConfigurationRequest as I, type CreateAppRequest as J, type CreateComponentRequest as K, type ListOptions as L, type CreateDesignReferenceRequest as M, type CreateEntityExtensionRequest as N, type CreateEntityRequest as O, PageIterator as P, type CreateListExtensionRequest as Q, type ResponseMeta as R, type CreateListRequest as S, type CreateListViewRequest as T, type UserRef as U, type CreateMenuConfigurationExtensionRequest as V, type CreateMenuConfigurationRequest as W, type CreatePageExtensionRequest as X, type CreatePageRequest as Y, type CreateVariableRequest as Z, type CurrencyAttributeMeta as _, type Attribute as a, type MenuConfigurationExtensionPlacement as a$, type CurrencySymbolSide as a0, type CurrencyValue as a1, type CurrentUserDefault as a2, DEFAULT_OPTIONS as a3, DEFAULT_PAGE_SIZE as a4, DONE as a5, type DeployModuleRequest as a6, type DesignReference as a7, type DesignReferenceContent as a8, DesignReferenceSchema as a9, type ListDesignReferencesOptions as aA, type ListEntitiesOptions as aB, type ListEntityExtensionsOptions as aC, type ListExtension as aD, type ListExtensionColumnPlacement as aE, ListExtensionColumnPlacementSchema as aF, ListExtensionSchema as aG, type ListExtensionService as aH, type ListFn as aI, type ListListExtensionsOptions as aJ, type ListListViewsOptions as aK, type ListListsOptions as aL, type ListMenuConfigurationExtensionsOptions as aM, type ListMenuConfigurationsOptions as aN, type ListModulesOptions as aO, type ListPageExtensionsOptions as aP, type ListPagesOptions as aQ, ListSchema as aR, type ListService as aS, type ListVariablesOptions as aT, type ListView as aU, ListViewSchema as aV, type ListViewService as aW, type LogicalOperator as aX, MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS as aY, type MenuConfiguration as aZ, type MenuConfigurationExtension as a_, type DesignReferenceService as aa, type Done as ab, type Entity as ac, type EntityContactBinding as ad, EntityContactBindingSchema as ae, type EntityExtension as af, EntityExtensionSchema as ag, type EntityExtensionService as ah, EntitySchema as ai, type EntityService as aj, type EntityWithSchema as ak, EntityWithSchemaSchema as al, type EnumAttributeMeta as am, type EnumValue as an, type ExtensionPosition as ao, ExtensionPositionSchema as ap, type FileAttributeMeta as aq, FileRefSchema as ar, type FilterElement as as, FilterElementSchema as at, type FilterGroup as au, FilterGroupSchema as av, type List as aw, type ListAppConfigurationsOptions as ax, type ListAppsOptions as ay, type ListComponentsOptions as az, type ListResult as b, type UserType as b$, MenuConfigurationExtensionPlacementSchema as b0, type MenuConfigurationExtensionPosition as b1, MenuConfigurationExtensionPositionSchema as b2, MenuConfigurationExtensionSchema as b3, type MenuConfigurationExtensionService as b4, MenuConfigurationSchema as b5, type MenuConfigurationService as b6, type MenuItem as b7, MenuItemSchema as b8, MenuItemType as b9, type PublicPageComponent as bA, type PublicPageResponse as bB, type RelationAttributeMeta as bC, RelationAttributeMetaSchema as bD, type RequestOptions as bE, type ResolvedClientOptions as bF, ResponseMetaSchema as bG, type SortConfig as bH, SortConfigSchema as bI, type SortDirection as bJ, type Timestamps as bK, type TokenProvider as bL, type UpdateAppConfigurationRequest as bM, type UpdateAppRequest as bN, type UpdateComponentRequest as bO, type UpdateDesignReferenceRequest as bP, type UpdateEntityExtensionRequest as bQ, type UpdateEntityRequest as bR, type UpdateListExtensionRequest as bS, type UpdateListRequest as bT, type UpdateListViewRequest as bU, type UpdateMenuConfigurationExtensionRequest as bV, type UpdateMenuConfigurationRequest as bW, type UpdatePageExtensionRequest as bX, type UpdatePageRequest as bY, type UpdateVariableRequest as bZ, UserRefSchema as b_, MetaClient as ba, type MetaListOptions as bb, type Module as bc, ModuleSchema as bd, type ModuleService as be, type ModuleStatus as bf, type OnDeleteAction as bg, OnDeleteActionSchema as bh, PAGE_EXTENSION_ANCHOR_MAIN as bi, PAGE_EXTENSION_ANCHOR_SIDE_PANEL as bj, PLATFORM_ATTRIBUTE_NAMES as bk, PLATFORM_USER_ID as bl, type Page as bm, type PageAction as bn, type PageActionKind as bo, PageActionSchema as bp, type PageExtension as bq, type PageExtensionPlacement as br, PageExtensionPlacementSchema as bs, PageExtensionSchema as bt, type PageExtensionService as bu, type PageLayout as bv, PageLayoutSchema as bw, PageSchema as bx, type PageService as by, type PageType as bz, ProteosClient as c, SizeValueSchema as c$, type Variable as c0, VariableSchema as c1, type VariableService as c2, acceptsCurrentUserDefault as c3, allCurrencyCodes as c4, createIterator as c5, createListResultSchema as c6, currencyLabel as c7, currencySymbol as c8, currencySymbolSide as c9, type LayoutAlign as cA, type LayoutElement as cB, LayoutElementSchema as cC, LayoutElementType as cD, type LayoutGap as cE, type LayoutJustify as cF, type LayoutTab as cG, LayoutTabSchema as cH, type ListElement as cI, type NumberAttributeMeta as cJ, type ObjectAttributeMeta as cK, PAGE_BACKGROUND_TOKENS as cL, type PageBackgroundToken as cM, type PageLayoutSidePanel as cN, PageLayoutSidePanelSchema as cO, type PageStyle as cP, PageStyleSchema as cQ, type PrincipalAttributeMeta as cR, type PrincipalType as cS, type RecordFilterElement as cT, type RelatedListElement as cU, type RelatedRecordElement as cV, type ResponsiveSizing as cW, type RowElement as cX, type SchedulingPickerElement as cY, type SectionElement as cZ, type SizeValue as c_, formatAmount as ca, formatMoney as cb, isCurrentUserDefault as cc, isPlatformAttributeName as cd, localeNumberSeparators as ce, parseAmount as cf, parseContactAddressMeta as cg, parseCurrencyMeta as ch, parseFileMeta as ci, parseRelationMeta as cj, platformAttributes as ck, resolveOptions as cl, type AttributeForLookup as cm, type AttributeMeta as cn, BUILT_IN_CONTROLS as co, type BuiltInControlSlug as cp, type CardElement as cq, type ColumnElement as cr, type CommonProps as cs, type ComponentElement as ct, type ControlBucket as cu, type DatetimeAttributeMeta as cv, type DatetimeFormat as cw, type DividerElement as cx, type FieldElement as cy, FileAttributeMetaSchema as cz, type PrincipalRef as d, type SizingProps as d0, type StringAttributeMeta as d1, type StringFormat as d2, type TabsElement as d3, type TextElement as d4, type TextVariant as d5, type UserAttributeMeta as d6, UserAttributeMetaSchema as d7, type WorkflowTriggerElement as d8, isBuiltInControl as d9, lookupCompatibleControls as da, lookupControls as db, lookupPrimaryControl as dc, parsePrincipalMeta as dd, parseUserMeta as de, type PublicAccessOperation as e, type App as f, type AppConfiguration as g, AppConfigurationSchema as h, type AppConfigurationService as i, type AppHome as j, AppHomeSchema as k, type AppHomeType as l, AppSchema as m, type AppService as n, type ArrayAttributeMeta as o, type AttributeAccessRule as p, type AttributeRestrictions as q, AttributeSchema as r, type AttributeType as s, AuditFieldsSchema as t, type ClientOptions as u, type Column as v, ColumnSchema as w, type ComparisonOperator as x, type Component as y, ComponentSchema as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteos/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "TypeScript SDK for the Proteos platform",
|
|
6
6
|
"repository": {
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"tsup": "^8.3.0",
|
|
67
67
|
"typescript": "^5.7.0",
|
|
68
68
|
"vitest": "^3.0.0",
|
|
69
|
-
"@proteos/
|
|
70
|
-
"@proteos/
|
|
69
|
+
"@proteos/biome-config": "0.0.0",
|
|
70
|
+
"@proteos/tsconfig": "0.0.0"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"build": "tsup",
|
|
@@ -108,6 +108,14 @@ export const PLATFORM_ENTITIES: readonly PlatformEntity[] = [
|
|
|
108
108
|
// Connectors (connector-service). `connections` above is shared; this is the
|
|
109
109
|
// manifest catalog.
|
|
110
110
|
{ slug: 'connectors', name: 'Connectors' },
|
|
111
|
+
// Scheduling (scheduling-service)
|
|
112
|
+
{ slug: 'calendar-connections', name: 'Calendar Connections' },
|
|
113
|
+
{ slug: 'calendars', name: 'Calendars' },
|
|
114
|
+
{ slug: 'calendar-events', name: 'Calendar Events' },
|
|
115
|
+
{ slug: 'calendar-event-types', name: 'Calendar Event Types' },
|
|
116
|
+
{ slug: 'scheduling-links', name: 'Scheduling Links' },
|
|
117
|
+
{ slug: 'scheduling-profiles', name: 'Scheduling Profiles' },
|
|
118
|
+
{ slug: 'availability-constraints', name: 'Availability Constraints' },
|
|
111
119
|
] as const
|
|
112
120
|
|
|
113
121
|
/** Just the platform entity slugs, in canonical order. */
|
package/src/connector/types.ts
CHANGED
|
@@ -81,6 +81,12 @@ export interface Connector {
|
|
|
81
81
|
has_default_app_credentials?: boolean
|
|
82
82
|
config_schema?: Attribute[]
|
|
83
83
|
methods: ConnectorMethod[]
|
|
84
|
+
/**
|
|
85
|
+
* Coarse, provider-neutral tags a first-party service filters the catalog
|
|
86
|
+
* by (`calendar`: the grant can drive the platform calendar mirror).
|
|
87
|
+
* snake_case, declared by the manifest.
|
|
88
|
+
*/
|
|
89
|
+
capabilities?: string[]
|
|
84
90
|
origin: 'pre_built' | 'custom'
|
|
85
91
|
module_slug?: string
|
|
86
92
|
status: 'active' | 'inactive'
|
|
@@ -152,6 +158,8 @@ export interface ListConnectorsQuery {
|
|
|
152
158
|
page?: number
|
|
153
159
|
page_size?: number
|
|
154
160
|
status?: string
|
|
161
|
+
/** Only connectors declaring this capability (e.g. `calendar`). */
|
|
162
|
+
capability?: string
|
|
155
163
|
}
|
|
156
164
|
|
|
157
165
|
export interface ListConnectorConnectionsQuery {
|
package/src/index.ts
CHANGED
|
@@ -792,6 +792,93 @@ export {
|
|
|
792
792
|
SortConfigSchema,
|
|
793
793
|
VariableSchema,
|
|
794
794
|
} from './meta/index.js'
|
|
795
|
+
// Scheduling types (scheduling-service: calendar connections, calendars,
|
|
796
|
+
// scheduling profiles, the calendar_event mirror)
|
|
797
|
+
export type {
|
|
798
|
+
Assignment,
|
|
799
|
+
AvailabilityConstraint,
|
|
800
|
+
AvailabilityConstraintService,
|
|
801
|
+
AvailabilityKind,
|
|
802
|
+
BookingContact,
|
|
803
|
+
BookSchedulingLinkRequest,
|
|
804
|
+
BookSchedulingLinkResponse,
|
|
805
|
+
Calendar,
|
|
806
|
+
CalendarAttendee,
|
|
807
|
+
CalendarAttendeeRequest,
|
|
808
|
+
CalendarConnection,
|
|
809
|
+
CalendarConnectionService,
|
|
810
|
+
CalendarConnectionStatus,
|
|
811
|
+
CalendarEvent,
|
|
812
|
+
CalendarEventService,
|
|
813
|
+
CalendarEventType,
|
|
814
|
+
CalendarEventTypeService,
|
|
815
|
+
CalendarEventsResponse,
|
|
816
|
+
CalendarProvider,
|
|
817
|
+
CalendarService,
|
|
818
|
+
CalendarSync,
|
|
819
|
+
CalendarSyncStatus,
|
|
820
|
+
CalendarVisibility,
|
|
821
|
+
CalendarWatch,
|
|
822
|
+
ConferencingProvider,
|
|
823
|
+
CreateAvailabilityConstraintRequest,
|
|
824
|
+
CreateCalendarConnectionRequest,
|
|
825
|
+
CancelPublicCalendarEventRequest,
|
|
826
|
+
CreateCalendarEventRequest,
|
|
827
|
+
CreateSchedulingLinkRequest,
|
|
828
|
+
EventLocation,
|
|
829
|
+
EventSource,
|
|
830
|
+
EventStatus,
|
|
831
|
+
EventTransparency,
|
|
832
|
+
EventVisibility,
|
|
833
|
+
EventWriteStatus,
|
|
834
|
+
GetPublicSlotsQuery,
|
|
835
|
+
GetSlotsRequest,
|
|
836
|
+
GetSlotsResponse,
|
|
837
|
+
HostsRequest,
|
|
838
|
+
ListAvailabilityConstraintsQuery,
|
|
839
|
+
ListCalendarConnectionsQuery,
|
|
840
|
+
ListCalendarEventTypesQuery,
|
|
841
|
+
ListCalendarEventsQuery,
|
|
842
|
+
ListCalendarsQuery,
|
|
843
|
+
ListSchedulingLinksQuery,
|
|
844
|
+
LocationKind,
|
|
845
|
+
// Aliased: the conversation module already exports its own ListResponse.
|
|
846
|
+
ListResponse as SchedulingListResponse,
|
|
847
|
+
NotifyMode,
|
|
848
|
+
ParticipationStatus,
|
|
849
|
+
PublicBookSchedulingLinkResponse,
|
|
850
|
+
PublicCalendarEvent,
|
|
851
|
+
PublicCalendarEventType,
|
|
852
|
+
PublicEventLocation,
|
|
853
|
+
PublicHost,
|
|
854
|
+
PublicSchedulingLink,
|
|
855
|
+
PublicSchedulingService,
|
|
856
|
+
PutCalendarEventTypeRequest,
|
|
857
|
+
PutSchedulingProfileRequest,
|
|
858
|
+
RecordRef,
|
|
859
|
+
RecurrenceScope,
|
|
860
|
+
ReschedulePublicCalendarEventRequest,
|
|
861
|
+
RescheduleHost,
|
|
862
|
+
RespondCalendarEventRequest,
|
|
863
|
+
SchedulingLink,
|
|
864
|
+
SchedulingLinkService,
|
|
865
|
+
SchedulingProfile,
|
|
866
|
+
SchedulingProfileService,
|
|
867
|
+
Slot,
|
|
868
|
+
SlotParameters,
|
|
869
|
+
SlotService,
|
|
870
|
+
SlotUnavailability,
|
|
871
|
+
SlotUnavailabilityReason,
|
|
872
|
+
UpdateCalendarSyncRequest,
|
|
873
|
+
UpdateAvailabilityConstraintRequest,
|
|
874
|
+
UpdateCalendarConnectionRequest,
|
|
875
|
+
UpdateCalendarEventRequest,
|
|
876
|
+
UpdateCalendarEventTypeRequest,
|
|
877
|
+
UpdateCalendarRequest,
|
|
878
|
+
UpdateSchedulingLinkRequest,
|
|
879
|
+
} from './scheduling/index.js'
|
|
880
|
+
// Scheduling client (scheduling-service)
|
|
881
|
+
export { SchedulingClient } from './scheduling/index.js'
|
|
795
882
|
export type {
|
|
796
883
|
CreateFileMetadata,
|
|
797
884
|
FileService,
|
|
@@ -23,6 +23,7 @@ export const LayoutElementType = {
|
|
|
23
23
|
RecordFilter: 'record_filter',
|
|
24
24
|
List: 'list',
|
|
25
25
|
WorkflowTrigger: 'workflow_trigger',
|
|
26
|
+
SchedulingPicker: 'scheduling_picker',
|
|
26
27
|
} as const
|
|
27
28
|
export type LayoutElementType = (typeof LayoutElementType)[keyof typeof LayoutElementType]
|
|
28
29
|
|
|
@@ -257,6 +258,24 @@ export type WorkflowTriggerElement = CommonProps & {
|
|
|
257
258
|
execution_attribute?: string
|
|
258
259
|
}
|
|
259
260
|
|
|
261
|
+
/**
|
|
262
|
+
* Embeds a scheduling link's booking flow (type → time → details →
|
|
263
|
+
* confirmation) in the layout — the in-page counterpart of /s/:orgId/:key.
|
|
264
|
+
* `type_key` pre-selects one of the link's types (the picker shows the choice
|
|
265
|
+
* otherwise), `host_user_id` pins one host, `contact_id` is a Liquid template
|
|
266
|
+
* over the page scope that binds the booking to a known contact (no name /
|
|
267
|
+
* email asked). Allowed on every page type; public pages book through the
|
|
268
|
+
* unauthenticated surface.
|
|
269
|
+
*/
|
|
270
|
+
export type SchedulingPickerElement = CommonProps & {
|
|
271
|
+
type: 'scheduling_picker'
|
|
272
|
+
link_key: string
|
|
273
|
+
type_key?: string
|
|
274
|
+
host_user_id?: string
|
|
275
|
+
contact_id?: string
|
|
276
|
+
is_header_hidden?: boolean
|
|
277
|
+
}
|
|
278
|
+
|
|
260
279
|
export type TextVariant = 'heading' | 'subheading' | 'body' | 'caption' | 'callout'
|
|
261
280
|
|
|
262
281
|
export type TextElement = CommonProps & {
|
|
@@ -280,6 +299,7 @@ export type LayoutElement =
|
|
|
280
299
|
| RecordFilterElement
|
|
281
300
|
| ListElement
|
|
282
301
|
| WorkflowTriggerElement
|
|
302
|
+
| SchedulingPickerElement
|
|
283
303
|
|
|
284
304
|
// ──────────────────────────────────────────────────────────── Schemas ──
|
|
285
305
|
|
|
@@ -410,5 +430,14 @@ export const LayoutElementSchema: z.ZodType<LayoutElement> = z.lazy(() =>
|
|
|
410
430
|
variant: z.enum(['heading', 'subheading', 'body', 'caption', 'callout']),
|
|
411
431
|
content: z.string().min(1),
|
|
412
432
|
}),
|
|
433
|
+
z.object({
|
|
434
|
+
type: z.literal('scheduling_picker'),
|
|
435
|
+
...commonPropsShape,
|
|
436
|
+
link_key: z.string().min(1),
|
|
437
|
+
type_key: z.string().min(1).optional(),
|
|
438
|
+
host_user_id: z.string().min(1).optional(),
|
|
439
|
+
contact_id: z.string().optional(),
|
|
440
|
+
is_header_hidden: z.boolean().optional(),
|
|
441
|
+
}),
|
|
413
442
|
]),
|
|
414
443
|
) as unknown as z.ZodType<LayoutElement>
|