@levo-so/core 0.1.54 → 0.1.59

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/client.d.ts CHANGED
@@ -45,7 +45,7 @@ export declare const createLevoClient: (options: ILevoClientOptions) => {
45
45
  signUpWithPassword: <T = import(".").ILevoMembership.Account>(data: import(".").ILevoMembership.Request.SignUpWithPassword, options?: import("wretch").WretchOptions) => Promise<T>;
46
46
  };
47
47
  readonly collection: {
48
- getAllCollections: (data?: import(".").LevoQuery.FindQuery<"id" | "workspace_id" | "description" | "created_at" | "updated_at" | "key" | "readonly" | "hidden" | "icon" | "name" | "sections" | "views" | "title_field" | "email_field" | "settings" | "module_name" | "on_submit" | "on_update" | "allow_draft">, options?: import("wretch").WretchOptions) => Promise<import(".").IResponseMultiple<import(".").ILemaCollection>>;
48
+ getAllCollections: (data?: import(".").LevoQuery.FindQuery<"id" | "workspace_id" | "description" | "created_at" | "updated_at" | "key" | "readonly" | "hidden" | "icon" | "on_submit" | "on_update" | "name" | "sections" | "views" | "title_field" | "email_field" | "mobile_field" | "settings" | "module_name" | "allow_draft">, options?: import("wretch").WretchOptions) => Promise<import(".").IResponseMultiple<import(".").ILemaCollection>>;
49
49
  getCollectionByIDExpanded: <T = import(".").ILemaCollection>(id: string, options?: import("wretch").WretchOptions) => Promise<import(".").IResponseSingle<T>>;
50
50
  createCollection: (data: import(".").ILemaCollection) => Promise<import(".").IResponseSingle<import(".").ILemaCollection>>;
51
51
  saveCollectionData: ({ collection_id, data, options, }: {
@@ -1,3 +1,6 @@
1
- export declare const FieldInterfacesList: readonly ["ArrayWidget", "RecordWidget", "TextWidget", "CurrencyWidget", "TextareaWidget", "GeocoderWidget", "MultiGeocoderWidget", "DropdownWidget", "ToggleCheckboxWidget", "RadioWidget", "NumberWidget", "EmailWidget", "PhoneWidget", "URLWidget", "DateWidget", "SwitchWidget", "RichTextWidget", "DateTimeWidget", "CheckboxWidget", "ImageUploadWidget", "MultiImageUploadWidget", "FileUploadWidget", "MultiFileUploadWidget", "MultiDropdownWidget", "JSONWidget", "SlugWidget", "CollectionWidget", "MultiTextWidget"];
2
- export declare const FieldInterfaces: Record<"ArrayWidget" | "RecordWidget" | "TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "JSONWidget" | "SlugWidget" | "CollectionWidget" | "MultiTextWidget", "ArrayWidget" | "RecordWidget" | "TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "JSONWidget" | "SlugWidget" | "CollectionWidget" | "MultiTextWidget">;
1
+ export declare const CommonFieldInterfacesList: readonly ["TextWidget", "CurrencyWidget", "TextareaWidget", "GeocoderWidget", "MultiGeocoderWidget", "DropdownWidget", "ToggleCheckboxWidget", "RadioWidget", "NumberWidget", "EmailWidget", "PhoneWidget", "URLWidget", "DateWidget", "SwitchWidget", "RichTextWidget", "DateTimeWidget", "CheckboxWidget", "ImageUploadWidget", "MultiImageUploadWidget", "FileUploadWidget", "MultiFileUploadWidget", "MultiDropdownWidget", "MultiTextWidget"];
2
+ export declare const ComplexFieldInterfacesList: readonly ["CollectionWidget", "ArrayWidget", "RecordWidget", "JSONWidget", "SlugWidget"];
3
+ export declare const FieldInterfacesList: readonly ["TextWidget", "CurrencyWidget", "TextareaWidget", "GeocoderWidget", "MultiGeocoderWidget", "DropdownWidget", "ToggleCheckboxWidget", "RadioWidget", "NumberWidget", "EmailWidget", "PhoneWidget", "URLWidget", "DateWidget", "SwitchWidget", "RichTextWidget", "DateTimeWidget", "CheckboxWidget", "ImageUploadWidget", "MultiImageUploadWidget", "FileUploadWidget", "MultiFileUploadWidget", "MultiDropdownWidget", "MultiTextWidget", "CollectionWidget", "ArrayWidget", "RecordWidget", "JSONWidget", "SlugWidget"];
4
+ export declare const CommonFieldIntefaces: Record<"TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "MultiTextWidget", "TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "MultiTextWidget">;
5
+ export declare const FieldInterfaces: Record<"TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "MultiTextWidget" | "CollectionWidget" | "ArrayWidget" | "RecordWidget" | "JSONWidget" | "SlugWidget", "TextWidget" | "CurrencyWidget" | "TextareaWidget" | "GeocoderWidget" | "MultiGeocoderWidget" | "DropdownWidget" | "ToggleCheckboxWidget" | "RadioWidget" | "NumberWidget" | "EmailWidget" | "PhoneWidget" | "URLWidget" | "DateWidget" | "SwitchWidget" | "RichTextWidget" | "DateTimeWidget" | "CheckboxWidget" | "ImageUploadWidget" | "MultiImageUploadWidget" | "FileUploadWidget" | "MultiFileUploadWidget" | "MultiDropdownWidget" | "MultiTextWidget" | "CollectionWidget" | "ArrayWidget" | "RecordWidget" | "JSONWidget" | "SlugWidget">;
3
6
  //# sourceMappingURL=fieldInterfaces.d.ts.map
@@ -1,14 +1,12 @@
1
1
  export declare const LEVO_INTEGRATIONS: {
2
2
  readonly beacon: "so.levo.beacon";
3
3
  readonly blog: "so.levo.blog";
4
- readonly collection: "so.levo.collection";
5
4
  readonly event: "so.levo.event";
6
5
  readonly membership: "so.levo.membership";
7
6
  readonly payment: "so.levo.payment";
8
- readonly studio: "so.levo.studio";
9
7
  readonly search_console: "com.google.search_console";
10
8
  };
11
- export declare const LEVO_INTEGRATIONS_LIST: ("so.levo.beacon" | "so.levo.blog" | "so.levo.collection" | "so.levo.event" | "so.levo.membership" | "so.levo.payment" | "so.levo.studio" | "com.google.search_console")[];
9
+ export declare const LEVO_INTEGRATIONS_LIST: ("so.levo.beacon" | "so.levo.blog" | "so.levo.event" | "so.levo.membership" | "so.levo.payment" | "com.google.search_console")[];
12
10
  export type ILevoIntegrationList = (typeof LEVO_INTEGRATIONS)[keyof typeof LEVO_INTEGRATIONS][];
13
11
  export type ILevoIntegrationInstance = {
14
12
  id: string;
package/dist/index.js CHANGED
@@ -1416,15 +1416,6 @@ var FieldKind = {
1416
1416
  "array-json": "array-json"
1417
1417
  };
1418
1418
  var interfaceKinds = {
1419
- // IdentifierWidget: 'identifier',
1420
- // SlugWidget: 'string',
1421
- // BlogWidget: 'string',
1422
- // TimeWidget: 'date',
1423
- // VideoUploadWidget: 'file',
1424
- // MediaUploadWidget: 'file',
1425
- // TextSliderWidget: 'number',
1426
- // SliderWidget: 'number',
1427
- // RangeSliderWidget: 'array-number',
1428
1419
  ArrayWidget: FieldKind.group,
1429
1420
  RecordWidget: FieldKind.record,
1430
1421
  TextWidget: FieldKind.string,
@@ -1456,9 +1447,7 @@ var interfaceKinds = {
1456
1447
  };
1457
1448
 
1458
1449
  // src/constants/collection/fieldInterfaces.ts
1459
- var FieldInterfacesList = [
1460
- "ArrayWidget",
1461
- "RecordWidget",
1450
+ var CommonFieldInterfacesList = [
1462
1451
  "TextWidget",
1463
1452
  "CurrencyWidget",
1464
1453
  "TextareaWidget",
@@ -1481,21 +1470,26 @@ var FieldInterfacesList = [
1481
1470
  "FileUploadWidget",
1482
1471
  "MultiFileUploadWidget",
1483
1472
  "MultiDropdownWidget",
1484
- "JSONWidget",
1485
- "SlugWidget",
1486
- "CollectionWidget",
1487
1473
  "MultiTextWidget"
1488
- // 'MediaUploadWidget',
1489
- // 'VideoUploadWidget',
1490
- // 'GroupCollectionWidget',
1491
- // 'SliderWidget',
1492
- // 'RangeSliderWidget',
1493
- // 'IdentifierWidget',
1494
- // 'SlugWidget',
1495
- // 'BlogWidget',
1496
- // 'TimeWidget',
1497
- // 'TextSliderWidget',
1498
1474
  ];
1475
+ var ComplexFieldInterfacesList = [
1476
+ "CollectionWidget",
1477
+ "ArrayWidget",
1478
+ "RecordWidget",
1479
+ "JSONWidget",
1480
+ "SlugWidget"
1481
+ ];
1482
+ var FieldInterfacesList = [
1483
+ ...CommonFieldInterfacesList,
1484
+ ...ComplexFieldInterfacesList
1485
+ ];
1486
+ var CommonFieldIntefaces = CommonFieldInterfacesList.reduce(
1487
+ (acc, curr) => {
1488
+ acc[curr] = curr;
1489
+ return acc;
1490
+ },
1491
+ {}
1492
+ );
1499
1493
  var FieldInterfaces = FieldInterfacesList.reduce(
1500
1494
  (acc, curr) => {
1501
1495
  acc[curr] = curr;
@@ -1518,11 +1512,9 @@ var MediaKind = MediaKindList.reduce(
1518
1512
  var LEVO_INTEGRATIONS = {
1519
1513
  beacon: "so.levo.beacon",
1520
1514
  blog: "so.levo.blog",
1521
- collection: "so.levo.collection",
1522
1515
  event: "so.levo.event",
1523
1516
  membership: "so.levo.membership",
1524
1517
  payment: "so.levo.payment",
1525
- studio: "so.levo.studio",
1526
1518
  search_console: "com.google.search_console"
1527
1519
  };
1528
1520
  var LEVO_INTEGRATIONS_LIST = Object.values(LEVO_INTEGRATIONS);
@@ -1538,4 +1530,4 @@ var formatImagePath = (string) => {
1538
1530
  return "";
1539
1531
  };
1540
1532
 
1541
- export { AnalyticsEvents, AnalyticsEventsList, FieldInterfaces, FieldInterfacesList, FieldKind, FieldKindList, LEVO_INTEGRATIONS, LEVO_INTEGRATIONS_LIST, LevoError, LevoOAuthProviderList, LocalStorageLock, MediaKind, MediaKindList, createLevoClient, defaultByKinds, formatImagePath, formatsByInterface, getLevoError, interfaceKinds };
1533
+ export { AnalyticsEvents, AnalyticsEventsList, CommonFieldIntefaces, CommonFieldInterfacesList, ComplexFieldInterfacesList, FieldInterfaces, FieldInterfacesList, FieldKind, FieldKindList, LEVO_INTEGRATIONS, LEVO_INTEGRATIONS_LIST, LevoError, LevoOAuthProviderList, LocalStorageLock, MediaKind, MediaKindList, createLevoClient, defaultByKinds, formatImagePath, formatsByInterface, getLevoError, interfaceKinds };
@@ -3,8 +3,35 @@
3
3
  * @see IIcon
4
4
  */
5
5
  import type { IIcon } from "../emoji";
6
+ import { LevoQuery } from "../levo-query";
6
7
  import type { ICollectionViews } from "../schema/schema";
7
8
  import type { ILemaSection } from "./lemaSection";
9
+ export interface INotificationData {
10
+ id?: string;
11
+ kind: string;
12
+ subkind: string;
13
+ enabled?: boolean;
14
+ condition?: LevoQuery.Where;
15
+ options: {
16
+ to_email: string | string[];
17
+ subject?: string;
18
+ template_key: string;
19
+ from_name: string;
20
+ reply_to?: string;
21
+ cc_email?: string[];
22
+ bcc_email?: string[];
23
+ info: {
24
+ show_download_button?: boolean;
25
+ hide_fields?: string[];
26
+ body?: string;
27
+ subject?: string;
28
+ richtext?: string;
29
+ };
30
+ };
31
+ }
32
+ export interface INotificationWithTrigger extends INotificationData {
33
+ trigger: "on_submit" | "on_update";
34
+ }
8
35
  /**
9
36
  * Defines the schema structure for a Levo Collection.
10
37
  *
@@ -35,6 +62,8 @@ export interface ILemaCollection {
35
62
  title_field?: string | null;
36
63
  /** Optional field name used for email in the collection. */
37
64
  email_field?: string | null;
65
+ /** Optional field name used for mobile in the collection. */
66
+ mobile_field?: string | null;
38
67
  /** Whether the collection is hidden from the UI. */
39
68
  hidden?: boolean;
40
69
  /** Whether the collection is read-only. */
@@ -44,9 +73,9 @@ export interface ILemaCollection {
44
73
  /** Optional module name associated with the collection. */
45
74
  module_name?: string | null;
46
75
  /** Optional configuration for actions to perform on submit. */
47
- on_submit?: Record<string, any>;
76
+ on_submit?: INotificationData[];
48
77
  /** Optional configuration for actions to perform on update. */
49
- on_update?: Record<string, any>;
78
+ on_update?: INotificationData[];
50
79
  /** Date or string representing when the collection was created. */
51
80
  created_at?: Date | string;
52
81
  /** Date or string representing when the collection was last updated. */
@@ -10,6 +10,8 @@ export declare namespace LevoEvent {
10
10
  timing: string;
11
11
  url: string | null;
12
12
  location: IGeocoderLocation | null;
13
+ is_location_public?: boolean;
14
+ is_url_public?: boolean;
13
15
  starts_at?: string | null;
14
16
  ends_at?: string | null;
15
17
  cadence: string;
@@ -25,6 +27,17 @@ export declare namespace LevoEvent {
25
27
  updated_at: Date;
26
28
  updated_by: string;
27
29
  external_ticketing?: string;
30
+ ticket_order?: "alphabetical-asc" | "alphabetical-desc" | "price-asc" | "price-desc" | "custom";
31
+ series?: {
32
+ _id: string;
33
+ slug: string;
34
+ name: string;
35
+ description?: string;
36
+ cover_image?: IMediaObject | null;
37
+ status?: string;
38
+ created_at?: string;
39
+ updated_at?: string;
40
+ };
28
41
  }
29
42
  namespace Ticket {
30
43
  interface Root {
@@ -69,6 +82,7 @@ export declare namespace LevoEvent {
69
82
  expires_at: Date | null;
70
83
  max_redemptions: number | null;
71
84
  minimum_amount: number | null;
85
+ is_public: boolean;
72
86
  created_at: Date;
73
87
  created_by: string;
74
88
  updated_at: Date;
@@ -76,12 +90,12 @@ export declare namespace LevoEvent {
76
90
  status: string;
77
91
  tickets: string[];
78
92
  }
79
- type Create = Pick<Root, "code" | "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "tickets">;
80
- type CreateBulk = Pick<Root, "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "tickets"> & {
93
+ type Create = Pick<Root, "code" | "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "is_public" | "tickets">;
94
+ type CreateBulk = Pick<Root, "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "is_public" | "tickets"> & {
81
95
  coupon_count: number;
82
96
  code_length: number;
83
97
  };
84
- type Update = Partial<Pick<Root, "code" | "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "tickets">>;
98
+ type Update = Partial<Pick<Root, "code" | "kind" | "percent_off" | "amount_off" | "currency" | "starts_at" | "expires_at" | "max_redemptions" | "minimum_amount" | "is_public" | "tickets">>;
85
99
  type Validate = {
86
100
  base_amount: number;
87
101
  sale_amount: number;
@@ -1,4 +1,19 @@
1
1
  import type { MediaKindList } from "../constants/media";
2
+ interface IFaviconSrcset {
3
+ "16": string;
4
+ "32": string;
5
+ "57": string;
6
+ "60": string;
7
+ "72": string;
8
+ "76": string;
9
+ "96": string;
10
+ "114": string;
11
+ "120": string;
12
+ "144": string;
13
+ "152": string;
14
+ "180": string;
15
+ "192": string;
16
+ }
2
17
  export interface IMedia {
3
18
  id: string;
4
19
  workspace_id: string;
@@ -28,7 +43,14 @@ export interface IMedia {
28
43
  updated_at?: Date;
29
44
  updated_by?: string;
30
45
  }
46
+ export type IFaviconMedia = Omit<IMedia, "srcset"> & {
47
+ srcset: IFaviconSrcset;
48
+ };
31
49
  export type IMediaObject = Pick<IMedia, "id" | "location" | "srcset" | "kind"> & {
32
50
  mimetype?: IMedia["metadata"]["mimetype"];
33
51
  };
52
+ export type IFaviconMediaObject = Omit<IMediaObject, "srcset"> & {
53
+ srcset: IFaviconSrcset;
54
+ };
55
+ export {};
34
56
  //# sourceMappingURL=media.d.ts.map
@@ -94,7 +94,9 @@ export declare namespace ILevoMembership {
94
94
  * }
95
95
  * ```
96
96
  */
97
- type RequestOtp = Pick<Otp, "content">;
97
+ type RequestOtp = Pick<Otp, "content"> & {
98
+ medium?: "email" | "whatsapp";
99
+ };
98
100
  /**
99
101
  * `content` - the email or mobile number to send the Otp to
100
102
  *
@@ -90,6 +90,32 @@ export type IModuleAccessControl = {
90
90
  export interface IFeatureFlags extends Partial<IModuleAccessControl> {
91
91
  branding?: boolean;
92
92
  }
93
+ export interface IEmailAddress {
94
+ id: string;
95
+ email: string;
96
+ is_primary: boolean;
97
+ }
98
+ export interface IPhoneNumber {
99
+ id: string;
100
+ phone: string;
101
+ is_primary: boolean;
102
+ }
103
+ export interface IAddress {
104
+ id: string;
105
+ unit?: string;
106
+ street: string;
107
+ landmark?: string;
108
+ city: string;
109
+ state: string;
110
+ zip: string;
111
+ country: string;
112
+ is_primary: boolean;
113
+ }
114
+ export interface IContactInfo {
115
+ emails?: IEmailAddress[];
116
+ phones?: IPhoneNumber[];
117
+ addresses?: IAddress[];
118
+ }
93
119
  export interface IWorkspace {
94
120
  id: string;
95
121
  public_id: string;
@@ -107,6 +133,7 @@ export interface IWorkspace {
107
133
  icon: IMediaObject | null;
108
134
  workspace_id: string;
109
135
  industry: string;
136
+ countries: string[];
110
137
  info: {
111
138
  locations?: {
112
139
  place_name: string;
@@ -121,6 +148,13 @@ export interface IWorkspace {
121
148
  category_confidence: number;
122
149
  };
123
150
  };
151
+ contact_info?: IContactInfo;
152
+ social_media?: {
153
+ facebook?: string;
154
+ twitter?: string;
155
+ linkedin?: string;
156
+ instagram?: string;
157
+ };
124
158
  };
125
159
  settings: {
126
160
  head_code?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levo-so/core",
3
- "version": "0.1.54",
3
+ "version": "0.1.59",
4
4
  "author": "Levo Engineering <devs@theinternetfolks.com>",
5
5
  "description": "Levo common utilities",
6
6
  "type": "module",